Скачиваний:
63
Добавлен:
25.12.2019
Размер:
3.34 Кб
Скачать
%ЭКГ
clc;
clear all;
close all;

X0=50;
Y0=80;
W0=1200;
H0=610;
figure('Position',[X0,Y0,W0,H0])
x1=50;
y1=430;
dx=30;
dy=30;
w1=270;
w2=40;
h1=150;
h2=15;
hAxes1=axes('Units','pixels','Position',[x1,y1,2*w1,h1]);
hAxes4=axes('Units','pixels','Position',[x1,y1-h1-dy,2*w1,h1]);
hAxes7=axes('Units','pixels','Position',[x1,y1-2*h1-2*dy,2*w1,h1]);
hAxes2=axes('Units','pixels','Position',[x1+2*w1+dx,y1,w1,h1]);
hAxes5=axes('Units','pixels','Position',[x1+2*w1+dx,y1-h1-dy,w1,h1]);
hAxes8=axes('Units','pixels','Position',[x1+2*w1+dx,y1-2*h1-2*dy,w1,h1]);
hAxes3=axes('Units','pixels','Position',[x1+3*w1+2*dx,y1,w1,h1]);
hAxes6=axes('Units','pixels','Position',[x1+3*w1+2*dx,y1-h1-dy,w1,h1]);
hAxes9=axes('Units','pixels','Position',[x1+3*w1+2*dx,y1-2*h1-2*dy,w1,h1]);

ECG=load('R4_07.txt');
Fs=250;
tmax=4;
T=1/Fs;
t=0:T:tmax-T;
Norma=ECG(:,1);
VTach=ECG(:,2);
VFibr=ECG(:,3);

ft=fft(Norma);
N=tmax*Fs;
for j=1:N
if (j==1)
as(j)=sqrt(real(ft(j))^2+imag(ft(j))^2)/N;
else
as(j)=sqrt(real(ft(j))^2+imag(ft(j))^2)/N*2;
end;
end;
df=Fs/N;
for j=1:(N/2)
f(j)=df*(j-1);
end;

for j=1:N
if (j==1)
psd(j)=1/N*(real(ft(j))^2+imag(ft(j))^2)/Fs;
else
psd(j)=2/N*(real(ft(j))^2+imag(ft(j))^2)/Fs;
end;
end;

m=mean(Norma);
Norma0=Norma-m;

ft0=fft(Norma0);
for j=1:N
if (j==1)
as0(j)=sqrt(real(ft0(j))^2+imag(ft0(j))^2)/N;
else
as0(j)=sqrt(real(ft0(j))^2+imag(ft0(j))^2)/N*2;
end;
end;

for j=1:N
if (j==1)
psd0(j)=1/N*(real(ft0(j))^2+imag(ft0(j))^2)/Fs;
else
psd0(j)=2/N*(real(ft0(j))^2+imag(ft0(j))^2)/Fs;
end;
end;

w=hamming(N);
for j=1:N
Normaw(j)=Norma0(j)*w(j);
end;

ftT=fft(VTach);
N=tmax*Fs;
for j=1:N
if (j==1)
asT(j)=sqrt(real(ftT(j))^2+imag(ftT(j))^2)/N;
else
asT(j)=sqrt(real(ftT(j))^2+imag(ftT(j))^2)/N*2;
end;
end;

for j=1:N
if (j==1)
psdT(j)=1/N*(real(ftT(j))^2+imag(ftT(j))^2)/Fs;
else
psdT(j)=2/N*(real(ftT(j))^2+imag(ftT(j))^2)/Fs;
end;
end;

mT=mean(VTach);
VTach0=VTach-mT;

ftT0=fft(VTach0);

for j=1:N
VTachw(j)=VTach0(j)*w(j);
end;

ftF=fft(VFibr);
for j=1:N
if (j==1)
asF(j)=sqrt(real(ftF(j))^2+imag(ftF(j))^2)/N;
else
asF(j)=sqrt(real(ftF(j))^2+imag(ftF(j))^2)/N*2;
end;
end;

for j=1:N
if (j==1)
psdF(j)=1/N*(real(ftF(j))^2+imag(ftF(j))^2)/Fs;
else
psdF(j)=2/N*(real(ftF(j))^2+imag(ftF(j))^2)/Fs;
end;
end;

mF=mean(VFibr);
VFibr0=VFibr-mF;

ftF0=fft(VFibr0);

for j=1:N
VFibrw(j)=VFibr0(j)*w(j);
end;

axes(hAxes1)
plot(t,Norma)
hold on
plot(t,Normaw)
grid on
axes(hAxes2)
stem(f,as(1:N/2),'.')
grid on
set(hAxes2,'Xlim',[0 20])
axes(hAxes3)
plot(f,psd(1:(N/2)))
grid on
set(hAxes3,'Xlim',[0 20])
axes(hAxes4)
plot(t,VTach)
hold on
plot(t,VTachw)
grid on
axes(hAxes5)
stem(f,asT(1:N/2),'.')
grid on
set(hAxes5,'Xlim',[0 20])
axes(hAxes6)
plot(f,psdT(1:(N/2)))
grid on
set(hAxes6,'Xlim',[0 20])
axes(hAxes7)
plot(t,VFibr)
hold on
plot(t,VFibrw)
grid on
axes(hAxes8)
stem(f,asF(1:N/2),'.')
grid on
set(hAxes8,'Xlim',[0 20])
axes(hAxes9)
plot(f,psdF(1:(N/2)))
grid on
set(hAxes9,'Xlim',[0 20])
Соседние файлы в папке Лаба 4