欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【手环算法开发】-基于PPG与ECG的血氧血氧检测

程序员文章站 2024-02-25 18:22:21
...

0.检测信号中噪声的消除方法

1.常见噪声干扰

  • 基线漂移(呼吸波动和放大电路不稳定引起的,小于1Hz的低频噪声)
  • 工频漂移(交流电源引起的干扰,固定的50Hz正弦波)
  • 肌电噪声(肢体抖动和肌肉收缩造成,5-2kHz)
  • 运动伪差(人体活动导致测量光路发生变化引起的,运动伪差影响了PPG信号的质量)

2.常见噪声的消除方法

  • 基线漂移: 三次样条插值法、形态学滤波
  • 工频漂移: 平滑滤波
  • 肌电噪声: 低通滤波
  • 运动伪差
    1. 频域法
    2. 独立成分分析法
    3. 小波变换法
    4. 奇异值分解法
    5. 自适应滤波法

3.算法评估指标

  1. 平均绝对误差
  2. 平均绝对误差百分比
  3. 皮尔逊相关系数
  4. Bland-Altman图

1.血氧监测方法

测量原理

红光(660nm)红外光(940nm)

血氧饱和度理论计算公式:

【手环算法开发】-基于PPG与ECG的血氧血氧检测

【手环算法开发】-基于PPG与ECG的血氧血氧检测

通过标定实验得到A、B的值,R值由红光和红外光两路信号的波峰值与波谷值之差得到,分子为红外光的吸收度差,分母为红光的吸收度差。

标定试验

【手环算法开发】-基于PPG与ECG的血氧血氧检测

注意:红光与红外光具有很强的相关性。
在基于线性回归的血氧饱和度特征值提取算法,当样本数与采样频率近似相等时,计算得到的R值标准差较小

基于线性回归的特征值R提取算法

【手环算法开发】-基于PPG与ECG的血氧血氧检测

SpO2=109.3-11.2R

基于移动平均的特征值提取算法

递推平均滤波:尽可能在小区间上减小测试误差,设每个小区间上有m个数据,则取m个数据的平均值代替其中的任意一个数据。
【手环算法开发】-基于PPG与ECG的血氧血氧检测
递推平均点数m与波形峰值时间间隔和采样频率有关,3<m<10,一般m取5

移动平均法

  1. 首先采样波峰阈值检测找到初始的基点(找到PPG信号的初始极大值点)
  2. 选取脉搏波周期内的所有峰值点和谷值点,保证峰值点与谷值点个数相同
  3. 根据峰值和谷值的均值计算出R值

2.血压监测方法

监测原理

人体收缩压(SBP)与脉搏波传递时间PWTT存在较高的线性相关关系,建立基于加速脉搏波的PWTT提取算法建立与收缩压的线性模型

【手环算法开发】-基于PPG与ECG的血氧血氧检测
根据PPG与ECG个别的生理特征点,可以发现ECG的峰值来自于心室的收缩,而PPG的峰值则是因为血管收缩所造成的,因此可以得到血液自心脏送出后到达量测部位的传输时间,也就是脉搏波传递时间Pulse Transit Time (PTT)。

脉搏波传递的速度与血压是直接相关的,血压高时,脉搏波传递快,反之则慢,所以通过心电信号ECG与脉搏波信号PPG获得脉搏传递时间 (PTT),再加上常规的一些身体参数 (如身高、体重) 即可得出脉搏波传递速度,通过建立的特征方程来估计人体脉搏的收缩压与舒张压,可实现无创连续血压测量。

收缩压

BP=A*PWTT+B

舒张压
【手环算法开发】-基于PPG与ECG的血氧血氧检测

测量心率时,手臂的ECG信号要比PPG信号更稳定