如何使用移动平均线过滤iPhone OS中的加速度计值

时间:2010-02-16 11:36:24

标签: objective-c iphone filter accelerometer moving-average

我想用移动平均线过滤加速度计值,这是怎么做到的? 感谢

1 个答案:

答案 0 :(得分:16)

简单的单极低通递归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是RHS上输出信号的先前值,以及上面表达式的LHS上的新输出值。

另请注意,我们假设您将定期对加速度计信号进行采样,例如:每10毫秒。时间常数将是k和此采样间隔的函数。