1. Dec 2, 2005

### dduardo

Staff Emeritus
I have a digital signal from an accelerometer and I would like to filter as much noise as quickly as possible. By quick I mean near real-time with some flexibility. The microprocessor I'm using is 32bit, 400Mhz, and does not have a floating point unit so all calculations must be done in either integer or fixed-point math. I've been looking at a LMS filter because it is O(n) but it doesn't converge as quickly as a kalman filter. I would like your opinions on what type of filter I should use.

Last edited: Dec 2, 2005
2. Dec 2, 2005

### Staff: Mentor

What is the bandwidth of the valid signals from the accelerometer? What is the spectra of the noise (is it from vibration or something, or electrical noise too?)? What is your typical signal-to-noise ratio? Can you do any noise cancellation with a second pickup somehow?

3. Dec 2, 2005

### dduardo

Staff Emeritus
The noise is primarily coming from the vibration of a person holding the accelerometer in their hand. The electrical noise is minimal. The bandwidth is 3.3kHz on the x and y axis and 1.7kHz on the z axis. I can only have one accelerometer. I'm also sampling at 32kHz.

Basically I'm trying to track user movement.

Last edited: Dec 2, 2005
4. Dec 2, 2005

### Staff: Mentor

Do you have an idea of how you want your filter polynomial to be able to adapt? Moving notches, changing passband, variable gain in multiple passbands? Do you have an idea of what you want your Performance Surface to look like? I don't know what your exact application is, and how it relates to the vibration noise, but it sounds to me more like you would want to figure out the best time domain DSP algorithms to give you the best guess at the overall acceleration, rather than architect it as an adaptive filter in the frequency domain.

For example, if it is a distance measuring device for runners, then your time domain processing would figure out the footfall bounce rhythm, and process the accelerometer signal accordingly to best-guess the net movement. Or if it is a device that sportbike riders would wear at the racetrack to record their acceleration, braking, and cornering forces, then the vibration from the engine would be the primary noise to be subtracted out, and having your program keep track of the apparent RPM would help it to discern engine vibration from overall bike movement....

BTW, I've only looked a little bit at adaptive filters (I've done more time-domain DSP work for the kind of thing you're talking about), but I found a pretty good book on it if you're interested in checking it out. "Adaptive Signal Processing" by Widrow and Stearns (from Stanford).

5. Dec 2, 2005

### dduardo

Staff Emeritus
Yes, I am trying to find the best guess of the overall acceleration in each axis. What I was planning on doing was filtering the signal enough such that when I quantize it with a certain step I could get a rough estimate of the accelerations. My goal isn't exactness, I just need an estimate as to the orientation of the device.

Last edited: Dec 2, 2005