基于MATLAB的多算法融合心电信号处理、特征提取与自动化分类系统
项目介绍
本项目实现了一个端到端的心电信号(ECG)分析框架,涵盖了从原始生理信号获取到最终病变自动分类的全流程。系统通过整合传统的统计信号处理方法、先进的特征提取策略以及机器学习模型,旨在为心律失常的诊断提供科学的辅助决策支持。该系统具有高度的自动化特性,能够有效应对工频干扰、基线漂移和运动伪影,并在复杂的波形中精确识别心跳特征。
功能特性
- 多源噪声抑制:集成中值滤波、Butterworth带通滤波与陷波器,多维度净化生理信号。
- 鲁棒性峰值检测:采用基于斜率、幅度和宽度的改进型Pan-Tompkins算法,实现R波的自动精确定位。
- 多维特征空间构建:融合时域统计特征(RMS、标准差、偏度)、心率变异性(HRV)特征以及小波域深层特征。
- 特征优化与降维:利用主成分分析(PCA)自动筛选贡献率达95%的核心特征组,提高分类效率。
- 智能诊断分类:基于支持向量机(SVM)的多类分类架构,能够区分正常心律与室性早搏等病理状态。
- 全方位数据可视化:提供包括滤波对比、RR间期波动、PCA特征聚类分布以及混淆矩阵在内的直观图表。
系统要求
- 环境需求:MATLAB R2020a 或更高版本。
- 必备工具箱:
* Signal Processing Toolbox(信号处理工具箱)
* Wavelet Toolbox(小波工具箱)
* Statistics and Machine Learning Toolbox(统计与机器学习工具箱)
使用方法
- 启动MATLAB软件。
- 将包含系统代码的路径设置为当前工作目录。
- 在命令行窗口运行核心程序脚本。
- 程序将自动执行信号生成、预处理、特征提取、模型训练及性能评估。
- 在自动弹出的可视化界面中查看分析结果。
详细实现逻辑与功能模块分析
1. 生理信号仿真模块
由于心电信号的稀缺性,系统内置了合成心电信号发生器。该模块通过数学建模构造P波、QRS波群和T波。
- 正常心律模拟:生成标准生理周期的波形。
- 病变模拟:模拟室性早搏(PVC)特征,包括QRS波群宽大畸形、无P波、以及代偿间歇(早搏发生较早)。
- 综合干扰项:在原始信号中叠加50Hz工频干扰、由于呼吸引起的基线漂移以及由于肌肉运动产生的随机肌电噪声(EMG)。
2. 级联式信号预处理
系统通过三级流水线处理逻辑确保信号质量:
- 基线漂移校正:采用两级中值滤波器(窗口分别为200ms和600ms),有效提取并扣除信号中由呼吸引起的低频漂移,使心电基准线归零。
- 带通滤波:使用3阶Butterworth带通滤波器(0.5Hz - 40Hz),去除低频扰动和高频白噪声,保留QRS复合波最主要的频谱分量。
- 陷波处理:应用特定的IIR陷波器精准剔除50Hz的工频谐波干扰。
3. 改进型Pan-Tompkins R峰检测算法
该模块为心拍分割的核心,包含以下算法环节:
- 非线性增强:通过微分算子捕捉心电波形的陡峭斜率,利用平方处理增强高幅值的R波并抑制周围的低频杂波。
- 移动窗口积分:采用150ms宽度窗口求和,产生能够体现QRS波群能量的包络线。
- 自适应定位:在积分信号上进行峰值检索,并回溯至预处理后的信号中进行精细化定位,确保检测结果不受采样频率的小幅波动影响。
4. 特征工程与降维
系统针对每个检出的心跳进行深度剖析:
- 时域分析:计算每个心拍信号的均方根(RMS)、标准差和偏度,刻画波形的形态分布。
- HRV及其动态特征:计算相邻心拍的RR间期,捕捉心率的动态短时变异规律。
- 离散小波降解(DWT):使用db4号小波基进行4层分解,提取低频近似系数,该系数包含了心跳波形的核心形态特征。
- PCA维度压缩:将所有高维小波系数与统计特征拼接,运行主成分分析逻辑,在保留原始特征95%方差信息的前提下极大降低特征维度。
5. 自动化分类与性能评估
- 训练与测试架构:系统将特征数据按70%训练、30%测试的比例自动划分。
- 多类SVM模型:采用纠错输出码(ECOC)包装的支持向量机,适应多类别心脏病变的识别。
- 量化性能指标:自动计算识别准确率(Accuracy),并绘制混淆矩阵(Confusion Matrix)以评估不同心律类型之间的分类误差。
6. 可视化交互组件
系统生成一个综合看板,包含:
- 信号处理对比图(清晰显示基线校正和噪声剔除效果)。
- R峰自动标注图(展示检出心跳的准确性)。
- HRV波动曲线。
- 特征空间投影(二维投影显示不同病变的分类边界)。
- 分类性能报告表格。