心肺复苏(CPR)过程中实施的胸外按压引起的伪迹会严重降低除颤节律辨识的可靠性。本文提出了一种无需参考信号的CPR伪迹自适应滤除算法。结合经验模态分解(EMD)和独立成分分析(ICA),将真正的心电节律信号从受CPR伪迹干扰的心电信号中分离出来。为评估算法的效果,构建了一个用于除颤节律辨识的反向传播神经网络。采集了1 484例受CPR伪迹干扰的猪的心电信号用于实验。实验结果表明,该算法可以在很大程度上抑制CPR伪迹的影响,从而显著提高CPR过程中除颤节律辨识的准确性。
引用本文: 余明, 陈锋, 张广, 李良喆, 王春晨, 王丹, 詹宁波, 顾彪, 吴太虎. 基于经验模态分解与独立成分分析的心肺复苏伪迹自适应滤除算法. 生物医学工程学杂志, 2016, 33(5): 834-841. doi: 10.7507/1001-5515.201600135 复制
引言
院外心脏骤停是一种严重威胁人类健康的致死性疾病[1-3]。高质量的胸外按压和及时的早期电除颤,是心肺复苏(cardiopulmonary resuscitation, CPR)的关键环节[4-5]。但是,胸外按压过程中所引起的CPR伪迹会给除颤节律辨识算法带来严重干扰,从而显著降低辨识结果的可靠性。按照目前的方式,在实施电除颤前,为了准确进行除颤节律辨识,要中断胸外按压15 s以上[6]。然而,胸外按压的长时间中断,将严重阻碍患者建立自主循环,从而导致CPR的失败[7]。显然,如果构建一种算法,能在受干扰的心电信号中滤除CPR伪迹,提取出真正的心电节律信号,则可以在不间断胸外按压的同时实施可靠的除颤节律辨识,从而有效提高CPR的成功率。
最早关于滤除CPR伪迹的研究是在猪的心脏模型上开展的,研究结果表明一个固定截止频率的高通滤波器就可以将猪的心电信号和CPR伪迹信号进行频谱分离[8]。但是,CPR伪迹信号和人类心电信号的频谱成分有很大一部分重合,使得这种方法无法应用在人类心电的除颤节律辨识上[9]。因此,一些研究者试图利用一些外部信号作参考,对CPR伪迹建模。其中的一些算法,例如由Eilevstj∅nn等[10]提出的多通道递归自适应匹配滤波器(multichannel recursive adaptive matching pursuit algorithm, MC-RAMP)、由Irusta等[11]提出的基于按压频率的最小均方误差(least mean-square, LMS)滤波器,以及由Gong等[12]提出的基于胸阻抗信号的自适应滤波算法,都取得了很好的效果。但是,目前通用的大部分除颤仪仅仅记录心电信号,这些算法所需的每一项外部参考信号,如按压加速度、按压深度、呼吸阻抗和胸阻抗等,都意味着另外的硬件支持;连接这些参考通道,既占用了宝贵的急救时间,又对院外急救人员提出了过高的专业要求。
也有研究者提出了一些无需参考信号的CPR伪迹滤除算法。这些算法多建立在传统滤波器的基础上,有些试图用纯频率方法将伪迹滤除,有些试图仅利用心电信号对伪迹进行建模;然而,由于CPR伪迹是一种频率成分复杂的非线性信号,这些算法都没有取得令人满意的效果[13]。
与诸如傅里叶变换、小波变换等建立在线性分析基础上的算法相比,经验模态分解(empirical mode decomposition, EMD)和独立成分分析(independent component analysis, ICA)作为新兴的信号处理方法,更适用于分析短时、非稳态、非线性的复杂信号,已经分别在脑电信号分析、胎儿心电信号提取等生物医学信号处理领域得到了应用,并取得很好的效果。本文结合EMD和ICA,提出了一种CPR伪迹的自适应滤除算法,试图在无需任何参考信号的情况下,从受干扰的心电信号中分离出真正的心电节律信号。本文还构建了一个用于区分除颤节律(shockable rhythm)和非除颤节律(nonshockable rhythm)的反向传播(back propagation,BP)神经网络,分别对滤波前后的受干扰的心电信号进行除颤节律辨识,并计算其敏感性和特异性,用来评估该算法的性能。
1 算法设计
受干扰的心电信号可以被看作由真正的心电节律信号和叠加其上的CPR伪迹构成,而这两个成分分别由患者和胸外按压实施者产生,即信号源完全独立;经过ICA后,可以有效地将这两种成分分离开来。由于本文试图在没有任何外部参考信号的情况下完成CPR伪迹的滤除,因此进行ICA时所需的参考信号就需要从受干扰的心电信号本身提取。一些研究证明,CPR伪迹可以近似为一个以胸外按压频率为基础频率的周期信号,且在每一个按压区间,按压频率可以近似为一个常数[11, 14],如果能直接从受干扰的心电信号中得到胸外按压频率,则可以基于该频率构建参考信号。
按照上述假设,本文首先利用EMD的方法从受干扰的心电图信号中近似得到每一次胸外按压的频率;基于得到的按压频率,构建同相和正交的两个参考信号;然后将这两个参考信号和受干扰的心电图信号一起,进行ICA,得到三个互相独立的分量;最后从中选择出所需的分量,即还原出了干净的心电信号。
整个算法流程如图 1所示。

1.1 信号预处理
根据Thakor等[15-16]的研究,获取的心电图信号需要做三方面的预处理:①截止频率为1 Hz的高通滤波器,用来去除残余的基线漂移;②二阶30 Hz巴特沃斯低通滤波器,用来抑制主要由肌肉电信号引起的高频噪声;③50 Hz陷波滤波器,用来消除工频噪声的干扰。
1.2 经验模态分解
EMD是由Huang等[17]于1998年提出的一种旨在处理非线性、非稳态数据的信号处理方法。基于该方法,任何复杂的信号都能被分解为有限个不同时间尺度上的本征模函数(intrinsic mode function, IMF),并将它们按照自身携带的时间尺度特征依次排列。这种算法根据信号自身的时间尺度进行分解,无需预设任何基函数,特别适合非线性非平稳信号的分析处理。在这一步骤中,需要用EMD提取出的信息代替外部参考信号,得到与CPR伪迹相关的胸外按压频率;此时EMD可以起到一个时变滤波器的作用,将与CPR伪迹相关的IMF提取出来[18];再将这些IMF重新合成一个新的信号,就可以很好地反映CPR伪迹的基础频率特征。
为了避免模态混叠,本文采取了在标准EMD上改进的噪声辅助多通道经验模态分解(noise-assisted multivariate empirical mode decomposition, NA-MEMD)方法。Rehman等[19]的研究表明,与标准EMD相比,NA-MEMD能有效解决模态混叠问题。实验发现,当采用三个互相独立且功率均为1 dB的随机高斯白噪声作为MEMD的辅助信号时,效果最好。
应用上述NA-MEMD方法,将受干扰的心电信号分解为有限个IMF,并选择相关IMF重新合成一个信号;将该合成信号的每一个极小值点所在的时刻标记在心电图上,即代表胸外按压最深位置时刻在心电图中对应的位置,得到的结果如图 2所示:从上到下依次是(a)受干扰的窦性节律(sinus rhythm, SR)信号、(b)受干扰的室颤(ventricular fibrillation, VF)信号、(c)受干扰的机电分离(pulseless electrical activity, PEA)信号和(d)受干扰的停搏(asystole, ASYS)信号,图中的“*”标记胸外按压最深位置时刻在心电图上对应的位置,该标记由上述NA-MEMD方法得到。可以看出,这些标记能很好地反映CPR伪迹的基础频率特征。

将由“*”标记的点依次记为ni,即可得到胸外按压的相位函数Φ(n):
$ \Phi \left( n \right) = \frac{{2{\rm{\pi }}}}{{\nabla {n_i}}}\left( {n - {n_i}} \right) + i \times 2{\rm{\pi }}\;\;{{\rm{n}}_i} \le n < {n_{i + 1}} $ |
得到该相位函数后,构造与CPR同相和正交的两路参考信号,分别记为r_cos(n)和r_sin(n):
$ r\_\cos \left( n \right) = \cos \left( {\Phi \left( n \right)} \right) $ |
$ r\_\sin \left( n \right) = \sin \left( {\Phi \left( n \right)} \right) $ |
1.3 独立成分分析
ICA又称盲信号分离,是一种在源信号及其组合关系均未知的情况下,仅利用观测信号分离出源信号的方法,在语音处理、图像处理、生物电信号处理等各个领域均得到广泛应用。自从ICA的概念提出以来,不同学者基于不同的目标函数和优化算法,提出很多种盲信号分离算法。本文采用Hyvärinen等[20-22]提出的基于负熵的快速固定点算法(fast fixed-point algorithm for independent component analysis, FastICA),该算法具有较快的收敛速度,且与基于峭度的算法相比具有更好的鲁棒性,更适合于特征多变、噪声复杂的心电信号处理。
首先结合受干扰的心电信号和上述构造的两路参考信号,组成矩阵作为观测信号:
$ s\left( n \right) = \left[ {{S_{{\rm{ECG\_MIXED}}}}\left( n \right),r\_\cos \left( n \right),r\_\sin \left( n \right)} \right] $ |
将此观测信号进行去均值和白化处理;处理后的观测信号按照文献[20]中描述的方法进行计算,迭代更新分离向量,直至算法收敛;为了避免意外,将最大迭代次数限制为1 000次,如果迭代次数超过上限而算法仍未收敛,则停止迭代,转而选取白化处理后的观测信号作为替代结果。
盲信号分离后获得的结果仍然是一个三维矩阵x(n),且各个成分出现的顺序并不确定,因此需要进行分析选择:分别计算结果里每个分量与两路参考信号的相关系数的绝对值:
$ C\_{\cos _i} = \left| {\frac{{\sum {{x_i}\left( n \right)r\_\cos \left( n \right)} }}{{\sqrt {\sum {x_i^2\left( n \right)} \sum {r\_{{\cos }^2}\left( n \right)} } }}} \right| $ |
$ C\_{\sin _i} = \left| {\frac{{\sum {{x_i}\left( n \right)r\_\sin \left( n \right)} }}{{\sqrt {\sum {x_i^2\left( n \right)} \sum {r\_{{\sin }^2}\left( n \right)} } }}} \right| $ |
与某一路参考信号相关系数的绝对值最高的分量即为该参考信号在结果中的估计,这种分量不是所需的信号;依次去掉这种分量后剩下的结果,即被认为是还原出的干净的心电信号。
1.4 BP神经网络构建
还原出干净的心电信号后,本文构建了一个BP神经网络作为二分类器使用,根据心电信号的一些特征值,将其分为除颤节律和非除颤节律两类。神经网络已经被广泛应用于心电节律辨识上,并且取得了良好的效果[23-24]。根据Li等[25]的验证,结合Jekova等[26]提出的特征值Count2和Kuo等[27]提出的特征值滤波泄露量(Leakage),进行除颤节律辨识,准确性可高达96.3%;特征值Count2和Leakage分别可用如下方式得到。
(1)Count2:
首先将心电信号S通过如下带通滤波器:
$ FS\left( n \right) = \frac{{14 \times FS\left( {n - 1} \right) - 7 \times FS\left( {n - 2} \right) + \frac{{S\left( n \right) - S\left( {n - 1} \right)}}{2}}}{8} $ |
再求得上述滤波器输出信号的绝对值AbsFS,并计算出每秒钟该绝对值的最大值max(AbsFS)、平均值mean(AbsFS)和平均绝对偏差MD。
最后,按照以下方法,分别计算出长度为10 s样本中Count1、Count2、Count3三个值的大小:Count1范围: 0.5×max(AbsFS)至max(AbsFS); Count2范围: mean(AbsFS)至max(AbsFS); Count3范围: mean(AbsFS)-MD至mean(AbsFS)+MD。
(2)Leakage:
将心电信号S通过一个窄带宽带阻滤波器,这个滤波器的中心频率为心电信号的均值频率,通过滤波器后的残余信号即为Leakage:
$ {\rm{Leakage}} = \frac{{\sum\limits_{i = 1}^m {\left| {s\left( i \right) + s\left( {i - \frac{T}{2}} \right)} \right|} }}{{\sum\limits_{i = 1}^m {\left| {s\left( i \right)} \right| + \left| {s\left( {i - \frac{T}{2}} \right)} \right|} }} $ |
其中,T为心电信号的均值频率:
$ T = 2{\rm{\pi }}\frac{{\sum\limits_{i = 1}^m {\left| {s\left( i \right)} \right|} }}{{\sum\limits_{i = 1}^m {\left| {s\left( i \right) - s\left( {i - 1} \right)} \right|} }} $ |
这两个值组成的特征向量metric=[Count2, Leakage],作为BP神经网络中的输入向量。
如图 3所示,本文设计了一个三层BP神经元网络:输入层单元数为2,对应二维的输入向量;输出层单元数为1,输出为1表示结果为除颤节律, 输出为0表示结果为非除颤节律。经试验,隐层的单元数为2时,神经网络具有很好的性能。

2 实验
2.1 数据库
实验所需的心电数据采集自12头成年猪;在麻醉条件下,将低压的交流电通入猪的心室壁上,导致其心电变为VF节律,数分钟后由一名急救科的医生进行CPR,全程记录实验过程中猪的心电、主动脉压等各项生理信号。
实验共采集了1 484例受CPR伪迹干扰的心电信号,这些信号由专家综合当时的心电信号、胸外按压前后的心电表现和主动脉压等其他生理参数进行了分类标注:其中810例SR信号,237例VF信号,170例PEA信号和267例ASYS信号。为了对1.4中描述的BP神经网络进行训练和验证,实验还采集了800例未受CPR伪迹干扰的心电信号,包含SR、VF、PEA、ASYS各200例。将各类信号随机平均分为两部分,分别组成神经网络的训练集和验证集。所有的心电信号都以250 Hz的采样频率采样,每个样本长度均为10 s。
为评估本文提出的滤波算法的性能,实验选择了准确性好且应用广泛的由Ruiz de Gauna等[14]设计的卡尔曼滤波器作为比较:将1 484例受CPR伪迹干扰的心电信号分别在不滤波、通过卡尔曼滤波器和通过本文设计的EMD+ICA自适应滤波器三种情况下,由训练好的BP神经网络进行除颤节律辨识,并统计出每一种情况下辨识的敏感性(即正确识别出除颤节律的概率)和特异性(即正确识别出非除颤节律的概率),以及每一类心电节律辨识的准确性。
2.2 滤波器效果
图 4和图 5分别是对受干扰的SR信号和ASYS信号进行ICA后的结果。从图中可以看出,所需的心电信号在分离出的三个独立分量中出现的位置并不固定,且存在反相现象,这就是本文选择用相关系数的绝对值作为判断所需信号依据的原因;与受干扰的心电信号相比,还原出的心电信号中CPR伪迹得到了明显的抑制,更加接近真实的心电信号。


2.3 除颤节律辨识结果与分析
表 1展示了不同情况除颤节律辨识的敏感性和特异性。“无CPR伪迹”一栏的结果代表训练好的BP神经网络在验证集中的表现,高达97.00%的敏感性和98.67%的特异性,证明构建的BP神经网络对于除颤节律辨识具有很好的性能。对比“无CPR伪迹”和“不滤波”两栏的数据可以看出,CPR伪迹对除颤节律辨识的主要影响是大大降低了辨识算法的特异性,特别是无法正确区分SR节律信号和ASYS信号;这就意味着在CPR伪迹的干扰下,辨识算法更容易将SR信号和ASYS信号判断为除颤节律。

应用结合NA-MEMD与FastICA设计的自适应滤波器后,除颤节律辨识的特异性有了显著提升(17.40%);尤其是极大提高了ASYS信号的辨识准确性(43.82%),说明自适应滤波器能很好地滤除受干扰的ASYS信号中的CPR伪迹,从而将其正确辨识为非除颤节律。本文设计的EMD+ICA自适应滤波器与性能已得到普遍承认的卡尔曼滤波器的滤波效果相比,在敏感性、特异性和准确性上都有大致相当甚至更好的表现。
图 6为不同滤波条件下的除颤节律辨识受试者工作特(receiver operating characteristic, ROC)曲线, 在不滤波、卡尔曼滤波器滤波和EMD+ICA自适应滤波器滤波三种条件下,曲线下面积分别是0.920 5、0.973 8、0.976 2。

实验结果表明,应用本文设计的自适应CPR伪迹滤除算法,可以有效抑制CPR伪迹对心电节律辨识的影响,显著提高除颤节律辨识的分类性能。
3 结论
本文结合EMD和ICA,提出了一种CPR伪迹滤除算法,并且基于一个包含1 484例受CPR伪迹干扰的心电信号的数据库进行了实验。实验证明,对于SR、VF、PEA、ASYS四类心电信号,该算法都可以有效抑制受干扰的心电信号中CPR伪迹的成分,得到干净的心电信号,从而显著提高除颤节律辨识的准确性。该算法无需任何外部参考信号,因而可以直接应用在目前的自动体外除颤器(automated external defibrillator, AED)设备中且不必进行任何硬件改动。应用该算法,可以实现在不间断胸外按压的情况下,进行除颤节律的可靠分析,最终有效提高CPR的成功率。
引言
院外心脏骤停是一种严重威胁人类健康的致死性疾病[1-3]。高质量的胸外按压和及时的早期电除颤,是心肺复苏(cardiopulmonary resuscitation, CPR)的关键环节[4-5]。但是,胸外按压过程中所引起的CPR伪迹会给除颤节律辨识算法带来严重干扰,从而显著降低辨识结果的可靠性。按照目前的方式,在实施电除颤前,为了准确进行除颤节律辨识,要中断胸外按压15 s以上[6]。然而,胸外按压的长时间中断,将严重阻碍患者建立自主循环,从而导致CPR的失败[7]。显然,如果构建一种算法,能在受干扰的心电信号中滤除CPR伪迹,提取出真正的心电节律信号,则可以在不间断胸外按压的同时实施可靠的除颤节律辨识,从而有效提高CPR的成功率。
最早关于滤除CPR伪迹的研究是在猪的心脏模型上开展的,研究结果表明一个固定截止频率的高通滤波器就可以将猪的心电信号和CPR伪迹信号进行频谱分离[8]。但是,CPR伪迹信号和人类心电信号的频谱成分有很大一部分重合,使得这种方法无法应用在人类心电的除颤节律辨识上[9]。因此,一些研究者试图利用一些外部信号作参考,对CPR伪迹建模。其中的一些算法,例如由Eilevstj∅nn等[10]提出的多通道递归自适应匹配滤波器(multichannel recursive adaptive matching pursuit algorithm, MC-RAMP)、由Irusta等[11]提出的基于按压频率的最小均方误差(least mean-square, LMS)滤波器,以及由Gong等[12]提出的基于胸阻抗信号的自适应滤波算法,都取得了很好的效果。但是,目前通用的大部分除颤仪仅仅记录心电信号,这些算法所需的每一项外部参考信号,如按压加速度、按压深度、呼吸阻抗和胸阻抗等,都意味着另外的硬件支持;连接这些参考通道,既占用了宝贵的急救时间,又对院外急救人员提出了过高的专业要求。
也有研究者提出了一些无需参考信号的CPR伪迹滤除算法。这些算法多建立在传统滤波器的基础上,有些试图用纯频率方法将伪迹滤除,有些试图仅利用心电信号对伪迹进行建模;然而,由于CPR伪迹是一种频率成分复杂的非线性信号,这些算法都没有取得令人满意的效果[13]。
与诸如傅里叶变换、小波变换等建立在线性分析基础上的算法相比,经验模态分解(empirical mode decomposition, EMD)和独立成分分析(independent component analysis, ICA)作为新兴的信号处理方法,更适用于分析短时、非稳态、非线性的复杂信号,已经分别在脑电信号分析、胎儿心电信号提取等生物医学信号处理领域得到了应用,并取得很好的效果。本文结合EMD和ICA,提出了一种CPR伪迹的自适应滤除算法,试图在无需任何参考信号的情况下,从受干扰的心电信号中分离出真正的心电节律信号。本文还构建了一个用于区分除颤节律(shockable rhythm)和非除颤节律(nonshockable rhythm)的反向传播(back propagation,BP)神经网络,分别对滤波前后的受干扰的心电信号进行除颤节律辨识,并计算其敏感性和特异性,用来评估该算法的性能。
1 算法设计
受干扰的心电信号可以被看作由真正的心电节律信号和叠加其上的CPR伪迹构成,而这两个成分分别由患者和胸外按压实施者产生,即信号源完全独立;经过ICA后,可以有效地将这两种成分分离开来。由于本文试图在没有任何外部参考信号的情况下完成CPR伪迹的滤除,因此进行ICA时所需的参考信号就需要从受干扰的心电信号本身提取。一些研究证明,CPR伪迹可以近似为一个以胸外按压频率为基础频率的周期信号,且在每一个按压区间,按压频率可以近似为一个常数[11, 14],如果能直接从受干扰的心电信号中得到胸外按压频率,则可以基于该频率构建参考信号。
按照上述假设,本文首先利用EMD的方法从受干扰的心电图信号中近似得到每一次胸外按压的频率;基于得到的按压频率,构建同相和正交的两个参考信号;然后将这两个参考信号和受干扰的心电图信号一起,进行ICA,得到三个互相独立的分量;最后从中选择出所需的分量,即还原出了干净的心电信号。
整个算法流程如图 1所示。

1.1 信号预处理
根据Thakor等[15-16]的研究,获取的心电图信号需要做三方面的预处理:①截止频率为1 Hz的高通滤波器,用来去除残余的基线漂移;②二阶30 Hz巴特沃斯低通滤波器,用来抑制主要由肌肉电信号引起的高频噪声;③50 Hz陷波滤波器,用来消除工频噪声的干扰。
1.2 经验模态分解
EMD是由Huang等[17]于1998年提出的一种旨在处理非线性、非稳态数据的信号处理方法。基于该方法,任何复杂的信号都能被分解为有限个不同时间尺度上的本征模函数(intrinsic mode function, IMF),并将它们按照自身携带的时间尺度特征依次排列。这种算法根据信号自身的时间尺度进行分解,无需预设任何基函数,特别适合非线性非平稳信号的分析处理。在这一步骤中,需要用EMD提取出的信息代替外部参考信号,得到与CPR伪迹相关的胸外按压频率;此时EMD可以起到一个时变滤波器的作用,将与CPR伪迹相关的IMF提取出来[18];再将这些IMF重新合成一个新的信号,就可以很好地反映CPR伪迹的基础频率特征。
为了避免模态混叠,本文采取了在标准EMD上改进的噪声辅助多通道经验模态分解(noise-assisted multivariate empirical mode decomposition, NA-MEMD)方法。Rehman等[19]的研究表明,与标准EMD相比,NA-MEMD能有效解决模态混叠问题。实验发现,当采用三个互相独立且功率均为1 dB的随机高斯白噪声作为MEMD的辅助信号时,效果最好。
应用上述NA-MEMD方法,将受干扰的心电信号分解为有限个IMF,并选择相关IMF重新合成一个信号;将该合成信号的每一个极小值点所在的时刻标记在心电图上,即代表胸外按压最深位置时刻在心电图中对应的位置,得到的结果如图 2所示:从上到下依次是(a)受干扰的窦性节律(sinus rhythm, SR)信号、(b)受干扰的室颤(ventricular fibrillation, VF)信号、(c)受干扰的机电分离(pulseless electrical activity, PEA)信号和(d)受干扰的停搏(asystole, ASYS)信号,图中的“*”标记胸外按压最深位置时刻在心电图上对应的位置,该标记由上述NA-MEMD方法得到。可以看出,这些标记能很好地反映CPR伪迹的基础频率特征。

将由“*”标记的点依次记为ni,即可得到胸外按压的相位函数Φ(n):
$ \Phi \left( n \right) = \frac{{2{\rm{\pi }}}}{{\nabla {n_i}}}\left( {n - {n_i}} \right) + i \times 2{\rm{\pi }}\;\;{{\rm{n}}_i} \le n < {n_{i + 1}} $ |
得到该相位函数后,构造与CPR同相和正交的两路参考信号,分别记为r_cos(n)和r_sin(n):
$ r\_\cos \left( n \right) = \cos \left( {\Phi \left( n \right)} \right) $ |
$ r\_\sin \left( n \right) = \sin \left( {\Phi \left( n \right)} \right) $ |
1.3 独立成分分析
ICA又称盲信号分离,是一种在源信号及其组合关系均未知的情况下,仅利用观测信号分离出源信号的方法,在语音处理、图像处理、生物电信号处理等各个领域均得到广泛应用。自从ICA的概念提出以来,不同学者基于不同的目标函数和优化算法,提出很多种盲信号分离算法。本文采用Hyvärinen等[20-22]提出的基于负熵的快速固定点算法(fast fixed-point algorithm for independent component analysis, FastICA),该算法具有较快的收敛速度,且与基于峭度的算法相比具有更好的鲁棒性,更适合于特征多变、噪声复杂的心电信号处理。
首先结合受干扰的心电信号和上述构造的两路参考信号,组成矩阵作为观测信号:
$ s\left( n \right) = \left[ {{S_{{\rm{ECG\_MIXED}}}}\left( n \right),r\_\cos \left( n \right),r\_\sin \left( n \right)} \right] $ |
将此观测信号进行去均值和白化处理;处理后的观测信号按照文献[20]中描述的方法进行计算,迭代更新分离向量,直至算法收敛;为了避免意外,将最大迭代次数限制为1 000次,如果迭代次数超过上限而算法仍未收敛,则停止迭代,转而选取白化处理后的观测信号作为替代结果。
盲信号分离后获得的结果仍然是一个三维矩阵x(n),且各个成分出现的顺序并不确定,因此需要进行分析选择:分别计算结果里每个分量与两路参考信号的相关系数的绝对值:
$ C\_{\cos _i} = \left| {\frac{{\sum {{x_i}\left( n \right)r\_\cos \left( n \right)} }}{{\sqrt {\sum {x_i^2\left( n \right)} \sum {r\_{{\cos }^2}\left( n \right)} } }}} \right| $ |
$ C\_{\sin _i} = \left| {\frac{{\sum {{x_i}\left( n \right)r\_\sin \left( n \right)} }}{{\sqrt {\sum {x_i^2\left( n \right)} \sum {r\_{{\sin }^2}\left( n \right)} } }}} \right| $ |
与某一路参考信号相关系数的绝对值最高的分量即为该参考信号在结果中的估计,这种分量不是所需的信号;依次去掉这种分量后剩下的结果,即被认为是还原出的干净的心电信号。
1.4 BP神经网络构建
还原出干净的心电信号后,本文构建了一个BP神经网络作为二分类器使用,根据心电信号的一些特征值,将其分为除颤节律和非除颤节律两类。神经网络已经被广泛应用于心电节律辨识上,并且取得了良好的效果[23-24]。根据Li等[25]的验证,结合Jekova等[26]提出的特征值Count2和Kuo等[27]提出的特征值滤波泄露量(Leakage),进行除颤节律辨识,准确性可高达96.3%;特征值Count2和Leakage分别可用如下方式得到。
(1)Count2:
首先将心电信号S通过如下带通滤波器:
$ FS\left( n \right) = \frac{{14 \times FS\left( {n - 1} \right) - 7 \times FS\left( {n - 2} \right) + \frac{{S\left( n \right) - S\left( {n - 1} \right)}}{2}}}{8} $ |
再求得上述滤波器输出信号的绝对值AbsFS,并计算出每秒钟该绝对值的最大值max(AbsFS)、平均值mean(AbsFS)和平均绝对偏差MD。
最后,按照以下方法,分别计算出长度为10 s样本中Count1、Count2、Count3三个值的大小:Count1范围: 0.5×max(AbsFS)至max(AbsFS); Count2范围: mean(AbsFS)至max(AbsFS); Count3范围: mean(AbsFS)-MD至mean(AbsFS)+MD。
(2)Leakage:
将心电信号S通过一个窄带宽带阻滤波器,这个滤波器的中心频率为心电信号的均值频率,通过滤波器后的残余信号即为Leakage:
$ {\rm{Leakage}} = \frac{{\sum\limits_{i = 1}^m {\left| {s\left( i \right) + s\left( {i - \frac{T}{2}} \right)} \right|} }}{{\sum\limits_{i = 1}^m {\left| {s\left( i \right)} \right| + \left| {s\left( {i - \frac{T}{2}} \right)} \right|} }} $ |
其中,T为心电信号的均值频率:
$ T = 2{\rm{\pi }}\frac{{\sum\limits_{i = 1}^m {\left| {s\left( i \right)} \right|} }}{{\sum\limits_{i = 1}^m {\left| {s\left( i \right) - s\left( {i - 1} \right)} \right|} }} $ |
这两个值组成的特征向量metric=[Count2, Leakage],作为BP神经网络中的输入向量。
如图 3所示,本文设计了一个三层BP神经元网络:输入层单元数为2,对应二维的输入向量;输出层单元数为1,输出为1表示结果为除颤节律, 输出为0表示结果为非除颤节律。经试验,隐层的单元数为2时,神经网络具有很好的性能。

2 实验
2.1 数据库
实验所需的心电数据采集自12头成年猪;在麻醉条件下,将低压的交流电通入猪的心室壁上,导致其心电变为VF节律,数分钟后由一名急救科的医生进行CPR,全程记录实验过程中猪的心电、主动脉压等各项生理信号。
实验共采集了1 484例受CPR伪迹干扰的心电信号,这些信号由专家综合当时的心电信号、胸外按压前后的心电表现和主动脉压等其他生理参数进行了分类标注:其中810例SR信号,237例VF信号,170例PEA信号和267例ASYS信号。为了对1.4中描述的BP神经网络进行训练和验证,实验还采集了800例未受CPR伪迹干扰的心电信号,包含SR、VF、PEA、ASYS各200例。将各类信号随机平均分为两部分,分别组成神经网络的训练集和验证集。所有的心电信号都以250 Hz的采样频率采样,每个样本长度均为10 s。
为评估本文提出的滤波算法的性能,实验选择了准确性好且应用广泛的由Ruiz de Gauna等[14]设计的卡尔曼滤波器作为比较:将1 484例受CPR伪迹干扰的心电信号分别在不滤波、通过卡尔曼滤波器和通过本文设计的EMD+ICA自适应滤波器三种情况下,由训练好的BP神经网络进行除颤节律辨识,并统计出每一种情况下辨识的敏感性(即正确识别出除颤节律的概率)和特异性(即正确识别出非除颤节律的概率),以及每一类心电节律辨识的准确性。
2.2 滤波器效果
图 4和图 5分别是对受干扰的SR信号和ASYS信号进行ICA后的结果。从图中可以看出,所需的心电信号在分离出的三个独立分量中出现的位置并不固定,且存在反相现象,这就是本文选择用相关系数的绝对值作为判断所需信号依据的原因;与受干扰的心电信号相比,还原出的心电信号中CPR伪迹得到了明显的抑制,更加接近真实的心电信号。


2.3 除颤节律辨识结果与分析
表 1展示了不同情况除颤节律辨识的敏感性和特异性。“无CPR伪迹”一栏的结果代表训练好的BP神经网络在验证集中的表现,高达97.00%的敏感性和98.67%的特异性,证明构建的BP神经网络对于除颤节律辨识具有很好的性能。对比“无CPR伪迹”和“不滤波”两栏的数据可以看出,CPR伪迹对除颤节律辨识的主要影响是大大降低了辨识算法的特异性,特别是无法正确区分SR节律信号和ASYS信号;这就意味着在CPR伪迹的干扰下,辨识算法更容易将SR信号和ASYS信号判断为除颤节律。

应用结合NA-MEMD与FastICA设计的自适应滤波器后,除颤节律辨识的特异性有了显著提升(17.40%);尤其是极大提高了ASYS信号的辨识准确性(43.82%),说明自适应滤波器能很好地滤除受干扰的ASYS信号中的CPR伪迹,从而将其正确辨识为非除颤节律。本文设计的EMD+ICA自适应滤波器与性能已得到普遍承认的卡尔曼滤波器的滤波效果相比,在敏感性、特异性和准确性上都有大致相当甚至更好的表现。
图 6为不同滤波条件下的除颤节律辨识受试者工作特(receiver operating characteristic, ROC)曲线, 在不滤波、卡尔曼滤波器滤波和EMD+ICA自适应滤波器滤波三种条件下,曲线下面积分别是0.920 5、0.973 8、0.976 2。

实验结果表明,应用本文设计的自适应CPR伪迹滤除算法,可以有效抑制CPR伪迹对心电节律辨识的影响,显著提高除颤节律辨识的分类性能。
3 结论
本文结合EMD和ICA,提出了一种CPR伪迹滤除算法,并且基于一个包含1 484例受CPR伪迹干扰的心电信号的数据库进行了实验。实验证明,对于SR、VF、PEA、ASYS四类心电信号,该算法都可以有效抑制受干扰的心电信号中CPR伪迹的成分,得到干净的心电信号,从而显著提高除颤节律辨识的准确性。该算法无需任何外部参考信号,因而可以直接应用在目前的自动体外除颤器(automated external defibrillator, AED)设备中且不必进行任何硬件改动。应用该算法,可以实现在不间断胸外按压的情况下,进行除颤节律的可靠分析,最终有效提高CPR的成功率。