当前位置: 首页 > news >正文

「基于连续小波变换(CWT)和卷积神经网络(CNN)的心律失常分类算法——ECG信号处理-第十五课」2025年6月6日

一、引言

        心律失常是心血管疾病的重要表现形式,其准确分类对临床诊断具有关键意义。传统的心律失常分类方法主要依赖于人工特征提取和经典机器学习算法,但这些方法往往受限于特征选择的主观性和模型的泛化能力。

        随着深度学习技术的发展,基于卷积神经网络(CNN)的方法逐渐成为研究热点。然而,心电信号是一维时间序列数据,直接应用 CNN 进行分类可能会丢失部分时频信息,影响分类性能。

        为了解决这一问题,本文档提出了一种结合小波变换和 CNN 的心律失常分类方法,旨在充分发挥小波变换在信号时频分析方面的优势以及 CNN 在处理二维图像数据方面的强大能力,实现对心律失常信号的高效、准确分类。

二、理论基础

(一)心电信号与心律失常

        心电信号(ECG)是心脏电活动的外在表现,反映了心脏的兴奋、传导和复极过程。正常心电信号具有一定的波形特征,如 P 波、QRS 波群和 T 波等,这些波形依次对应心房去极化、心室去极化和心室复极化过程,反映了心脏正常的电生理活动。

        心律失常是一类心脏电活动异常的疾病,其本质是心脏冲动的频率、节律、起源部位、传导速度或激动顺序出现异常。  

        心律失常的分类方式多样,按心率快慢可分为快速性心律失常(如窦性心动过速、心房扑动、心室颤动等)和缓慢性心律失常(如窦性心动过缓、窦性停搏、房室传导阻滞等);按起源部位可分为室上性心律失常(如窦性心律失常、房性心律失常、房室交界性心律失常等)和室性心律失常(如室性期前收缩、室性心动过速、心室颤动等)。

图1:心律失常&常见类型

        心律失常的分类方式多样,按心率快慢可分为快速性心律失常(如窦性心动过速、心房扑动、心室颤动等)和缓慢性心律失常(如窦性心动过缓、窦性停搏、房室传导阻滞等);按起源部位可分为室上性心律失常(如窦性心律失常、房性心律失常、房室交界性心律失常等)和室性心律失常(如室性期前收缩、室性心动过速、心室颤动等)。不同类型的常见心律失常及其心电图特征如下:

  • 正常心搏(N):心电图表现为规律的窦性心律,P 波形态正常且规律,PR 间期恒定,QRS 波群形态正常,心率通常在 60-100 次 / 分之间。

  • 室性早搏(V):心电图可见提前出现的宽大畸形的 QRS-T 波群,其前无相关的 P 波,代偿间歇完全,常伴有继发性 ST-T 改变。

  • 左束支传导阻滞(L):心电图表现为 QRS 波群宽大,时限通常≥0.12s,V1、V2 导联呈 rsr’型或 M 型,I、aVL、V5、V6 导联呈宽大的 R 波,常伴有继发性 ST-T 改变。

  • 右束支传导阻滞(R):心电图特征为 QRS 波群宽大,时限≥0.12s,V1、V2 导联呈rsR’型或宽大R波,I、aVL、V5、V6 导联呈宽大的S波,ST-T 改变多为继发性。

  • 心房颤动(AF):心电图显示 P 波消失,代之以大小不等、形态各异的颤动波,频率 350-600 次 / 分;QRS 波群形态通常正常,R-R 间期绝对不规则。

  • 心室颤动(VF):心电图表现为不规则的颤动波,频率 200-500 次 / 分,无规律可循,是极其严重的心律失常,可导致心脏骤停。

  • 等等。。。

        心律失常可由多种因素引发,包括心脏本身疾病(如冠心病、心肌病、心肌炎等)、遗传因素(如长 QT 综合征、Brugada 综合征等)、电解质紊乱、药物影响、自主神经系统失调等。其临床表现因类型和严重程度而异,部分患者可无明显症状,而部分患者可能出现心悸、胸闷、头晕、乏力、晕厥,甚至猝死等严重症状。心律失常的诊断主要依赖于心电图检查,包括常规心电图、动态心电图、运动试验等,这些检查能够捕捉到心律失常的特征性表现,为临床诊断提供重要依据。

图2:心律失常症状表现示例

(二)小波变换

        小波变换是一种时频分析方法,能够同时提供信号的时间和频率信息。小波变换能够有效处理非平稳信号,如心电信号,提取信号中的瞬态特征和局部变化信息,为后续的分类提供更丰富的特征表示。连续小波变换(CWT)通过伸缩和平移基本小波函数,将信号分解为不同尺度和位置的小波系数,从而捕捉信号的局部特征。其数学表达式为:

        其中, a 表示尺度因子, b 表示平移因子, ψ(t) 为基本小波函数, ψ∗(t) 为其复共轭。

图3:连续小波变换CWT的时频分析示意图

(一维信号与二维图像的区别)        

        心电信号本质上是一维时间序列数据,它随时间变化反映了心脏电活动的动态过程。一维信号的特点是数据点按时间顺序排列,每个数据点仅包含幅值信息,难以直观展示信号的频率特性。直接对一维信号应用 CNN 进行分类时,CNN 难以充分利用其在空间特征提取方面的优势,且容易丢失信号的时频关联信息,影响分类性能。

        相比之下,二维图像是由像素点组成的矩阵,每个像素点包含位置和强度信息,能够直观展示信号的时频特性。通过将一维心电信号转换为二维图像,可以将信号的时域和频域信息融合到图像的二维空间中,使 CNN 能够更有效地提取信号的局部和全局特征。

(三)卷积神经网络

        卷积神经网络(CNN)是一种专门用于处理具有网格结构数据(如图像)的深度学习模型,其主要特点包括卷积层、池化层和全连接层。CNN 的网络结构和训练过程如下:

        1、卷积层:卷积层是 CNN 的核心部分,通过卷积核提取局部特征,卷积运算的数学表达式为:

        其中, yi,j​ 表示输出特征图的元素, wk,l​ 表示卷积核的权重, xi+k−1,j+l−1​ 表示输入数据的元素, b 表示偏置, f(⋅) 为激活函数,如 ReLU 函数。

图4:卷积层的计算过程示意图

        2、池化层:池化层用于降低特征维度,减少计算量,并增强模型对输入数据的平移不变性。常见的池化方法包括最大池化和平均池化。最大池化选取局部区域内的最大值作为输出,平均池化则计算局部区域内的平均值作为输出。

图5:池化层的计算过程示意图

        3、全连接层:全连接层将卷积层和池化层提取的特征进行整合,实现最终的分类决策。全连接层的神经元与前一层的所有神经元全连接,其输出为:

        其中, y 表示神经元的输出, wi​ 表示权重, xi​ 表示输入, b 表示偏置, f(⋅) 为激活函数。

        图6:全连接层的计算过程示意图

        CNN 的训练过程通过反向传播算法和优化方法(如:Adam 优化器)来更新网络参数,以最小化预测输出与真实标签之间的损失函数(如:交叉熵损失函数)。

  • 交叉熵损失函数 L = - [ y * log(p) + (1 - y) * log(1 - p) ]

  • 参数解释:

    • y: 样本的真实标签。通常取值为 0(负类)或 1(正类)。

    • p: 模型预测该样本属于正类的概率(取值范围在 [0, 1] 之间)。

    • log: 通常指自然对数(底数为 e),有时也用对数(底数为 2 或 10),但在机器学习中通常使用自然对数。

图7:Adam 优化器优化过程

(CWT 与 CNN 的结合优势)

将 CWT 与 CNN 结合用于心律失常分类具有显著优势:

  1. 丰富的时频特征:CWT 能够将一维心电信号转换为二维时频图像,保留了信号的时间和频率信息。这种时频表示能够更全面地反映心电信号的特征,如不同心律失常类型的频率成分变化和时域波形特征。

  2. 强大的特征提取能力:CNN 对二维图像数据具有强大的自动特征提取能力。通过卷积层和池化层,CNN 能够逐层提取图像的局部和全局特征,自动学习到对分类最有用的特征组合,避免了人工特征提取的主观性和局限性。

  3. 高效的分类性能:CNN 的全连接层能够将提取的特征进行整合,实现高效的分类决策。其非线性激活函数和 softmax 输出层能够将特征映射到类别概率分布,提供精确的分类结果。

  4. 良好的鲁棒性:CNN 的池化层和卷积层的局部连接特性使其对图像的平移、缩放和旋转具有一定的不变性,增强了模型对不同心电信号变化的鲁棒性。

三、方法流程

(一)数据预处理

        1、数据读取与筛选:从 MIT-BIH 心律失常数据库中读取心电信号数据,包括 .dat 文件(原始信号数据)、.hea 文件(头文件,包含采样率、增益等信息)和 .atr 文件(注释文件,包含 R 峰位置和标签信息)。根据注释文件中的标签信息,筛选出属于正常心搏(N)、室性早搏(V)、左束支传导阻滞(L)、右束支传导阻滞(R)四类的心电信号。

图8:数据划分结果图

(这里可以选择不同类别的心律失常,并根据MIT分类标签替换对应的标签字符)

%% 标签字典(AAMI 规则)
map = containers.Map({1, 5, 2, 3}, {'N', 'V', 'L', 'R'});  % MIT分类标签对应字符

     

  2、心拍提取:根据注释文件中的 R 峰位置,以每个 R 峰为中心,向前取 100 个采样点,向后取 200 个采样点,组成长度为 300 个采样点的心拍。将提取的心拍按类别分别存储。

图9: L 类、N 类、R 类和 V 类的心拍提取图像

        3、数据归一化:对提取的心拍数据进行归一化处理,将信号幅值归一化到 [0, 1] 范围内,以消除不同信号之间的幅值差异,提高模型训练的稳定性和收敛速度。

(二)小波去噪

       心电信号在采集过程中容易受到各种噪声的干扰,如基线漂移、肌电干扰等。为了提高信号质量,采用小波去噪方法对心拍数据进行预处理。小波去噪的基本原理是通过小波变换将信号分解为不同尺度的系数,然后对小波系数进行阈值处理,最后通过逆小波变换重建信号。具体步骤如下:

        1、选择小波函数和分解层次:根据信号的特点和去噪要求,选择合适的小波函数(如 db4)和分解层次。分解层次的选择应综合考虑信号的长度和噪声特性,一般通过计算最大可能的分解层次并适当调整来确定。

        2、小波分解:对心拍信号进行小波分解,得到不同尺度的近似系数和细节系数。

        3、阈值处理:对细节系数进行阈值处理,采用软阈值或硬阈值方法去除噪声成分。阈值的选择可以通过经验公式或自适应方法确定。

        4、信号重建:利用处理后的近似系数和细节系数进行逆小波变换,重建去噪后的心电信号。

(三)CWT 图像生成

        为了将一维心电信号转换为二维图像,以便利用 CNN 进行处理,采用连续小波变换(CWT)生成信号的时频图像。具体步骤如下:

        1、选择小波函数和尺度范围:选择合适的小波函数(如 Morlet 小波)和尺度范围,以覆盖心电信号的主要频率成分。

        2、计算 CWT 系数:对去噪后的心拍信号进行 CWT,得到时频域内的小波系数矩阵。

        3、生成图像:将小波系数矩阵转换为图像,其中横轴表示时间,纵轴表示尺度(对应频率),颜色表示小波系数的幅值。通过调整图像的显示范围和颜色映射,增强图像的可视化效果。

 

图10:通过 CWT 变换得到的 L 类、N 类、R 类和 V 类的图像

(四)CNN 模型训练

        1、构建 CNN 网络结构:设计一个适合心律失常分类的 CNN 网络结构,包括输入层、多个卷积层、池化层、全连接层和输出层。卷积层用于提取图像的局部特征,池化层用于降维和增强鲁棒性,全连接层用于实现最终的分类决策。输出层采用 softmax 激活函数,将输出映射到各类别的概率分布。

图11:CNN模型结构图

        2、数据集划分:将生成的 CWT 图像数据集按一定比例划分为训练集、验证集和测试集,通常训练集占 70%,验证集占 15%,测试集占 15%。训练集用于模型参数的更新,验证集用于模型的选择和超参数的调整,测试集用于最终模型性能的评估。

        

        3、模型训练:使用训练集对 CNN 模型进行训练,通过优化算法(如 Adam 优化器)最小化损失函数(如交叉熵损失函数),更新网络参数。在训练过程中,定期使用验证集评估模型性能,防止过拟合,并根据验证结果调整训练策略,如调整学习率、增加正则化等。

        下表展示的是 CNN 模型结构:

表1:卷积神经网络CNN架构概述

Layer

Type

Parameters

Output Size

Input

Image Input Layer

224×224×1

224×224×1

Conv1 + ReLU + Pool

Conv(3×3, 16) + MaxPool(2)

Stride=2, Padding=1

56×56×16

Conv2 + ReLU + Pool

Conv(3×3, 32) + MaxPool(2)

Padding=same

28×28×32

Conv3 + ReLU + AvgP

Conv(3×3, 64) + AvgPool(7)

Padding=same

4×4×64

FC1 + Dropout

Fully Connected + Dropout

128 neurons, Dropout 0.3

128

FC2

Fully Connected

64 neurons

64

Output

Fully Connected + Softmax

4 neurons

4 (class probs)

(五)SVM模型

        支持向量机(SVM)是一种强大的有监督学习分类器,它能在高维特征空间中找到最优超平面以区分各类别。这种方法对于那些在原始特征空间中数据并非线性可分但在更高维空间中可通过核函数实现分离的分类任务特别有效。为了进一步提升分类性能,提取 CNN 模型中间层的特征(如全连接层的输出),将其作为支持向量机(SVM)模型的输入,训练 SVM 分类器。

        其中:

        xi : 从卷积神经网络(CNN)中提取的特征向量。

        xi∈-1,1 : 类别标签。

        C : 正则化参数,用于控制最大化间隔与最小化分类误差之间的权衡。

        w :权重向量。

        b : 偏差项。

        ξi : 松弛变量,允许存在一些误分类。

       目标函数  的作用在于最大化不同类别的间隔,而项  则用于惩罚错误分类。参数 C 是一个超参数,需要进行调整以平衡最大化间隔和最小化分类错误之间的权衡。

图12:支持向量机模型结构图

        利用 SVM 模型对测试集进行分类,并评估其分类性能。通过比较 CNN 模型和基于 CNN 特征的 SVM 模型的分类结果,分析混合模型的优势。

四、实验结果与分析

        (一)数据划分

        本次实验采用 MIT-BIH 心律失常数据库,该数据库包含 48 个心电信号记录,采样率为 360Hz,每个记录包含两个导联(MLII 和 V1)。每个记录的时长约为 30 分钟,涵盖了正常和多种异常心律失常类型。通过读取数据文件并按照 AAMI 规则进行标签映射,将数据划分为四个类别:L(左束支传导阻滞)、N(正常)、R(右束支传导阻滞)、V(室性早搏)。

图13:原始数据划分为L类、N类、R类和V类的预处理过程

     (二)生成CWT图像        

        对心拍信号进行小波去噪,去除噪声干扰。并使用连续小波变换(CWT)将去噪后的一维心拍信号转换为二维图像,图像尺寸统一调整为 224×224 像素。

      

图14:V类的CWT图像生成过程图 

        模型训练过程如下所示:

图15:模型训练过程图

图16:CNN混淆矩阵结果

图17:CNN-SVM混淆矩阵结果

        为了比较基线卷积神经网络(CNN)和混合卷积神经网络 - 支持向量机(CNN-SVM)方法的效能,对这两个模型均在相同的测试数据集上进行了评估。分析了分类准确率和各类别的表现,特别关注了该模型区分形态相似的心跳类型的能力。

        下表展示的是不同模型结果对比:

表2:CNN与CNN-SVM的模型结果对比指标

Model

Acc%

Sen%

Spe%

CNN

98.45%

98.47%

99.47%

CNN+SVM

98.99%

99.03%

99.66%

        CNN 模型的测试准确率为 98.45%,在类别 N 和 V 上表现尤为出色。而利用全连接层 fc2 提取的 64 维特征的 CNN-SVM 模型进一步将准确率提高到 98.99%。SVM 在最大化间隔方面的能力显著提高了泛化能力,特别是在减少 L 和 R 类之间的混淆方面效果显著。这通过 CNN-SVM 模型(98.99% 对于 CNN 的 98.45%)的优越准确率得以体现,同时 L 和 R 类之间的误分类显著减少,从而验证了这种混合方法在细微心律失常检测方面的临床实用性。

五、结论与展望

(一)总结

        本文提出了一种基于小波变换和 CNN 的心律失常分类方法。通过小波去噪和 CWT 图像生成,将一维心电信号转换为二维图像,利用 CNN 模型自动学习图像特征,并通过 SVM 模型进一步提升分类性能。实验结果表明,该方法能够有效分类不同类型的心律失常,具有较高的准确率和较好的泛化能力,为心律失常的自动诊断提供了一种新的技术手段。

(二)创新点

        1、结合小波变换和 CNN 模型,充分发挥两者优势,利用小波变换提取信号的时频特征,通过 CNN 模型自动学习深度特征,实现对心律失常信号的高效、准确分类。

        2、提取 CNN 中间层特征并用于 SVM 训练,构建混合模型,进一步提高分类效果,充分利用两种模型的特点,弥补单一模型的不足。

        3、采用 CWT 图像生成方法将一维心电信号转换为二维图像,为 CNN 模型的应用提供了合适的数据形式,同时增强了信号特征的可视化和可分性。

六、参考文献

[1] Moody GB, Mark RG. The impact of the MIT-BIH Arrhythmia Database. IEEE Eng Med Biol Mag. 2001;20(3):45-50.

[2] Acharya UR, et al. Deep convolutional neural network for the automated detection and diagnosis of arrhythmias. IEEE Journal of Biomedical and Health Informatics. 2017;21(4):1329-1338.

[3] Cortes C, Vapnik V. Support-Vector Networks. Mach Learn. 1995;20(3):273-297.

[4] Zhang Y, et al. Deep learning for image-based arrhythmia detection. IEEE J Biomed Health Inform. 2020;24(1):252-261.

Tips:下一讲,我们将进一步探讨,心电信号处理与应用的其他内容。

以上就是基于连续小波变换(CWT)和卷积神经网络(CNN)的心律失常分类算法的全部内容啦~

我们下期再见,拜拜(⭐v⭐) ~

(Ps:有代码实现需求,请见主页信息,谢谢支持!~)

相关文章:

  • 柴油发电机组接地电阻柜的作用
  • 【Maven打包错误】 Fatal error compiling: 错误: 不支持发行版本 21
  • figma 和蓝湖 有什么区别
  • Caliper 配置文件解析:config.yaml
  • 35.成功解决编写关于“江协科技”编写技巧第二期标志位积累的问题
  • java教程笔记(十一)-泛型
  • SQL进阶之旅 Day 18:数据分区与查询性能
  • dfn序的应用 (P1273 有线电视网题解)
  • torch-points3d-SiamKPConvVariants算法复现之疑难杂症
  • EDA断供危机下的冷思考:中国芯片设计软件的破局之道优雅草卓伊凡
  • RocketMQ入门5.3.2版本(基于java、SpringBoot操作)
  • 【分享】推荐一些办公小工具
  • 前段三剑客之JavaScript-02
  • CDN:静态资源如何加速?
  • 【动手学深度学习】3.1. 线性回归
  • PhpStorm代码编辑器内置数据库配置与使用
  • 关于华为仓颉编程语言
  • 【使用conda】安装pytorch
  • Matlab实现任意伪彩色图像可视化显示
  • 前端~三维地图(cesium)地图遮罩蒙层
  • 报社网站开发做什么/网络推广推广
  • 网站建设mdf/关键词搜索趋势
  • 阿里云服务的官方网站/广州网站快速优化排名
  • 上海哪里做网站比较好/正规营销培训
  • 郓城做网站网络公司/宁波网站推广找哪家公司
  • 网站备案 取消/广告软文200字