基于小波熵阈值的心电信号R波检测算法(MATLAB)

152 篇文章 33 订阅
126 篇文章 1 订阅

心脏兴奋电活动过程可由心电信号(ECG)来反映,心电信号也是医学上对心血管疾病诊断的重要科学依据。心电信号具有一定的随机性且一般情况下十分微弱,在信号采集、放大及变换过程中,心电信号容易受到人体呼吸及检测仪器等因素影响,从而引入多种不同种类的噪声,如基线漂移、工频干扰、肌电干扰等。这些噪声引入会使心电信号发生某种程度的畸变,从而给病情分析及诊断带来一定的影响。因此,医学诊断中心电信号去噪是心脏智能诊断所要研究的重要课题。

为减小或最大限度消除心电信号中存在的噪声干扰,目前,国内外的研究学者已提出多种去噪方法。小波变换具有多分辨率分析的特点,且是时频域化的数学工具,小波变换通常适用于对时变非平稳信号分析。在小波变换处理信号的过程中,最为重要的就是阈值的选取,Donoho和Johnstone提出固定阈值、无偏风险阈值、极大极小阈值和启发式阈值。这些阈值在去噪处理中效果十分显著但也具有一些缺点,例如:无偏风险阈值通常在小波系数稀疏时处理效果不明显;固定阈值去噪处理时过度平滑信号;极大极小阈值及启发式阈值对去噪重构后的信号在时域上得不到较好的处理效果。

针对传统小波阈值去噪算法不能有效去除心电信号中所参杂的基线漂移及工频干扰,重构信号会产生伪吉布斯现象。小波熵阈值去噪新算法是根据不同分解尺度上信号和噪声能量分布不同的特点,滤除一部分的基线漂移及工频干扰。

鉴于此,提出一种基于小波熵阈值的心电信号R波检测算法,运行环境为MATLAB 2018。

clear all
close all
clc
select=input('enter a no to select mat file \n Options \n 0 for advanced options\n 1 for ECGDATA\n 2 for ravi \n 3 for matlabnew\n \n\n\');%select data
switch select
    case 1
        load('ECGDATA');
        ecg=ECG_1;
        v=ecg;
        tmax=max(Time_Adjusted);
        t=Time_Adjusted;
    case 2
        load('ravidata');
        ecg=v;
        tmax=max(t);
    case 3
        load('matlabnew');
        ecg=v;
        tmax=max(t);
    otherwise
        name=input('enter the name of mat file consisting \necg samples in variable ''v'' \n and \ntime in variable ''t''\n\n\n','s')
        load(name);
        ecg=v;
        tmax=max(t);
end
sr=numel(ecg)/max(tmax);
srate=['sampeling rate is ' num2str(sr)];
disp(srate)
rt=['recording_time=' num2str(tmax) 'sec'];
%完整代码:mbd.pub/o/bread/mbd-ZZWVmp1u
disp(rt)

图片

图片

图片

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哥廷根数学学派

码字不易,且行且珍惜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值