心电R波检测及控制左心辅助装置

2023-04-26 08:21严荣国王佳晖邵泓燃方旭晨
计算机测量与控制 2023年4期
关键词:血泵心电电信号

王 洁,严荣国,王佳晖,邵泓燃,方旭晨

(1.上海理工大学 健康科学与工程学院,上海 200093;2.上海市杨浦区市东医院 重症医学科,上海 200438)

0 引言

近几年在《中国心血管健康与疾病报告》数据中显示,中国心力衰竭的患者正在逐渐增多,根据数据推算中国目前大约有890万心力衰竭患者;而根据美国疾控及预防中心的数据显示,目前美国有超过600万人受到心力衰竭的影响,并且每8个死亡患者中就有1个和心力衰竭有关[1]。心血管疾病已经成为威胁人类最严重的疾病之一[2],是全球唯一处于持续增长趋势的心血管疾病[3]。

心电信号波形识别的步骤往往是从QRS波形识别开始,其它特征波形的位置都是以R波位置为基准进行提取的[4]。在体表采集过程中,外部测量设备,人体的肢体活动、呼吸等因素很容易影响本身比较微弱的心电信号,导致心电信号常伴随较强的噪声,为了能提供给临床准确而不失真的心电信号,有利于分析其特征信息,必须先对心电信号进行快速准确地去噪以及特征波形的检测。所以,对R波的检测成为了近年来研究的关键,其中绝大多数的心力衰竭都是以左心衰竭开始的。因此,左心室辅助也成为了治疗心血管疾病研究的焦点。

心室辅助装置能够正常使用的前提是有准确、实时的心电信号进行控制,机械装置辅助作为心脏移植前的过渡支持治疗使用[5],因此,能够对心电信号进行实时采集、识别、处理、分析是关键,人们在对临床上心电信号诊断技术的理论深入研究之后,提出了实现心电信号实时检测和分析,并给出诊断结果的想法,将其应用于实践之中,大大提高了医生的诊断效率,使检测结果更加精确。就此对现场可编程门阵列(FPGA,field programmable gate array)提取R波检测及其在左心室辅助装置的应用展开了设计。

1 系统总体设计

首先利用Matlab软件,对美国麻省理工MIT-BIH心律失常数据库[6]中的心电信号进行分析及处理。然后,在验证算法的过程中,发现有限长单位冲击响应(FIR,finite impulse response)滤波及香农能量、无限长脉冲响应(IIR,indinite impulse response)滤波算法及计算R-R时间周期可以对信号进行很好的处理,对有代表性的几组心电信号,例如:心电波形漂移,波形杂乱,R波倒置,波形特征不明显等信号,该算法都可以很好的提取出R波,找到峰值。最后,测试四十八组数据,模拟实时动态的波形,实时检测出R波,得出较高的正确率。因为在Matlab上无法做到真正实时检测的效果,为了得到采集心电数据的实时性,在硬件上可以实现预期的效果,所以设计了在FPGA上进行采集及数据的处理。基于FPGA的左心室辅助控制系统的硬件平台有多个模块组成,包括体外膜肺氧合(ECMO,extracorporeal membrane oxygenation)电磁搏动式血泵[7]、显示屏模块、FPGA板、继电器、心电采集模块、上位机、生理信号模拟器等。左心室辅助装置与自然心脏的工作原理相同,作用也相同,都是为了辅助血液循环运动,因此辅助系统在进行血液灌注的同时也分为收缩期和舒张期,但大多数研究人员采用固定频率来驱动辅助装置,只是设置了一个近似与心电信号同步的频率,与人体实时心电信号无关,在这种固定方式驱动下辅助装置的收缩期很容易与自体心脏收缩期重叠,当两者收缩动作重叠,会对心脏产生一系列不可预估的损伤,这有悖了心衰患者使用左心室辅助装置的初心,因此采用心电同步辅助左心室辅助装置很好地解决了这个关键问题。

所有的模块测试完成,软件与硬件整合后,集成为一整个系统装置,对此装置设计进行了集成验证。通过采集模块采集多组心电数据,观察波形,连接电磁搏动式血泵,测试完成检测R波并且延时控制血泵泵血的功能。延时的作用不仅可以校正漏检等的问题,还可以在一定的时间范围内供给足够的血液,让患者的体内的血液达到稳定循环的一个过程。

设计的驱动是通过算法得到理想状态下的R波提取后,将处理后的心电(ECG,electrocardiogram)信号中的R波峰值进行高低电平触发脉冲信号,通过多路继电器模块,达到开启或者闭合高流量搏动式血泵的触发,从而得到一个循环且信号同步的效果。设计采用的是四路贴片光耦隔离继电器,驱动电路连线原理如图1(a)所示,支持高低电平的触发,驱动能力强,性能稳定。它的输出端有12线接口,NO是常开接口,继电器吸合前悬空,吸合后与COM短接;COM为公用接口,NC是常闭接口,吸合前与COM短接,吸合后悬空。

根据梯度线圈结构,设计如图1(b)所示的线圈组驱动结构,线圈组是由绕组a、绕组b 与绕组c 组成。当两个继电器都处于NO接口时,触发线圈a、b通电,永磁体将会受到增强的磁场作用力,从而逐渐向b端方向移动;当继电器处于NC接口时,触发线圈a、c通电,永磁体将会受到与b端增强的磁场反向作用力,永磁体便会逐渐向c端方向移动,通过轮流通电,永磁活塞做往复运动,从而实现永磁体搏动功能。

图1 驱动装置结构图

这套血泵的核心部分是驱动装置如图1(c)所示,主要包括新型梯度线圈、永磁活塞、血泵泵头以及杠杆平衡等设计。泵头装置连接体外管路循环系统。永磁体向绕组b方向运动时,杠杆向上运动;向绕组c方向运动时,杠杆向下运动。以此往复驱动杠杆的上下摆动,实现泵血功能。因为该电磁搏动式血泵装置[8]使用杠杆原理,所以装置采用了两组线圈,一组线圈使用两个继电器控制驱动部分,在工作时,两组线圈通电方向相反,因此永磁体受相反方向的力。血囊受永磁活塞作用舒张或者收缩,结合血泵腔完成血泵的收缩期灌注血液,舒张期补充血液的功能,最终实现搏动式灌注的目的。

该电磁式搏动血泵装置的总体机械结构如图1(d)所示,主要由上支架、下支架、驱动装置组件等组成。上支架的作用是固定驱动装置并且作为平衡杠杆的固定底座;下支架采用拼接式结构组成并具有一定高度,作用是固定上支架以及留足空间给平衡杠杆运动;驱动装置的作用是驱动永磁体运动。总体设计方案如图2所示。从患者的体表通过心电采集模块采集数据,算法仿真验证后,使用硬件处理数据提取R波,采集过程中心电信号较微弱,采取信号放大的一个过程,把采集到的信号传入FPGA,有显示屏可以更加直观地观察采集的波形和提取到的波形,然后从FPGA给驱动电路控制左心室辅助装置的泵血,给患者提供所需要的泵血状态。

图2 总体设计方案

2 心电R波检测算法设计

2.1 FIR数字滤波设计

若FIR数字滤波器[9]的单位样值响应为h(n),长度为N,则其系统函数为:

(1)

上式表明该滤波器在Z平面上有N-1个零点,在原点处有N-1个极点,系统是绝对稳定的,当其为偶对称时,h(n)满足:

h(n)=h(N-n-1)

(2)

此时称h(n)关于(N-1)/2偶对称,将式(2)代入式(1)可得:

(3)

令m=N-n-1,则有:

(4)

将式(3)和式(4)两端同时相加,得到:

(5)

故此,FIR滤波器的频率响应为:

H(ejω)=H(z)|z=ejω=

(6)

通过以上处理,就可以利用FIR数字滤波器减少噪声的干扰。

2.2 香农能量算法数据处理

在上述处理过程中,是从异常数据库中处理的模拟动态,但实际上还是已经寄存好的数据直接使用,调用固定的样本量,如果需要实时检测,就需要实时处理信号,伴随而来的是更多的噪声,更快处理信号的方法,所以设计提出了利用香农能量的方法和上述方法结合,使中等强度信号具有更高的权重,低强度信号比高强度信号衰减得更多,这样就增强了中等偏高强度的信号。利用文献[10]提出的公式:

shannon_energy(i)=

-(noisy_data(i))n×lg(noisy_data(i))n

(7)

其中:shannon_energy是处理后的香农能量数据组,noisy_data为加入噪声后的数据,n是幂次方,n越大,得到的波形越平滑。

将数据加入噪声,以数据库中几个典型的数据为代表,波形数据处理测试如图3所示。

图3 波形处理前后对比

由数据处理前后对比可以得出此算法的有效性,在不同的异常数据加入噪声后,很难提取波形,经过香农能量处理后得到了较为明显的降噪波形,对后续R波检测有很大的便利性和准确性。

2.3 心电R波检测

为了验证其有效性,采用Matlab软件进行了算法的仿真,从MIT-BIH数据库中采集四十八组异常心电信号,使用FIR滤波与IIR滤波的混合算法,一般正常的心电信号频率范围为0.05~100 Hz,而90%的心电信号频谱能量集中在0.25~35 Hz之间[11]。在上述2.1提到函数的基础上再利用以下公式:

C1=data(i)-M(2)×C2-M(3)×C3-M(4)×C4

(8)

Y(i)=N(1)×C1-N(2)×C2-N(3)×C3-N(4)×C4

(9)

其中:data是传输的数据,i代表第一个数据开始,到第i个数据,M是FIR滤波后的四阶系数,N是经过IIR滤波后的四阶系数,C1~C4分别为初始值为0的常数,循环此流程,循环一次的过程中,Cn赋值给Cn-1,以此来得到处理后的每个样本的数据值Y(i)。利用处理好的数据值绘制波形图,得到的就是新的心电数据,对此数据进一步处理。

对每一组的数据进行处理,并且利用R-R间期和阈值法同时处理以得到准确率更高的R波数量,以MIT-BIH随机测试的第111组数据检测样本,波形倒置,得到的仿真如图4(a)所示;第113组波形漂移的数据处理后得到如图4(b)所示;第121组只有R波倒置,其它波形不明显,处理后得到如图4(c)所示。为了验证算法的普适性,后续经过多组的实验和典型的异常波形的数据处理,都可以很准确的提取出R波,验证了该算法的可行性,为了呈现实时性,利用波形的流动性来实现其实时检测的目的。

图4 测试组数据处理

在2.2中的上述几组测试验证了该方法的可行性,得到了较为理想的处理结果。结合2.1中的算法并且通过双向阈值法可以更好地处理带有噪声的异常心电波形。以第121组数据作为测试对象,结果如图5(a)所示,为了更清晰地观察数据处理后的对比,所以对数据对比图进行了局部放大,得到图5(b)所示,可以看出经过香农能量处理后的波形降噪效果明显,并且波形平滑,但是波形倒置,结合2.1的算法处理后,解决了波形倒置的问题,信号范围都在基线上下浮动,提取R波也更加容易,减少了检测R波的时间,更好地达到了实时性的检测效果。

图5 香农能量结合2.1算法对比检测R波图

由此以上算法得到了验证,该算法可以更好地处理数据并且准确地提取出R波,为实现硬件部分的工作提供了基础。

2.4 Modelsim逻辑仿真验证

ModelSim不仅能做仿真,还能对程序进行调试,对波形进行对比等功能。为了验证上述算法,所以用ModelSim进行了逻辑仿真验证。

通过Matlab的fdatool滤波器设计分析工具可以得到FIR滤波器的系数[12]。因为人体的心电信号的输出信号有正有负,是一种弱电信号,信噪比低,所以得到的数据是有很多带符号小数的,但是对设计使用到的FPGA是不便处理太多小数,因此对小数部分通过圆整使数据整数化,得到的整数通过移位寄存数据后,将数据经过与滤波器系数相乘,然后再将乘积结果相加完成整个卷积滤波。

为了验证以上所提算法的正确性,并可以在FPGA硬件上实现,所以对算法进行了逻辑仿真,测试其中一组心电波形,并且对这组处理后的波形进行阈值二值化[13],公式如下:

(10)

其中:E和S分别是心电一个周期内的均值与样本数,若data(i)>Eavg则第二个同步通道为高电平数字1代替,反之,为低电平数字0代替。仿真后的如图6所示。

图6 逻辑仿真结果图

由图6可以看出该算法仿真后的波形是达到一定的预期,波形可以很好地展现出来,也准确找到了R波的位置,并且检测提取。

3 基于FPGA心电R波检测硬件设计

3.1 FPGA硬件设计

在对FPGA芯片选型的过程中,主要是要考虑到系统所需要的资源量,若选择的芯片内部资源很小,就不能实现设计的要求。相反的,若选取的芯片内部资源很大,就会造成不必要的浪费,带来不必要的损失[14]。因此,综合考虑以上等问题,设计在实现过程中,选用的FPGA芯片是Altera公司的Cyclone Ⅳ系列,型号为EP4CE10F17C8。这样就很好地解决了浪费资源的问题。

因为从人体采集到的为模拟信号,所以设计中需要一个模拟信号转换为数字信号的ADC128S022芯片[15]进行模数转换,该芯片为8通道12位输出的ADC。该芯片可以很好地将实时采集到的模拟信号转换为所要用到的数字信号。但是采集到的信号会有很多噪声干扰,所以采用了上述仿真验证的FIR滤波算法。为了提高R波的检测率,所以在FIR滤波后,再次经过中值滤波算法,中值滤波对脉冲噪声有良好的滤除作用[16],特别是在滤除噪声的同时,能够保护信号的边缘,还可以减少离散数据的波形漂移,主要公式[17]为:

y(i)=Med[x(i-R),…,x(i),…,x(i+R)]

(11)

其中:R为正整数,信号的样本为中括号里的值,最中间的x(i)是信号中心的样本值,所有的信号样本值按照由小到大的顺序排列,得到每一轮的中间值即在i处的样本值,就是最终经过中值滤波的输出值,每一次的输出值都是经过所有信号的样本值不断更新之后得到的新的值,不断循环得到大量的输出值,从而构成平滑的波形。它的原理流程如图7所示。

图7 中值滤波原理流程图

为便于观察,设计增加了一个计时模块,功能烧写到开发板上之后就可以开始从零计时,只有关闭FPGA开发板才停止计时,有计时功能更加具有直观性,实现低成本计时功能,观察波形及心率也有一定的时间对比性。并且有状态提示,检测到的心率在固定的范围内会显示正常,如果超出范围值就会显示异常,对于测试者更方便知道自身状态。

设计过程中,发现信号采集的同步性也是很重要的一方面,所以采用了锁相环(PLL,phase locked loop)的原理,因为采样时钟同步,所以能在同一时刻进行数据采集。时钟模块通过调用逻辑器件内部的锁相环来实现时钟的分频和倍频从而得到需要的时钟。如图8所示,锁相环的组成主要有鉴相器(PD,phase detector)、环路低通滤波器(LF,loop filter)和压控振荡器(VCO,voltage control oscillator)[18]。

图8 锁相环路的闭环控制系统

其中:Ui为输入信号,Uo为输出信号,输出信号作为反馈信号与输入信号进行瞬时相位比较,得到二者的相位差信号Ud(t)。经过低通滤波得到平滑的控制信号Uc(t),Uc(t)控制压控振荡器输出信号Uo,最后使Ui、Uo两个信号同频同相,从而维持发射回路的谐振状态。PLL还可以修改所需要的频率,利于调整参数,及时在编程中更新,大大降低了在时间上的耗费。

在FPGA上实现的程序如图9所示。

图9 FPGA程序框图

从硬件外部进行信号采集,输入FPGA利用模数转换实时对数据进行处理,通过以上算法后设置阈值及R-R间期,准确提取出R波,从而进行后续的心率及R波检测,为呈现可观性的即同步处理后的波形,利用了TFT屏幕,更加直观地看到实时采集及处理后的波形。提取R波时,通过高阶中值滤波的算法,可以让信号大的集中在中间,还可以有效地处理波形漂移的问题,对于R波明显,其它波形不明显,或者心律较快较慢等都可以进行很好的处理。

3.2 信号采集及其放大设计

通过两个方式分别采集正常心电信号和异常心电信号。

1)AD8232心电传感器。以正常人体作为信号输入部分,考虑低成本、低功耗的需求,选用具有导联脱落检测的AD8232芯片[19]对心电信号进行放大。该芯片可以在有运动或远程电极放置产生噪声的情况下提取、放大及过滤微弱的生物电信号,使得模数转换器或嵌入式微控制器能够便捷的采集输出信号。AD8232采集到的ECG信号为基准,识别心电信号R波特征点,根据特征点进行与患者自体心脏同步时序的辅助。电路采用左臂(LA,left arm)、右臂(RA,right arm)、右腿(RL,right leg)3个电极,分别贴于人体的左胸、右胸及右下腹,或者贴于左右手腕及右腿腕处,使用差分输入方式降低共模干扰信号对心电信号的影响,就可将心脏产生的微弱电流记录下来,得到的曲线就为心电图。采集到的心电信号从人体输出到FPGA中,经过FPGA的处理呈现在显示屏上面并且设置了上下两个通道,上通道是采集处理后的正常人体心电波形图,下通道是提取R波的波形图。

2)生理信号模拟器。在采集过程中,对正常心电信号可以利用上述心电采集模块,但是由于在试验中,所以不便对真正的患者进行采集异常的心电信号,用到了生理信号模拟器,这个设备可以模拟各类异常的心电信号,并且可以实时输出,以此作为测试者,选取其中一组异常心电信号,但是其输出的信号十分微弱,最大是mV,最小的为μV级别[20],不便于采集到FPGA板上进行数据处理,若要得到理想的信号输出,需要信号放大器,该放大器是经过百倍或者千倍的放大后输出为伏级别的信号,传输到FPGA上经过数据处理后可以很好地呈现在开发板的屏幕上,以进行后续的信号处理。

3.3 实验测试

首先,以人体为被测试对象,接入采集模块,通过上述验证的FPGA算法处理,连接血泵装置,测试其是否可以达到理论上的准确率及效果。在测试中,被测试对象通过电极片的传输采集心电信号,处理结果呈现在显示屏上,在显示屏上有心率统计,每一次的心跳都会触发电磁式搏动血泵的驱动部分,从而控制杠杆上下摆动,达到供血的目的,通过不同的样本量和同一时间周期测量,测试二十组正常的人体心电信号,可以得到是否达到期望的准确率。

其次,以生理信号模拟器为被测试对象,模拟患者的异常心电信号,同样通过信号采集到FPGA中,因为是实时采集信号,所以模拟器需要通过导联线直接接入硬件部分,在硬件中进行实时信号处理,连接血泵装置,控制驱动电路,观察杠杆的上下摆动次数及供血次数,测试每一次提取R波后驱动血泵的状态,从而观察和统计提取R波的数量与触发电磁式搏动血泵的次数是否一致,测试生理信号模拟器中的异常心电信号共47组,最后观察并计算提取率是否达到较高的准确率。

最后,要进行同步辅助测试,测试AD8232传感器是否能准确采集心电信号,输入到FPGA中采集到的心电信号是否与实际信号同步,处理后的信号是否降低了噪声的干扰,波形平滑程度及清晰度,观察算法是否可以准确并迅速地识别R波。在一系列测试后,对血泵装置进行同步测试,驱动装置是否带动杠杆运动,运动的频率与识别到的R波是否同步,供血程度是否可以达到所需要求,对以上一一进行验证。

4 结果与分析

为了展示对异常心电的R波检测效果,所以选取了一组具有代表性的异常心电,得到噪声较大的波形图,如图10(a)所示,经过FIR结合香农能量算法与自适应中值滤波后得到一个较为平滑且噪声减小的波形图,波形也更加清晰可辨认,如图10(b)所示。

图10 去除噪声波形对比图

处理之后的波形更易提取R波信号,例如像上述降噪之后的波形,是一个典型的R波倒置异常波形图,对此采用下限阈值及R-R间期可以提取出较为准确的R波;R波明显,其它波不明显,可以采用上限阈值及R-R间期提取R波。以异常数据库中的第102组实时模拟信号为例,在经过FPGA处理之后的波形,直线为分割区域,上面的通道为采集到的异常波形,下面的通道是提取到的R波范围,使用高低电平表示如图11所示。这个界面为实时更新的状态,可以更直观且有效地反应出心电波形的一个变化趋势,实时检测可以随时反映被测试者的心电信号变化,及时发现问题,可以更好且更快地处理问题。经过实验测试后,每测到一次R波时,如图界面会有一次高电平控制血泵装置的活塞驱动杠杆向下运动一次,高低电平交替往复控制杠杆上下摆动从而血液会经过管道泵一次血液流入腔体,测得的R波的数量与触发电磁式搏动血泵的次数一致,触发后供血达到需求量,所以该设计具有可行性。

图11 硬件提取R波图

为了验证算法的宽泛性,用MIT-BIH数据库的数据用该算法对每一组的心电信号进行测试,见表1所示,共47组心电信号。其中100号、101号等34组准确率为100%,剩余13组异常心电信号准确率没有达到100%,异常信号较为广泛,甚至没有规律,并且需要实时处理,所以不能对所有异常信号都适用,虽然有漏检或者误检,但总体准确率为99.73%,是一个较为理想的检出准确率。因为在实验阶段,所以电磁搏动式血泵仅测试了多组正常心电,都识别出了R波并给血,均达到了非常理想的结果。

表1 MIT-BIH数据库数据R波检测结果

5 结束语

近些年来,心脏病发病频率直线上升,当人体心脏病变而导致心脏衰竭时,心脏的收缩能力和舒张能力就受到影响,无法为人体灌注足够的血液。

就此设计提出了一种能够在FPGA上实现心电信号自动采集检测的方案,采集模块可以实时采集到人体心电信号,实现了FPGA控制血泵进行辅助治疗,采集后的心电信号经过FPGA处理后,通过触发继电器控制线圈及其内部永磁体进行泵血,针对血泵的驱动特性,确定患者心跳周期和心率,从而进行同步心室辅助。采用MIT-BIH心电数据库中的心电信号作为信号源,利用ModelSim软件和Verilog语言进行编译仿真,通过Matlab和ModelSim的仿真测试,从仿真结果可以看出,本设计的检测结果准确。使用FPGA硬件实时采集心电信号,并且通过FIR滤波结合香农能量算法和高阶中值滤波等算法实现实时处理提取R波,提高检测的准确率,最后控制设计的电磁搏动式血泵装置,达到辅助患者收缩及舒张血液的作用,这一创新设计为临床的左心室衰竭患者提供了帮助。

猜你喜欢
血泵心电电信号
基于联合聚类分析的单通道腹部心电信号的胎心率提取
心电向量图诊断高血压病左心室异常的临床应用
基于非接触式电极的心电监测系统
基于BP神经网络的旋转血泵生理控制
穿戴式心电:发展历程、核心技术与未来挑战
基于Code Composer Studio3.3完成对心电信号的去噪
更正启事
基于随机森林的航天器电信号多分类识别方法
Flow field CFD analysis of axial flow blood pump*
基于生物电信号的驾驶疲劳检测方法