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