如何使用移动平均值来过滤 iPhone OS 中的加速度计值
我想使用移动平均值过滤加速度计值,这是如何完成的? 谢谢
I want to filter the accelerometer values using a moving average, how is this done?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简单、单极点、低通、递归 IIR 滤波器可快速且轻松地实现,例如,
其中 x、y 是原始(未滤波)X/Y 加速度计信号,xf、yf 是滤波后的输出信号,k 确定时间滤波器的常数(通常是 0.9 到 0.9999 之间的值...,其中 k 越大意味着时间常数越长)。
您可以凭经验确定
k
,或者如果您知道所需的截止频率Fc
,则可以使用以下公式:其中
Fs
是采样率。请注意,xf、yf 是上面表达式的右侧输出信号的先前值,以及左侧的新输出值。
另请注意,我们在此假设您将按固定时间间隔(例如每 10 毫秒)对加速度计信号进行采样。时间常数将是 k 和采样间隔的函数。
A simple, single pole, low pass, recursive IIR filter is quick and easy to implement, e.g.
where x, y are the raw (unfiltered) X/Y accelerometer signals, xf, yf are the filtered output signals, and k determines the time constant of the filters (typically a value between 0.9 and 0.9999..., where a bigger k means a longer time constant).
You can determine
k
empirically, or if you know your required cut-off frequency,Fc
, then you can use the formula:where
Fs
is the sample rate.Note that xf, yf are the previous values of the output signal on the RHS, and the new output values on the LHS of the expression above.
Note also that we are assuming here that you will be sampling the accelerometer signals at regular time intervals, e.g. every 10 ms. The time constant will be a function both of k and of this sampling interval.