0% found this document useful (0 votes)
545 views

Matlab Code Ecg

This MATLAB code is extracting features from ECG data files, calculating statistical values of wavelet coefficients, and plotting the feature spaces. It opens ECG data files from two folders, performs wavelet decomposition, calculates features like mean, mode, variance etc. of approximation coefficients, stores the features in an Excel file and plots the first two features from each file on a scatter plot to visualize the feature space.

Uploaded by

manik9000
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
545 views

Matlab Code Ecg

This MATLAB code is extracting features from ECG data files, calculating statistical values of wavelet coefficients, and plotting the feature spaces. It opens ECG data files from two folders, performs wavelet decomposition, calculates features like mean, mode, variance etc. of approximation coefficients, stores the features in an Excel file and plots the first two features from each file on a scatter plot to visualize the feature space.

Uploaded by

manik9000
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

clc;

clear all;
close all;
%%
file_path={
'C:\Users\Rajendra
project\For analysis(3 sec
'C:\Users\Rajendra
project\For analysis(3 sec
};
colo=['r','b'];
no_case={'smokers' 'nonsmokers'};
ecg_feature={'mean' 'mode' 'cov' 'var' 'std' 'log energy' 'wentropy'
'nenergy' };
%no_feature=1;
for no_feature=1:1:8
for j=1:1:length(file_path)
file_filter='*.txt';
file_a=strcat(char(file_path(j)),file_filter)
files=dir(file_a);
[m,n] = size(files)
i=1;
display('
');
display(sprintf('%%%%%%%%%%OPENING SUBJECT %s %%%%%%%%%',
char(file_path(j))));
z=1;
while i<=m
fname=strcat(char(file_path(j)),char(files(i).name));
display(sprintf('%%%%%%%%%%PROCESSING FILE %s %%%%%%%%%', fname));
fid = fopen(fname,'r');
MyData = fscanf(fid,'%g');
status = fclose(fid);
c=MyData(10:17000);
c=c/max(c);
[c1,l1]=wavedec(c,1,'db6');
a1=appcoef(c1,l1,'db6',1);
d1=detcoef(c1,l1);
[c2,l2]=wavedec(c,2,'db6');
a2=appcoef(c2,l2,'db6',2);
d2=detcoef(c2,l2);
[c3,l3]=wavedec(c,3,'db6');
a3=appcoef(c3,l3,'db6',3);
d3=detcoef(c3,l3);
Prasad\Documents\Desktop\Final year B.tech
data)\Non-smokers\'
Prasad\Documents\Desktop\Final year B.tech
data)\Smokers\'
[c4,l4]=wavedec(c,4,'db6');

a4=appcoef(c4,l4,'db6',4);
d4=detcoef(c4,l4);
[c5,l5]=wavedec(c,5,'db6');
a5=appcoef(c5,l5,'db6',5);
d5=detcoef(c5,l5);
[c6,l6]=wavedec(c,6,'db6');
a6=appcoef(c6,l6,'db6',6);
d6=detcoef(c6,l6);
[c7,l7]=wavedec(c,7,'db6');
a7=appcoef(c7,l7,'db6',7);
d7=detcoef(c7,l7);
[c8,l8]=wavedec(c,8,'db6');
a8=appcoef(c8,l8,'db6',8);
d8=detcoef(c8,l8);
f=d7;
%f=d8;
switch no_feature
case 1,
s(z)=( mean(f));%%%%%%%%
case 2,
s(z)=( mode(f));%%%%%%%%%%%%%%%%%%%%
case 3,
s(z)=( cov(f)); %%%%%%%
case 4,
s(z)=( var(f));%%%%%%
case 5,
s(z)=( std(f));
case 6,
s(z)= wentropy(f,'log energy');%%%%%%%%%
case 7,
s(z)= wentropy(f,'shannon');%%%%%%%%%%%
case 8,
s(z)=sum((f.^2))/length(f); %energy density
end
z=z+1;
figure(1)
subplot(511)
plot(c); xlabel('ECG')
subplot(512)
plot(d1); xlabel('d1')
subplot(513)
plot(d2); xlabel('d2')
subplot(514)
plot(d3); xlabel('d3')
subplot(515)
plot(d4); xlabel('d4')
figure(2)
subplot(411)
plot(d5); xlabel('d5')
subplot(412)
plot(d6); xlabel('d6')

subplot(413)
plot(d7); xlabel('d7')
subplot(414)
plot(d8); xlabel('d8')
%input('');
i=i+1;
end
figure(10+no_feature),plot(s,colo(j));
title(ecg_feature(no_feature));
hold on;
Str = 65+no_feature-1; %A=65 Z=90
colm= sprintf('%s ', Str)
xlscol=fn_xlcolumngen(ecg_feature(no_feature),colm,2+(m*(j-1)),m,2)
%fn_xlcolumngen(cell_title,cell_name,start_col,datalen,no_class)%eg
a,2,50,5
if j==1
xlswrite('r.xls',xlscol(1),'db',char(xlscol(2)));
%input('');
end
xlswrite('r.xls',s','db',char(xlscol(3)));
%input('');
%xlscol=fn_xlcolumngen(no_case(j),colm,1,1,2)
%fn_xlcolumngen(cell_title,cell_name,start_col,datalen,no_class)%eg
a,2,50,5
%input('');
%input('');
%%
end
hold off;
end
APPENDIX-III
MATLAB CODE FOR FEATURE SPACE PLOT
clc;
clear all;
close all;
%%
file_path={
'C:\Users\Rajendra Prasad\Documents\Desktop\Final year B.tech
project\For analysis(3 sec data)\ECG feature extraction\'
};
for j=1:1:length(file_path)
file_filter='*.xls';
file_a=strcat(char(file_path(j)),file_filter);
files=dir(file_a);

[m,n] = size(files);
i=1;
display('
');
display(sprintf('%%%%%%%%%%OPENING FOLDER %s %%%%%%%%%',
char(file_path(j))));
while i<=m
%sheetname=regexprep(char(files(i).name), '.xls', '')
sheetname='db'
[feature1,feature1_name]=xlsread(strcat(char(file_path(j)),char(files(i).na
me)), sheetname,'A1:A33');
[feature2,feature2_name]=xlsread(strcat(char(file_path(j)),char(files(i).na
me)), sheetname,'F1:F33');
fcmdata(:,1)=feature1;
fcmdata(:,2)=feature2;
length(fcmdata(:,1))
length(fcmdata(:,2))
handel=figure(1),plot(fcmdata(1:16,1),fcmdata(1:16,2),'o','color','k');
hold on
figure(1),plot(fcmdata(17:32,1),fcmdata(17:32,2),'o','color','r');
hold off;
title('feature space');
xlabel('mean');
ylabel('log energy');
s=strcat('cluster',char(files(i).name))
s = regexprep(s, '.xls', '')
s=strcat(char(file_path(j)),s);
s=strcat(s,'.jpg')
saveas(handel,s,'jpg');
qw=input('');
%close all;
i=i+1;
end
end

You might also like