• No results found

Ecg Extraction Code

N/A
N/A
Protected

Academic year: 2021

Share "Ecg Extraction Code"

Copied!
12
0
0

Loading.... (view fulltext now)

Full text

(1)

Contents

n ZERO CROSSING REMOVAL n DETECT R_PEAK

n Calculate R in the actual Signal

n After R Peak Tracking ... DETCET OTHERS n ONSET n P Peak n Q Detection n S Detection n T Peak n END OF T

% Load original 1D signal. clc; clear all; close all; ELEVATED=[]; [fname path]=uigetfile('*.mat'); fname=strcat(path,fname); load(fname ); z=zeros(100,1); A=val(1,:); v1=val(1,:)-val(1,1); A=v1; A=A'; zc=A(1); A=[z;A;z];

% Plot Actual Signal s = A(1:1:400); s = A;

ls = length(s); figure(1) plot(s);

title('Original Signal'),grid on

% Perform decomposition at level 8 of s using db4 [c,l]=wavedec(s,8,'db4'); ca1=appcoef(c,l,'db4',1); ca2=appcoef(c,l,'db4',2); ca3=appcoef(c,l,'db4',3); ca4=appcoef(c,l,'db4',4); ca5=appcoef(c,l,'db4',5); ca6=appcoef(c,l,'db4',6); ca7=appcoef(c,l,'db4',7); ca8=appcoef(c,l,'db4',8);

%Plot the coefficient figure(2)

plot(c),title('decomposed signal'),grid on figure(3)

subplot(4,2,1)

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(2)

plot(ca1),title('1st level approximation'),grid on subplot(4,2,2)

plot(ca2),title('2nd level approximation'),grid on subplot(4,2,3)

plot(ca3),title('3rd level approximation'),grid on subplot(4,2,4)

plot(ca4),title('4th level approximation'),grid on subplot(4,2,5)

plot(ca5),title('5th level approximation'),grid on subplot(4,2,6)

plot(ca6),title('6th level approximation'),grid on subplot(4,2,7)

plot(ca7),title('7th level approximation'),grid on subplot(4,2,8)

plot(ca8),title('8th level approximation'),grid on

% Extract detail coefficients at levels % 1, 2 and 3, from wavelet decomposition % structure [c,l].

[cd1,cd2,cd3,cd4,cd5,cd6,cd7,cd8] = detcoef(c,l,[1 2 3 4 5 6 7 8]);

figure(4)

subplot(4,2,1)

plot(cd1),title('detail coeff: level 1 cd1'),grid on subplot(4,2,2)

plot(cd2),title('detail coeff: level 2 cd2'),grid on subplot(4,2,3)

plot(cd3),title('detail coeff: level 3 cd3'),grid on subplot(4,2,4)

plot(cd4),title('detail coeff: level 4 cd4'),grid on

subplot(4,2,5)

plot(cd5),title('detail coeff: level 5 cd5'),grid on subplot(4,2,6)

plot(cd6),title('detail coeff: level 6 cd6'),grid on subplot(4,2,7)

plot(cd7),title('detail coeff: level 7 cd7'),grid on subplot(4,2,8)

plot(cd8),title('detail coeff: level 8 cd8'),grid on

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(3)

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(4)

ZERO CROSSING REMOVAL

base_corrected=ca2; y=base_corrected-zc; figure(5)

plot(y),grid on

title('Noise Free signal')

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(5)

DETECT R_PEAK

y1=y;

m1=max(y1)-max(y1)*.60; P=find(y1>=m1);

% it will give two two points ... remove one point each P1=P; P2=[]; last=P1(1); P2=[P2 last]; for(i=2:1:length(P1)) if(P1(i)>(last+10)) last=P1(i); P2=[P2 last]; end end Rt=y1(P2); figure(6) plot(y1),grid on,hold on plot(P2,Rt,'*');

title('Rpos in downsampled signal');

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(6)

C

te R n t e

t

S n

P3=P2*4; Rpos=[]; for( i=1:1:length(P3)) range= [P3(i)-20:P3(i)+20]; m=max(A(range)); l=find(A(range)==m); pos=range(l); Rpos=[Rpos pos]; end Ramp=A(Rpos); figure(7) plot(A),grid on,hold on plot(Rpos,Ramp,'*');

title('Detected R peak in actual Signal'); R_peaks = length(Rpos)

%disp([num2str(R_peaks) ' peaks'])

R_peaks =

13

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(7)

A ter R Pe

Tr

n DETCET OT ERS

ONSET

X=Rpos; y1=A; for(i=1:1:1) for(j=1:1:length(X)) a=X(j)-100:X(j)-50; m=max(y1(a)); b=find(y1(a)==m); b=b(1); b=a(b); fnd=0; for k=b-20:+1:b

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k; fnd=1; break end end if(fnd==0) Qrange=b-20:+1:b; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(8)

P Pe

Dete t on

RON(i,j)=qon1(1); fnd;

for k=b:+1:b+20

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k; fnd=1; break end end if(fnd==0) Qrange=b:+1:b+20; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end ROF(i,j)=qon1(1); a=Rpos(i,j)-100:Rpos(i,j)-10; m=max(y1(a)); b=find(y1(a)==m); b=b(1); b=a(b); Ppos(i,j)=b; Pamp(i,j)=m; end a=Rpos(i,j)-50:Rpos(i,j)-10; m=min(y1(a)); b=find(y1(a)==m); b=b(1); b=a(b); Qpos(i,j)=b; Qamp(i,j)=m; %%%%% ONSET fnd=0; for k=b-20:+1:b

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k; fnd=1; break end end if(fnd==0) Qrange=b-20:+1:b; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end QON(i,j)=qon1(1); fnd; for k=b:+1:b+20

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k;

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(9)

S Dete t on

T Pe

fnd=1; break end end if(fnd==0) Qrange=b:+1:b+20; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end QOF(i,j)=qon1(1); a=Rpos(i,j)+5:Rpos(i,j)+50; m=min(y1(a)); b=find(y1(a)==m); b=b(1); b=a(b); Spos(i,j)=b; Samp(i,j)=m; %%%% onset off fnd=0; for k=b-5:+1:b

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k; fnd=1; break end end if(fnd==0) Qrange=b-20:+1:b; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end SON(i,j)=qon1(1); fnd=0; for k=b:+1:b+20

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k; fnd=1; break end end if(fnd==0) Qrange=b:+1:b+20; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end SOFF(i,j)=qon1(1); a=Rpos(i,j)+25:Rpos(i,j)+100; m=max(y1(a)); b=find(y1(a)==m); b=b(1); b=a(b);

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(10)

END O T

Tpos(i,j)=b; Tamp(i,j)=m; %%%% onset off fnd=0; for k=b-20:+1:b

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k; fnd=1; break end end if(fnd==0) Qrange=b-20:+1:b; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end TON(j,i)=qon1(1); fnd=0; for k=b:+1:b+20

if((y1(k)<=0) && (y1(k-1)>0)) qon1=k; fnd=1; break end end if(fnd==0) Qrange=b:+1:b+20; qon1=find(y1(Qrange)==max(y1(Qrange))); qon1=Qrange(qon1); end TOFF(j,i)=qon1(1); if(Tamp(i,j)<Pamp(i,j)) a=Rpos(i,j)+25:Rpos(i,j)+70; m=min(y1(a)); b=find(y1(a)==m); b=b(1); b=a(b); Tpos(i,j)=b; Tamp(i,j)=m; ELEVATED=[ELEVATED j]; end end figure; k=1; for(i=1:1:1) %subplot(6,1,k);

plot(y1), hold on;

plot(Rpos(i,:),Ramp(i,:),'*'),hold on; plot(Qpos(i,:),Qamp(i,:),'+'),hold on; plot(Spos(i,:),Samp(i,:),'+'),hold on; plot(Ppos(i,:),Pamp(i,:),'.'), hold on plot(Tpos(i,:),Tamp(i,:),'^')

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(11)

legend('Ramp','Qamp','Samp','Pamp','Tamp') grid on; k=k+1; if(k>6) k=1; figure; end end % Detected no of peaks R_peaks = length(Rpos) P_peaks = length(Ppos) T_peaks = length(Tpos) S_peaks = length(Spos) Q_peaks = length(Qpos) clc; flag=0; if(length(ELEVATED)>ceil(.8*length(Rpos)))

disp('T inverted (MI Detected) with T inverted Logic')

return; else flag=1; end R_peaks = length(Rpos) P_peaks = length(Ppos) T_peaks = length(Tpos) S_peaks = length(Spos) Q_peaks = length(Qpos) R_peaks = 13 P_peaks = 13 T_peaks = 13 S_peaks = 13 Q_peaks = 13 R_peaks = 13

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

(12)

Published with MATLAB® 7.14 P_peaks = 13 T_peaks = 13 S_peaks = 13 Q_peaks = 13

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

References

Related documents

Inspired by the large displacement optical flow of Brox &amp; Malik [ 6 ], our approach, termed DeepFlow, blends a matching algorithm with a variational approach for opti- cal flow..

Comparison of Utilities' Transition Charges Schedule Commission-4. Updated: March

Dunning’s internationalization motives – whichever version you prefer – were not intended as a stand-alone theoretical device, but as an appendage to the

The present article summarizes the current evidence regarding the five most essential groups of interventional techniques to treat cancer-related pain: Neuraxial analgesia,

Credit Card Processing in Sage 100 ERP 2013 will utilize Sage Exchange to provide many enhancements and increased flexibility including card-swipe capabilities, charges for repetitive

Phenolic water generated in coke ovens &amp; by- product plant attached to an integrated steel plant containing phenol in concentration of less than 100

Therefore a test like OET is essential to assess the nurses' knowledge of medical English who work in a diverse context and Malaysia is a country where diverse people

When crafting a strategic plan, just remember that delivering online and mobile experiences (in the channels millennials use) is just as important as delivering unique