引言
心电图(Electrocardiogram,ECG)是医学领域一种重要的疾病诊断工具,是判断个人健康的重要依据。ECG数据采集于人体体表,在采集过程不可避免会受到噪声影响,基线漂移、工频和肌电是主要的噪声来源。这给心脏疾病诊断和分析带来巨大的困扰:基线漂移导致ST段偏离基线会被误诊为心肌梗死、冠状动脉供血不足等疾病;工频干扰对P、T波段的影响易被判别为高、低血钾症或心肌缺血、冠心病、高血压等疾病;肌电干扰会掩盖ECG心跳中的细节,从而弱化某些心脏疾病特征。噪声干扰不仅影响医生对心脏疾病的判断,也会对计算机辅助诊断过程中的特征提取及疾病自动识别造成困扰。因此消除掺杂在ECG心跳中的噪声干扰显得尤为重要[。
ECG常用消噪方式有形态滤波、维纳滤波、卡尔曼滤波、经验模态(Emprical mode decomposition,EMD)以及小波阈值滤波等[。小波变换具有时频多分辨功能和较好的数据性,是处理诸如ECG等生物学数据的良好工具,但它对信号分解不具有自适应性[。EMD算法根据数据自身特点进行分解,但其带来的模态混叠效应无法避免[。集合经验模态分解(Ensemble empirical mode decomposition, EEMD)在EMD方法基础上稍作改进,有效提升分解效率[。EMD算法和EEMD算法在ECG去噪领域取得较好效果[,艾延廷等人[将马氏距离与EEMD相结合有效区分出噪声IMF分量,但直接舍去噪声IMF分量会损失一部分信号;Nguyen等人[结合遗传算法较好的全局搜索性能对噪声IMF分量进行自适应阈值去噪,但遗传算法容易陷入局部最优。
针对传统EEMD算法在去除ECG噪声时存在的信、噪分量难于区分和去噪阈值难以确定的问题,本文对EEMD算法进行改进。含噪ECG数据经EEMD分解后得到一系列本征模态函数(Intrinsic mode functions, IMFs),针对噪声层和信号层难以区分问题,引入马氏距离;为更好地处理噪声IMF分量,通过果蝇算法计算每个噪声IMF最佳阈值,对其中每个分量进行去噪。最后,采用来自MIT-BIH的ECG数据进行对比实验。
1 基本原理
1.1 EEMD算法
EEMD算法在处理生物信号方面取得良好效果,不仅继承EMD算法自适应分解信号的优点,且有效避免EMD算法的模态混叠。该方法通过对原始ECG执行多次EMD分解,并在每次分解时加入白噪声,分解效果与分解次数呈正比。这些IMF分量可以用于频谱分析,IMF的频率随着其指数的增加而降低[。
EEMD方法的具体过程[为
(1) 向原始数据x(t)中加入白噪声w(t),得到
$
y\left( t \right) = x\left( t \right) + w\left( t \right)
$
(2) 对信号y(t)进行EMD分解得到
$
y\left( t \right) = \sum\limits_{i = 1}^N { {\rm{im}}{ {\rm{f}}_j}\left( t \right) + {r_N}\left( t \right)}
$
(3) 重复上述步骤(Huang[建议的分解次数为100次),得到
$
{y_i}\left( t \right) = \sum\limits_{i = 1}^N { {\rm{im}}{ {\rm{f}}_{ij}}\left( t \right) + {r_{iN}}\left( t \right)}
$
(4) 对上述的结果求平均,得到最终的IMF分量
$
{\rm{im}}{ {\rm{f}}_j}\left( t \right) = \frac{1}{n}\sum\limits_{i = 1}^n { {\rm{im}}{ {\rm{f}}_{ij}}\left( t \right)}
$
最终EEMD的分解结果为
$
x\left( t \right)