MatlabCode

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

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 基于小波变换与CNN的心电信号自动诊断系统

基于小波变换与CNN的心电信号自动诊断系统

资 源 简 介

本项目开发一个集成化的心电图(ECG)信号处理与分析平台,旨在辅助医生进行心血管疾病的自动检测与分类。系统不仅仅是对信号进行简单的显示,而是包含完整的数据处理流水线。首先,系统能够读取MIT-BIH数据库或自定义采集的原始ECG数据,利用离散小波变换(DWT)和自适应陷波器有效去除基线漂移、工频干扰及肌电噪声,显著提高信号信噪比。接着,采用了改进的Pan-Tompkins算法通过差分、平方和积分操作精确检测QRS波群,定位R波峰值,并计算心率变异性(HRV)的时域和频域指标。核心分析模块结合了短时傅里叶变换(STFT)生成的时频图与卷积神经网络(CNN),对正常心跳、室性早搏(PVC)、房性早搏(PAC)及心房颤动等心律失常模式进行自动分类。此外,项目利用MATLAB App Designer构建了交互式图形用户界面,支持用户动态加载数据,实时观测原始波形与去噪波形的对比,查看自动标记的特征点(P波、QRS波、T波),并导出包含心率趋势、异常心跳统计及分类置信度的综合诊断报告。该系统适用于生物医学工程教学、算法验证及医疗辅助诊断的原型开发。

详 情 说 明

基于小波变换与深度学习的ECG心电信号自动诊断系统

项目简介

本项目实现了一个基于MATLAB的集成化心电图(ECG)信号处理与分析平台。系统集成了从数据生成、信号预处理、特征提取到自动诊断的完整流程。通过图形用户界面(App Designer),用户可以直观地观察ECG信号在不同处理阶段的变化,查看心率变异性(HRV)指标,并获取基于模拟卷积神经网络(CNN)的诊断分类结果。该系统主要用于生物医学工程算法的教学演示、验证及辅助诊断原型开发。

功能特性

  • 交互式GUI界面:基于MATLAB App Designer构建的现代化界面,包含控制面板、参数显示区及三个动态可视化绘图区。
  • 信号模拟与生成:内置ECG信号生成器,能够合成包含P波、QRS波、T波以及模拟噪声(基线漂移、工频干扰、白噪声)的仿真信号。
  • 高级信号预处理
* 集成IIR陷波滤波器去除工频干扰。 * 利用离散小波变换(DWT)进行信号去噪。 * 利用小波重构技术去除基线漂移。
  • 特征提取与分析
* 实现Pan-Tompkins算法逻辑进行QRS波群检测及R波定位。 * 自动检测P波与T波位置。 * 计算时频分析图(STFT Spectrogram)。 * 计算心率变异性(HRV)时域和频域指标(SDNN, RMSSD, LF/HF)。
  • 智能辅助诊断:集成模拟的CNN推理模块,对心律失常类型(正常、PVC、PAC、AFIB)进行分类概率评估。
  • 自动报告导出:支持一键将当前信号波形、核心指标、分类概率与时频图导出为PDF格式的诊断报告。

系统要求

  • MATLAB R2020a 或更高版本
  • Signal Processing Toolbox(信号处理工具箱)
  • Wavelet Toolbox(小波工具箱)
  • Deep Learning Toolbox(深度学习工具箱,用于潜在的模型扩展)

使用方法

  1. 确保MATLAB路径中包含 main.m 文件。
  2. 在MATLAB命令行窗口输入 main 并回车。
  3. 系统将启动 "智能ECG心电诊断系统 (Deep-ECG)" 界面。
  4. 按照控制面板的数字引导顺序操作:
* 点击 1. 加载/模拟数据 生成带有噪声的仿真ECG信号。 * 点击 2. 信号预处理 执行去噪和滤波算法。 * 点击 3. 特征提取与CNN诊断 进行波形识别、定位与疾病分类。 * 点击 导出的PDF报告 保存分析结果。

代码实现逻辑与算法细节

本项目的所有核心逻辑均封装在 main.m 文件中,主要包含以下模块:

1. 图形用户界面 (GUI) 架构

程序入口为 main 函数,通过调用 run_gui 构建界面。界面布局采用网格管理器 (uigridlayout),左侧为操作与数据显示区,右侧为三个绘图坐标轴:
  • 原始ECG信号:显示加载或生成的含噪信号。
  • 去噪后信号:显示经过滤波处理的洁净信号及标注的特征点。
  • 时频分析:显示信号的短时傅里叶变换频谱。

2. 数据源 (模拟生成)

虽然界面按钮提示支持MIT-BIH数据,但当前代码实现主要通过 generate_synthetic_ecg 函数生成仿真数据。该算法通过高斯函数叠加模拟P、Q、R、S、T各波段,并人为特定频率的噪声和基线漂移,以验证去噪算法的有效性。

3. 多级信号预处理流水线

点击“预处理”按钮后,系统按顺序执行以下算法:
  • 工频干扰去除:使用 designfilt 设计二阶IIR带阻(陷波)滤波器,阻带频率设定在49Hz-51Hz,有效滤除50Hz电源噪声。
  • 小波去噪
* 选用 sym4 小波基,分解层数为5层。 * 采用软阈值处理方法 (wthcoef),通过Donoho通用阈值公式计算噪声门限,对高频细节系数进行处理,去除高斯白噪声。
  • 基线漂移校正
* 采用 wavedec 进行8层小波分解(使用 db6 小波基)。 * 强制将最低频的逼近系数(第8层)置零。 * 使用 waverec 重构信号,从而去除极低频的基线趋势项。

4. 特征提取与时频分析

在“特征提取与CNN诊断”阶段,代码执行以下操作:
  • QRS复合波检测:调用 pan_tompkins 算法(经典差分、平方、积分窗逻辑)检测R波大概位置,并通过 correct_r_peaks 进行局部最大值搜索以精确定位。
  • PT波检测:基于R波位置,在特定时间窗口内搜索P波和T波的峰值。
  • HRV计算:通过R-R间隔序列,计算平均心率、SDNN(全部窦性心搏RR间期的标准差)、RMSSD(相邻RR间期差值的均方根)以及LF/HF(低频高频比)。
  • STFT变换:使用 spectrogram 函数(窗口128,重叠120,NFFT 256)生成信号的时频图,展示信号频率随时间的变化特性。

5. 诊断分类与报告

  • 模拟推理:调用 simulate_cnn_inference 函数,输入STFT特征和HRV指标。注意:代码中的CNN是一个模拟推理过程,用于演示深度学习模块在系统中的集成方式,输出针对四类心律失常(正常、室早、房早、房颤)的置信度概率。
  • 可视化反馈:通过柱状图 (bar) 实时显示各分类的概率分布。
  • PDF导出:利用 exportgraphics 函数,将重组后的波形图、统计文本、分类概率图和时频图合并为一个新的隐藏Figure,并保存为PDF文件。