1

I am doing some pattern matching work on acceleroemeter. I notice that the accelerometer data (@100) logged from the Android Sensor API is somehow "less noisy" then those from other devices(with the same type of hardware.) or recorded from C(NDK) level. I am wandering whether there is any filtering (low-pass filtering, most likely) going on at Android Java level? If so, where could I find the algorithm/filter Android used? Does it appear anywhere in Android source code?

Any pointer would be greatly appreciated!

Hong
  • 513
  • 2
  • 7
  • 10

2 Answers2

0

I don't think Android filters somehow Accelerometer values since somewhere in documentation I saw a statement that it is raw data. Could not find this now though.. Anyways, if you are looking for some sort of low-pass filtering for accelerometer data, you can look at this answer to get better understanding how low-pass can be implemented.

Hope this helps

Community
  • 1
  • 1
Pavel Dudka
  • 20,754
  • 7
  • 70
  • 83
0

There are lot of things that may impact the accuracy of sensor. It is a wide topic. Starting from its calibration data (if any) to accuracy settings for sensor. Many a times driver (in Android HAL as well) can request data with certain accuracy. So it is possible to get different result. In general, I would suggest you to look at this sources, it will give you insight in to the manipulation of raw sensor data. Also, there are utilities at kernel level which captures raw data. It would be nice to compare this data from good system to bad system as well.

And just in case if you are writing an application and want to filter data on your own then you can do it by applying different filtering mechanisms mentioned here

VendettaDroid
  • 3,131
  • 2
  • 28
  • 41