MATLAB Answers

# notch filter to remove 50Hz fundamental frequency and its second (100 Hz) and third (150Hz) harmonics. with using filter(),

20 views (last 30 days)
nrgsn on 11 Dec 2019
Commented: Daniel M on 11 Dec 2019
My code is down below I get the error like this Not enough input arguments. Error in ecg (line 22 ) d = round(d0 * L / d0(15)); % Scale them to fit in length L.
How can I fix this please help me
load ecg.mat; % Load noisy ECG recording
%Bandpass filter
fs = 500; % Sampling rate
T = 1/500; % Sampling interval
b1 =[0.9765 -1.5800 0.9765]; %Notch filter with a notch frequency of 50 Hz
a1 =[1.0000 -1.5774 0.9504];
b2 =[0.9753 -0.6028 0.9753]; % Notch filter with a notch frequency 100 Hz
a2 =[1.0000 -0.6025 0.9504];
b3 =[0.9751 0.6027 0.9751]; % Notch filter with a notch frequency of 150 Hz
a3 =[1.0000 0.6025 0.9504];
y1 = filter(b1,a1,ecg); % First section filtering
y2 = filter(b2,a2,y1); % Second section filtering
y3 = filter(b3,a3,y2); % Third section filtering
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Answers (1)

Daniel M on 11 Dec 2019
Edited: Daniel M on 11 Dec 2019
'ecg' is the name of a function in the example:
MATLAB/Examples/R2019a/dsp/FindHeartRateUsingPeakFinderPanelWithECGInputSignalExample/ecg.m
If 'ecg.mat' is also the name of a file of yours, I suggest loading it in as follows:
data = load('ecg.mat');
ecg = data.ecg; % if the name of the variable actually IS ecg
Otherwise, I have not looked at the code you're using to create filters. Let me know if there are problems with that and I'll take a closer look.
##### 2 CommentsShowHide 1 older comment
Daniel M on 11 Dec 2019
I don't have your data.

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!