自适应双阈值心电信号检测算法研究
2018-07-03陈耿铎曾有灵李喆
陈耿铎, 曾有灵, 李喆
(南方医科大学生物医学工程学院,广东广州510515)
随着人们对移动医疗认识的加深和相应技术的逐步提高,便携式移动心电测量设备逐渐成为民众日常首选心电监测工具,而对其配套的心电自诊断算法也提出了更高的要求[1].经过心电图的筛查还可以进一步检测出各种疾病[2].其中,对心电图(electrocardiogram,ECG)的波形识别和诊断,是心电分析的重中之重.心电信号特征波中的QRS波群的检测与识别更是ECG分析的首要任务,只有将QRS波群确定后才能对其他波形信息进行分析和相应的诊断.QRS波群包括3个连续的波,反映了两心室除极的过程与心室电激动的过程.而QRS波群中高耸的波则是心电图中特征最明显的R波,在心电图临床分析过程中具有重要的意义.在对其分析方法中,差分阈值法具有简单、处理速度快以及易于实现的优点,但是对于掺杂了伪差的数据则漏检率非常高.苏丽等[3]提出的自适应差分阈值法检测正向R波并且以差分法为基础进行Q、S波定位,检出率可达到99.4%以上;双阈值法[4]计算量少、准确率高、抗干扰性强,但对波形失真较严重的心电数据的检测和诊断效果欠佳.本研究在检测R波时,融合上述两种算法的优点,使用双阈值法确定初始阈值后加入阈值自适应修正,从而得到R波初始位置,再对R波进行精确定位,最后在R波前后40点的小区间内寻找Q波和S波,进行QRS波群标记.利用美国麻省理工学院的MIT-BIH心电数据库[5]和临床实测数据对该算法进行检测.实验结果表明,本研究基于自适应差分阈值法和双阈值法提出的改进算法计算量小,对R波、QRS波群检出率高,准确率高,可以满足在移动心电监护系统上实现自诊断的需求.
1 R波的检测
对R波的检测是心电数据分析的首要任务,只有对R波进行准确的检出,才能进一步检测出QRS波群,从而实现心律失常自诊断的功能.对R波的检测,需要对其形态和幅值进行检测,并确定出相应的阈值来适应众多检测对象.在确定出初始阈值后,应加入自适应方法对阈值进行实时修正,以满足连续监护过程中对幅值、形态都发生变化的心电信号的实时检测需求.本文首先根据双阈值法确定初始阈值,然后利用自适应修正对阈值进行更新,从而准确有效地检出R波.
1.1 心电数据预处理
用户的初始心电数据中大量的工频干扰和基线漂移使得波形产生一些毛刺,对心电波形的绘制以及后期的心律不齐自诊断报告有极大影响.因此,心电信号在分析前需预处理.心电信号预处理采用5点平滑滤波法,处理分布最多的工频干扰和基线漂移.5点平滑滤波时域表达式为:
式(1)中,x(k)为单个心电数据的时域表达式;y(k)为5个心电数据进行平滑滤波处理后的心电数据时域表达式.经过预处理,工频干扰和基线漂移得到有效消除.
1.2 双阈值法确定初始阈值
对心电信号进行预处理后,取前800个数据点,计算心电信号的隔项差分,即:
式中,Diff(i)是心电信号这一点的幅值隔项差分值,f(i)是心电信号这一点的幅值.对心电信号采用隔项差分而不是传统的相邻项差分,为了使差分数据更加明显,以便提取心电波形的特征信息.得到前800个数据点的隔项差分值后,找出其中的2个最大值:ECG心电信号最大值MAX_ECG和隔项差分值Diff最大值MAX_Diff,并求出R波的2个检测初始阈值:
式中,ECG_Thrh0为ECG心电信号的阈值,Diff_Thrh0为心电信号各项差分值的阈值,0.6与0.5为经验常数.与传统的差分阈值法相比,这里增加了一重阈值判断,增强了该算法在实际运行中的抗干扰能力,在数据噪声、基线、工频干扰较大的情况下仍然能够准确地提取心电波形的特征信息,提高了该算法检测出R波及作出心电自诊断的准确率.
1.3 检测R波
得到初始的2个检测阈值后,对每个心电数据进行比较以对R波进行检测.每一点都与双阈值进行比对.如果某一心电信号点同时满足2个阈值点对其做减法均得到负值,则在该点的前10点及后15点数据范围内寻找最大值,若该点为最大值则认为检测出1个新的R波峰值点.该点的幅值应满足在该范围内最大,否则不认为该点为1个R波峰值点.
1.4 双阈值的自适应更新
因在连续监护过程中,心电信号的幅值、形态都会随着时间发生变化,所以算法的2个检测阈值不能一直固定不变.为了适应实际情况,应对检测阈值进行实时修正.初始双阈值检测出10个R波点后,用滑动平均的方法对检测阈值进行修正.10个R波后的2个阈值可分别表示为:
式中,i=1,2,3…;C1、C2均是常数,加上这 2个常数的目的在于保证双阈值的大小在稳定的水平,使其在整个检测过程中都能保持一定的准确性.用初始双阈值检测出10个R波后,对双阈值按式(5)和(6)进行自适应修正.此后每一对阈值检测出5个R波后,进行下一轮的阈值自适应更新,再继续检测下1个R波.
1.5 RR间期的计算
RR间期是指心电信号图中,相邻2个R波之间的时间间隔.RR间期是判断心率失常疾病的重要凭证,可以通过RR间期的长短判断某用户是否患有心率失常方面的疾病,故RR间期的准确判断,在心电自诊断中具有重要意义.用双阈值确定R波位置后,即可利用相邻R波之间的时间差计算各个RR间期.但应注意的是,差分后的心电数据与原始的心电数据有时延关系.通过相邻R波之间的位置关系,结合心电数据采集频率可得到RR间期的计算方法:
式中,RR_period为心电信号的RR间期,RR_time是相邻两个 R波的间隔,FS为采样频率,为360 Hz.
1.6 R波的多检与漏检
在R波的检测过程当中,容易因为其他干扰导致R波的多检或者漏检.为此,在R波的检测过程中应加入多检与漏检的检测方法.通过式(7)计算出RR间期后,如果当前的R波与前一R波的RR间期小于正常的RR间期的0.75倍,则认为在这段RR间期内有可能存在多检的R波.那么将前一R波和当前R波的幅值均与正常R波幅值相比较,若这两点的R波的幅值小于正常R波幅值的1/3,那么认为该R波点为多检R波,R波计数相应减1;如果当前的RR间期大于正常的RR间期的2倍,则认为有可能存在R波的漏检.那么将在这一RR间期内对信号点进行遍历,若找到满足幅值与正常R波相匹配的点,则认为找到新的R波,R波计数相应加1.
R波检测的算法流程图如图1所示.
图1 R波检测算法流程图Fig.1 Flow chart of R wave detection algorithm
2 QRS波群的检测
QRS波群是人体正常的ECG图中由Q波、R波和S波构成的幅度最大的波群.Q波为R波前第一个向下的波,S波为R波后第一个向下的波.QRS反映了心室电激动过程和左、右2个心室除极的全部过程.有效检测出QRS波群及计算出该波群宽度对于检出心脏节律失常、作出准确心电自诊断有着重要的意义.正常成人QRS波群时间为 0.06~0.10 s,儿童为 0.04~0.08 s[6].
QRS波群检测的步骤如下:
(1)以每一点R波为中心,进行QRS波群标记.在已检测出的R波位置的前30个信号点内寻找幅值最小的点,标记为Q波.为确保这个点不是由于其他干扰而产生的无意义点,再对这个Q点前15个点进行遍历,若没有幅值更小的点,则该点确认为Q点;若出现比Q点幅值更小的点则将2个点进行比较,计算出QRS波群宽度后,与正常的QRS波群时间相比,得到相应的 Q值点.
(2)在已检测出的R波位置的后30个信号点内寻找幅值最小的点,标记为S波.同理对其进行干扰点的排除,得出正确的S波点.
(3)在检测出QRS波群后计算其宽度,与心电特征进行比对并作出相应的疾病判断.
3 结果
使用美国麻省理工MIT-BIH心电数据库中的心电图病例,对本研究提出的方法进行有效性和通用性验证[7-8],即对该数据库中的心电图病例在上位机上在C语言的编译环境下进行QRS波检测,并且尝试作出心律不齐的疾病自诊断.以100号数据文件为例,检测前500个心电数据.表1为C语言环境下算法的测试结果(检测出的R波数目及其相应具体位置).从程序运行的结果可以看出,100号文件的前500个数据中含有2个R波,其位置分别在第70和363个数据点上.图2为该心电文件前500个原始数据的绘图效果,图3则是将其中前100个数据放大绘图的效果图.从图3非常直观地看出,第一个R波的确出现在70号数据点的位置上.
表1 100号文件前500个数据的算法测试结果Table 1 Algorithm test results for the first 500 data of the 100th files
从心电数据库中抽取10个心电数据文件,并对照MIT-BIH数据库的参考文献进行算法比较试验后,实验结果如表2所示.表中“改进后”表示使用本文算法的检测结果,“常用算法”表示目前一般移动式心电检测设备常用的差分阈值法的检测结果.10个心电数据文件的R波检测结果均有较好的检测效果,使用改进后的算法正确率达到99.5%以上,而常用的算法检测正确率仅有99.2%左右.对于102、116、118这 3个文件中的数据,常用算法的误检数比较多.因为3组数据的基线漂移以及工频干扰较多,使得心电信号中的部分波形失真较为严重,从而导致算法在进行检测时对R波的误检较多.本实验对算法进行改进后,由于引入了对多检和漏检的检验,使得误检情况得到遏制.
图2 前500个原始数据波形图Fig.2 The first500 row data waveform
图3 前100个数据放大绘图的效果图Fig.3 The enlarging picture of the first 100 data
表2 10组心电数据检测统计表Table 2 10 sets of ECG detection statistics
除了对QRS波群进行检测外,还结合了心电信号在临床上的病症特征对数据库中的数据进行疾病的自诊断检测,检测结果如表3所示.表3中记录了6个心电文件的病症诊断结果.表中,由于103号数据中只发生了2次房性早搏,其中1次并没有检测出来,导致准确率只有50%,其余文件对于不同心律不齐疾病均有较好检测效果.表中:0/x中0表示未检测数该类病,x表示该用户数据未有该类病.
表3 数据自诊断检测记录表Table 3 ECG data self-diagnostic test record sheet
4 结语
综上所述,本研究基于双阈值法和自适应差分阈值法改进的检测算法是行之有效的.双阈值保证了在检测R波的过程中能够保持较高的准确性,而双阈值的自适应修正则保证在心电数据幅值、形态随着时间变化的过程中能够稳定地对R波进行检出.R波的准确、稳定检出为RR间期的计算和QRS波群宽度的计算提供依据,与常用检测方法相比,提高了心律失常疾病识别与自诊断的成功率和准确率.本算法对心电数据的R波QRS波群宽度的准确检测和计算为进一步的识别和自诊断提供坚实的基础[9-11].
当然,本研究中仍然存在亟待完善和改进的地方.比如更好地完善算法的抗基线漂移和工频干扰能力,提高算法准确率;另外还可以尝试加强对P波和T波进行研究,提出相应的检测算法并作为依据作出心律失常自诊断.
[1]任淑华.心电自动分析诊断系统设计[D].南京大学,2012.REN S H.Design of ECG Automatic Analysis and Diagnosis System[D].Nanjing University,2012.
[2]黄邹琴,李涛,周婕.心电图筛查经胸放疗联合化疗对高血压患者心功能异常的研究[J].暨南大学学报(自然科学与医学版),2017,38(4):350-354.HUANG Z Q,LI T,ZHOU J.Research on cardiac dysfunction of hypertensive patients undergoing thoracic radiation therapy(TRT)combined with chemotherapy by electrocardiographic screening(ECG)[J].Journal of Jinan University(Natural Science&Medicine Edition),2017,38(4):350-354.
[3]苏丽,赵国良,李东明.心电信号QRS波群检测算法研究[J].哈尔滨工程大学学报,2005,26(4):513-517 SU L,ZHAO G L,LID M.Study of algorithms of QRS complexes detection in electrocardiogram signal[J].Journal of Harbin Engineering University,2005,26(4):513-517.
[4]赵羿欧,刘扬.一种改进的差分阈值心电检测算法[J].计算机工程,2011,37:347-352.ZHAO Y O,LIU Y.Improved Differential Threshold ECG Detection Algorithm[J].Computer Engineering,2011,37:347-352.
[5]宋喜国,邓亲恺.MIT-BIH心率失常数据库的识读及应用[J].中国医学物理学杂志,2004,21(4):230-232.SONG X G,DENG Q K.On the format of MIT-BIH arrhythmia database[J].Chinese Journal of Medical Physics,2004,21(4):230-232.
[6]吴庆玲.嵌入式实时心电诊断算法[D].南京大学,2011.WU Q L.Embeded real-time ECG diagnosis algorithm[D].Nanjing University,2011.
[7]MOODY G B,MARK R G.The impact of the MIT-BIH arrhythmia database[J].IEEE Engineering in Medicine and Biology Magazine,2001,20(3):45-50.
[8]GOLDBERGER A L.Components of a new research resource for complex physiologic signals,physiobank,physiotoolkit,and physionet,American heart association journals[J].Circulation,2000,101(23):1-9.
[9]李淑园.可穿戴式智能心电设备的研究[D].北京工业大学,2015 LI Shuyuan.Research on wearable intelligent ECG device[D].Beijing University of Technology,2015.
[10]王如想.心律失常自动识别算法的研究[D],山东大学,2013.WANG Ruxiang.Research on the algorithm of arrhythmia classification[D].Shandong University,2013.
[11]田福英.便携式心电监护系统中心电信号的实时分析方法设计[J].中国医学物理学杂志,2012,29(3):3413-3415.TIAN F Y.Design of Real-time ECG Analysis Methods for Portable ECG Monitoring System[J].Chinese Journal of Medical Physics,2012,29(3):3413-3415.