Скачиваний:
77
Добавлен:
25.12.2019
Размер:
3 Кб
Скачать
%ЭКГ
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