面向网络边缘侧的心电信号处理技术

2021-04-07 12:38张博臻王志成赵鸿毅
科学技术与工程 2021年6期
关键词:电信号差分滤波

庞 宇, 张博臻, 蒋 伟, 王志成, 赵鸿毅

(重庆邮电大学光电工程学院, 重庆 400065)

心血管疾病是威胁人类身体健康的常见疾病之一。随着生活节奏不断加快、工作压力日益增大,心血管疾病常常出现在平时看似健康的人群中,发病率有快速上升的趋势,同时由于心血管疾病的致死率十分高,所以心血管疾病的危害极大,找到有效的手段对心血管疾病进行防控刻不容缓。而心电信号(electrocardiogram, ECG)是描记心脏电位变化的曲线,这些信号中包含丰富的病理信息,对心脏基本功能及其病理研究具有重要的参考价值[1],通过心电信号可以对疾病进行预警和诊断,从而实现对心脏类疾病发病率和死亡率的有效控制。

长期以来,研究心电信号处理技术在疾病防治工作中十分重要。心电信号处理技术的关键在于信号的噪声消除和特征波段的识别;噪声消除的意义在于能够最大限度地抑制和消除心电信号中的噪声,得到纯净的信号进行分析研究;而识别特征波段的意义在于能够准确识别信号中的特征波段,只有准确识别到信号中的特征波段后,才能保证后续的生命体征参数计算和病理分析。常见的心电信号去噪算法有:经典数字滤波器法、自适应滤波、小波阈值法、形态学滤波等,这些噪声消除算法各有优劣,应根据不同的应用需求进行选择。常见的心电信号特征波段检测算法有:差分阈值法、模板匹配法和小波变换法等;差分阈值法原理简单、计算速度快、实时性好,但是很容易因为噪声影响到检测效果;模板匹配法使用标准的信号建立模板,通过将模板与待检测信号进行对比,得到特征波段的位置信息,是一种基于统计识别的检测算法[2],该算法其稳定性高,但是计算量较大、耗时较长;小波变换法将待检测信号与小波模板函数进行对比,从而检测到信号的特征波段,虽然小波变换法对心电信号特征波段灵敏度较高[3-4],有着很好的数据性和时频多分辨功能[5],但是算法较为复杂,不能满足实时检测的需求;在进行检测算法的选择时,应根据信号质量和应用需求决定检测算法,要结合实际情况进行算法选择[6]。

近年来,物联网的快速发展让各种全新的传感设备能够融入各种物体、设施和环境中,这使得这些物体和设备拥有信息处理能力和连接互联网的能力[7];万物互联的趋势与具有处理能力的传感设备让边缘计算(edge computing)开始走进人们的视野,边缘计算不同于云端数据处理模式,它能够在网络边缘侧直接进行数据处理分析,减少不必要的网络延迟,提供更加快速及时的反馈,从而极大地提高服务质量,在文献[8]中利用视觉传感器对大区域校园内的图像进行智能采集和预处理就是边缘计算在网络边缘侧直接进行数据处理分析的应用;同时,高性能芯片的搭载使网络边缘侧拥有一定的计算能力和决策能力,从而有能力在靠近用户和数据源的一侧提供智能计算[9],换而言之,边缘计算下的系统有着十分优秀的实时性。文献[10]提到的高速公路交通流监控,文献[11]提到的矿热炉电极运行监控系统,这二者都对系统实时性有较高的要求,因此这二者都利用边缘侧的传感器完成计算,并且提供一定的智能服务。所涉及的心电信号处理与异常检测对系统的实时性和数据筛选能力有较高要求,在过去这些工作都只有通过云端计算来完成,系统常受限于云端处理能力和网络状态不能达到很好的效果,而边缘计算的出现让网络边缘侧的心电信号即时处理成为可能,结合边缘计算的特点在网络边缘侧进行心电信号处理能够不受限于网络状况,对心血管异常做出更加快速、准确的判断,提供实时的健康监测。

为此,以形态学滤波与差分阈值法为基础,进行面向网络边缘侧的心电信号处理技术研究,并根据边缘计算的特性对算法进行优化,提高算法的实时性与准确性。

1 心电信号去噪

1.1 常见心电信号噪声

心电信号是十分重要的生命体征信号,具有信号极其微弱、频率范围较低、高阻抗、随机性强等特性,其幅度一般在0.05~5 mV[12],因此心电信号极易受到体内和体外环境的影响,采集的信号通常都伴随着严重的噪声干扰。只有充分了解心电信号中的噪声成分,才能采取相应的方法进行去噪。常见的心电信号噪声如下。

1.1.1 基线漂移

基线漂移由被测对象的呼吸、肢体运动、电极与皮肤间的相对移动等低频干扰引起,其频率小于5 Hz,通常情况下小于1 Hz,所以基线漂移属于低频噪声。基线漂移会使心电信号偏离正常的基线位置,波形会上下缓慢波动变化,呈现出正弦的周期变化[13]。

1.1.2 肌电干扰

肌电干扰是由人体肌肉颤抖所导致的,其频率范围很宽,一般在10~1 000 Hz,严重的肌电干扰信号频率在10~300 Hz。肌电干扰会使心电信号的某些地方产生不规则的细小波纹。

1.1.3 工频干扰

工频干扰主要来源于工频电源以及器件周围环境中的传输线辐射出的电磁场,频率为50 Hz或60 Hz。工频干扰在心电信号上表现为快速变化的周期性细小波纹,会使心电信号伴随较多的毛刺,相对应的心电图将变得模糊。

1.2 基于形态学滤波的心电信号去噪

形态学滤波是一种以数学形态学为基础发展的滤波技术,以积分几何、集合代数及拓扑论为理论基础,广泛应用于信号处理、图像分析等领域。传统的时频域变换方法处理噪声存在可能会破坏信号特征的缺点,而形态学滤波通过选择适当的结构元素,能极大保留信号的形态特征。文献[14]中设计的形态学滤波器能够抑制心电信号中的宽带噪声,同时也不会影响其特征波形,具有较好的噪声消除效果;因此在处理有着丰富病理信息的心电信号时,选用形态学滤波能够较大程度地保留信号中的特征波段,保证有用信息不会遭到破坏。

形态学滤波的基本思想是选择与特征信号相似的结构元素去将信号的对应形状进行识别提取,从而达到消除噪声的效果。其基本运算包括:膨胀、腐蚀、开启和闭合,除此之外还有将开运算与闭运算进行组合,得到两种级联形式的运算,即形态开闭和闭开运算。

定义一维数字化信号序列为f(n):F={0, 1, …,N-1},其中N表示一位数字信号序列的长度;结构元素为k:K={0,1,…,M-1},其中M表示结构元素的长度,并且N>M。结构元素k对信号序列f(n)膨胀运算的定义为

(1)

式(1)中:n=M-1,M,…,N-1。

结构元素k对信号序列f(n)腐蚀运算的定义为

(2)

式(2)中:n=0, 1,…,N-M。

信号序列f(n)关于结构元素k的开启运算∘的定义为

(f∘k)(n)=(fΘk⊕k)(n)

(3)

信号序列f(n)关于结构元素k的闭合运算•的定义如式(4)所示

(f•k)(n)=(f⊕kΘk)(n)

(4)

形态开闭运算OC定义为

OC(f)=(f∘k)•k

(5)

形态闭开运算CO定义为

CO(f)=(f•k)∘k

(6)

在进行形态学滤波器的设计时,通常会为形态开闭运算和闭开运算选用相同的结构元素,虽然这样处理能够很好地消除基线漂移,但是在对高频噪声进行处理时会产生截断误差[15],这会影响到最终的滤波效果;因此,在考虑网络边缘侧的计算能力、反馈速度、实时性需求等因素之后,选用计算简单、容易实现、适用于实时系统的平滑滤波进行高频噪声的消除,与形态学滤波相结合,完成心电信号的噪声消除。同时文献[16]的实验结果可以证明在消除高频噪声之前消除基线漂移的重要性,因此所提出的噪声消除算法会先进行基线漂移的消除,再进行高频噪声的消除。具体心电信号噪声消除的流程图如图1所示。

图1 心电信号噪声消除流程图Fig.1 The flow chart of ECG signal denoising

1.2.1 结构元素的选取

去基线漂移的常用思想是,首先对信号的基线进行评估或提取,然后通过减法运算去掉信号中的漂移成分[17],因此选择直线型的结构元素来提取基线噪声,同时为了能够将信号中的特征波形都滤除,应该选择宽度较大的结构元素;在心电信号中最宽的特征波形是T波,所以结构元素的宽度应该大于T波的宽度。

1.2.2 获取基线噪声

由于开闭运算会导致输出幅值变小,而闭开运算会导致输出幅值变大,也就是说单独使用开闭或闭开组合形态滤波器使滤波结果出现统计偏倚现象,因此通常将两者进行组合平均[18],也就是让原信号在选取的结构元素下分别进行开闭运算和闭开运算,然后再取这二者的算术平均,从而得到原始信号中的基线漂移噪声。其计算公式为

(7)

式(7)中:fBASE为基线噪声;f为原信号。

1.2.3 基线漂移的消除

使用原始信号减去基线漂移噪声便可以得到去基线漂移的信号。

1.2.4 肌电干扰与工频干扰的消除

设定一个长度固定的滑动窗口并规定窗口大小为5,首先使用该窗口处理信号的前五个数据,窗口中心点的值由窗口内其他点的平均值代替,在完成一次替换之后,窗口往后移动一个位置,再次进行中心点数值的替换,不断重复这个过程直至所有采样值都处理完,最终完成高频干扰的消除,使波形变得平滑。其计算公式为

(8)

式(8)中:x为原始心电信号序列;y(n)为经过平滑滤波的心电信号序列,n=1,2,…,k,其中k为心电信号的长度;p为滑动窗口选取的采样点个数,一般选取奇数个采样点,以保证中心点左右采样点个数一致便于计算。

2 心电信号的R波检测

2.1 心电信号的特征波段

一个标准心电信号的每个周期都包括P波、QRS波群、T波等特征波段,通过这些特征波段可以读出心脏跳动的频率和幅度等信息,这些信息对诊断心脏功能异常有着重要的作用。图2为一个标准周期的心电波形。

P波为心房除极过程;PR段为P波终点至QRS波群起点;PR间期为P波起点QRS波群起点;QRS波群为左、右心室除极过程;ST段为QRS波群终点至T波起点;T波为心室复极过程;QT间期为QRS波群起点至T波终点图2 一个标准周期的心电信号Fig.2 The standard period of ECG signal

如图2所示,在一个标准的心电信号周期中R波是变化最激烈、特征最明显的波形,其中包含大量的病理信息,可以通过这些信息读出心脏跳动的频率和幅度等信息,而其他的波段与R波相比都较为平缓,所以R波是心电信号中最容易被检测到的,在定位到R波之后就可以在其前后的区域中进行检测找到其他特征波段的位置。综上所述,R波的检测是心电信号特征波段提取的关键。

2.2 差分阈值法

差分阈值法是一种通过设定阈值来对数据进行判断选择的方法,这种方法的核心是使用差分运算来对数据进行处理。对于心电信号来说,R波上升或者下降时的斜率变化明显[19],而差分运算可以将这一特点进行放大,也就是说差分运算能够增强特征更为明显的R波,消弱较为平缓的T波和P波,从而使R波的检测变得更加容易,之后可以通过设置阈值准确快速地找到R波。其具体解析式为:假设心电信号序列为x(n),其中n=1,2,…,k′,k′为信号的长度,则一阶后向差分表达式为

y′=y(n)-y(n-1)

(9)

二阶后向差分表达式为

y″=2y(n+1)+y(n+2)-y(n-2)-2y(n-1)

(10)

差分阈值法实现简单、计算速度较、检出率高[20]、实时性较高,能够有效稳定地对心电信号进行检测,因此很适合于面向网络边缘侧的实时系统。

然而差分阈值法也存在着抗干扰能力较差,对噪声干扰比较敏感的缺点,噪声的强弱会直接影响到其最终的检测效果,所以在检测之前要先对原始信号进行基线漂移校正[21]和高频噪声去除。但是在实际的应用中,心电信号中的噪声无法完全消除,同时人体的健康状况和运动状态等因素会使得心电信号的波形出现变化,简单的差分阈值法无法准确地进行识别。因此将根据应用场景、精度、实时性等方面的需求,对差分阈值法进行相应的改进,通过使用RR间期进行比较筛选、引入一阶差分平方作为补充、进行阈值的自动更新等方法,让检测算法拥有更强的可靠性。

2.3 基于差分阈值法的R波检测算法

使用R波检测算法的大体思想是:先定位到心电信号的前两个R波,根据这两个R波设定初始的阈值;之后每当检测到新的波峰时就通过阈值和RR间期来进行判断,并对阈值进行更新。图3为本文算法流程图,具体步骤如下。

图3 基于差分阈值法的R波检测算法Fig.3 R wave detection algorithm based on the difference threshold method

步骤1选择初始检测位置。选择心电信号序列的第t个采样点为参考点,其中t的长度为两倍的QRS波群宽度,通常取值为50,将(1,t)之间的心电信号平均分为两部分并分别求这两个部分的最大值Mmax1和Mmax2;由于R波的幅值比起心电信号中的其他部分要高得多,因此当Mmax1>2Mmax2时,说明起始位置在R波附近,应选择t为初始检测位置,反之说明起始位置在心电信号的平稳处,应该选择1作为初始检测位置。这样做是因为初始位置的选择将会影响到第一个R波的识别,初始位置应避免在R波附近,选择在波形平稳处最佳。

步骤2定位前两个R波。根据采样率和一个标准心电信号周期时长设定时间窗口的长度W,通常一个标准心电信号周期时长范围为0.6~1 s,当采样率为360 Hz时窗口长度(W)应设置为360,为了确保能够窗口能够包含一个标准心电信号周期,也可以在此基础上适当增大窗口。时间窗口的起始位置为步骤1中选取的初始检测位置,然后对窗口内的所有数据做一阶差分运算,找到一阶差分序列中的最大值点和最小值点,找到这两点之间的幅值最大点R1;之后再求出窗口内的最大值点R2。当R1和R2是同一点时该处就是第1个R波的位置;如果不是同一点,就取幅值较大的为R波。将时间窗口按时间顺序向后移动,移动距离为时间窗口的长度,重复上述流程找到第2个R波,并计算这两个R波的间隔RR。

步骤3初始阈值和阈值更新公式设定。计算窗口中的最大值Wmax和最小值Wmin。根据固定阈值计算设定初始阈值,其计算公式为

THstart=0.7(Wmax-Wmin)+Wmin

(11)

式(11)中:THstart为初始阈值。

固定阈值存在一定缺陷,会因为较高的T、P波或波形特征不明显而出现误判和漏检。因此还要设置阈值更新公式让阈值进行自适应更新。

THnew=0.8THold+0.2×1.5Wmax

(12)

式(12)中:THold为更新前的阈值;THnew为更新后的阈值。

步骤4R波的检测。按时间窗口长度W向后移动时间窗口,对窗口内的数据进行一阶差分运算,通过一阶差分运算找到该组数据的所有极大值点。通过阈值对极大值进行筛选,分为两种情况进行讨论:①经过筛选后只剩下一个极大值点,且该点与上一个R波之间的间距大于60/160,则标记该点为新的R波,若间距小于60/160则不进行标记;②经过筛选出现了多个极大值点,此时应先判断在窗内是否出现两个R波,先找出与上一个R波间距大于60/160的第1个极大值点,然后计算之后的极大值点与该点的距离,如果存在距离大于60/160的另一个极大值点,则说明这两点都为R波,否则就应该计算窗内数据的一阶差分平方,找出一阶差分平方序列中的最大值点,该点为心电信号中R波右侧部分的斜率最大点,离该点最近的极大值点即为心电信号的R波,也就是找到该点左侧的第一个极大值点并标记该点为新的R波。

完成一次检测后将时间窗口向后移动W,更新窗口长度和阈值,重复步骤4直到整组数据全部完成检测。

窗口长度具体更新公式为

Wnew=(Wold+RR)/2

(13)

式(13)中:RR为上一个RR间期的宽度;Wold为更新前的时间窗口长度;Wnew为更新后的时间窗口长度。

3 实验结果分析

3.1 MIT-BIH数据库介绍

MIT-BIH(MassachusettsInstitute of Technology-Beth Israel Hospital)数据库是由美国麻省理工学院提供的数据库,是目前国际上应用较多的数据库。MIT-BIH数据库包含丰富的病理心电数据,常被用于进行心电信号的研究,作为实验数据的来源和各类算法的检测标准。

将使用去噪算法和R波检测算法对MIT-BIH数据库中的心电数据进行仿真,对算法的有效性、准确性、可靠性等方面进行验证。

3.2 去噪算法仿真

以MIT-BIH数据库的第100组数据为例,随机提取其中8 000个连续的采样点进行仿真分析。图4为去噪前后的信号波形图。图4(a)为原始的第100组心电信号,可以看出该信号受到严重的基线漂移干扰和高频噪声干扰。图4(b)为经过噪声消除处理的第100组心电信号,对比图4(a)可以看出,信号中的基线漂移和高频噪声得到明显抑制。

为更加清晰地了解算法的去噪能力,对图4的心电信号做频谱分析,具体分析其中的频率分布情况,得到图5。

图4 原始的和去噪后的第100组心电信号Fig.4 The original and denoising the 100th group ECG signal

图5 原始的和去噪后的第100组心电信号频谱图Fig.5 The spectrum of original and denoising the 100th group ECG signal

由图5可以发现,该去噪算法能够有效抑制1 Hz左右的低频干扰,50 Hz或60 Hz处的工频噪声和其他一些高频噪声。

3.3 心电信号R波检测算法仿真

以MIT-BIH数据库的第100组数据为例,提取其中8 000个采样点进行噪声消除并完成R波检测算法的仿真,其仿真结果如图6所示。

图6 第100组数据R波识别效果Fig.6 The R wave recognition effect of the 100th group ECG signal

对比MIT-BIH数据库提供的R波位置可以发现,该算法准确地检测到这8 000个采样点中所有的R波。

为进一步验证该算法的有效性和准确性,选取MIT-BIH数据库中包括第100组数据的10组数据,提取这些数据中的43 200个采样点,继续采用该算法对这10组数据进行检测,其检测结果如表1所示。由表1可知,该算法在处理第100组数据这种标准的心电信号时,有着高于99%的准确率,而在处理那些因为病变而产生变化的非标准心电信号时也有着较高的准确率;该检测算法的平均准确率达到了98.75%,能够满足实时性和准确性要求较高的场景,也就是说该算法能够满足网络边缘侧在实时性和准确性方面的需求。

表1 R波检测效果Table 1 The effect of R wave detection

4 结论

以网络边缘侧为应用场景进行考虑,采用平滑滤波去高频噪声与形态学滤波去基线漂移的方法进行心电信号噪声消除,一方面能够避免形态学滤波处理高频噪声时会产生截断误差的问题;另一方面也能够减少计算量,使得去噪算法能够更适合用于实时性要求较高的网络边缘侧应用。在R波检测算法方面,采用实时性较高的差分阈值法,通过引入RR间期筛选、一阶差分平方、阈值自动更新等方法对算法进行改进,以满足网络边缘侧应用较高的准确性需求,经过仿真验证该算法能够有效检测R波,拥有较高的准确性。

猜你喜欢
电信号差分滤波
RLW-KdV方程的紧致有限差分格式
船岸通信技术下舰船导航信号非线性滤波
符合差分隐私的流数据统计直方图发布
基于联合聚类分析的单通道腹部心电信号的胎心率提取
数列与差分
一种考虑GPS信号中断的导航滤波算法
基于Code Composer Studio3.3完成对心电信号的去噪
高效LCL滤波电路的分析与设计
基于EKF滤波的UWB无人机室内定位研究
基于随机森林的航天器电信号多分类识别方法