Efficient way to reduce noise from load cell data DAQ?

13 views (last 30 days)
Dear all,
I use DAQ to get data from Loadcell. However, the signal wave have many unnecessary waves (picture 1). I want to reduce those waves, just keep the peak wave (it show the load from the hammer) look like picture 2. I has tried to use filter function, but not working. What should I do to solve it.
Thank you very much.

Accepted Answer

Star Strider
Star Strider on 20 Jun 2016
The easiest way would be to use a low-pass filter, band-pass filter (if you want to remove a d-c offset), or a notch filter to filter out the high-frequency noise. There are many ways to design filters in MATLAB, including designfilt, firls, and others. My usual procedure for IIR filters is here: How to design a lowpass filter for ocean wave data in Matlab?
If you provide a sample of your data, I may be able to help you design your filter. I will need a vector of sample times as well as your signal vector.
  4 Comments
vu ngothanh
vu ngothanh on 21 Jun 2016
Oh, The result is very very good, much more better than I expected. Do you think that it will be better if insert this 2 line in the last result that you gave me.
[b,a]=butter(2,0.01);
Lc_last=filter(b,a,LC_filt);
Thank you very much.
God bless you.
Star Strider
Star Strider on 21 Jun 2016
My pleasure.
I am not certain what result you want, so experiment with the filters to isolate your frequencies of interest. That code designs a low-pass filter with a cutoff of about 51 Hz. Looking at the Fourier transform plot, it would seem to me to eliminate part of your signal, probably eliminating the high-frequency transients.
I would use filtfilt rather than filter, because filtfilt has a maximally flat phase response, and will eliminate phase distortion in the filtered signal.
The third column of your data appears to be an impact record (input), so if you want to get an input-output transfer function of your system, you would have to filter the input signal with the same low-pass filter. (You can estimate your system transfer function from the two time-domain signals with the invfreqz function in the Signal Processing Toolbox. As with everything else in signal processing, you will have to experiment with it to get the result you want.)
Thank you. I wish you the same.

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!