1. 心电图信号处理概述
心电图(ECG)信号是临床诊断中最常用的生物电信号之一,它记录了心脏电活动随时间变化的波形。典型的ECG信号包含P波、QRS波群和T波等特征波形,这些波形的形态、幅度和时间间隔对心脏疾病的诊断至关重要。然而在实际采集过程中,ECG信号往往会受到多种噪声干扰,主要包括:
- 基线漂移(0.05-2Hz):由呼吸运动和电极接触不良引起
- 工频干扰(50/60Hz):来自电源线的电磁干扰
- 肌电噪声(5-2000Hz):肌肉活动产生的随机高频噪声
- 运动伪迹:由患者移动导致的低频干扰
传统的滤波方法如FIR、IIR滤波器在处理ECG信号时存在局限性,因为它们需要预先确定噪声频带,而ECG信号和噪声的频带往往存在重叠。经验模态分解(EMD)作为一种自适应信号处理方法,能够有效解决这一问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. EMD算法原理详解
2.1 EMD基本概念
EMD(Empirical Mode Decomposition)是由Huang等人提出的一种自适应信号分解方法,特别适合处理非平稳、非线性信号。其核心思想是将复杂信号分解为有限个本征模态函数(IMF)和一个残余项:
code复制原始信号 = IMF1 + IMF2 + ... + IMFn + 残余项
每个IMF必须满足两个条件:
- 极值点数量与过零点数量相等或最多相差1
- 由局部极大值和局部极小值定义的包络线均值为零
2.2 EMD分解步骤
- 识别信号x(t)的所有极值点
- 用三次样条插值连接极大值点形成上包络线emax(t),连接极小值点形成下包络线emin(t)
- 计算均值包络线:m(t) = [emax(t)+emin(t)]/2
- 提取细节分量:h(t) = x(t) - m(t)
- 判断h(t)是否满足IMF条件,若满足则作为IMF,否则重复步骤1-4
- 从原始信号中减去IMF,对剩余信号重复上述过程
2.3 EMD在ECG去噪中的优势
- 完全数据驱动,无需预设基函数
- 能自适应处理非平稳信号
- 可有效分离不同时间尺度的信号成分
- 特别适合处理ECG这种瞬时频率变化的信号
3. MATLAB实现ECG信号EMD去噪
3.1 数据准备与预处理
matlab复制%
