Android加速度计过滤?

Kyo*_*ang 5 android filtering signal-processing sensor

我看到很多关于过滤Accelermeter值的例子,以消除重力(高通滤波器).

但是大多数都是一阶的,据说很简单,但是迟到而不是最好的(尽管我对滤波器或DSP一无所知).

这里有人说DSP中存在用于感知运动的更好的解决方案.遗憾的是,我甚至无法想象会是什么,因为我完全不喜欢这个领域.

我希望有人能够分辨出处理传感器时可以使用的滤波器类型.当然,即使对具体算法进行简要介绍也会非常高兴:)

提前致谢.

gar*_*ary 1

您想利用 Android 的SensorListener()Class。例如,“The Schwartz Unsheathed”是托管在 Google Code 上的开源 Android 项目,看起来应该非常有用(由 Clark Scheff 编写)。

您可以通过 SVN http://code.google.com/p/the-schwartz-unsheathed/source/checkout查看其源代码,或者直接在网络上浏览。源代码分为一个 Activity ( TheSchwartz.java ) 和一个 View ( GraphView.java )。GraphView.java 包含SensorListener()广告onSensorChanged()类,这是加速度计处理发生的地方。第 284 和 285 行:

magnitude = (float)Math.sqrt(values[0]*values[0]+values[1]*values[1]+values[2]*values[2]);
magnitude = Math.abs(magnitude - SensorManager.GRAVITY_EARTH);
Run Code Online (Sandbox Code Playgroud)

的值magnitude是根据 Android 手机没有移动、“撞击”或“摆动”来评估的。我意识到这并没有在信号处理意义上过滤数据,但它确实展示了一种对传感器数据进行分类的方法。希望能帮助到你。