心电信号的房颤自动识别算法

2021-09-26 09:44张明瑞万相奎陈瑞刘俊杰朱彬如
关键词:心电差分房颤

张明瑞, 万相奎, 陈瑞, 刘俊杰, 朱彬如

(湖北工业大学 太阳能高效利用及储能运行控制湖北省重点实验室, 湖北 武汉 430068)

心房颤动是临床最常见的心律失常之一[1].我国现有的房颤患者已超过1 000万,发病率为0.77%左右,且随着人口老龄化的加剧,房颤在人群中发生的概率还会进一步提高[2].临床医学研究表明,房颤在不同患者身上表现出的症状有所不同.有些患者会出现明显的不适,这给他们的家庭带来沉重的心理和经济负担;而另外一些患者则无明显的临床症状.当症状出现时,心血管往往已经发生了器质性的病变,从而导致心力衰竭、冠心病、卒中等严重的并发症,甚至导致死亡.

目前,国内外学者主要基于心房活动特征[3]和RR间期特征[4]对房颤识别算法展开深入研究.其中,基于心房活动特征的房颤自动识别算法准确率较低,主要原因有:1) 相较QRS波群和T波,f波和P波的强度很弱,且受噪声影响较大,所以,在心电图中被准确检测的难度较大[5];2) 房颤发生时,连续不规则的f波可能太过微弱,这会进一步加大检测难度,使准确率降低;3) 房颤发生时,f波的频域段可能会与房室噪声的频域段重叠,若使用频域法,极易造成误诊.针对上述问题,不少学者采取基于RR间期的房颤自动识别算法,以达到提高准确率、降低误诊率的目的[6].但该方法不能有效地区分房颤和窦性心律,因此,很多研究会设置较宽的RR间期,这样又会对短时房颤不敏感,导致漏检.

崔永华等[7]提出一种基于特征提取和多模板匹配的心律失常识别算法,将样本数据库的数据进行特征提取形成特征库,采取两级匹配模板将识别信号和模板库进行匹配,用MIT-BIH数据库验证算法的准确性,结果表明,算法的识别率达到98.5%,不过对复杂的房颤信号检测结果并不理想.李坤阳等[8]利用心电波形的数学形态及小波变换法,检测识别QRS波,提取RR间期及QRS波时限相关参数,利用逻辑树判断法进行分类,算法的准确率达到94.2%,适用于动态心电图分析,但是如果QRS波形不具备典型特征,则其对房颤识别的准确性大大降低.Yeh等[9]使用线性判别分析(LDA)的方法诊断心律失常信号,识别分类左束支阻滞、右束支阻滞、室性期前收缩、房性期前收缩及正常窦性心拍,其识别分类的敏感度分别为91.0%,95.0%,92.6%,84.7%,98.9%.差分阈值法的原理是将心电信号进行差分运算,然后,将差分结果与设定的阈值进行对比,若满足阈值条件,则可认为找到R波,由于心电信号幅度的变化,可能会导致误检.差分阈值法原理简单,能够有效抑制低频干扰,但对于高频信号敏感,抑制高频干扰的效果较差[10].

以上几种检测算法都是根据信号的波形形态结构特征实现的,优点是对不同波形结构特征的心电波形比较直观,缺点是对噪声干扰比较敏感、难以准确表征心电信号的波形变化、提取的信号特征较少、容易发生误判.基于此,本文提出一种基于心电信号(ECG)的房颤自动识别算法.

1 R波识别

1.1 R波识别算法

1.1.1 峰值检测 检测某段心电数据的峰值时,首先,使用二阶差分法计算该段数据的差分值并进行动态扫描,二阶差分值ECG_Peak的公式为

ECG_Peak(n,k)=x(n)-x(n-k)+x(n)-x(n+k).

(1)

式(1)中:n表示第n个波峰;k为采样点间隔,一般取值为1.

用PEAK表示各样本点峰值参数ECG_Peak(n,k)的最大值为

PEAK=max(ECG_Peak(n,k)).

(2)

一般将ECG_Peak(n,1)≥0.5 mV时的样本信号认定为心脏起搏器信号[11],进行峰值检测时将其排除,避免其产生的干扰对R波的检测造成影响.

1.1.2 选取阈值 一般情况下,R波是心电图中幅值最大的部分,但偶尔出现的大T波会对R波检测产生严重干扰,为了消除这种干扰,保证R波峰值检测的准确率,一般选取待检段内峰值参数最大值的20%~40%作为触发点.将阈值设定为峰值参数最大值的20%,25%,30%,35%和40%计算所得的结果与MIT-BIH数据库提供的标准R波进行比较,得到阈值设定为峰值参数最大值的30%时准确率最高,因此,选取该阈值作为起始触发点,再将初检出的备选R波存入R波位置数组中.

1.1.3 R波验证 使用指数移动平均[12]的方法实时验证R波,指数移动平均(EMA)可用公式表示为

EMA_H(i)=(1-k)×(H(i)-1)2+k×EMA_H(i-1).

(3)

式(3)中:H(i)表示相邻R波幅值的差值,H(i)=h(i+1)-h(i),h(i)为R波的幅值;k=1-1/ns,ns为样本的数量,EMA_H(1)=H(1).

验证R波是为了避免并排除多检和漏检情况,方法如下.

1) 若H(i)≥1.5×EMA_H(i),说明区间[h(i-1),h(i)]内有R波被漏检了.排除的方法是将原峰值参数的一半设定为新的阈值,然后在区间[h(i-1)+120,h(i)-280]内作二阶差分,若计算结果满足新的阈值条件,则认为此区间内幅值最大点为被漏检的R波.

2) 若H(i)≤0.4×EMA_H(i),说明区间[h(i-1),h(i)]内有其他点被误检为R波.排除的方法是比较Value_h(i)与Value_h(i+1)对应两点的信号幅值,并将低幅值删除.

R波验证时,心动周期的个数一般选取20~200个.将心动周期个数分别为20,50,100,150和200的检测结果进行比较,并选取与标准R波数最接近的作为最终检测结果.

1.1.4 选择窗口 心脏功能有一段总时长约为300 ms的不应期时间,为提高检测速度并最大限度地检测出R波,将该窗口时间设定为280 ms.R波检出示意图,如图1所示.在实际的程序设计中,需重复如下步骤:1) 检索触发点,即心电图中超过所设定阈值的点;2) 检索从触发点开始往后的120 ms,并将这个时间段内幅值最大的点作为待验证的R波;3) 使用指数移动平均的方法验证上一步中初检出的R波,排除误检R波的情况;4) 依据心脏功能不应期的原理,每确定一个R波,即从此位置开始通过一个窗口的时间,再检测下一个R波.

图1 R波检出示意图 Fig.1 Schematic diagram of R-wave detection

1.2 R波识别算法的改进

心电图片段,如图2所示.图2中:U为电压;N为样点数.

图2(a)中:负向的S波大于正向的R波.使用ECG_Peak(n,k)绝对值计算心电信号中的峰值参数最大值时,可能会出现很大的负向S波,其绝对值过大会导致检测不到R波.所以,在计算最大值时,如果判断出PEAK<0,就将所有心电数据加一个zero值,即将心电信号整体向上平移,从而排除因基线漂移导致峰值参数为负数的情况,保证R波检测的准确性.

在检测R波的过程中,可能出现最多的情况就是大T波的出现(图2(b)),图中标注的R波比T波小,会导致程序将T波误检为R波,但该片段上的RR间期比EMA的阈值小,所以这个点会被删除,造成该片段的RR间期变大.为解决这个问题,在程序设计时,对该段作二阶差分并计算一阶差分值,将两条件相结合识别R波.因为在心电图中R波是变化最剧烈的部分,且斜率也一般大于其他波,所以在待检区域内检测到满足一阶差分和二阶差分相应阈值的交叉点时,认为是R波所在的位置.

(a) 片段1 (b) 片段2图2 心电图片段 Fig.2 Electrocardiogram segments

一个健康的人心率为60~100 次·min-1,但房颤患者的心率会显著增大,可达200 次·min-1.若将窗口时间固定在280 ms,则当心率大于210 次·min-1时,会导致R波漏检.当上述问题出现时,需在计算过程中实时调整窗口时间,将窗口时间调整为200 ms.

2 房颤识别

2.1 房颤识别算法

基于RR间期比值法[13]进行房颤识别研究,RR间期比值的公式为

图3 RR间期与房颤的权重关系 Fig.3 Weight relationship between RR interval and atrial fibrillation

(4)

式(4)中:F(n)表示房颤标识率.

RR间期与房颤的权重关系[14],如图3所示.根据图3结合式(4),得到拐点、F(n)和权重关系,如表1所示.根据表1定义如下:

1) 当F(n)∈(0.02,0.15)时,该样本是房颤样本的可能性很大;

2) 当F(n)<0.02或F(n)>0.15时,该样本是房颤样本的可能性很小.

表1 拐点、F(n)和权重关系Tab.1 Inflection point, F(n) and weight relation

2.2 房颤识别算法的改进

RR间期比值法识别房颤的灵敏度超过90%,阳性预测率超过96%[15].但该过程只是对房颤作了初步的判断,不能准确识别出房颤片段.为进一步提高识别准确率,筛选有效的房颤片段,根据临床经验,设定以下3条判别规则.

1) 若连续两个RR间期的差值即ΔRR>0.12 s,则认为是心率不齐;否则,认为是心率匀齐.

2) 临床数据显示,房颤一般连续发生,且持续时间在10 s以上,因此,找出单个发生的心率不齐对临床指导意义不大.为筛选出有临床指导意义的房颤片段,将房颤片段持续时间的阈值设置为8 s.

3) 临床诊断中,医生最关注病人是否患有房颤和房颤所属类型[13,16],从而设计对应的治疗方案,而房颤包含多少个心动周期对临床诊断和治疗意义都不大,这也是房颤识别不同于早搏之处.

2.3 房颤识别流程

首先,读取MIT-BIH心律失常数据库中的一个数据文件,确定R波位置,并计算ΔRR的个数n.然后,计算每个ΔRR的值,将小于0.1 s的置零.接着,计算ΔRR为0的个数m,并判断m与n是否相等,若相等,说明该心电样本不包含房颤片段;若不等,则需进一步判断m是否为零.若m为零,表示所有心动周期均不匀齐,该心电样本是持续性或永久性房颤的可能性很大;若m小于n,则应依据公式计算该心电样本的房颤标识率F(n).若F(n)的值不在设定的阈值范围内,则认为该心电样本不包含房颤片段;若F(n)在设定的阈值范围内,则需进一步统计ΔRR连续不为0的个数k.若k>8(时间)×f(采样频率),则认为找到一个房颤片段;若k<8×f,则认为该片段不是房颤片段,并将其滤除.

2.4 实验结果

阴性预测率(NPV)反映检测结果为阴性受试者中真正未患病的比例,即排除非患者的能力.特异性(SP)反映正确判断非病人的概率.NPV,SP的表达式分别为

(5)

(6)

表2 真实类别与决策类别的可能关系Tab.2 Possible relationship between real category and decision category

式(5),(6)中:TN表示正确检出的非房颤R波数;FP表示误检的房颤R波数;FN表示漏检的房颤R波数.

真实类别与决策类别的可能关系,如表2所示.表2中:TP表示正确检出的R波数.

实验数据来自MIT-BIH心律失常数据库中的40个心电样本数据,每个心电样本数据的持续时长为30 min左右.首先,计算每个心电样本经临床验证后的房颤数;然后,与MIT-BIH数据库中提供的标准房颤数进行对比;最后,计算其对应的NPV和SP.房颤识别的实验数据,如表3所示.表3只展示了部分心电样本的实验结果,其他未展示的心电样本阴性预测率和特异性均为100%.

表3 房颤识别的实验数据Tab.3 Experimental datas of atrial fibrillation recognition

将文中算法与其他常用房颤识别算法[17-18]对相同数据集检验的结果进行比较,如表4所示.由表4可知:文中所提算法的阴性预测率和特异性均高于其他房颤识别算法.

表4 文中算法与其他房颤识别算法的对比Tab.4 Comparison of proposed algorithm with other algorithms for atrial fibrillation recognition

在Window 10,Intel core i7,内存16 GB环境下,房颤识别算法单份样本识别时间约为22.5 s,对非房颤样本的预测准确率较高,能够帮助临床医生减少阅读量,即使对房颤样本的灵敏度较低,仍然能检测出房颤片段,不影响临床医生的后续诊断.因为房颤样本中会出现大量偶发性的心率不齐片段,经临床验证后,这些持续时间不长且临床诊断意义不大的片段会被滤除掉,导致检出的房颤数量减少.

3 结束语

针对差分阈值法可能导致R波多检或漏检的问题,引入指数移动平均的方法对初选出的R波进行实时验证.若R波所在的RR间期不在阈值范围内,说明有多检或漏检的情况发生,则需按照设定的方法将R波剔除或找回.针对心电样本中多次出现单个心律不齐的问题,首先,采用RR间期比值法筛选出疑似房颤片段;然后,将小于0.1 s的ΔRR间期认定为心率匀齐并置零,筛选出持续时间大于8 s的房颤片段;最后,将房颤片段分类,并将这些有临床指导意义的片段提交给临床医生判断.改进后的房颤识别算法阴性预测率可达99.7%,特异性可达99.8%,单份样本识别时间约为22.5 s,对非房颤样本的预测准确率较高,能够帮助临床医生排除非房颤片段,减少阅读量,提高工作效率.

猜你喜欢
心电差分房颤
基于融合模糊聚类算法的异常心电多频段弱信号快速捕捉方法
一种基于局部平均有限差分的黑盒对抗攻击方法
一类分数阶q-差分方程正解的存在性与不存在性(英文)
脂肪酸与心房颤动相关性研究进展
心电向量图诊断高血压病左心室异常的临床应用
一个求非线性差分方程所有多项式解的算法(英)
房颤别不当回事儿
卡片式智能心电采集仪
“声名大噪”的跑步神器?
预防房颤有九“招”