基于MATLAB的Pan-Tompkins算法心电图(ECG)信号分析系统
项目介绍
本项目是一个专门用于心电信号(ECG)处理与QRS复合波检测的MATLAB集成系统。它完整实现了经典的Pan-Tompkins实时检测算法,能够从包含噪声的原始心电数据中精准地识别R波位置,并据此计算心率及心率变异性(HRV)相关指标。系统不仅模拟了真实的心电信号产生过程,还针对临床常见的基线漂移、工频干扰和肌电噪声设计了针对性的滤波策略,适用于辅助诊断算法研究及生理信号处理的教学演示。
功能特性
- 全流程算法实现:涵盖了从原始信号输入到特征提取的完整五个阶段。
- 自适应决策机制:采用动态双阈值逻辑,能够自动适应不同信号幅值和噪声强度的变化,具有极强的鲁棒性。
- 高仿真信号生成:系统内置心电模拟器,可生成带有P波、QRS复合波和T波的标准心电波形,并支持注入多种干扰模型。
- 高精度R峰对齐:通过回溯搜索机制,修正了由于积分窗口导致的相位延迟,确保R峰定位在滤波信号的真实极值点。
- 多维度分析报告:实时计算瞬时心率、平均心率、RR间期以及心率变异性指标(SDNN)。
- 直观可视化界面:多子图展示算法运行的中间环节,辅助用户理解信号变换的物理意义。
系统逻辑与实现细节
系统的核心处理逻辑严格遵循Pan-Tompkins算法的五个标准阶段:
1. 模拟与建模阶段
通过高斯函数叠加生成标准的心电特征波形,模拟约75BPM的成人静息心率。在此基础上,系统注入了三类干扰:
- 50Hz工频干扰(正弦噪声)。
- 0.2Hz基线漂移(低频波动)。
- 高斯白噪声(宽带干扰)。
2. 预处理滤波段
为了将能量集中在5-15Hz这一QRS波群最显著的频带内,系统实现了两个串联的数字滤波器:
- 低通滤波器:采用二阶差分方程,有效抑制高频噪声。
- 高通滤波器:利用减法结构实现,彻底消除基线漂移。
- 此阶段通过差分方程而非通用函数实现,保证了运算效率。
3. 特征增强段
- 微分运算:应用五点导数算子来提取R波陡峭的上升斜率特征。
- 平方变换:通过非线性运算将信号能量正向化,进一步拉大QRS波群与P波、T波及残余噪声之间的差距,提高信噪比。
4. 能量包络提取段
- 移动窗口积分 (MWI):使用一个约150ms(对应采样率的30个采样点)的滑动窗口进行累加平均。该步骤旨在生成反映QRS复合波宽度的脉冲包络,便于后续阈值判定。
5. 自适应检测决策段
这是系统的核心智能模块,包含以下复杂逻辑:
- 初始估计:根据信号前两秒的极大值和平均值建立初始信号水平(SPKI)和噪声水平(NPKI)。
- 双阈值更新:设定检测阈值1和搜索阈值2,并以1/8的增量动态调节阈值,使其随心律变化。
- 不应期机制:设定200ms的不应期,防止出现生理上不可能发生的误检测。
- 峰值对准:通过在积分信号触发检测后的局部窗口内进行反向搜索,精准定位滤波后信号中的R波尖峰。
使用方法
- 启动MATLAB软件。
- 将系统脚本文件放置于工作目录下。
- 直接运行主程序函数。
- 在弹出的图形窗口中观察四级变换曲线:
* 第一层:原始信号与去噪滤波信号对比。
* 第二层:平方特征与积分能量包络。
* 第三层:在滤波信号上标注出的R峰检测结果。
* 第四层:心率随时间变化的阶梯曲线。
- 查看命令行窗口输出的分析报告,获取平均心率和SDNN等参数。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 工具箱需求:Signal Processing Toolbox(信号处理工具箱),用于调用局部峰值搜索和移动求和相关辅助函数。
- 硬件建议:标准PC环境即可实现实时处理模拟。