光学测量 PPG
参考来源:ADI官网技术文章、知乎(hxl695822705、KingPo-张超、深圳加1健康科技 )
现状
PPG测量心率、血氧的技术距今发展快100年,影响心率、血氧测量准确度的因素主要有心率传感器的光学结构设计和算法,心率传感器的供应商有Maxim、ADI、AMS、Osram、Partron、TI、Pixart,汇顶等,算法公司有firstBeat(被Garmin收购)、Gomore、LifeQ等公司,可以评估参数包括健康生活指标类、训练期间评估类、训练管理类。
工作原理
不同位置对采集的影响


当血流动力发生变化时,例如血脉搏率(心率)或血容积(心输出量)发生变化时,进入人体的光会发生可预见的散射。当我们把光转换成电信号时,正是由于动脉对光的吸收有变化而其他组织对光的吸收基本不变,得到的信号就可以分为直流DC信号和交流AC信号。提取其中的AC信号,就能反应出血液流动的特点。
- 直流DC信号:当光照透过皮肤组织然后再反射到光敏传感器时光照有一定的衰减的。像肌肉、骨骼、静脉和其他连接组织等等对光的吸收是基本不变的(前提是测量部位没有大幅度的运动),
- 交流AC信号:由于动脉里有血液的流动,那么对光的吸收自然也有所变化。


PPG信号特征提取
PPG脉冲:出现通常分为两个阶段:
- 脉冲的上升边缘:收缩期
- 脉冲的下降边缘:舒张期

时域分析、频域分析

PPG原始波形→VPG一阶导数波形→APG二阶导数波形

组成结构
- 光发射器(通常是几种LED):用于生成光信号,按波长分为红外光IR、红光R、绿光G、
- 光电二极管PD:将光信号转化为模拟电信号(光电流),响应必须具备足够的灵敏度和线性度。
- 多通道模拟前端AFE:用于控制LED、对模拟电信号(光电流)的放大TIA、滤波BPF、采样ADC

光源波长

- 皮肤的黑色素会吸收大量波长较短的波
- 皮肤上的水份也会吸收大量的UV和IR部分的光
- 进入皮肤组织的绿光(500nm)-- 黄光(600nm)大部分会被红细胞吸收
- 红光和接近IR的光相比其他波长的光更容易穿过皮肤组织
- 血液要比其他组织吸收更多的光
- 相比红光,绿(绿-黄)光能被氧合血红蛋白和脱氧血红蛋白吸收
在光学系统中,光从皮肤表面投射出来。再由光电传感器测量红细胞吸收的光量。随着心脏跳动,不断变化的血容量使接收到的光量分散开来。在手指或耳垂上进行测量时,由于这些部位有相当多的动脉血,使用红光或红外光源可获得最佳精度。不过,手腕表层很少有动脉存在,腕部穿戴式设备必须通过皮肤表层下面的静脉和毛细血管来检测脉动分量,因此绿光效果会更好。
光学测量缺点
采集PPG信号的光学噪声:PPG信号的去噪处理,特别是将生理信号与噪声信号分离(运动过程中产生的噪声),是该技术目前面临的最大障碍。阳光产生的直流误差相对而言比较容易消除,但日光灯和节能灯发出的光线都带有可引起交流误差的频率分量。模拟前端使用两种结构来抑制DC 至100 kHz 的干扰信号。模拟信号经过调理后,14 位逐次逼近型数模转换器(ADC)将信号数字化,再通过I2C 接口发送到微处理器进行最终后处理。同步发送路径与光接收器并行集成在一起。其独立的电流源可驱动两个单独的LED,电流电平最多可编程至250 mA。LED 电流是脉冲电流,脉冲长度在微秒级,因此可保持较低的平均功耗,从而最大程度地延长电池使用寿命。LED 驱动电路是动态电路且可即时配置,因此不受各种环境条件影响,例如环境光、穿戴者皮肤和头发的色泽或传感器和皮肤之间的汗液,这些都会降低灵敏度。激励LED 配置非常方便,可用于构建自适应系统。所有时序和同步均由模拟前端处理,因此不会增加系统处理器的任何开销。
运动产生的干扰:当光学心率监护仪用于睡眠研究时,这可能不是问题,但如果在锻炼期间穿戴,运动腕表和护腕将很难消除运动伪像。光学传感器(LED 和光电检测器)和皮肤之间的相对运动会降低光信号的灵敏度。此外,运动的频率分量也可能会被视为心率测量,因此,必须测量该运动并进行补偿。设备与人体相贴越紧密,这种影响就越小,但采用机械方式消除这种影响几乎是不可能的。我们可使用多种方法来测量运动。其中一种是光学方法,即使用多个LED 波长。共模信号表示运动,而差分信号用来检测心率。不过,最好是使用真正的运动传感器。该传感器不仅可准确测量应用于可穿戴设备的运动,而且还可用于提供其他功能,例如跟踪活动、计算步数或者在检测到特定g 值时启动某个应用。对于在检测到运动时启动某个应用的情况,则无需进行高速采样,因此可将数据速率降至6 Hz,此时平均功耗为300 nA。因而,对于低功耗应用和不易更换电池的植入式设备来说,此传感器非常有吸引力。
PPG传感器的安装位置:市面上大多数的光学心率传感器是佩戴在三个部位:耳朵(耳塞式耳机)、手臂(佩戴在手臂较高或较低位置的臂带)、手腕(智能手表或是健身追踪腕带)。手腕是准确进行PPG心率量测的最差部位之一,而皮肤表面血管密度较高的前臂,被认为是较好的位置,耳朵则是迄今在人体放置光学心率监测器的最佳位置。
周期交叉问题:周期性活动所产生的光学噪声(慢跑时),心率与步伐速度彼此交错
低灌注流量:灌流是人体推送血液到微血管床(capillary bed)的过程,如同肤色,血液灌流程度在不同人之间有高度差异,可能受到肥胖、糖尿病或心脏动脉疾病的影响,使得血液灌流量降低。低灌流量─特别是在人体四肢,会对光学心率监测器带来挑战,因为信噪比可能会显著降低,而较低的灌流量与较低的血流信号相关联。
肤色的吸收率:PPG传感器中光电二极管(PD)采集到的信号强度取决于穿戴者的肤色。影响因素有:黑皮肤、黄皮肤、白皮肤、有无纹身、有无伤疤

PPG的预处理
处理来自AFE和加速计的信号,然后将处理后的信号叠加到PPG波形上,由此可生成持续的、运动容错心率数据和其他生物计量数据。
PPG信号估算心率
心率监测一般优选波长约为540 nm的绿光LED。它的调制指数高于红光或IR LED,因而能产生优质PPG信号。它还提供不错的CTR水平,因此功耗不会太高。
AC SNR是一个关系信号质量的参数,可以通过DC SNR乘以调制指数来计算。例如,调制指数为1%时,95 dB DC SNR相当于55 dB AC SNR。
PPG信号时域分析:
通过对原始的PPG信号进行滤波处理,得到一定时间内的波峰个数,然后既可算出心率值

PPG信号频域分析:
把血液流动对光吸收转变成了AC信号,如果对于进行FFT变换,那么就能看到频域的特点。如下图就是对PPG信号的FFT转变

上图中的频域图,0Hz的信号很强,这部分是骨骼、肌肉等组织的DC信号,在1Hz附近有个相对比较突出的信号就是血液流动转变的AC信号。假设测得到的频率f = 1.2Hz
那么心率HeartRate HR = f x60 = 1.2 x 60 = 72
补充:脉搏与心率
每一次的收缩力都是不一样的,如果收缩力大,就形成脉搏,有的时候收缩力度小,而且时间短,心输出量就很少,就会导致没有脉搏的形成,脉率就比心率小。在记录房颤患者的脉率时,不应简单的把心率数写成脉率。
PPG信号估算血氧
脉搏血氧测定使用红光(通常为660 nm波长)和红外(IR) LED(通常为940 nm波长)。由于血液中含有的氧合血红蛋白HbO2和血红蛋白Hb存在一定的比例,下图表示了氧合血红蛋白HbO2和血红蛋白Hb对波长600~1000nm的光吸收特性,脱氧血红蛋白主要吸收660 nm波长的光,而氧合血红蛋白主要吸收940 nm波长的光。

光电二极管感知未被吸收的光,然后将感知到的信号分为直流分量和交流分量。直流分量代表组织、静脉血和非搏动性动脉血引起的光吸收。交流分量代表搏动性动脉血。然后按照下式计算SpO2的百分比:
%SpO2 = (ACred/DCred)/(ACIR/DCIR)
光学测量 PPG的更多相关文章
- 心跳之旅—💗—iOS用手机摄像头检测心率(PPG)
[前情提要] 光阴似箭,日月如梭,最近几年,支持心率检测的设备愈发常见了,大家都在各种测空气测雪碧的,如火如荼,于是我也来凑一凑热闹.[0]这段时间,我完成了一个基于iOS的心率检测Demo,只要稳定 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- MySQL数据库的安装与密码配置
MySQL是由MySQL AB公司开发,后由Oracle公司收购 MySQL是一个关系型数据库管理系统 分为社区版和企业版 ...
- SQLite剖析之事务处理技术
前言 事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等.在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率.假设需要在一张表内一次插入20个人的 ...
- iOS GCD NSOperation NSThread等多线程各种举例详解(拷贝)
2年多的iOS之路匆匆而过,期间也拜读来不少大神的博客,近来突然为自己一直做伸手党感到羞耻,是时候回馈社会.回想当年自己还是小白的时候,照着一些iOS多线程教程学,也只是照抄,只知其然.不知其所以然. ...
- background-position
在学习网页"换肤"效果时:对background-position的理解更深了. 这是我使用的一整张图片:
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- Tomcat双向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端超安全通信
紧接着<Tomcat单向Https验证搭建,亲自实现与主流浏览器.Android/iOS移动客户端安全通信>,此处演示下更安全的双向Https认证的通信机制,为了清晰明了,以下进行单独描述 ...
- opencv 简单模糊和高斯模糊 cvSmooth
cv::Mat 是C++版OpenCV的新结构. cvSmooth() 是老版 C API. 没有把C接口与C + + 结合. 建议你们也可以花一些时间看一下介绍. 同样,你如果查看opencv/mo ...
- css3学习----transform
css 2D转换
随机推荐
- 《深入理解Java虚拟机》读书笔记:垃圾收集算法
由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,因此本节不打算过多地讨论算法的实现,只是介绍几种算法的思想及其发展过程. 垃圾收集算法概要 1. 标记-清除算法 ...
- SpringCloudAlibaba框架学习
遇到问题找了各种办法都没有解决,就reload maven,再不行就重启idea,重启电脑.(有奇效,我好几次就这么解决的,可能是我电脑配置太拉了) 注册中心 - Nacos 配置文件优先级:本地配置 ...
- [Lua][Love Engine] 打砖块游戏实现过程与知识点
本文旨在根据LOVE2D官方文档和教程实现打砖块的游戏,记录部分实现过程和重要知识点 目标摧毁所有砖块 玩家控制球拍左右滑动反弹小球 小球摧毁砖块 小球保持在屏幕内 小球碰到屏幕底部,GAME OVE ...
- Solution -「营业」「CF 527C」Glass Carving
Description Link. 有一个块 \(n\times m\) 的矩形,有 \(q\) 次操作,每次把矩形横 / 竖着切一刀,问切完后的最大矩形面积. Solution 一个不同于大多数人. ...
- ORACLE DBLink创建
在写测试脚本时,经常需要跨库取数据,SQL本身不支持跨库查找.Oracle提供DBLink链接,支持跨库操作. 1.创建DBLink Create public database link Next_ ...
- 多数据源管理:掌握@DS注解的威力
大家在日常后端开发过程,不可避免的会接触到需要用到配置多个数据源的场景,在这里,小编介绍一种简单方便的,只需要简单的配置和一个@DS注解就能实现动态数据源的方式,这种动态数据源底层原理是基于Mybat ...
- C#学习笔记——变量、常量和转义字符
变量 变量是存储数值的容器,是一门程序语言的最基础的部分. 不同的变量类型可以存储不同类型的数值. 种类: 在C#种一共有14种变量: 有符号类型4种 无符号类型4种 浮点数3种 特殊类型(char ...
- Chrome Extensions v3 迁移清单
一.前置问题 1.1为什么需要迁移 v3? Chrome 计划完全停止 v2 版本维护,后续 v2 版本将无法上架谷歌插件商店,除此之外,未来新版本 Chrome 对于 v2 版本插件的限制会越来越大 ...
- python-显示张量(tensorflow)的具体的值
------------恢复内容开始------------ # 方法1 a = tf. random.normal ([4,4],mean=0.1,stddev=1) with tf.Session ...
- 云端golang开发,无需本地配置,能上网就能开发和运行
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 需求 学习golang的时候,需要一个IDE,还需要一 ...