MATLAB Answers

Remove 50 Hz noise

93 views (last 30 days)
Paola on 25 Jun 2018
Edited: Walter Roberson on 21 Feb 2020
I am recording 6 channels from a force transducer, but there is a 50 Hz noise I want to remove. I was considering to use a simple solution as iirnotch, but I don't have this function on my Matlab R2015a. How can I create a filter (filtfilt and fir1?) to eliminate this 50 Hz without a signal processing toolbox?
Thank you


Star Strider
Star Strider on 28 Jun 2018
I thought you said that you do not have the Signal Processing Toolbox! I agree with Rik Wisselink that with it this is essentially trivial. However, you appear to be using its functions, so I will add this:
Fs = 20000;
Fn = Fs/2;
Wp = [47 53]/Fn;
Ws = [49 51]/Fn;
Rp = 1;
Rs = 50;
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
[z,p,k] = butter(n,Wn,'stop');
[sos,g] = zp2sos(z,p,k);
freqz(sos, 2^14, Fs)
set(subplot(2,1,1), 'XLim',[0 100])
set(subplot(2,1,2), 'XLim',[0 100])
The freqz call lets you see what the filter is doing in the frequency domain. There is also no need for the loop, because the filter functions operate column-wise. You simply need to transpose your matrix.
This should work:
ForceDataFilt = filtfilt(sos, g, ForceData'); % Transpose & Filter
ForceDataFilt = ForceDataFilt';
I transposed ‘ForceDataFilt’ so it will match the rest of your code. Experiment with the filter passband and stopband frequencies to get the result you want. Remember that for a notch or bandstop filter, the stopband frequencies (here ‘Ws’) are within the passband limits, ‘Wp’. The passband and stopband attenuation values are ‘Rp’ and ‘Rs’ respectively.
Walter Roberson
Walter Roberson on 28 Jun 2018
Looks like you should be able to invoke designfilt in R2015a.
Paola on 28 Jun 2018
Actually, I don't have the DSP toolbox and I have an old version of the Signal Processing toolbox.

Sign in to comment.

Answers (1)

Kouichi C. Nakamura
Kouichi C. Nakamura on 20 Feb 2020
Edited: Walter Roberson on 21 Feb 2020
This looks like an answer.
Remove the 60 Hz Hum from a Signal


Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by