Adaptive Filtering for Digital Signals on 32bit 400Mhz Processor

  • Thread starter Thread starter dduardo
  • Start date Start date
Click For Summary

Discussion Overview

The discussion centers around the selection of an appropriate filtering method for processing digital signals from an accelerometer, with a focus on achieving near real-time noise reduction. The context includes considerations of hardware limitations, specifically a 32-bit, 400MHz microprocessor without a floating point unit, and the nature of the noise affecting the signal.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant suggests using an LMS filter due to its O(n) complexity but notes its slower convergence compared to a Kalman filter, seeking opinions on the best filtering approach.
  • Another participant inquires about the bandwidth of the valid signals, the spectra of the noise, the signal-to-noise ratio, and the possibility of noise cancellation using a second pickup.
  • A participant clarifies that the primary noise source is vibration from a person holding the accelerometer, with minimal electrical noise, and provides specific bandwidths for the x, y, and z axes along with the sampling rate.
  • One participant questions the desired adaptability of the filter, suggesting various options such as moving notches or variable gain, and emphasizes the importance of understanding the application context to determine the best approach for noise reduction.
  • A participant expresses the intention to estimate overall acceleration rather than achieve exact measurements, indicating a focus on filtering the signal sufficiently for quantization to determine device orientation.

Areas of Agreement / Disagreement

Participants have not reached a consensus on the best filtering method, with multiple competing views on the approach to noise reduction and the adaptability of the filter. The discussion remains unresolved regarding the optimal solution.

Contextual Notes

Limitations include the dependence on the specific application context, the nature of the noise, and the constraints of the processing hardware. The discussion does not resolve the mathematical or technical details of the proposed filtering methods.

dduardo
Staff Emeritus
Science Advisor
Insights Author
Messages
1,902
Reaction score
3
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:
Engineering news on Phys.org
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?
 
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:
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).
 
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:

Similar threads

  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
1
Views
3K
Replies
2
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 2 ·
Replies
2
Views
4K
Replies
17
Views
6K
  • · Replies 13 ·
Replies
13
Views
4K