当前位置: 首页 > news >正文

【心电图处理】基于MIT-BIH心律失常数据库心电图信号去噪、R峰检测和心率变异性HRV分析Matlab实现

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。

🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室

👇 关注我领取海量matlab电子书和数学建模资料

🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、笃行之,是为:博学慎思,明辨笃行。

🔥 内容介绍

一、引言

心电图(ECG)信号包含了丰富的心脏生理信息,对其准确分析有助于诊断各种心脏疾病。然而,实际采集的 ECG 信号常受到噪声干扰,影响后续分析。MIT - BIH 心律失常数据库包含了大量临床 ECG 记录,为研究提供了良好的数据基础。本文将基于该数据库,探讨 ECG 信号去噪、R 峰检测及心率变异性(HRV)分析的方法与实现。

二、ECG 信号去噪

噪声来源

  1. 工频干扰

    :由电力系统产生,频率通常为 50Hz 或 60Hz,会在 ECG 信号上叠加周期性干扰,使波形产生畸变。

  2. 肌电干扰

    :人体肌肉活动产生的电信号,其频率范围较宽,一般在几 Hz 到几百 Hz 之间,表现为不规则的高频噪声,使 ECG 信号变得模糊。

  3. 基线漂移

    :由于呼吸运动、电极与皮肤接触不良等原因,导致 ECG 信号的基线发生缓慢变化,影响信号的准确分析。

去噪方法

  1. 带通滤波

    :设计合适的带通滤波器,如巴特沃斯带通滤波器,以去除工频干扰和部分肌电干扰。对于以 1000Hz 采样的 ECG 信号,可设置通带范围为 0.5 - 40Hz,有效滤除 50Hz 的工频干扰及高频肌电干扰,同时保留 ECG 信号的主要频率成分。

  2. 小波变换去噪

    :小波变换能将信号分解到不同频率子带,通过对小波系数进行处理实现去噪。具体步骤为:对含噪 ECG 信号进行小波分解,得到不同尺度的小波系数;根据噪声特性,采用阈值量化方法处理小波系数,如软阈值法,将小于阈值的系数置零,大于阈值的系数进行收缩处理;最后通过小波逆变换重构去噪后的 ECG 信号。小波基的选择很关键,如 db4 小波在 ECG 信号去噪中常能取得较好效果。

三、R 峰检测

常用算法原理

  1. 基于阈值的检测方法

    :利用 R 峰幅值相对较高的特点,设定一个幅值阈值。当 ECG 信号幅值超过该阈值且满足一定的斜率条件(如信号上升沿斜率较大)时,判定为 R 峰。然而,该方法对噪声敏感,在噪声较大时易产生误判。

  2. Pan - Tompkins 算法

    :是一种经典的 R 峰检测算法。首先对去噪后的 ECG 信号进行差分运算,增强 R 峰的特征;然后通过积分器进行平滑处理,进一步突出 R 峰;接着设定动态阈值来检测 R 峰,该阈值会根据信号的统计特性实时调整,有效提高了检测的准确性和鲁棒性。

实现步骤

  1. 数据预处理

    :对去噪后的 ECG 信号进行归一化处理,将信号幅值映射到 [0, 1] 区间,方便后续算法处理。

  2. 特征提取与检测

    :以 Pan - Tompkins 算法为例,先对归一化后的信号进行差分运算,得到信号的变化率;再通过积分器对变化率信号进行积分,得到平滑后的信号;根据平滑后信号的统计特性,如均值和标准差,动态调整阈值;当平滑后的信号超过阈值时,判定为 R 峰。

  3. 验证与校正

    :对检测到的 R 峰进行验证,如检查 R 峰之间的时间间隔是否在合理范围内(正常心率范围对应的时间间隔),若出现异常,采用邻近搜索等方法进行校正,提高检测精度。

四、心率变异性(HRV)分析

HRV 基本概念

HRV 指逐次心跳周期之间的微小差异,反映了心脏自主神经系统对心脏调节的动态变化。HRV 分析能为心血管疾病的诊断、治疗及预后评估提供重要信息。

分析方法

  1. 时域分析

    :计算 RR 间期(相邻 R 峰之间的时间间隔)的统计参数,如均值、标准差(SDNN)、相邻 RR 间期差值的均方根(RMSSD)等。SDNN 反映了 HRV 的总体变化,RMSSD 主要反映迷走神经对心脏的调节作用。例如,在一组 ECG 数据中,计算得到的 SDNN 值越大,说明 HRV 越大,心脏自主神经系统的调节能力越强。

  2. 频域分析

    :通过快速傅里叶变换(FFT)或 Welch 方法等将 RR 间期序列转换到频域,得到功率谱密度。主要关注低频(LF,0.04 - 0.15Hz)和高频(HF,0.15 - 0.4Hz)频段的功率。LF 频段反映交感和迷走神经的共同作用,HF 频段主要反映迷走神经的活动。LF/HF 比值可用于评估交感神经与迷走神经的平衡状态。

五、基于 MIT - BIH 数据库的实验验证

实验设置

从 MIT - BIH 心律失常数据库中选取若干条 ECG 记录,按照上述去噪、R 峰检测和 HRV 分析方法进行处理。将处理结果与数据库提供的标注信息进行对比验证。

结果分析

  1. 去噪效果

    :通过对比去噪前后的 ECG 信号波形,直观观察到噪声明显减少,信号更加清晰。采用信噪比(SNR)等指标定量评估,去噪后信号的 SNR 显著提高,表明去噪方法有效。

  2. R 峰检测精度

    :将检测到的 R 峰位置与数据库标注的 R 峰位置进行比较,计算检测准确率。结果显示,Pan - Tompkins 算法在该数据库上的检测准确率较高,误检率和漏检率较低,能满足临床分析的基本要求。

  3. HRV 分析结果

    :通过时域和频域分析得到的 HRV 参数,与正常生理状态及不同心律失常情况下的参考值进行对比。例如,对于患有心律失常的 ECG 记录,其 SDNN 值可能低于正常范围,LF/HF 比值可能出现异常,为心律失常的诊断提供了有力依据。

⛳️ 运行结果

📣 部分代码

function [ecg_dc, ecg_hp, ecg_notch, ecg_filt] = preprocess_ecg(ecg, fs)

%dc offset

ecg_dc = ecg - mean(ecg);

%high pass filtering of 0.5Hz

[b_hp,a_hp] = butter(4, 0.5/(fs/2), 'high');

ecg_hp = filtfilt(b_hp,a_hp,ecg_dc);

%notch filtering of 60Hz powerline intereference

wo = 60/(fs/2);

bw = wo/30;

[b_notch,a_notch] = iirnotch(wo,bw);

ecg_notch = filtfilt(b_notch,a_notch,ecg_hp);

%bandpass filtering(5 to 40Hz)

[b_bp,a_bp] = butter(4, [5 45]/(fs/2), 'bandpass');

ecg_filt = filtfilt(b_bp,a_bp,ecg_notch);

end

🔗 参考文献

[1]李羽翠.基于LabVIEW的心电采集分析系统设计[D].兰州理工大学,2015.DOI:10.7666/d.D01027970.

🍅更多免费数学建模和仿真教程关注领取

http://www.cnnetsun.cn/news/2627275.html

相关文章:

  • 干掉繁琐搬运!企业级AI Agent免费社区版深度评测:中小企业数字化转型的“破局”利器
  • 通过 Taotoken CLI 一键配置团队开发环境中的模型密钥
  • 格式错位=推理失效?DeepSeek RAG流水线中JSON Schema校验缺失导致37%响应解析失败,速查修复清单
  • 使用GD32实现JTAG功能
  • 手把手教你用OSX-KVM项目搞定macOS Monterey安装:从XML配置到驱动优化避坑指南
  • 第05篇|窗口与安全区:AppStorage 如何保存宽高、状态栏和暗色模式
  • 告别虚拟机!在安卓手机上用Termux运行ArchLinux,实测开发环境搭建与避坑指南
  • bean的作用域与生命周期
  • 6Pin数码管驱动和编码器旋钮检测
  • 从Solidworks草图到桌面摆件:我如何用3D打印给自己做了个PLA手机支架(附切片避坑指南)
  • Taotoken用量看板与成本管理功能的实际使用观感
  • 基于ESP32与SCD41传感器的开源智能CO₂监测仪制作全攻略
  • 如何用哔哩下载姬downkyi轻松下载B站视频:从入门到精通完全指南
  • WingData HTB 渗透测试完整攻略
  • 别再自己写扫码了!用uniapp插件Ba-Scanner,5分钟搞定连续扫码和自定义UI
  • 笔记本刚开机就高温?CPU 90℃、风扇狂转、网速消耗殆尽——威胁检测工程师实战排查全过程
  • PointPillars算法避坑指南:从VoxelNet到Apollo实战,聊聊那些容易踩的‘坑’
  • 权重衰减为何放入优化器
  • 什么是OPC(一人公司)?
  • 代码即玩法:非典型游戏开发的英文提示词实践
  • 从 MCP 到 A2A:Agent 项目里“通信协议”到底在解决什么问题?
  • 别再手动排路线了!用Python+遗传算法搞定物流配送VRP(附完整代码)
  • 番茄小说下载器完整指南:打造个人离线数字图书馆的终极方案
  • 2026权威实测:16款降AIGC软件横评,论文安全过关就靠它!
  • 如何用Ai2Psd脚本实现Illustrator到Photoshop的无损图层转换?3步极速指南
  • 真机实测:Hermes Agent Windows 全流程安装与配置指南
  • 多活不是口号,是算力——DeepSeek高可用架构落地三原则,含真实RTT压测数据与Failover耗时对比表
  • RPGMakerDecrypter完全指南:3步解密RPG Maker加密存档的专业方法
  • LAMMPS模拟石墨烯拉伸:除了velocity,试试这个更省事的deform命令(附完整in文件)
  • 告别公式恐惧!用Python一步步拆解LTE PUCCH功率控制(附代码与实战日志分析)