【手环算法开发】-基于PPG与ECG的血氧血氧检测
程序员文章站
2024-02-25 18:22:21
...
0.检测信号中噪声的消除方法
1.常见噪声干扰
- 基线漂移(呼吸波动和放大电路不稳定引起的,小于1Hz的低频噪声)
- 工频漂移(交流电源引起的干扰,固定的50Hz正弦波)
- 肌电噪声(肢体抖动和肌肉收缩造成,5-2kHz)
- 运动伪差(人体活动导致测量光路发生变化引起的,运动伪差影响了PPG信号的质量)
2.常见噪声的消除方法
- 基线漂移: 三次样条插值法、形态学滤波
- 工频漂移: 平滑滤波
- 肌电噪声: 低通滤波
-
运动伪差
- 频域法
- 独立成分分析法
- 小波变换法
- 奇异值分解法
- 自适应滤波法
3.算法评估指标
- 平均绝对误差
- 平均绝对误差百分比
- 皮尔逊相关系数
- Bland-Altman图
1.血氧监测方法
测量原理
红光(660nm)红外光(940nm)
血氧饱和度理论计算公式:
通过标定实验得到A、B的值,R值由红光和红外光两路信号的波峰值与波谷值之差得到,分子为红外光的吸收度差,分母为红光的吸收度差。
标定试验
注意:红光与红外光具有很强的相关性。
在基于线性回归的血氧饱和度特征值提取算法,当样本数与采样频率近似相等时,计算得到的R值标准差较小
基于线性回归的特征值R提取算法
SpO2=109.3-11.2R
基于移动平均的特征值提取算法
递推平均滤波:尽可能在小区间上减小测试误差,设每个小区间上有m个数据,则取m个数据的平均值代替其中的任意一个数据。
递推平均点数m与波形峰值时间间隔和采样频率有关,3<m<10,一般m取5
移动平均法:
- 首先采样波峰阈值检测找到初始的基点(找到PPG信号的初始极大值点)
- 选取脉搏波周期内的所有峰值点和谷值点,保证峰值点与谷值点个数相同
- 根据峰值和谷值的均值计算出R值
2.血压监测方法
监测原理
人体收缩压(SBP)与脉搏波传递时间PWTT存在较高的线性相关关系,建立基于加速脉搏波的PWTT提取算法建立与收缩压的线性模型
根据PPG与ECG个别的生理特征点,可以发现ECG的峰值来自于心室的收缩,而PPG的峰值则是因为血管收缩所造成的,因此可以得到血液自心脏送出后到达量测部位的传输时间,也就是脉搏波传递时间Pulse Transit Time (PTT)。
脉搏波传递的速度与血压是直接相关的,血压高时,脉搏波传递快,反之则慢,所以通过心电信号ECG与脉搏波信号PPG获得脉搏传递时间 (PTT),再加上常规的一些身体参数 (如身高、体重) 即可得出脉搏波传递速度,通过建立的特征方程来估计人体脉搏的收缩压与舒张压,可实现无创连续血压测量。
收缩压:
BP=A*PWTT+B
舒张压
测量心率时,手臂的ECG信号要比PPG信号更稳定
上一篇: STM32开发----中断和事件
下一篇: STM32的CubeMX关于串口中断接收