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

22 visualizaciones (últimos 30 días)
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
oad 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

Respuestas (2)

Daniel M
Daniel M el 11 de Dic. de 2019
Editada: Daniel M el 11 de Dic. de 2019
'ecg' is the name of a function in the example:
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 comentarios

Iniciar sesión para comentar.

Sabbir Ahmed
Sabbir Ahmed el 25 de Ag. de 2022
Hi, May I know how you got the notch filter's coefficient for different noise section?


Más información sobre Single-Rate Filters en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by