PPG原理说明

2024-03-03 15:59
文章标签 原理 说明 ppg

本文主要是介绍PPG原理说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介:

      在这个什么都要和“智能”串联的年代,除了我们司空见款的手机外也就是一些智能手表和手环之类的穿戴设备了。这些智能穿戴设备集成了很多的传感器,由于脉搏或者心率是生命体征的重要参数之一,所以心率率测量可算是高端入门产品必备的一个技能,正好最近有机会好好研究心率测量的技术,所以趁热打铁总结一下光学测量心率的相关知识。

      在网上搜集了很多资料,目前心率测量有以下几种传感器技术(仅供参考)

1. 心电ECG

2. 光电容积脉搏波描记法PPG 

3. 生物阻抗 bioimpedance

4. 摄像头Camera RGB 、wifi等技术

      在上述的几种方法中,最被人们熟悉的应该就是心电图。在医疗领域,通常使用心电图(ECG)测量生理电信号来实现心率和心脏活动的检测。但是由于测量ECG信号,常常要在身体多个部位连接传感器电极,在胸部和四肢之间最多可以连接10个电极。ECG信号虽然精准并且信息丰富,但是考虑到穿戴设备的便携性和功能简单所以并没有在穿戴设备上广泛采用ECG技术。目前情况ECG还是在一些专业领域里面使用例如医院、体育等方面的研究。

      第二种光电容积脉搏波描记法,这个名字读起来实在是高端,其实说简单点就是利用光测量脉搏的一种技术。这种技术目前被广泛应用,本文也是主要介绍这种技术。

目前市场上能看到采用这种技术的穿戴设备就有:AppleWatch、三星 Galaxy Gear S2、Moto 360、Microsoft Band 等....(其他厂家就省略了)。


      第三种生物阻抗传感器测量方法,目前市场上看到的好像只有Jawbone 的UP3了, 对于此技术网上的资料特别的少。不过通过亲身体验试戴JawboneUP3,感觉这种技术应该比光学测心率的技术难度大但是应该更精准更可靠。最后的Camera RGB和wifi都是是MIT研究出来的新技术,看起来都非常高端,MIT威武啊。其中一个是通过我们手机的摄像头就能检测出人体的体征变化,这个技术非常有意思并且也很高端,感兴趣的可以看视频介绍。另一个则是通过我们家里的wifi信号就能测,也甚是高端。当然这两种还没有看到上市的产品所以就不多说了。

光电容积脉搏波描记法PPG 

     光学心率传感器,如果带过上述那些智能手表或者智能手环的朋友来说也不算稀奇的事情。就拿AppleWatch来说,测量心率时底部的表盘会发出绿色的灯光,并且测量的时候手腕最好保持不动否侧会影响测量结果。接下来将详细介绍光学心率测量的原理。

      如下两张图是光学心率传感器。图a是LED没有发光的时候中间是一个光敏二极管,图b是传感器的LED发光的时候。

                                

图a                                                                               图b

        那么为什么通过LED灯发光就能测量心率呢?

        当LED光射向皮肤,透过皮肤组织反射回的光被光敏传感器接受并转换成电信号再经过AD转换成数字信号,简化过程:光--> 电 --> 数字信号


        为什么大多数传感器都是采用的绿光呢?

我们先看看光谱的特点,从紫外线到红外线的波长是越来越长的。


     之所以选择绿光作为光源是考虑到一下·几个特点:

       1. 皮肤的黑色素会吸收大量波长较短的波

       2. 皮肤上的水份也会吸收大量的UV和IR部分的光

       3. 进入皮肤组织的绿光(500nm)-- 黄光(600nm)大部分会被红细胞吸收

       4. 红光和接近IR的光相比其他波长的光更容易穿过皮肤组织

       5. 血液要比其他组织吸收更多的光

       6. 相比红光,绿(绿-黄)光能被氧合血红蛋白和脱氧血红蛋白吸收

      总体来说,绿光-- 红光能作为测量光源。早起多数采用红光为光源,随着进一步的研究和对比,绿光作为光源得到的信号更好,信噪比也比其他光源好些,所以现在大部分穿戴设备采用绿光为光源。但是考虑到皮肤情况的不用(肤色、汗水),高端产品会根据情况自动使用换绿光、红光和IR多种光源。

虽然知道了上面的几个特点,但是还不足以弄清楚为什么通过光照就能测出心率、血氧等参数呢?

     下图就解释了核心原理


         当光照透过皮肤组织然后再反射到光敏传感器时光照有一定的衰减的。像肌肉、骨骼、静脉和其他连接组织等等对光的吸收是基本不变的(前提是测量部位没有大幅度的运动),但是血液不同,由于动脉里有血液的流动,那么对光的吸收自然也有所变化。当我们把光转换成电信号时,正是由于动脉对光的吸收有变化而其他组织对光的吸收基本不变,得到的信号就可以分为直流DC信号和交流AC信号。提取其中的AC信号,就能反应出血液流动的特点。我们把这种技术叫做光电容积脉搏波描记法PPG。

        下图是PPG信号和ECG信号的对比



实际测量手指的PPG信号如下:

       所以,只要测得到的PPG信号比较理想算出心率也不算什么难事。但是事实总是残酷的,由于测量部位的移动、自然光、日光灯等等其他的干扰,最终测到的信号可能是下面的这种,所以要通过很多方法进行滤波处理

对于PPG信号的处理,目前我知道的有两种方法。一种是时域分析,即算出一定时间内PPG信号的波峰个数,另一种是通过对PPG信号进行FFT变换得到频域的特点。

时域方法:

          通过对原始的{PPG信号进行滤波处理,得到一定时间内的波峰个数,然后既可算出心率值


假设连续采样5秒的时间,在5s内的波峰个数为N,那么心率就是N*12 (这个相信大家都懂,就跟把脉一样~)


频域分析:

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


        上图中的频域图,0Hz的信号很强,这部分是骨骼、肌肉等组织的DC信号,在1Hz附近有个相对比较突出的信号就是血液流动转变的AC信号。假设测得到的频率f = 1.2Hz

那么心率HeartRate  HR = f x60 = 1.2 x 60 = 72

最后再简单提一下血氧的测量,相比心率血氧测量难度较大而且精度不算太高。测量血氧的原理图下图所示


      由于血液中含有的氧合血红蛋白HbO2和血红蛋白Hb存在一定的比例,简单说也就是含氧量吧。上面的图表示了氧合血红蛋白HbO2和血红蛋白Hb对波长600~1000nm的光吸收特性,从图中可以看出上600~800nm间Hb的吸收系数更高,800~1000之间HbO2的吸收系数更高。所以可以利用红光(600~800nm)和接近IR(800~1000nm)的光分别检测HbO2和Hb的PPG信号,然后通过程序处理算出相应的比值,这样就得到了血氧值。

但是由于光源不同,直接利用红光和接近IR的光进行信号对比是不可靠的,因为红光和IR透过皮肤组织也会产生不同的吸收。下图是红光和IR透过皮肤的原始信号示意图


       上面分析说过,DC部分是光透过皮肤组织转换成的直流信号,AC是血液流动产生转换成的交流信号。由于皮肤组织对红光和IR的吸收程度不同,DC部分自然也就不一样。为了能共“公平对待”两种光源的PPG信号,所以需要对原始信号处理一下。下图示意了处理后的信号(DC部分相等)


通过一定的比例计算,公平对待Red和IR的PPG信号。这样计算出来的Hb和HbO2比例才可靠。


本人水平有限,如有错误欢迎大家指出错误,相互学习!!

本文章参考文献:

1. Dae-Geun Jang, Sangjun Park, and Minsoo Hahn    A Real-Time Pulse Peak Detection Algorithm for the Photoplethysmogram 

2. Development of a Signal Processing Library for Extraction of SpO 2 , HR, HRV, and RR from Photoplethysmographic Waveforms 

3. S.  K.  Mitra,  Digital  Signal  Processing:  A  Computer-Based Approach, 3rd ed., New York, USA: McGraw-Hill
4. Y. K. Qawqzeh, M. B. I. Reaz, M. A. M. Ali   The analysis of PPG contour in the assessment of atherosclerosis for erectile dysfunction subjects 
5. Telecommunications Institute, Military University of Technology
6. Kaliskiego 2, 00-908 Warsaw, Poland ISSN 2079-9292 Wearable Photoplethysmographic Sensors—Past and Present 
7. Military Institute of Aviation Medicine, Krasińskiego 54, 01-455 Warsaw, Poland
8. 基于光电容积脉搏波的亚临床动脉弹性功能研究
9. 基于PPG的心率和呼吸频率的测量研究_马俊领

转自:https://blog.csdn.net/chehec2010/article/details/80507958

这篇关于PPG原理说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/770133

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。