基于自学习算法的BCG信号处理方法*
2018-04-09王田苗倪自强
王 炬, 王田苗, 栾 胜, 倪自强
(北京航空航天大学 机械工程及自动化学院,北京 100191)
0 引 言
目前,在临床上通常采用多导睡眠仪对睡眠过程中的多项体征参数进行监测,这种监测需要在医院或实验室环境下进行,并要求测试者佩戴多个电极片及其他传感器设备,监测极为不便且成本较高。心冲击描记(ballistocardiogram,BCG)信号是指由人的心跳等生命体征活动引起的微小力信号,出现了包含心跳、呼吸、体动在内的多种体征信号,相对其他信号采集方法具有采集方法简单、对用户无干扰等优点,在睡眠体征监测领域具有广阔的应用前景[1]。睡眠状态的体征,尤其是心率可以反映出人体健康状况以及睡眠质量。BCG信号由于缺少确定的心跳信号模型进行心跳识别,往往需要复杂的处理过程捕捉心跳获取心率。因此,对BCG信号的处理成为研究的难点和热点[2~4]。
本文主要针对BCG监测系统及心率提取算法,提出了一种基于聚类分析算法的BCG信号心跳波形自学习方法,通过获取心跳波形对BCG信号中的心率数据进行提取,实现了体征监测。经实验验证:获取的心率监测结果误差在±2 %以内,验证了算法的精度及其实用价值。
1 基于BCG信号的体征监测实验平台设计
BCG信号的采集方式有多种[4~7],其中压电薄膜传感器是一种动态应变传感器,当受到压力、拉伸或者弯曲等动态变化时,产生电荷信号,电荷量的大小和受到的应力或应变的大小成比例,对动态应力非常敏感。为了采集BCG信号,实验搭建了基于压电薄膜传感器的信号采集实验平台如图1所示。
图1 BCG信号采集实验平台
在采集的BCG信号中,包含了睡眠或静卧状态下的心跳、呼吸、以及翻身等体动信号成分。几种信号叠加,呈现出不同的频率特征。呼吸信号的频率和人的呼吸频率一致,在12~30次/min范围内。而心跳信号的信号功率主要分布在1~10 Hz频率范围内,且波形比较复杂。根据其频率分布上的不同,通过不同的通带频率的数字滤波器将呼吸信号和BCG信号从叠加的信号中分离。如图2所示。
图2 BCG信号滤波处理
2 基于自学习的BCG信号处理算法设计
不同于心电(ECG)信号,BCG信号没有确定的信号模型,需要复杂的处理过程获取心率。基于实验观察,在对非特定约束条件下,人在睡眠过程中采集的BCG信号中,心跳波形受众多因素影响,尤其是被试者的卧姿。其他影响因素还包括床垫的软硬程度及支撑性、被测者的体质特征等,均造成心跳波形不同,如图3所示,难以提前预知心跳的波形模型。
图3 不同睡姿下的心跳信号差异
为提取心率,一些研究提出了通过小波滤波等方法提取心率的算法[3,4]。但需要预知心跳波形的形状,才能选择合适的小波基得出准确的结果。而在另一些研究则是通过对BCG信号功率谱的分析来获取心率[8],但易受到外界干扰信号的影响,心跳的误识别率较高。
本文结合之前研究的成果和不足,提出了一种基于聚类分析自学习算法的心跳波形提取和心率识别的方法。算法的总体流程如图4所示。
图4 算法流程
1)使用带通滤波器滤除低频的呼吸信号和高频的环境噪音对BCG信号的影响,并排除人为体动发生的信号段;2)使用聚类分析的方法提取用户此刻的心跳波形,称之为自适应心跳波形(adaptive heartbeat curve,AHC),这个过程即自学习过程;3)使用AHC与后续BCG信号进行匹配,定位心跳点,并得出心率;4)当用户由于睡姿改变等原因造成心跳波形发生变化,导致与原AHC匹配状况恶化时,则需再次进行自学习过程,提取新的AHC。
2.1 自学习过程
自学习信号的长度越长,信号中包含的心跳波形数会越多,但同时会降低自学习过程的速度。实验证明,对15 s的BCG信号进行自学习能够获得较好的效果。
1)提取信号波形中的极大值点,并提取出以极大值点为中心的长0.8 s的一组信号段Si;
2)计算每2段信号之间的相关性,得到相关性矩阵;
3)根据相关性矩阵进行聚类分析;
4)提取聚类成员数最多的一组聚类作为AHC。
对于2段信号,采用共组成的2个长度相同的数列qi和qj的相关系数Corr(qi,qj)表示2段信号形状上的相似程度
(1)
分别计算任意2个序列之间的相关性系数,得到相关性矩阵为
(2)
采用顺序聚类算法,将相关性大于阈值v的曲线,放到一个聚类中。结合参与聚类的信号段规模较小的特点,在测试中发现顺序聚类算法能够有效地根据信号段间的相关性关系进行分类。算法为:
m=1
Cm={q0}
Fori=1 toN-1
-if(R(qi,Ck)>v)
*m=m+1
*Cm={qi}
-Else
*Ck=Ck∪{qi}
-End{if}
End{For}
其中,R(qi,Cj)为信号段qi和聚类Cj中的所有信号段的相关性的最小值,用于保证每个聚类中所有的信号段之间均具有较高的相关性。
在聚类结果中,认为包含成员最多的一组聚类的特征最为明显。将这组曲线重叠,可以看出这些信号高度相关,可作为AHC。
图5 AHC提取
2.2 心跳匹配
在得到心跳波形后,将其与之后采集的信号进行相关性计算,从而判断一个极大值点是否是与提取的心跳波形中心的极大值点对应的心跳点,从而捕捉到心跳。过程为:
1)在信号中取极大值点nj;
2)取出以该极大值点ej为中心的前后各0.4 s的一段信号ej;
3)计算ej与AHC之间的相关性Cj;
4)判断,Cj满足Cj>Cj-1,Cj>Cj+1,且Cj≥v,则捕捉nj点为心跳点。
计算获得BCG信号中的以每个极大值点为中心的信号段与心跳模型之间的相关性系数。如图6所示,计算所得的相关性系数表现出较强的波动性和周期性。将满足步骤(4)的极大值点捕捉为心跳点。其中,阈值v会影响心跳捕捉的覆盖率和误识别率。当v提高时,误识别率会降低,但同时也会降低心跳捕捉的覆盖率。通过实验发现,将v设为0.83能够将误识别率降到0.1 %左右。
图6 心跳匹配与捕捉结果
通过捕捉到的心跳点,可以获得捕捉到的相邻心跳点之间的时间间隔t(n),进而判断2个心跳点是否是实际发生的2个相邻心跳产生。考虑到用户在静卧时的心率范围和心率不会发生突变的特点,设定以下2个条件进行判断:
1)500 ms 其中,条件(1)用于判断设定心率范围30~120次/min时,能否符合绝大多数情况下的心跳监测要求。当连续15 s没有采集到有效的心跳间隔时,判定为匹配结果恶化,再次进行自学习过程提取新的心跳信号模型。 为了验证该算法的准确性,对6名不同性别、年龄、体质的测试者进行了实验验证。对于每名测试者,同时采集BCG信号和ECG信号,时长在20 min左右。采集到信号后,按照前述算法对BCG信号进行处理捕捉心跳,并计算心跳之间的间隔。将处理得到的结果与心电信号中提取的心跳周期(R-R周期)进行对比,验证结果。在实验过程中,未限制测试者卧姿,可以进行自由调整,尽量模拟用户的实际睡眠状态,以验证算法的实用性。 实验结果显示,通过上述算法捕捉到的心跳的覆盖率在70 %以上,处理得到的心跳周期与心电信号的心跳周期的平均误差均在±2 %以内,且对不同的测试者在结果上均能取得较好的结果,从而验证了算法的有效性。 表1 实验结果 进一步通过Android平台实现算法,完成了一种能够实时反馈心率等体征的具有实用价值的体征监测平台,如图7所示,并与医疗级的心率监测设备结果进行了对比,进一步验证了算法的准确性,并证实了其实用意义。 图7 基于Android平台的体征监测系统 针对当前睡眠体征监测手段不足的问题,搭建了一种基于压电薄膜传感器的睡眠体征监测实验平台,结合前人在BCG信号处理算法上的成果和不足,提出了一种基于自学习方法的心跳波形提取和心跳捕捉的体征监测算法,并通过实验验证了算法的准确性和实用性。方法具有包含多种体征信息、且对用户完全无碍式的体验,因此,具有广阔的应用前景,能够成为自我健康监测与管理的重要数据来源。 参考文献: [1] 肖小玉,黄善洛,陈淑靖,等.一种基于压力传感器的穿戴式呼吸监测系统设计[J].传感器与微系统,2016,35(2):126-129. [2] Paalasmaa J,Ranta M.Detecting heartbeats in the ballistocardiogram with clustering[C]∥Proceedings of the ICML/UAI/COLT 2008 Workshop on Machine Learning for Health-Care Applications,2008. [3] 王春武,王 旭,龙 哲,等.基于心冲击信号的心率提取算法[J].东北大学学报,2012,33(8):1103-1106. [4] Jin J,Wang X,Li S,et al.A novel heart rate detection algorithm in ballistocardiogram based on wavelet transform[C]∥The Second International Workshop on Knowledge Discovery and Data Mining,2009:76-79. [5] 周子健,黄绍岚,杨其宇,等.基于光栅传感器的穿戴式呼吸监测系统设计[J].传感器与微系统,2015,34(7):85-87,90. [6] Cha J Y,Choi H S,Shin J Y,et al.Unconstrained respiration and heart rate monitoring system based on a PPG pillow during sleep[C]∥The 30th Annual International Conference of the IEEE Engineering in Medicine and Biology Society,2008. [7] Paalasmaa J.Monitoring sleep with force sensor measurement[D].Finland:University of Helsinki,2014. [8] Friedrich D,Aubert X L,Brauers A,et al.Heart rate estimation on a beat-to-beat basis via ballistocardiography—A hybrid approach[C]∥Proc of IEEE Eng Med Biol Soc,32th Ann Int’l Conf,Buenes Aires,2010:4048-4051.3 实验分析与验证
4 结束语