加速度计信号分割

时间:2010-12-03 00:04:23

标签: accelerometer signals pattern-recognition

alt text

我有一维加速度计信号(仅一个轴)。我想创建一个强大的算法,它能够识别信号中的某些形状。

首先,我对原始信号应用移动平均滤波器。在附图上,原始信号为红色,平均信号为黑色。从图中可以看出,从平均(黑色)信号中可以看到一些趋势 - 信号包含10次重复的峰值模式,其中加速度上升到最大值然后下降。我用十字架标记了这些图案的开头和结尾。

所以我的目标是自动找到标记的位置。使模式提取困难的问题是:

  • 模式的开头可能具有与模式结尾不同的y值
  • 该模式可能有多个峰值
  • 我没有任何具体的时间信息(从模式的开始到结束需要时间单位)

我尝试了不同的方法,这些方法几乎都是家酿,所以我不会提到它们 - 我不希望你被我的思维方式所偏见。是否有一些标准或书籍方法来进行这种模式提取?或者也许有人知道如何以健全的方式解决问题吗?

任何想法都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

您可能希望查看分水岭分割,它会做一种相关的事情(将景观划分为各自的集水区)。奇怪的是,我实际上正在撰写博士论文,目前使用分水岭很多(严肃地说:))

答案 1 :(得分:2)

保持简单!
看来移动平均线是一个足够好的阻尼装置;保持原样,可能只是增加或减少其样本数,如果你发现它要么留下太多的噪音,要么分别删除太多的信号。然后,您将专门处理此平均信号。

您寻找的模式标记似乎相对容易检测。用英语表示,这些标记是:
目标= 平均读数曲线中的拐点,当斜率显着负值为正时。
因此,当每个新的读数值可用时,你应该能够通过比较斜率值(与移动平均值一起计算)来检测到这种情况(当然是短暂的延迟,当然还有斜率)在给定点只能在下一个[几个]点[s]的平均读数可用时才能计算出来)

为避免错误检测,您需要定义一些旨在过滤不良模式的参数。这些参数将更准确地定义上述目标定义中“显着”的含义。

暂时检测兴趣点的公式可以像这样简单   ( - 1 * S (t-1) + S t )> Min_delta_Slope
其中
  S是时刻t-1和t的斜率(更多)   Min_delta_Slope是一个参数,用于定义我们想要的斜率变化的“尖锐”程度 假设标准化的t和Y单位,我们可以将Min_delta_Slope参数设置为接近或甚至超过1.直观地,值1(再次以标准化单位表示)将表示我们以弯曲“到达”的点为目标,向下倾斜为50 %并向上倾斜50%(或40%+ 60%或... 10%,即几乎平坦,90%即几乎垂直)。
为了避免在这只是曲线中的小幅下降的情况下检测点,我们可以考虑更多的点,使用更高级的公式,例如说

(Pm2 * S (t-2) + Pm1 * S (t-1) + P0 * S t + Pp1 S (t + 1))> Min_delta_Slope
其中
Pm2,Pm1,P0和Pp1是在感兴趣点之前和之后的各个点处给出相对重要性的系数。 (Pm2和Pm1通常为负值,除非我们仅使用正参数并在公式中使用负号) S t +/- n 是不同时间的斜率 和Min_delta_Slope是一个参数,用于定义我们想要的斜率变化的“尖锐”程度 直观地,这个4点公式将考虑曲线的形状在两个读数之前和两个读数超过感兴趣的点(除了考虑它之前和之后的点)。给定适当的参数值,公式将要求曲线稳定地“向下”两个时间片,然后稳定地上升到接下来的两个时间片,因此避免在曲线中标记较小的下降。
实现此目的的另一种方法可以是通过使用来自两个(或更多)时间片之前的[平均]读数与当前[平均]之间的Y值之差来计算斜率。读。这两种方法相似但会产生略微不同的结果;通常我们对Pm2,Pm1,P0和P1参数的曲线形状有更多的发言权。