把事情简单化!
看来移动平均线是一个足够好的阻尼装置;保持原样,如果您注意到它分别留下太多噪声或去除太多信号,可能只会增加或减少其样本数。然后,您专门处理这个平均信号。
您寻找的模式标记似乎相对容易检测。用英语表示,这些标记是:
目标 =平均读数曲线中的拐点,当斜率从负数变为正数时。
因此,您应该能够通过比较与移动平均值一起计算的斜率值来检测这种情况,因为每个新的读数值都可用(当然有很短的延迟,因为当然给定点的斜率只能是当下一个 [few] point[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通常为负值,除非我们在公式中只使用正参数并使用负号)
最低限度。
直观地说,这个 4 点公式将考虑曲线的形状,该点之前两个读数和超过兴趣点的两个读数(除了考虑它之前和之后的点)。给定适当的参数值,该公式将要求曲线在两个时间片内稳定地“下降”,然后在接下来的两个时间片内稳定地上升,从而避免在曲线中标记较小的下降。
实现此目的的另一种方法可能是通过使用两个[平均] 读数之间的 Y 值差异来计算斜率(或更多)时间片之前和当前[平均]读数的时间片。这两种方法相似,但会产生略微不同的结果;通常,我们会通过 Pm2、Pm1、P0 和 P1 参数对所需的曲线形状有更多的发言权。