新闻中心

EEPW首页 > 设计应用 > 基于前项差分和动态阈值的PPG心率测量算法

基于前项差分和动态阈值的PPG心率测量算法

作者:辛 毅时间:2019-09-06来源:电子产品世界收藏

  辛 毅 (Maxim Integrated公司)

本文引用地址:http://www.eepw.com.cn/article/201909/404538.htm

  摘 要:基于Maxim的新款超低功耗微控制器MAX32660,运用前项和动态方法,实现了一种信号的提取算法。该算法为参考设计MAXREFDES1207而设计,并进行了测试,效果优良,适合可穿戴设备的实时测量。

  关键词:

  引言

  近年来,随着大众生活水平的日益提高,各种可穿戴健康设备逐渐成为了一个热点领域。这些设备具有体积小、续航长、使用便利等诸多优点,能够实现评价人体的多种生命体征,为人们生活方式的改善提供有益建议。在生命体征的评价指标中,实时心率极其重要。本文基于Maxim的新款超低功耗微控制器MAX32660,运用前项和动态方法,实现了一种信号的心率提取算法。该算法为参考设计MAXREFDES1207而设计,并进行了测试,效果优良,适合可穿戴设备的心率实时测量。

  1 原理与背景

  目前,国内外开发了许多电子设备用于心率测量,其本质是分别运用了4种不同的测量方法:电势测量法、生物阻抗法、动脉血压法和光电测量法。前3种方法分别利用人体的心电、生物电阻抗和动脉压的周期性变化来计算心率,干扰度大、硬件要求高,因而较少被可穿戴设备采用。

  比较常用的是光电测量法。光电测量法即“光电容积脉搏波描记法 ”,即通过绿光LED光源结合接收传感器管照射人体的血管,根据血管对光的反射量的改变获得PPG信号,从而测量心率。由于人体的皮肤、骨骼、肌肉等对光的反射是固定值,而血管容积随着脉搏的变化而不断变化,所以血管对光的反射是波动值,其波动频率即为心率。目前,光电测量法是市面上可穿戴器件的主流,Maxim的低功耗心率MAXREFDES1207也是基于这一原理进行心率的提取。

  从PPG信号获取心率有多种成熟的算法,如阈值法、模板法,甚至有些算法还利用了机器学习的原理。其中,阈值法算量小,但是准确度较低;模板法准确度较高,但算法复杂;机器学习方法准确度最高,但是对硬件要求甚高,一般的微控制器无法胜任。由于本设计需要在MAXREFDES1207的MAX32660平台上实现,需要做到心率的实时计算并兼顾到结果的准确性,故本文在阈值法的基础上加以改进,结合前项差分的预处理方法实现算法,实现准确、实时的心率输出。

  2 算法实现

  2.1 数据预处理

  一般而言,从传感器中读取的原始信号含有较多噪声。其中最为显著的噪声由体表的运动产生。在测量过程中,人并不能保证完全静止,这些扰动会使测量部位和传感器之间的距离发生变化,导致接收到的信号发生变化。最为典型的干扰是呼吸干扰,会使得信号的基线发生缓慢漂移。一路典型的PPG原始信号如图1所示。可见,信号的基线受到呼吸的影响,有较为严重的漂移。同时可以观察到,信号中含有较大的直流分量,这都给心率的提取造成了障碍。

1568173069617163.png

1568173120511607.png

  鉴于此,本算法使用前项差分法进行数据预处理,即计算原始PPG信号 r(k) 的前向差分信号x(k)=r(k)-r(k-1),可以同时达到去除基线漂移和直流分量的效果,如图2所示。

  由图2可见,进过预处理,原始PPG信号中的基线漂移和直流分量都已被去除,同时原始信号的周期性特征已经从易被干扰的波峰转化为特征突出的负脉冲,为下一步的阈值法计算心率提供了有力支持。

  2.2 阈值检测

  经过预处理的信号的干扰已经被抑制,可以进行心率的计算。鉴于波形的特征和硬件的性能,本算法使用阈值法对预处理后的信号的负脉冲进行提取,从而计算心率。需要注意的是,图2信号中的不同负脉冲的峰值并非完全一致,因此如果使用硬阈值进行峰值检测,效果不会理想。为此,本算法使用动态阈值进行检测。动态阈值又称软阈值,即根据信号的特性不断地更新阈值,从而获得较好的检测效果。具体来说,首先,将信号的最小值的30%作为初始阈值;然后,检测到第1个峰值后,将其40%作为新的阈值;接着,每检测到1个新的峰值则更新阈值,新的阈值为之前检测到的所有峰值的平均数的40%。阈值选取中的百分数系根据大量测试确定。阈值选取的效果如图3所示。

微信截图_20190911113800.png

  根据图3,阈值能够跟随负脉冲的峰值发生变化,使得负脉冲的漏检率得到有效降低。

  2.3 心率计算

  由于设计需要,心率需做到实时显示,故本算法采用8 s的PPG信号进行计算,每从传感器获得一个新的信号进行实时更新。接着,经过上述的两个步骤计算出相邻负脉冲间隔时间的平均数 I ,从而计算出心率。心率的计算公式为:HR I =60 。整个算法的过程如图4所示。

微信截图_20190911113851.png

  3 算法测试

  为 验 证 算 法,将 算 法 嵌 入 到 参 考 设 计MAXREFDES1207(如图5所示)之中,并随机抽选不同性别和不同年龄的6组测量对象,并和市面上比较流行的进行对比,如表1所示。测试位置为左手手腕。

微信截图_20190911113913.png

  由测试结果可见,与主流的产品的测量结果相比,本算法的准确度较高,能够较好地配合硬件实现功能。

  参考文献

  [1] MAX32660数据手册[EB/OL].[2019-07-15].https://www.maximintegrated.com/en/products/microcontrollers/MAX32660.html

  [2] 方良.基于SIMO技术的低功耗心率手环测量方案[R/OL].(2019-06-27)[2019-07-15].http://www.eepw.com.cn/article/201906/401978.htm

  [3] Chen I.Maxim应用笔记:Using Reflectometry fora PPG Waveform[R/OL].[2019-07-12].https://www.maximintegrated.com/en/app-notes/index.mvp/id/6547

  作者简介:

  辛毅,Maxim Integrated应用工程师,负责Maxim产品及日本客户的技术培训与支持。

  本文来源于科技期刊《电子产品世界》2019年第9期第27页,欢迎您写论文时引用,并注明出处。



评论


相关推荐

技术专区

关闭