ECG-Kit 1.0

File: <base>/common/wavedet/readECG_v1.m (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='';