How to Filter a Noisy Acceleration Signal?

I have recorded acceleration signal of a dynamical system with acceleration transducers, but these data are noisy. how can i remove this noise? Sampling frequency is 2 kHz, recording time 25 seconds, the system is a time varying system so the acceleration signal is non-stationary signal. the system had been excited with a random signal. i want to eliminate the signal noise totally if it is available, because my analysis method is very sensitive to noise, so i want to remove noise as much as possible. i think the systems first natural frequency range is between 130-170 Hz.(because system is time varying)

2 Comments

There are usually a number of high-frequency noise components in accelerometer signals, unique to each channel. A bandpass filter usually works, but there’s not enough information here (sampling frequency, the signals themselves) to provide a definitive reply.
sampling frequency is 2 kHz, recording time 25 seconds, the system is a time varying system so the acceleration signal is non-stationary signal. the system had been excited with a random signal. i want to eliminate the signal noise totally if it is available, because my analysis method is very sensitive to noise, so i want to remove noise as much as possible. i think the systems first natural frequency range is between 130-170 Hz.(because system is time varying)

Sign in to comment.

 Accepted Answer

Do you want to identify and replace outliers, replacing with smoothed values? Or just totally eliminate outliers? Or do you want to smooth the whole curve, like with the Savitzky-Golay filter (sliding polynomial) in the Signal Processing Toolbox?

5 Comments

i want to eliminate outliers as much as possible and have a signal with high SNR.
Thanks for Accepting the answer. Since you have no follow up questions I assume Brett's "deleteoutlier" function worked for you. I'm attaching two Savitzky-Golay demos (one for images and one for a noisy sine wave), just in case anyone wants them.
I saw the demos, thank you. can you explain more about savitzky-golay function? for example in "y = sgolayfilt(x,k,f,w" what are the k,f,w parameters. and how i can i choose the right value for them. because my signal is non-stationary and i can not tell what is the best, by just adjusting random values for these parameters.
x is your signal, k is the window width over which to do the polynomial fit, and f is the order of the polynomial. Don't worry about w or dim - just leave those off in most cases.
If k is bigger, it's taking into account more data so the signal will be smoother. Smaller k means less smoothing.
If f is smaller it will be fitting a line or quadratic and will be smoother. If f is larger you're fitting a higher order polynomial that will be better able to follow your signal and thus provide less smoothing.
Thank you for the answer.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!