基于加权平均的胎心率提取算法

2020-11-17 06:29张仙伟王何庆魏建军王振愿
计算机工程与设计 2020年11期
关键词:噪点波峰胎心

张仙伟,王何庆+,魏建军,王振愿

(1.西安石油大学 计算机学院,陕西 西安 710065; 2.西安电子科技大学 综合业务网理论及关键技术国家重点实验室,陕西 西安 710071)

0 引 言

从胎心音中获取胎心率并长期监测成为了产前检查中的一个重要部分,而胎心率是评判孕妇腹中胎儿状况的一个重要因素,准确获取胎心率对获取胎儿的状况是至关重要的[1-3]。传统胎心音听诊法强烈依靠医生经验,存在着听数遗漏、听数错误,并且受到周围干扰的影响非常大,而且不能连续、动态地监测胎心率等缺点。广泛使用的多普勒胎心监护仪基于超声波原理,诊断准确,结果可靠,但其对胚胎和胎儿的潜在危害也是不容置疑的。为了长时间动态监测胎儿的发育状态,并且可随时随地监测,孕妇迫切需要胎心音监测设备,在不影响正常工作、生活的前提下,长时间连续地监测胎心率,对产科医生的诊断提供可靠参考,现在更倾向于从胎心音信号中提取胎心率[4-6]。从孕妇腹部通过传感器获取的胎心音信号,是一种被动式接收的,安全可靠的信号。胎心率需要通过胎心率提取算法从胎心音信号中计算获取,通过计算比较直接计算法、时间加窗法以及基于加权平均的计算方法,对比这3种方法获取的胎心率,由胎心率的结果准确获取胎儿的状态[7-9]。

1 胎心率提取

胎心音信号本身比较弱,此外,信号需要通过母体,然后到达腹部的信号采集范围区域,由于在多层障碍物的阻碍下信号衰减到极弱的状态。与此同时,母体自身和外界对其存在相对比较大的干扰。经过降噪和放大后,仍然不可能是完美的图形,给胎心率提取造成了很大的困难[10,11]。

目前应用较多的胎心率提取算法是直接计算法和时间加窗法。直接计算法是计算两个连续波峰的时差,时差为ts,则胎心率FHR为

(1)

直接计算法的不足之处在于计算误差比较大,优势在于计算简单。时间加窗法是先取一个时间长度固定的时间窗tw,进而计算时间窗内波峰的个数N,则对应的胎心率FHR为

(2)

一般情况下tw的设定值为6 s,每个时间窗口至少包含12个波峰。时间加窗法的优势在于引入了一个时间窗,使噪声平滑,从而减少了噪声的影响,更适合于心率实时计算的情况。在同样的情况下,tw的值越大,具有的优势就越明显,时间加窗法的不足之处是时间窗过长就会导致时延长,效率继而降低。

针对胎心率提取的问题,不少学者进行了研究,提出了比较有效的算法。Romano所运用的方法运算速度较快[12,13],然而,出现在分数分母上的是两个波峰的距离,进而,微小的噪声改变就会使胎心率的值发生较大的变化,因此,这种方法不适合实时的情况,而且对噪声很敏感。Zahorian提出的算法削弱了噪声的干扰[14],但带来的影响是存在较大的时延。

2 基于加权平均的胎心率提取

使用直接计算法计算胎心率的结果是计算的值不断的跳变,因此,直接计算法不适合实时系统中的应用。而使用时间加窗法就会让计算的结果,胎心率的值最小的变化大于1,当某个时间窗中波峰的峰值偏小而又被漏掉,此时计算的结果值就会被缩小,并且会误使噪声干扰得到的峰值当成胎心音的波峰进而结果值就会变大,就会使系统得到的结果不稳定。根据胎心率的时间相关性,提出基于加权平均的胎心率提取,窗内自动加权平均且窗外指数加权平均修正,使得实时系统输出结果更稳定,自动加权平均算法见表1。

表1 自动加权平均提取胎心率

算法中的步骤(1),降低采样率的目的是为减小数据量,进而降低了算法耗时。算法中的步骤(3)计算结果是相邻波峰的间隔。但是,在错检或是漏检波峰的情况下,波峰间隔都具有相同权值,由此使得这种方法存在着问题。基于此,引入了自动加权平均的方法,找到最集中的波峰间隔并且求平均,具体方法为表1中算法步骤(3)~步骤(7)。将峰间距从小到大排序,运算相邻峰间距的时间差。一般情况下,矩阵Q中的全部的元素近似相等,在漏检波峰情况下,一个较大的波峰间隔会出现在Q的靠右位置,在波峰错检的情况下,较小的波峰间隔会出现在Q的靠左位置,由此可得,中间点为正常数据,两侧可能是噪点[15]。在矩阵F中,值越小,即Q中相邻波峰之间的间隔越近,这意味着在计算胎心率的时候,这两个值应具有更大的权值。当矩阵F中的元素大于阈值ε时,意味着在Q中的两个对应峰中最少存在一个噪点,即其中的一个为边缘点,其中的另一个为噪点。在此条件下,应减少甚至从计算中排除相应的权重值。在峰间隔矩阵G中,边缘数据点将会出现一次,中心峰间隔点将会出现两次,权重值是原来的二倍,并且权重将保持不变。权值为零,是由于噪点没有在矩阵中出现。由此消除了噪点的干扰,使计算的胎心率更加准确。下面示例给出自动加权平均算法提取胎心率的具体说明,设定阈值是0.1,如图1所示。

图1 自动加权平均胎心率提取算法

从图1可以看出,在此实例中,同时存在漏检和错误检测的情况,图中的第一个波峰的值是胎心音前一个周期的第二波峰,这是错误检测的情况。因为振幅偏低的缘故,并没有检测到第4个波峰,属于漏检波峰。将峰值间隔排序以后,漏检的情况出现在最右端,错检出现在最左端。当从峰间隔差对应的矩阵F来计算峰间隔矩阵G,首先找的值为0.0030,将其所对应的值为0.7030和0.7000存入矩阵G中,同时操作波峰间隔差F中的值0.0040,将其所对应的0.6960和0.7000存入矩阵G中。对于波峰间隔差F中的0.6580以及0.2740对应的值都比阈值大,同时也不参加胎心率的运算。因此,从波峰间隔矩阵G中可以推出,当计算峰的平均间隔时,中心数据的权重0.7000加倍,除去两个噪点,而且边缘数据的权重值不改变,基于这种算法的思想即为自动加权平均算法的思想。

以上的算法是胎心率在时间窗内的提取方法。以上算法的时间窗口是以每秒8000个数据的速度进行移动,这就相当于每一秒可以得到一个胎心率。当时间窗口内出现更多噪点的时候,对于自动加权算法来说,消除噪点干扰的能力就会很大减弱,尤其在极端的情况下,噪点就会完全掩盖掉正常的数据,使得结果出现极大的变化。由此,必须限制每个时间点的胎心率数据不会比前一时刻的胎心率数据出现很大的变化,由此,在时间窗口之间使用指数加权平均算法进行修正

v0=0,
v1=β·v0+(1-β)·θ1,
v2=β·v1+(1-β)·θ2,

vt=β·vt-1+(1-β)·θt.

(3)

式中:θt表示t时刻的数据,vt表示t时刻指数加权平均算法优化后的值。β为长度因子,其值大于0而小于1。vt大约是1/(1-β) 个数据的平均,例如β=0.9代表着vt是10次数据的平均数值。因为设定的初始值v0=0,对于前面计算的结果值是有影响的,因此,为修正这种影响,进行偏差的修正。也就是

(4)

当t很小时,分子发挥作用,随着t的增大,1-βt≈1,分子的影响可以忽略。在特定情况下是不需要进行偏差修正的,原因在于是在1/(1-β) 个数据的后面。在需要观测胎心率实时变化的时候,需要一种偏差校正方法。在时间窗口内进行运算并且在时间窗口外对数据进行指数加权平均算法修正,由此,胎心率的数据将会更稳定。

3 胎心率的提取测试

为获得胎心率提取算法的真实效果,下面进行两部分的真实测试。测试的开始需要在一个时间窗口内完成,需要3种胎心率的提取算法进行比较,然后在此基础上,在多个窗口中测试指数加权平均算法的实际效果。3种算法的比较结果如图2所示。

图2 3种胎心率提取算法结果对比

在图2中可以看出,所提出自动加权平均算法相比较另外两种算法,在性能上有所提升,但是,就其自身算法结果而言,在噪点大量存在时,结果还是会发生较大的变化。比如在第16次到第18次范围内可知,胎心率的数值出现了跳跃式的改变,这种变化是不允许在实际使用系统中出现的。由此,需要考虑时间窗与时间窗之间的情况,正常情况下,胎心率是一个平滑的、稳定的、连续变化的数据值,而且在较短时间的条件下胎心率的值是没有跳跃式的变化,发生这种情况的原因是受到了噪音的干扰。利用胎心率的这一特征,使用指数加权平均算法对胎心率数值进一步处理。给定值β=0.9,对于使用偏差修正的指数加权平均算法,计算的胎心率数值如图3所示。

图3 胎心率提取算法比较

从图3可知,指数加权平均算法基于胎心率窗内加权平均提取算法,然后通过指数加权对结果进行校正。在第2个至第14个数据范围内,发生的轻微抖动被消除,在第14个至第20个数据范围内,自动加权平均算法条件下是阶跃式的变化,而指数加权平均算法条件下是削弱了阶跃式的变化,使得曲线是平滑上升的趋势,与实际的情况一致。

4 结束语

胎心音信号极其微弱且伴有噪声和干扰,针对直接计算法和时间加窗法中噪声和耗时两方面的问题,提出了对胎心率自动加权平均提取的算法,自动加权平均提取的算法可以消除时间窗内的错检和漏检。与此同时,胎心率具有时间相关性,由此引入了带有偏差修正的指数加权平均算法,带有偏差修正的指数加权平均算法对时间窗内的操作所获得的胎心率加以限制,使得最终系统满足实时稳定输出的要求。在实际系统测试中,本文方法比前两种算法的输出更稳定,与实际结果一致。

猜你喜欢
噪点波峰胎心
胎心监护仪的多发故障解析与日常维护
炮制工程骗钱的“甲方”
基于联合聚类分析的单通道腹部心电信号的胎心率提取
相机学院
作用于直立堤墙与桩柱的波峰高度分析计算
相机学院
低相噪点频源的设计与验证
技术橱窗
儿童标准12导联T波峰末间期的分析
胎心监护:胎儿健康早知道