快速滑动平均滤波在PPG信号去噪中的应用
2019-07-29胡芳凝王忠刘超群
胡芳凝 王忠 刘超群?
摘 要:光电容积脉搏波采集过程中存在的高频噪声会给后续测量带来困难,去除噪声干扰是准确进行相关参数测量的关键。常用的滤波方法对处理器的运算能力和存储空间有较高的要求,不适合在物联网应用场景中应用。针对嵌入式设备计算能力弱和存储容量小的特点,提出一种基于快速滑动平均滤波的信号去噪算法,分析了滑动窗口宽度与信号截止频率的关系,并用该算法对血氧饱和度传感器MAX30101的原始输出信号进行了处理,实验结果表明,该方法能实时有效地对PPG信号进行去噪处理,对提高物联网设备中的PPG信号检测精度和速度具有重要意义。
关键词:滑动平均滤波;光电容积脉搏波;高频噪声;嵌入式设备;MAX30101;物联网
中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2019)06-00-03
0 引 言
光电容积脉搏波(Photo Plethysmo Graphy,PPG)描记法是一种无创连续测量血氧饱和度和心率的方法[1]。PPG信号是低幅低频的微弱信号,采集过程中容易受肢体运动和环境光等干扰,影响后续信号特征的准确提取[2]。常用的IIR和FIR数字滤波等方法,滤波器系数一般为浮点数,不利于实时计算[3]。使用小波变换处理信号时,分解层数的确定、变换尺度选取比较困难,且小波分解与重构计算量大,对处理器有较高的要求[4]。自适应滤波须选取一个参考信号,该信号与噪声有关但与有效信号无关,需要不断递归更新参数值,运算较为复杂,运算量大[5]。形态学滤波虽然运算量不大,但运算过程中仍包括2次形态闭开运算和2次形态开闭运算,而形态开闭运算又包含1次膨胀及1次腐蚀运算,因此形态学滤波法的运算量也较大[6]。这些算法虽然在模拟仿真环境下取得了不错的效果,但对处理器运算能力要求较高,限制了算法的应用范围。
考虑到PPG信号的应用场景多为基于物联网的应用或嵌入式系统,如血氧测量仪、智能穿戴设备等,其处理器的运算能力和存储空间有限,但又有较强的实时性要求。本文在分析已有算法的基础上,提出了一种更适用于嵌入式设备运算的PPG信号降噪方法,采用改进的滑动均值滤波法去除高频噪声,提高运算速度,并进一步分析了滑动窗口宽度与截止频率的定量关系,降低对处理器运算能力的要求。
1 滑动平均滤波去噪原理及步骤
1.1 PPG信号分析
PPG信号包含交流分量和直流分量,一般情况下均存在干扰,主要有基线漂移、工频干扰、运动干扰等。加在交流分量上的干扰属于高频干扰,包括运动干扰和工频干扰。加在直流分量上的干扰信号属于低频干扰,波形形态表现为信号的基线漂移[7]。工频干扰为50 Hz及其成倍谐波,为高频干扰。文献[8]对运动干扰机理进行了深入分析,为避免产生运动干扰,本试验在静态环境下进行。
1.2 滑动平均滤波器原理分析高频干扰的处理方法多样,因其频带范围远高于PPG信号的频带,因此可利用低通滤波进行处理。但在血氧饱和度测量中,PPG信号的直流、交流分量均需纳入计算公式进行计算,这需要滤波器的通带增益接近1,且不改变信号幅值大小[9]。为简化算法,使其更适合嵌入式设备应用场景,本文对滑动平均滤波法处理高频干扰进行了研究。该算法原理是把连续取得的N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的数据(先进先出原则),把队列中的N个数据进行算术平均运算,获得新的滤波结果,计算公式如式(1):
滑动平均滤波器的频谱分析缺乏类似FIR或IIR滤波的相关定量资料,实践中仅凭定性观察滤波效果确定滤波器阶数,本文用实验统计方法拟合出在衰减3 dB条件下,滑动平均点数L与分频值Wc(滤波截止频率fc /信号采样频率fs)之间的计算公式,如式(5):
式(5)可用于辅助确定滑动窗口的宽度L。如图3为采样频率100 Hz时,窗口宽度与截止频率的对应曲线图,为了便于使用,也可将二者关系保存成表格,设计滑动平均滤波器时根据截止频率要求查表即可确定阶数。
滤波器阶数越高,对高频干扰的滤波效果就越好,但计算量也会增加,对阻带的衰减能力将持续上升,使原始波形发生一定程度的变形,为后续特征值的提取带来误差。综合考虑平滑效果和截止频率的关系,选择合适的滑动窗口宽度。
1.3 滑动平均滤波器算法改进假设窗口宽度L=11,滤波器输出为:
由式(6)可知,每采集一个数据,CPU将进行一次L个数据的累加,然后再计算平均值。当L取值较大时,需进行L次累加运算,滑动平均运算对CPU资源和RAM空间耗费较大,影响系统的响应速度,观察式(5)发现,每次新测量值相对于上一次的测量值仅有2个点不同,丢掉最早的点,累加最新的点,为此将上式改为:
采用式(7)的运算方式后,只需在第一次求滑动平均值時将滑动区间的L个数据累加,之后的滑动平均数值仅需加入新采集的数据减去最早的数据后做平均运算即可,改进后,点数L越多提升越明显,大大降低了CPU的运算次数,提高了系统的运算速度。
2 实验结果分析
本文将市场上流行的可穿戴血氧和心率生物传感器MAX30101的原始输出信号作为研究对象。该芯片集成有
660 nm红光和880 nm的近红外光光源及高灵敏度光敏三极管、抑制环境光以及数字滤波的低噪声电子电路,可应用于穿戴设备,佩戴于手指、耳垂和手腕等处。所用的测试设备为Maxim公司官方评估板MAX30101 Evaluation Kit,其配套上位机软件可直接显示和配置全部寄存器,全部原始数据和官方算法计算结果将保存到CSV文件中,方便进行后续算法的验证和对比。在测试过程中,应注意对手指或手腕缠裹黑色绑带,以消除环境光的影响,使受测肢体保持静止与均匀呼吸,并远离手机、台灯、电钻等电磁干扰源。由于PPG信号的能量主要分布在0.5~5 Hz,因此本文选择L=11,即滑动窗口宽度为11的滤波器。图4(a)为带毛刺的原始信号,采样频率为100 Hz,采样时间为10 s,图4(b)为窗宽为11的滑动滤波器滤波后波形。
滑动平均滤波器能去除噪声中尖刺等突变干扰,使信号变得更平滑,提高信噪比。与传统自适应滤波方法相比,滑动平均滤波器表现出更稳定的输出。图5(a)为原始信号的频谱图,图5(b)为滤波后信号的频谱图,高频噪声已基本去除。
3 结 语
针对常用的PPG信号去噪方法算法复杂、对CPU运算能力和存储空间要求较高,不适合嵌入式应用场景的问题,本文提出了一种快速滑动平均滤波方法,同时对滑动窗口宽度与截止频率的定量关系进行了分析。实验结果表明,该方法降低了传统的去噪算法的复杂性,具有滤波过程简单、实用、可控性好等特点,特别适用于在线快速数据处理场合,为PPG信号在物联网或者嵌入式设备中的处理提供了良好基础。
参 考 文 献
[1]白鹏飞,刘强,段飞波,等.基于MAX30102的穿戴式血氧饱和度检测系统[J].激光与红外,2017(10):1276-1280.
[2]李皙茹,许金林,李晓风,等.一种基于绿光的可穿戴式光电容积脉搏波测量系统[J].现代电子技术,2016,39(20):125-128.
[3]秦颖,张晶,蔡靖,等. 基于交直流分离的反射式血氧饱和度测量系统的设计[J].传感技术学报,2015,28(6):933-937.
[4]万佳喜,邹玉华,韩国成,等.反射式脉搏血氧饱和度检测系统的设计与实现[J].电子科技,2018,31(11):19-21.
[5]苌飞霸,陈维平,徐力,等.基于光电容积脉搏波法血氧饱和度测量系统研究[J].工业仪表与自动化装置,2015(5):14-16.
[6]王杰华,夏海燕,孙万捷,等.基于EMD和SVD的光电容积脉搏波信号去噪方法[J].现代电子技术,2018,41(4):65-69.
[7]曹昌盛,徐铭,伍守豪.基于PPG信号的无创血氧饱和度测量终端的设计[J].电子设计工程,2017,25(7):57-60.
[8]龚渝順,吴宝明,高丹丹,等.动态环境血氧饱和度监测的运动干扰分离自适应对消方法[J].航天医学与医学工程,2012,25(4):266-268.
[9]张爱华,王平,丑永新.基于动态差分阈值的脉搏信号峰值检测算法[J].吉林大学学报(工学版),2014,44(3):847-853.
[10]贾文水,王仁宝,郭立全.多路负反馈二阶带通滤波电路及其Multisim仿真验证[J].物联网技术,2018,8(1):83.