【问题标题】:How to calculate the value of the smoothing parameter for lowpass filter (in case of smoothing of compass sensor data)如何计算低通滤波器的平滑参数值(在罗盘传感器数据平滑的情况下)
【发布时间】:2013-12-25 23:51:39
【问题描述】:

我想使用低通滤波器对智能手机的罗盘传感器数据进行平滑处理,并想计算低通滤波器实现的平滑参数。

我对@9​​87654321@ 中的一个问题/帖子有疑问

在上面的帖子中,作者希望使用低通滤波器对传感器数据进行平滑处理,并建议根据需要设置平滑参数(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


【解决方案1】:

根据我的观点和科学观点,闭上眼睛并从 0 到 1 中选择一个随机值是无法做到这一点的。

也许,也许不是。调整平滑滤波器通常是一项经验任务,您选择一个在实践中“足够好”的值。您正在权衡结果的平滑性与速度(即快速响应输入变化的能力)。

另一方面,如果你想要一个特定的时间常数,那么是的,就使用它! *

可以分析滤波器表达式以确定其频率响应。但是,这基本上需要discrete-time Fourier transform(也可能需要Z transform)。恐怕这超出了 Stack Overflow 答案的范围!


* 但是,我不确定您从该数据表中读到的内容是否让您相信 tau 的特定值是您应该使用的...

【讨论】:

  • 好吧,我从数据表中获取了芯片组的电容和电阻,并计算了时间常数 (TAU)= 电阻*电容。一旦知道 Tau,我就计算了平滑参数 ALPHA=Tau/Tau+deltaT,其中 deltaT 是我的采样率,即 50Hz=20 毫秒,Tau 是 0.144 毫秒。
  • @user3123466:我还没有真正看过数据表,但是 R 和 C 是否以某种方式对应于信号路径?
猜你喜欢
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2017-09-10
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多