【发布时间】:2013-12-25 23:51:39
【问题描述】:
我想使用低通滤波器对智能手机的罗盘传感器数据进行平滑处理,并想计算低通滤波器实现的平滑参数。
我对@987654321@ 中的一个问题/帖子有疑问
在上面的帖子中,作者希望使用低通滤波器对传感器数据进行平滑处理,并建议根据需要设置平滑参数(ALPHA)。平滑参数应介于 0-1 之间。接近0的值在数据中是平滑的。
因此,作者使用了 ALPHA = 0.15。
根据我的观点和科学性,闭上眼睛并从 0 到 1 中选择一个随机值是无法做到这一点的。
所以我的问题是如何计算平滑参数(ALPHA),而我的采样率为 100Hz。根据我的观点,这个平滑参数对于不同的采样率是不同的。因此,平滑参数的猜测或分析将无法实时进行。
因此,我正在寻找如何计算低通滤波器的平滑参数。这方面我看过这个interesting presentation
如果知道时间常数(Tau),可以在第 13 页看到计算平滑参数的公式
计算 Tau 的公式 = 电容 * 电阻
从电子罗盘AK8974的数据表中,我计算了电阻和电容并计算了(Tau)
了解 Tau 后,可以使用以下公式轻松计算平滑参数
ALPHA=Tau/Tau+deltaT
在我的例子中,ALPHA 的值为 (0.00714)
我想对时间常数 (Tau) 和平滑参数的计算提出意见。这是证明平滑参数合理的正确方法吗?有没有其他办法?
【问题讨论】:
-
您认为这是选择满足要求的随机 ALPHA 值的正确方法。
-
好吧,我从数据表中获取了芯片组的电容和电阻,并计算了时间常数 (TAU)= 电阻*电容。一旦知道 Tau,我就计算了平滑参数 ALPHA=Tau/Tau+deltaT,其中 deltaT 是我的采样率,即 50Hz=20milliseconds=0.02 秒,Tau 是 0.144*10^-3 秒。
-
本例计算的AlPHA为=0.00714
-
好吧,你得到了值,你试过看看信号是否适合你的应用程序吗?看起来价值不高,试试吧。它不是芯片组,只是一个电子罗盘 IC :)
-
我在原始数据上尝试了这个平滑值,效果很好。我观察到平滑数据中的 1.5 度标准偏差和原始数据中的 10 度标准偏差。但是有一个问题,每当方向发生变化(比如说 90 度)时,我观察到平滑数据的延迟大约为 4-6 秒。
标签: java android android-sensors digital-compass