我正在创建一个android phonegap应用程序,可以检测道路表面的不规则性,例如坑洼和减速带。我依靠手机通过phonegap提供的加速度计值,并将使用这些值进行一些处理。
但是,由于值非常粗糙,我想使用某种过滤来平滑值。我知道有低通和高通滤波器。但它们之间有什么区别?如何在我的应用程序中使用一个而不是另一个会影响值的平滑性和可靠性?
答案 0 :(得分:1)
说这个可能有点容易,但直截了当的解释是低通滤波器允许低频并拒绝/降低高频,反之亦然。
平滑通常涉及抑制高频分量。您可以通过几种简单的技术取得进展:
简单移动平均线(只是平均最近的 N 样本)。
指数移动平均线(y[n] = alpha * y[n-1] + (1 - alpha) * x[n]
)。
参见例如http://en.wikipedia.org/wiki/Moving_average了解更多信息。
选择 N 或 alpha 参数的值需要特定于应用程序的调整。
但是,适当的滤镜设计是一项复杂的科学/艺术。例如,拒绝高频成分可能会削弱您检测像坑洼这样的“真实”事件的能力(它们也会被平滑掉)。您可能开始需要复杂的非线性技术,例如阈值处理。但这是整本书的主题!