Professional Documents
Culture Documents
4015 Ecg 2
4015 Ecg 2
4015 Ecg 2
clc;
load('04015m.mat');
Fs = 250;
%figure;
subplot(4,1,1)
plot(t,ECGsignal)
%{
% Plot noise 50 Hz
subplot(4, 1, 2);
%}
%{
Y_abs = 1/NFFT * abs(Y); %calculate the magnitude and normalize the spectrum
f_fft = (0:NFFT/2-1) * Fs / NFFT; %scale the frequency axis and calculate the corresponding frequencies
%}
n = 2^nextpow2(length(ECGsignal));
Yfft = fft(ECGsignal,n);
P2 = abs(Yfft/length(ECGsignal));
P1 = P2(1:n/2);
%P1 = P2(1:n/2+1);
P1(1:end-1) = 2*P1(1:end-1);
subplot(4, 1, 2);
%{
% Numerator LPF
%{
b0= 2.77985080473354e-05; b1= 0.000194589556331348; b2= 0.000583768668994044; b3=
0.000972947781656741;
%}
% Denumerator LPF
%{
%}
x4=0;x3=0;x2=0;x1=0;x0=0;
y4=0;y3=0;y2=0;y1=0;y=0;
for i=1:(length(ECGsignal))
y4=y3;
y3=y2;
y2=y1;
y1=y;
x4=x3;
x3=x2;
x2=x1;
x1=x0;
x0=ECGsignal(i);
yfilter(i)=y;
end
y = yfilter';
%}
%{
% Numerator HPF
% Denumerator HPF
x6=0;x5=0;x4=0;x3=0;x2=0;x1=0;x0=0;
y6=0;y5=0;y4=0;y3=0;y2=0;y1=0;y=0;
for i=1:(length(ECGsignal))
y6=y5;
y5=y4;
y4=y3;
y3=y2;
y2=y1;
y1=y;
x6=x5;
x5=x4;
x4=x3;
x3=x2;
x2=x1;
x1=x0;
x0=ECGsignal(i);
yfilter(i)=y;
end
y = yfilter';
%}
% Numerator bandpass
b0=0.204300824300264; b1=0; b2=-0.204300824300264;
% Denumerator Stop
a1=-1.52763833421223; a2=0.591398351399471;
x2=0;x1=0;x0=0;
y2=0;y1=0;y=0;
for i=1:(length(ECGsignal))
y2=y1;
y1=y;
x2=x1;
x1=x0;
x0=ECGsignal(i);
-a1*y1 - a2*y2;
yfilter(i)=y;
end
y = yfilter';
% Numerator bandpass
% Denumerator Stop
x6=0;x5=0;x4=0;x3=0;x2=0;x1=0;x0=0;
y6=0;y5=0;y4=0;y3=0;y2=0;y1=0;y=0;
for i=1:(length(ECGsignal))
y6=y5;
y5=y4;
y4=y3;
y3=y2;
y2=y1;
y1=y;
x6=x5;
x5=x4;
x4=x3;
x3=x2;
x2=x1;
x1=x0;
x0=ECGsignal(i);
yfilter(i)=y;
end
y = yfilter';
%}
%{
% Numerator Bandpass
% Denumerator Bandpass
a1=-10.2508002855991; a2=48.5423091950078; a3=-140.421467758779;
a4=276.371744361259; a5=-389.890386225167; a6=404.276079945459; a7=-
310.449164978988; a8=175.232560396563; a9=-70.9058058096531;
a10=19.5247464999408; a11=-3.28530016839862; a12=0.255484912550536;
x12=0;x11=0;x10=0;x9=0;x8=0;x7=0;x6=0;x5=0;x4=0;x3=0;x2=0;x1=0;x0=0;
y12=0;y11=0;y10=0;y9=0;y8=0;y7=0;y6=0;y5=0;y4=0;y3=0;y2=0;y1=0;y=0;
for i=1:(length(ECGsignal))
y12=y11;
y11=y10;
y10=y9;
y9=y8;
y8=y7;
y7=y6;
y6=y5;
y5=y4;
y4=y3;
y3=y2;
y2=y1;
y1=y;
%
x12=x11;
x11=x10;
x10=x9;
x9=x8;
x8=x7;
x7=x6;
x6=x5;
x5=x4;
x4=x3;
x3=x2;
x2=x1;
x1=x0;
x0=ECGsignal(i);
y=b0*x0 + b1*x1 + b2*x2 + b3*x3 + b4*x4 + b5*x5 + b6*x6 + b7*x7 + b8*x8 + b9*x9 + b10*x10 +
b11*x11 + b12*x12...
-a1*y1 - a2*y2 -a3*y3 -a4*y4 - a5*y5 -a6*y6 -a7*y7 - a8*y8 -a9*y9 -a10*y10 - a11*y11 -a12*y12;
yfilter(i)=y;
end
y = yfilter';
%}
%{
% Numerator Stop
b0= 0.000410931183554443; b1= 0; b2= -0.00164372473421777; b3= 0; b4= 0.00246558710132666;
% Denumerator Stop
%}
% Numerator pass
% Denumerator pass
x8=0;x7=0;x6=0;x5=0;x4=0;x3=0;x2=0;x1=0;x0=0;
y8=0;y7=0;y6=0;y5=0;y4=0;y3=0;y2=0;y1=0;y=0;
for i=1:(length(ECGsignal))
y8=y7;
y7=y6;
y6=y5;
y5=y4;
y4=y3;
y3=y2;
y2=y1;
y1=y;
x8=x7;
x7=x6;
x6=x5;
x5=x4;
x4=x3;
x3=x2;
x2=x1;
x1=x0;
x0=ECGsignal(i);
yfilter(i)=y;
end
y = yfilter';
%{
% Numerator pass
x10=0;x9=0;x8=0;x7=0;x6=0;x5=0;x4=0;x3=0;x2=0;x1=0;x0=0;
y10=0;y9=0;y8=0;y7=0;y6=0;y5=0;y4=0;y3=0;y2=0;y1=0;y=0;
for i=1:(length(ECGsignal))
y10=y9;
y9=y8;
y8=y7;
y7=y6;
y6=y5;
y5=y4;
y4=y3;
y3=y2;
y2=y1;
y1=y;
x10=x9;
x9=x8;
x8=x7;
x7=x6;
x6=x5;
x5=x4;
x4=x3;
x3=x2;
x2=x1;
x1=x0;
x0=ECGsignal(i);
y=b0*x0 + b1*x1 + b2*x2 + b3*x3 + b4*x4 + b5*x5 + b6*x6 + b7*x7 + b8*x8 + b9*x9 + b10*x10...
-a1*y1 - a2*y2 -a3*y3 -a4*y4 - a5*y5 -a6*y6 -a7*y7 - a8*y8 -a9*y9 - a10*y10;
yfilter(i)=y;
end
y = yfilter';
%}
plot(t, y)
%{
% Plot noise 50 Hz
%subplot(4, 1, 2);
%}
n = 2^nextpow2(length(yfilter));
Yfft = fft(yfilter,n);
P2 = abs(Yfft/length(yfilter));
P1 = P2(1:n/2);
%P1 = P2(1:n/2+1);
P1(1:end-1) = 2*P1(1:end-1);
%{
Y_abs = 1/NFFTfil * abs(Y); %calculate the magnitude and normalize the spectrum
f_fft = (0:NFFTfil/2-1) * Fs / NFFTfil; %scale the frequency axis and calculate the corresponding
frequencies
%}
subplot(4, 1, 4);
xlabel('Frekuensi (Hz)')
ylabel('Amplitudo')
xlim([0, 100])
%}