【发布时间】:2011-01-17 08:51:36
【问题描述】:
我想使用移动平均值过滤加速度计值,这是如何完成的? 谢谢
【问题讨论】:
标签: objective-c iphone filter accelerometer moving-average
我想使用移动平均值过滤加速度计值,这是如何完成的? 谢谢
【问题讨论】:
标签: objective-c iphone filter accelerometer moving-average
一个简单的单极低通递归 IIR 滤波器快速且易于实现,例如
xf = k * xf + (1.0 - k) * x;
yf = k * yf + (1.0 - k) * y;
其中 x, y 是原始(未过滤的)X/Y 加速度计信号,xf, yf 是过滤后的输出信号,k 确定滤波器的时间常数(通常介于 0.9 和 0.9999 之间...,其中k 越大表示时间常数越长)。
您可以凭经验确定k,或者如果您知道您需要的截止频率Fc,那么您可以使用公式:
k = 1 - exp(-2.0 * PI * Fc / Fs)
其中Fs 是采样率。
请注意,xf, yf 是上式的右轴输出信号的先前值,以及左轴上的新输出值。
另请注意,我们在这里假设您将以固定的时间间隔对加速度计信号进行采样,例如每 10 毫秒。时间常数将是 k 和该采样间隔的函数。
【讨论】:
xf = k*xf + (1.0-k)*x 会更清楚,其中 xf 是 x 的过滤版本,以及 y 轴的类似方程。