基于压电信号的两种心率呼吸率提取算法比较*
2018-08-06贾学斌廖曦文商春恒王云峰
贾学斌,廖曦文,商春恒,王云峰,2,4
(1.中国科学院微电子研究所,北京 100029; 2. 江苏物联网研究发展中心,江苏 无锡 214000;3. 中国科学院大学,北京 101400; 4.新一代通信射频芯片技术北京市重点实验室,北京 100029)
0 引言
随着物联网技术在国内的蓬勃发展,与物联网相关的产品逐渐进入人们的视线。伴随着柔性电子材料、智能传感器元件、低功耗处理器、通信技术和信号处理方法等的发展进步,医学检测仪器向更准确化、小型化、网络化、低成本化的方向发展[1]。柔性聚偏氟乙烯(Poly (vinylidene fluoride),PVDF) 压电薄膜就是一种广泛应用于医疗仪器的传感器[2]。基于压电薄膜的睡眠监测系统可以监测躺在铺有传感器的床上的测试者夜间睡眠状态下的心率、呼吸率和体动等生理特征,它采集的呼吸心跳混合信号如图1所示。
图1 呼吸心跳混合信号
目前处理压电薄膜采集的呼吸心率混合信号的算法主要有:时域寻峰算法和频域寻峰算法。本文将介绍一个由压电薄膜、放大滤波电路和嵌入式芯片所组成的生理参数采集系统,并分别用两种算法处理该系统采集到的心跳呼吸混合信号,比较两种算法在处理此类信号方面的优缺点。
1 硬件系统设计
信号采集分析系统框图如图2所示。
图2 信号采集分析系统框图
PVDF压电薄膜厚度通常为几十微米,用其制成的传感器响应较快(ns 量级),灵敏度较高,在0 ~20 GPa 范围内均有较好的信号输出[2-3]。实验被测者躺在放置了压电薄膜的床垫上进行测试。PVDF 薄膜的上下两面电极引出两条线路接入PCB板。
人体心跳的频率范围为1~2.1 Hz[4],呼吸的频率范围约为0.2~0.8 Hz[5]。与此同时,实验环境中的50 Hz 工频噪声和实验被测者在测试过程中移动等产生的噪声都会给实验结果造成严重的影响,实际测试得到有用信号的频率范围在0~5 Hz的范围内。前端PVDF 压电薄膜自身阻抗很大,一般在108Ω以上[6],首先利用电荷放大电路将高阻抗输入变为低阻抗输出,并将微弱的电荷信号变成具有较高信噪比的电压信号。为使混合信号中反映的特征信息得到完整的保留,采集的原始信号首先通过50 Hz的陷波器滤除工频干扰,然后使用截止频率为5 Hz的二阶贝塞尔低通滤波再次进行滤波。为了防止产生的负电压影响AD采样,在进行放大和滤波的同时把整体电压抬高1.5 V。
采集到的模拟信号经过STM32芯片进行16位AD采样,再通过心率呼吸率提取算法提取出被测者的心率和呼吸率。提取完成后,STM32控制WiFi模块将计算得到的心率和呼吸率上传到云端供用户查看。
2 两种心率和呼吸率提取算法
MCU把AD采样得到的数字信号分别通过算法模拟的阶数为400、通带为0.1~1 Hz和阶数为300、通带为1~3 Hz的两个巴特沃斯IIR数字滤波器进行滤波。使用滤波器滤波分离法与小波分解重构分离法的波形分离效果基本一致,但是小波算法的底层MCU实现起来的时间复杂度非常大,因此此处选取滤波器分离的方法。滤波之后分别得到呼吸和心跳的信号,如图3所示。
图3 分离之后的心跳和呼吸信号
在分别得到的呼吸信号和心跳信号的基础上,通过提取算法计算对应的心率和呼吸率。下面来介绍两种心率和呼吸率提取算法:时域寻峰算法和频域寻峰算法。
2.1 时域寻峰算法
时域寻峰算法的流程图如图4所示,经过滤波器分离得到的心跳(呼吸)信号首先经过二阶差分初步确定峰值点的位置。此时已经确定的峰值点中包含间距过小的伪峰。根据设定的心跳(呼吸)频率最大值确定两峰之间最小间距,滤除峰值点间距过小的两峰值点中的后一个峰值点。
图4 时域寻峰算法流程图
经过筛选之后确定峰值点的坐标,将所有峰值点横坐标作差、求和并平均得到平均峰峰间距ΔL。采样频率fs为100 Hz,根据公式(1)和(2),由ΔL求出对应的心率和呼吸率。
(1)
(2)
2.2 频域寻峰算法
频域寻峰算法流程图如图5所示。
图5 频域寻峰算法流程图
采集原始信号时的采样频率为100 Hz,为了使FFT变换的频率分辨率更大,首先对分离得到的心跳(呼吸)信号进行降采样。其中对呼吸信号的降采样倍数为20,即降采样后呼吸信号的采样频率为5 Hz;对心跳信号的降采样倍数为10,即降采样后心跳信号的采样频率为10 Hz。对降采样之后的心跳(呼吸)信号进行FFT变换得到对应的频谱图。再对FFT变换结果进行寻峰,直接记录下寻峰得到的第一个峰值点,之后每寻到一次峰值点都要进行阈值的比较,与阈值相等的峰值点才会记录下来。本文的阈值采用了动态阈值的处理方法。动态阈值的变化如图6所示,图中实线为心跳信号FFT变换结果,虚线为动态阈值。阈值从初始值THRinit开始每隔0.078 Hz(呼吸信号128点FFT变换的频率分辨率)以初始斜率Kinit减少,当阈值与FFT变换结果相等时,阈值与FFT变化结果一致,并随之增加,直到增加至下一处峰值点处,再次以另一斜率下降,如此循环直到最后一个频率点。动态阈值的初始值和斜率变化公式如式(3)和(4)所示。其中Sr为斜率变化率,值为0.2,Vn-1为前一峰值点的纵坐标。采样频率fs为100 Hz。
(3)
(4)
只有与当前阈值相等的峰值点才会被记录下来。当寻峰完成之后,比较所有的峰值点,记录最大的峰值点的横坐标为fmax,即心跳(呼吸)的频率。再由fmax确定心率(呼吸率)。
图6 动态阈值处理
3 两种算法实验设计及结果比较
3.1 实验设计
为了能够比较两种算法计算心率和呼吸率的准确率和抗干扰能力,本文设计了以下两个实验:
实验1:(1)使用MATLAB模拟时长为5 min的呼吸和心跳的混合信号;(2)用两种算法分别计算3组数据的心率和呼吸率;(3)比较两种算法计算结果的准确率。
实验2:(1)被测者躺在铺有传感器的床上,床旁配置飞利浦VM6床旁监护仪,被测者佩戴好监护仪的心电电极和指夹;(2)两套系统同时开始测试,记录人员每隔10 s记录一次两套设备计算出的测试者的心率和呼吸率,测试进行10 min。
3.2 实验结果
(1)实验1结果
表1展示了实验1中两种算法对3组数据进行处理的正确率。
表1 实验1中时域寻峰与频域寻峰算法计算结果准确率 (%)
(2)实验2结果
使用MATLAB将实验观察者记录的数据化成折线图方便与算法结果进行对比。为了排除测试开始和结束时产生的不准确的测试结果,只截取了第2~9 min的结果进行展示。图7展示了记录人员记录的结果与算法计算出的心率和呼吸率结果对比图。图中实线为算法计算出的结果,星线为记录人员记录的结果。
根据表1的结果可以看出,在处理完全没有噪声的纯净信号时,频域寻峰算法准确率更高。根据图7的结果可以看出,在处理实际采集到的包括噪声的信号时,频域寻峰算法得到的结果曲线与实际记录的数据曲线更为相似,并且整体的结果更为平稳,而时域算法得到的结果曲线与实际记录得到的数据曲线相差较大。综上所述,频域寻峰算法在处理呼吸与心跳混合信号方面的准确率和抗噪声能力更为优秀。
图7 实验记录人员记录的结果与算法结果对比图
4 结论
本文通过比较时域和频域两种处理呼吸与心跳混合信号的算法,得出频域寻峰算法是一种准确率高并且具有很强抗干扰能力的算法。将该算法与PVDF压电薄膜、STM32控制芯片和WiFi模块相结合,可以设计出无线睡眠监测系统,能更好地监测呼吸率和心率的变化。