MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 心电信号R波自动检测与心率分析系统

心电信号R波自动检测与心率分析系统

资 源 简 介

本项目旨在利用MATLAB强大的数字信号处理工具箱,开发一套高效、精准的心电(ECG)信号R波峰值检测与分析系统。该系统针对临床或实验中采集的心电数据,首先进行必要的预处理环节,包括去除基线漂移、滤除工频干扰(50/60Hz)以及抑制高频肌电噪声,通常采用带通滤波器、中值滤波器或小波阈值去噪技术来提升信号质量。核心算法模块实现经典的Pan-Tompkins算法或基于小波变换的模极大值检测算法,通过对预处理后的信号进行微分、平方、移动窗口积分等操作,以此增强QRS波群的能量特征,并利用自适应动态阈值策略准确识别R波峰值位置,有效降低高T波或噪声引起的误检率。在完成峰值定位后,系统将自动计算RR间期(相邻R波的时间间隔)和瞬时心率(BPM),并进行心率变异性(HRV)的初步统计分析。最终,项目通过图形用户界面或直接绘图输出,直观地展示原始信号、滤波后信号以及标记了检测到的R波峰值的对比波形图,为心律失常等心脏疾病的辅助诊断提供可靠的数据支持。

详 情 说 明

基于MATLAB的心电信号R波峰值自动检测系统

项目介绍

本项目是一个基于MATLAB开发的心电(ECG)信号处理与分析系统。系统利用数字信号处理技术,从含噪的心电信号中提取特征,实现对R波峰值的高精度定位。除核心的检测功能外,系统还包含模拟信号生成、多级噪声抑制预处理、心率变异性(HRV)统计分析以及全流程的可视化展示功能。该系统实现了经典的Pan-Tompkins算法流程,并结合自适应阈值策略,能够有效应对基线漂移、工频干扰和肌电噪声的影响。

功能特性

  • 模拟信号生成:内置合成ECG生成器,能够模拟包含P、Q、R、S、T波的完整心动周期,并支持随机的心率变异性(HRV)模拟。
  • 环境噪声仿真:自动叠加基线漂移(0.5Hz)、工频干扰(50Hz)和高频肌电噪声,模拟真实的信号采集环境。
  • 多级信号预处理
* 基线校正:采用两级中值滤波技术去除低频基线漂移。 * 陷波滤波:精准滤除50Hz电源线干扰。 * 高频去噪:使用低通滤波器抑制高频肌电噪声。
  • Pan-Tompkins算法实现:完整复现了微分、平方、移动窗口积分(MWI)等特征增强步骤。
  • 自适应R波检测
* 动态阈值调整机制,根据信号和噪声水平自动更新检测门限。 * 回溯修正算法,解决积分处理带来的波峰延迟问题,精准定位原始波形中的R波。
  • 临床指标分析:自动计算平均心率(BPM)、RR间期、SDNN和RMSSD等HRV时域指标。
  • 数据可视化:提供包含原始信号对比、算法中间过程、最终检测标记的三栏波形图。

系统要求

  • MATLAB R2016a 或更高版本
  • Signal Processing Toolbox(信号处理工具箱)
* 项目依赖 filtfilt (零相位滤波), butter (巴特沃斯滤波器设计), iirnotch (陷波器设计), findpeaks (寻峰), medfilt1 (一维中值滤波) 等函数。

使用方法

  1. 将代码保存为MATLAB脚本文件。
  2. 确保MATLAB路径中已包含所需的工具箱。
  3. 直接运行脚本,系统将自动依次执行:参数初始化、信号生成、噪声添加、预处理、R波检测及绘图。
  4. 运行结束后,控制台将输出心率统计数据,并弹出一个包含三个子图的分析窗口。

详细实现与算法逻辑

本项目的主要执行逻辑包含以下六个关键阶段,完全对应代码的实际执行流程:

1. 参数设置与信号生成

系统首先设定采样率(360Hz)、信号时长(10秒)和目标心率(75 BPM)。
  • 信号合成:通过本地辅助函数,利用高斯函数叠加模拟P、Q、R、S、T波的形态,并引入微小的随机时间偏移来模拟真实的心率变异性。
  • 噪声叠加:在纯净信号上线性叠加0.5Hz的正弦波(模拟呼吸造成的基线漂移)、50Hz正弦波(模拟工频干扰)以及高斯白噪声(模拟肌电干扰),构建待处理的 noisy_ecg 信号。

2. 信号预处理

为了从强噪声背景中恢复信号,代码实施了以下级联滤波策略:
  • 去除基线漂移:采用中值滤波法。首先使用200ms窗口滤除QRS波群,随后对结果进行600ms窗口滤波提取基线轮廓,最后将原始信号减去该基线。
  • 滤除工频干扰:设计一个中心频率为50Hz的IIR陷波器(Notch Filter),并使用零相位滤波函数 filtfilt 处理,防止相位失真。
  • 宽带滤波:使用截止频率约为20Hz的二阶巴特沃斯低通滤波器进行初步清洗,为后续算法做准备。

3. Pan-Tompkins 算法核心

该模块旨在最大化QRS波群的特征能量,同时抑制其他波段:
  • 带通滤波:使用5-15Hz的巴特沃斯带通滤波器,保留QRS波群的主要频谱能量,滤除低频P/T波和高频噪声。
  • 微分变换:应用5点差分滤波器(系数 [1, 2, 0, -2, -1]),突出信号斜率变化剧烈的部分(即R波的上升沿和下降沿)。
  • 非线性平方:对微分信号进行平方运算,将所有数据转换为正值,并非线性地放大高幅度的QRS波群成分。
  • 移动窗口积分 (MWI):使用宽度约150ms的矩形窗口进行卷积积分,将离散的波形特征平滑聚合成一个宽大的波峰,便于后续检测。

4. R波峰值自适应检测

检测逻辑分为粗定位和精定位两个步骤:
  • 基于MWI的粗检测:在积分信号上寻找局部极大值(最小峰值距离设为200ms),并利用双阈值(信号阈值和噪声阈值)策略进行筛选。
* 自适应更新:若峰值超过当前阈值,判定为QRS波,更新信号水平 signal_level;否则判定为噪声,更新噪声水平 noise_level。阈值根据通过公式动态调整:Threshold = Noise + 0.25 * (Signal - Noise)
  • 回溯修正(精定位):由于积分过程会导致波峰位置在时间轴上滞后,算法以MWI检测到的位置为基准,在预处理后的滤波信号(ecg_filtered)上向前回溯搜索(搜索窗约150ms),找到真实的信号极大值点作为最终的R波位置。

5. 心率计算与统计分析

根据最终确定的R波位置索引计算时域指标:
  • RR间期:计算相邻R波之间的时间差。
  • 平均心率:60除以平均RR间期。
  • HRV分析
* SDNN:RR间期的标准差,反映整体心率变异程度。 * RMSSD:相邻RR间期差值的均方根,反映副交感神经活性。 结果将直接通过 fprintf 输出至控制台。

6. 可视化绘图

系统生成一个包含三个子图的Figure窗口:
  1. 预处理效果:灰色显示原始带噪信号,蓝色显示去噪及基线校正后的信号,直观展示预处理对信噪比的提升。
  2. 算法中间态:绿色虚线显示平方后的信号,黑色实线显示移动积分后的信号(MWI),并标注红色虚线阈值,展示特征增强过程。
  3. 最终复律:在滤波后的ECG信号上,用红色圆点标记检测到的R波峰值,并在波峰上方标注具体的RR间期数值(秒),便于人工核验。