How to remove noise from strain data?
Show older comments
I am fairly new to DSP so I have no idea what am I doing after reading so many papers and stuff. I was given a set of strain data as shown below and asked to remove the noise in these data using MatLab.
As you can see the time is from 0 to 480 MSec and end at 0 for the last data. The total data collected is 1001.

Below is a plot of the first set of data in MatLab that i trying to use FFT to remove high frequency noises but I keep getting error and not sure how to do it. I tried following Youtube tutorial but I am not sure how to input my data into the script.

Can anyone teach or guide me how to remove noise in these data ? I don't know if FFT is a best method for noise removal but it seems to be one of the recommended technique from what I have read. Please advice.
My ultimate goal of my thesis is to develop a normalisation tool for SHM data with techniques such as regression analysis, neural network, novelty detection and more.
Any further information required in order to help, please ask me, I will provide as much information as I could. Thank you all so much.
Edit: Below shows a part of the waveform zoomed in.

Answers (2)
Image Analyst
on 28 Jul 2016
You could try just taking a moving average with conv():
kernel = ones(51, 1); % Bigger first args give more smoothing.
smoothedSignal = conv(noisyColumnVector, kernel, 'same');
6 Comments
Terence YEO
on 28 Jul 2016
Greg Heath
on 28 Jul 2016
The first thing to do is read the documentation and try their examples
help conv
doc conv
Next search BOTH NEWSGROUP and ANSWERS. Note the column to the right on this page which may have some helpful examples.
Greg
Image Analyst
on 28 Jul 2016
Do you have your data into MATLAB yet? Like, have you called readtable or xlsread yet?
Terence YEO
on 28 Jul 2016
Image Analyst
on 29 Jul 2016
Well show your code and upload your data. My code assumed you read your data into a variable called noisyColumnVector. So, did you?
Terence YEO
on 29 Jul 2016
Star Strider
on 28 Jul 2016
0 votes
Te first thing to do is to take the fft of your data. That will tell you if your noise is band-limited. If it is, you can use a discrete filter to filter out the noise (or a significant part of it).
There are several ways to design filters in MATLAB, including dfilt and designfilt. My procedure for designing IIR filters is here: How to design a lowpass filter for ocean wave data in Matlab? It contains general design guidelines as well as specific approaches.
1 Comment
Terence YEO
on 28 Jul 2016
Categories
Find more on Digital Filter Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
