可变步长信息的修正移动平均线

Modified moving average for variable step information

修正移动平均线(参见https://en.wikipedia.org/wiki/Moving_average#Modified_moving_average)应用于以固定时间步长采样的数据。是否有像这样的低通滤波器可以应用于以可变时间步长采样的数据?

"Like this" 是主观的。这里有两种可能对您有用的方法。

第一种是使用插值将时间步长可变的数据转换为时间步长固定的数据,然后使用移动平均。如果您的可变时间步长与固定时间步长完全匹配,那么这将成为指数衰减移动平均线。

第二个是让 r 成为所需衰减率的对数。 (这将是一个负数。)那么如果你的下一次观察是在你上一次观察之后的时间t,那么:

average_next = average_old * e^(r*t) + (1 - e^(r*t))*observation

假设 r*t 很小,您可以只使用著名的泰勒级数的几个项 e^x = 1 + x + x^2/2 + x^3/6 + ...

这个计算比较复杂,但是如果可变步长是固定的,那么它就会变成移动平均线。 (而且您不需要完全匹配也能正常工作!)

如果您想象每个样本提供的值一直持续到下一个样本,则信号将成为一个连续信号,在样本时间发生一系列阶跃变化。

然后你可以应用"modified moving average"滤波器产生一个连续的平滑信号,你可以随时用公式计算出平滑信号的精确值:

ynow = xprev + (yprev - xprev) * e-Rt

其中xprev是前面的样本,yprev是前面样本时的平滑值(本来使用相同的公式计算),t 是自前一个样本以来的时间,R 是一个介于 0 和 1 之间的因子,用于控制平滑量。 R 值越小,输出越平滑。

这与@btilly 给出的公式非常相似,但他使用 xnow 而不是 xprev,这可能会起作用适合您,但与过滤后的连续信号没有相同的解释。