MatlabCode

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

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 心电信号滤波与QRS特征提取系统

心电信号滤波与QRS特征提取系统

资 源 简 介

本项目旨在解决心电信号(ECG)在采集过程中极易受到干扰的问题,提供了一套从信号净化到特征识别的完整解决方案。 系统首先通过设计巴特沃斯低通滤波器来滤除信号中的高频肌电干扰和环境噪声,确保波形的平滑度。 随后,利用高通滤波器有效消除由于患者呼吸或电极接触不良引起的基线漂移现象,使心电波形回归至水平基准线。 针对电力系统引入的50Hz/60Hz工频干扰,系统专门配置了高品质因数的带阻陷波器,能够在保留心脏生理信息的同时精确剔除窄带干扰。 在信号质量优化后,项目集成了改进的Pan-Tompkins算法或差分阈

详 情 说 明

基于MATLAB的心电信号全流程滤波及QRS波特征提取系统

项目介绍

本项目针对心电信号(ECG)在采集过程中极易受干扰的特性,提供了一套从信号净化到特征识别的完整自动化处理方案。系统集成了信号仿真、多级数字滤波、增强型QRS波检测算法以及心率统计分析功能。通过该系统,用户可以直观地观察到心电信号由含双重干扰(工频与基线漂移)及噪声的状态,逐步净化为平滑波形,并精准锁定每个心动周期的R峰位置,为临床诊断或生理研究提供准确的数据基础。

功能特性

  1. 多维度干扰模拟:系统能够自主生成包含标准P-QRS-T生理结构的纯净心电信号,并人为注入50Hz工频干扰、低频基线漂移(0.2Hz-0.5Hz)以及高频肌电噪声(高斯白噪声),用于算法验证。
  2. 全流程数字滤波
- 工频陷波:利用高品质因数的IIR陷波器精确剔除50Hz电力噪声。 - 基线纠正:通过二阶巴特沃斯高通滤波器消除呼吸及电极接触引起的缓慢漂移,使波形回归零电位。 - 噪声平滑:采用四阶巴特沃斯低通滤波器抑制高频毛刺,提升信号信噪比。
  1. 改进型Pan-Tompkins检测算法:结合导数变换、平方增强和移动窗口积分,极大提高了在复杂背景下对QRS波群的识别灵敏度。
  2. 精确R峰标定:系统在积分能量峰值的基础上,回溯滤波信号寻找精确极值点,确保时间域定位的准确性。
  3. 动态特征分析:自动统计心搏总数,计算瞬时心率(BPM)、RR间期、平均心率及心率标准差。
  4. 多维度可视化报告:提供信号处理阶段对比图、滤波器幅频特性图、QRS检测轨迹图以及心率统计分布图四大分析维度。

系统实现逻辑

本系统的核心逻辑在主执行流程中按顺序分为五个阶段:

  1. 信号准备阶段:定义采样率为1000Hz,分析时长为10秒。通过生理建模函数生成周期性心跳波形,并按比例叠加正弦干扰和随机噪声。
  2. 三级滤波阶段
- 首先应用陷波频率为50Hz的陷波器,带宽比设为35,使用双向滤波技术确保零相位失真。 - 其次设计截止频率为0.5Hz的高通滤波器,去除直流偏置和低频漂移。 - 最后通过40Hz低通滤波器截断肌电噪声。
  1. QRS波提取阶段
- 微分处理:使用五点导数算子增强R波的陡峭边缘信息。 - 非线性增强:对微分结果取平方,拉大QRS波与P、T波的幅值差距。 - 能量积分:应用150ms宽度的移动窗口进行均值处理,将震荡的脉冲转化为平滑的能量包络。
  1. 阈值决策阶段:基于前2秒信号的最大能量值设定初始动态阈值,配合最小心搏间距(0.3秒)约束,利用峰值搜索算法定位。
  2. 精细化搜索阶段:在每个能量峰值所在的100ms局部区域内,对滤波后的原始信号进行二次极值搜索,补偿积分环节带来的时间滞后,锁定真实R峰位置。

关键函数与算法分析

  1. 合成心电信号生成函数
该函数通过数学建模方式模拟人体心电图中P波、QRS波群和T波的生理特征。P波采用小幅值高斯脉冲,QRS波利用紧凑且大幅值的正负向指数衰减函数模拟,T波则采用较宽的低幅值函数。通过周期性的索引偏移,构建出符合生理节律的基础波形。

  1. Butterworth滤波器设计
系统选用巴特沃斯滤波器是因为其通带内具有最大平坦特性,能够最大限度地避免对心电信号核心频带产生幅度畸变。利用双向滤波(zero-phase filtering)消除了数字滤波带来的群延迟,保证了R峰时间位置的物理真实性。

  1. Pan-Tompkins能量转换机制
通过导数运算捕捉ECG中斜率最大的R波上升沿,平方运算则将由于呼吸等影响引起的信号极性翻转统一为正向,并起到显著抑制低幅P/T波的作用。移动平均窗口的宽度(150ms)是系统参数的核心,旨在覆盖典型QRS波的最长持续时间。

  1. 自适应峰值检索逻辑
采用动态阈值技术应对不同个体或环境下信号幅值的波动,通过设置最小峰值间距防止单个QRS复合波内的多重误检测(如将高耸的T波误诊为R波)。

使用方法

  1. 确保您的计算机已安装MATLAB。
  2. 将主程序代码及相关子函数脚本放置在同一工作目录下。
  3. 在MATLAB命令行窗口中直接运行该系统的主函数。
  4. 系统会自动弹出四个图形窗口,通过图形交互观察滤波效果及检测出的R峰标记(红色圆圈)。
  5. 查看命令行输出的“心电分析报告”,其中包含总时长、检出总数、平均心率、心率标准差及RR间期极限值。

系统要求

  • 软件环境:MATLAB R2016b 或更高版本。
  • 必要工具箱:Signal Processing Toolbox(信号处理工具箱)。
  • 硬件配置:标准PC环境即可,算法计算效率高,支持实时或近实时分析。