【代码补全】matlab心电信号R波提取

        对Matlab心电信号QRS波检测中代码的补充,使其完整可用。

        补充内容来自基于matlab的心电信号QRS波检测与分析。

x=iswt(swa,swd,'db3');
%——心电信号去噪完成后——
yabs=abs(x); 
sigtemp=x;
siglen=length(x);
sigmax=[];
for i=1:siglen-2
    if (x(i+1)>x(i)&x(i+1)>x(i+2))|(x(i+1)thr
        rvalue=[rvalue;sigmax(i,2)];
    end
end
rvalue_1=rvalue;

%排除误检,如果相邻两个极大值间距小于0.4s,则去掉幅度较小的一个
lenvalue=length(rvalue);
i=2;
while i<=lenvalue
      if (rvalue(i)-rvalue(i-1))*(1/800)<0.4
          if yabs(rvalue(i))>yabs(rvalue(i-1))
              rvalue(i-1)=[];
          else
              rvalue(i)=[];
          end
 
          lenvalue=length(rvalue);
          i=i-1;
      end
      i=i+1;
end      

lenvalue=length(rvalue);
% 在原信号上精确校准
for i=1:lenvalue
    if (x(rvalue(i))>0)
        k=(rvalue(i)-5):(rvalue(i)+5);
         [a,b]=max(x(k));
        rvalue(i)=rvalue(i)-6+b; 
    else
        k=(rvalue(i)-5):(rvalue(i)+5);
        [a,b]=min(x(k));
        rvalue(i)=rvalue(i)-6+b; 
    end
end

plot(x);
hold on;
plot(rvalue,x(rvalue),'r^');

【代码补全】matlab心电信号R波提取_第1张图片

 

你可能感兴趣的:(matlab)