ECG-Kit 1.0
(2,458 bytes)
function [error_code error_mess sig_ECG,lab_ECG,Leads,samples,e_ECG]=readECG_v1(sampling_rate,data,timelim)
e_ECG = [];
sig_ECG = double(data);
%sig_ECG = sig_ECG(2:end);
lab_ECG = '';
% Error 101
if isempty(sig_ECG)
Leads=0;
TotLength=0;
error_code=101;
error_mess='101 (A.1) - Empty signal';
return
end;
% Sampla om om det behövs
if sampling_rate~=1000;
if sampling_rate==125;
up=8;
down=1;
elseif sampling_rate==128;
up=125;
down=16;
elseif sampling_rate==256;
up=125;
down=32;
elseif sampling_rate==250;
up=4;
down=1;
elseif sampling_rate==512
up=125;
down=64;
elseif sampling_rate==500
up=2;
down=1;
elseif sampling_rate==1024
up=125;
down=128;
elseif sampling_rate==2000
up=1;
down=2;
else
up=1000;
down=sampling_rate;
end;
else
up=1;
down=1;
end;
if up~=1 || down~=1
% changed by MEC
% sig_ECGtmp=zeros(size(sig_ECG,1),ceil(size(sig_ECG,2)*up/down));
% for j=1:size(sig_ECG,1)
% sig_ECGtmp(j,:)=decimate(interp(sig_ECG(j,:),up),down);
% end;
% sig_ECG=sig_ECGtmp;
% clear sig_ECGtmp;
[P Q] = rat(up/ down);
sig_ECG = resample(sig_ECG', P, Q)';
end;
% Error 102
if size(sig_ECG,2)<10000
Leads=0;
TotLength=0;
error_code=102;
error_mess='102 (A.1) - Signal<10sec';
return
end;
% Info about read signal
[Leads, samples]=size(sig_ECG);
% Temporary length limitation
sig_ECG=sig_ECG(:,1:min(timelim,samples));
samples=size(sig_ECG,2); %if it was cut
% Spara invasiva mätningar separat
if Leads>12
e_ECG=sig_ECG(13:end,:);
end;
% Spara bara EKG is sig_ECG
Leads=min(Leads,12);
sig_ECG=sig_ECG(1:Leads,:);
% Gallring klar
switch Leads
case 12
lab_ECG=['V1 ';'V2 ';'V3 ';'V4 ';'V5 ';'V6 ';'I ';'II ';'III';'aVR';'aVL';'aVF'];
case 9
lab_ECG=['V1 ';'V2 ';'V3 ';'V4 ';'V5 ';'V6 ';'I ';'II ';'III'];
case 8
lab_ECG=['V1 ';'V2 ';'V3 ';'V4 ';'V5 ';'V6 ';'I ';'II '];
case 6
lab_ECG=['V1 ';'V2 ';'V3 ';'V4 ';'V5 ';'V6 '];
case 3
lab_ECG=['1/X';'2/Y';'3/Z'];
case 2
lab_ECG=['1 ';'2 '];
case 1
lab_ECG='1 ';
end
lab_ECG(lab_ECG==' ')='_'; % space does not work in variables
error_code=0;
error_mess='';