基于MATLAB的心电信号特征检测与自动分析系统
项目介绍
本项目构建了一个全自动的心电信号(ECG)处理系统,旨在解决复杂背景噪声下心电特征提取的难题。通过集成数字滤波、非线性变换、特征定位及统计分析功能,系统能够从受干扰的信号中准确识别关键心电分量(P波、QRS复合波、T波),并实时计算心率及心率变异性等核心指标。该系统具备高鲁棒性和处理效率,可广泛应用于生物医学工程研究及其临床辅助诊断算法的逻辑验证。
功能特性
- 自动化信号预处理:系统集成了一套级联滤波器,专门针对50Hz工频干扰、基线漂移及高频随机噪声进行抑制。
- 高精度QRS复合波提取:基于Pan-Tompkins算法思想,利用导数、平方与积分变换,增强R波特征并消除基线波动影响。
- 波形精细定位:通过模值逻辑搜索,系统可以自动定位P波与T波的峰值点,精确还原心电信号的细节特征。
- 动态生理指标分析:实时计算心率、RR间期以及反映心脏健康状态的心率变异性指标(SDNN)。
- 多维度信号评估:包含短时能量分析模块和信噪比(SNR)估算功能,量化展示处理前后的信号质量。
- 可视化结果呈现:通过四象限同步视图,直观展示预处理对比、能量包络、特征点标注及心率趋势。
实现逻辑分析
系统内部逻辑严格遵循心电信号处理的典型流程,具体步骤如下:
- 环境与参数初始化:设定360Hz标准采样频率,配置信号长度及心率模拟参数。
- 仿真环境构建:系统通过数学建模生成P、QRS、T三组波形分量,并叠加50Hz正弦干扰、0.2Hz低频漂移及高斯随机噪声,模拟真实的临床采集场景。
- 级联数字滤波:
- 使用IIR陷波器(iirnotch)精准滤除50Hz电网干扰。
- 使用3阶Butterworth高通滤波器修正截止频率为0.5Hz的基线漂移。
- 使用3阶Butterworth低通滤波器去除40Hz以上的高频肌电干扰。
- Pan-Tompkins算法链:
- 差分运算:通过五点导数算子提取信号斜率,抑制P/T波,突出R波的陡峭特征。
- 非线性增强:对差分信号进行平方运算,极大提升信号的峰度。
- 移动平均积分:利用约150ms的时间窗口进行卷积,产生平滑的QRS能量包络。
- 特征点识别逻辑:
- R波检测:对积分包络线应用40%最大值的自适应阈值,结合0.4秒的最小峰距限制,初筛R点,随后在滤波信号中进行局部最大值回溯校准。
- P波搜寻:在R峰前50ms至250ms的历史窗内搜索最大幅度点。
- T波搜寻:在R峰后100ms至450ms的预测窗内搜索最大幅度点。
- 生理参数结算:基于相邻R峰的时间差计算RR间期,推算每分钟心搏数(BPM),并计算RR间期间隔的标准差(SDNN)作为心率变异性评价。
关键算法与技术细节
- IIR陷波器与零相位滤波:系统通过陷波器精准定位干扰频率,并利用filtfilt函数执行双向滤波,确保处理后的波形在时间轴上不产生相位移动,保护心电特征点的物理位置准确。
- 窗口积分能量分析:系统计算了约50ms周期的短时能量分量,通过与QRS积分波形的对比,增强了系统识别异常波动和判断信号质量的能力。
- 自适应峰值检测:在R波精确定位阶段,采用了局部窗口回溯策略。这种策略允许算法先在平滑后的包络中找到大致位置,再返回包含高频细节的滤波信号中锁定物理峰值。
- 心率变异性(HRV):通过离散的RR间期序列计算SDNN,实现了从基础波形检测到高层病理指标分析的跨越。
使用方法
- 启动MATLAB软件,并将包含本项目文件的文件夹设置为当前工作路径。
- 确保已安装Signal Processing Toolbox(信号处理工具箱),这是运行陷波与滤波函数的关键。
- 打开系统的主程序脚本。
- 运行脚本后,系统将自动生成模拟数据、执行所有滤波与识别过程。
- 在弹出的图形界面中观察四组关键视图:滤波前后对比图、能量包络图、特征点标注图以及RR间期趋势统计。
- 查看MATLAB命令行终端,系统将实时输出检测到的心搏数、平均心率、心率变异性以及信噪比估算值。
系统要求
- 软件支持:MATLAB R2016b 或更高版本。
- 必备工具箱:Signal Processing Toolbox。
- 硬件要求:标准PC配置,建议内存4GB以上。
- 操作系统:Windows、macOS 或 Linux。