排除了在android应用程序中计算重力时抖动的可能性



有很多关于如何实现shake事件的信息。我正在尝试而不是在查找g-force时实现一个。

我有一个Sensor.TYPE_ACCELEROMETER的工作类,它可以找到3轴g力,但即使是抖动设备也可以注册为>5G。我甚至在骑自行车的时候提供了服务,沿着路边走到车道是一项15G的活动。

我不确定清理或降低加速度计灵敏度的最佳方法。也许我可以看看这种力是否持续超过X秒,然后将其记录为最大持续重力?

根据我的经验,你很可能不得不使用基于时间的平均值来确保它是一个长期或持久的力,而不是一个尖锐的尖峰。

平均值通常更接近现实,除非你有比持续测量更多的抖动。你也可以尝试一个中值平均值,但根据加速度计的样本数量,它可能非常不准确。

就我的目的而言,只需要一个简单的低通滤波器和一个最小的G-Force触发器。

它已经遍布StackOverflow,但留给子孙后代:

output[i] = output[i] + ALPHA * (input[i] - output[i]);

将其与适当的ALPHA设置相结合,可以充分清理我的数据,使其完美工作。

最新更新