ECG经验模式分解的 R 波检测算法

Posted studyer_domi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ECG经验模式分解的 R 波检测算法相关的知识,希望对你有一定的参考价值。

function allmode=emd(Y)
%用于经验模态分解,Y为要分解的数据,allmode为分解出来的模态IMF
xsize=length(Y);
dd=1:1:xsize;
Ystd=std(Y);
Y=Y/Ystd;

TNM=7;% 分7段
TNM2=TNM+2;
for kk=1:1:TNM2, 
    for ii=1:1:xsize,
        allmode(ii,kk)=0.0;
    end
end

%part3 EMD分层
for iii=1:1:NE,  

    for i=1:xsize,
        temp=0;
        X1(i)=Y(i)+temp;
    end
    for jj=1:1:xsize,
        mode(jj,1) = Y(jj);
    end
    xorigin = X1;
    xend = xorigin;
    
    %IMF循环
    nmode = 1;
    while nmode <= TNM,
        xstart = xend; 
        iter = 1;     
        while iter<=10-3,
            [spmax, spmin, flag]=extrema(xstart); 
            upper= spline(spmax(:,1),spmax(:,2),dd); %极大值
            lower= spline(spmin(:,1),spmin(:,2),dd); %极小值
            mean_ul = (upper + lower)/2;%中间值
            xstart = xstart - mean_ul;%提取剩余项
            iter = iter +1;
        end
         xend = xend - xstart;
   
            nmode=nmode+1;
        for jj=1:1:xsize,
            mode(jj,nmode) = xstart(jj);
        end

    end
    for jj=1:1:xsize,
        mode(jj,nmode+1)=xend(jj);
    end
     allmode=allmode+mode;
end
allmode=allmode*Ystd;

 

以上是关于ECG经验模式分解的 R 波检测算法的主要内容,如果未能解决你的问题,请参考以下文章

ECG - Pace Detection 起搏信号检测

信号处理 -经验模态分解

脑电信号基于matlab小波变换DWT脑电信号ECG去噪含Matlab源码 1622期

心电信号基于matlab逻辑算法RST波检测含Matlab源码 2386期

R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等

如何检测(心电图)波中的模式?