⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rjiance.m

📁 心电信号QRS波的R波检测
💻 M
字号:
function Rjiance()
load string1.mat
fs=sfreq;
M=length(x);
t=1:M;
x=x';
for i=5:1000
dif(i)=2*(x(i)-x(i-4))+x(i-1)-x(i-3);           %微分阈值法
dif=abs(dif);
end;
[ymax,p]=max(dif);                    %计算第一个最大阈值
yuzhi=ymax*0.7;
s=zeros(1,M);
j=1;
k=1;
flag=0;

i=5;
while i<=M
      dif(i)=2*(x(i)-x(i-4))+x(i-1)-x(i-3);
      dif=abs(dif);
      if dif(i)>yuzhi
          s(i)=1;
          if s(i-1)==0
              rr(j)=x(i-4);       %考虑延时
              rr_x(j)=i-4;
              maxy=dif(i);
              j=j+1;
          else
              maxy=max(maxy,dif(i));
          end;
      else
          
          if s(i-1)==1
              R(k)=x(i-4);
              R_x(k)=i-4;
              yuzhi=0.4*yuzhi+0.4*maxy;         %自适应修改阈值
              flag=1;
          end;
          
          if flag==1
              t=i-10;
              r(k)=0;
              while t<i                 %时域加窗定位R波幅度
                  if x(t)>r(k)
                      r(k)=x(t);
                      r_x(k)=t;
                  end;
                  t=t+1;
              end;
              if k>1
                  h=r_x(k)-r_x(k-1);
                  hratek=h\fs*60;        %计算心率
              end;
              i=i+144;
              k=k+1;
              flag=0;
          end;
      end;
      i=i+1;
  end;
  
  %计算RR间期、平均间期、平均幅值
  RL=length(r_x);
  sum_rrinteval=0;
  sum_rscope=0;
  for rtemp=1:RL
      sum_rscope=sum_rscope+r(rtemp);
  end;
  avg_rscope=sum_rscope/RL;
  for l=1:RL-1
      rr_inteval(l)=r_x(l+1)-r_x(l);
      sum_rrinteval=sum_rrinteval+rr_inteval(l);
  end;
  avg_rr_inteval=sum_rrinteval/(RL-1);
  plot(r_x,r,'rx')
  hold on
  save rr_inteval;
  save avg_rr_inteval;
  save  avg_rscope;















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -