PPG
PPG的全称是光电容积描记法(Photoplethysmography)。它是一种通过光学传感器测量心率的方法。其核心要点是通过光照亮皮肤,根据光的反射率判断血液容积的变化,从而判断心脏供血的时机。
核心原理
当心脏向外供血时,心脏收缩,血液被泵入动脉,皮下组织的血容量增加,因此对特定光的吸收增多,从而反射回的光变弱。反之,心脏舒张时,血容量减少,光反射吸收少,反射光变强。光学传感器接收到如此成周期波动的光强弱信号,从而可以检测到心脏跳动的大致波形。
其中光学传感器接收到的波形分为两个部分:
直流部分(DC):反映组织和静脉血对波形的恒定吸收;
交流部分(AC):反映动脉血对波形的周期吸收,用于心率测量。
光学传感器的发射光通常选择绿光,有如下原因:
皮肤的黑色素会吸收大量波长较短的波
皮肤上的水分也会吸收大量的UV和IR部分的光
进入皮肤组织的绿光()-黄光()大部分会被红细胞吸收
红光和接近IR的光相比其他波长的光更容易穿过皮肤组织
相比红光,绿(绿-黄)光能被氧合血红蛋白和脱氧血红蛋白吸收
用途
最重要的一部分就是通过波峰间距来估测心率,一个间距代表一次心跳周期。在实际测量中,由于杂波较多,需要首先对原始的PPG信号进行滤波处理。得到的新波在一定时间内的波峰个数,就可算出心率值。例如,假设连续采样5秒的时间,在5s内的波峰个数为,那么心率就是。
通过使用不同的波长测量反射率,还可以用来估测血氧。血液中含有的氧合血红蛋白和血红蛋白存在一定的比例。而这两个蛋白对波长600~1000nm的光吸收特性不同。一般来讲,对于间的光的吸收系数更高,对于间的光的吸收系数更高。所以可以利用红光()和接近IR()的光分别检测和的PPG信号,然后通过程序处理算出相应的比值,这样就得到了血氧值。
SCG
SCG的全称是心震图(Seismocardiography)。它是一种使用加速度传感器测量心率的方法。其核心要点是通过收集振动节律,根据振动的周期性来判断心脏供血的时机。
原理
心脏收缩、血液喷射、瓣膜开闭等一系列机械活动,心脏都是在运动的,都会让整个胸腔产生周期性的震动。可以通过加速度计把这些三维的加速度信号记录下来,形成 SCG 波形。虽然这些震动非常微弱,但通过特定算法可以提取出清晰的波形,从而分析心率等表示量。
SCG 波形的关键点
不同的研究标注方法略有差异,但通常包含这些与心脏动作对应的标志点:
1. 收缩期轮廓(Systolic profile,左侧红圈)
这是心脏泵血(收缩)阶段产生的振动:
MC (Mitral valve closure):二尖瓣关闭。标志着心室收缩的开始(心室压力升高,导致二尖瓣关闭)。
AO (Aortic valve opening):主动脉瓣开放。标志着心室开始将血液射入主动脉。
RE (Rapid ejection):快速射血期。主动脉瓣开放后,血液被快速泵出主动脉的阶段。
2. 舒张期轮廓(Diastolic profile,右侧红圈)
这是心脏充血(舒张)阶段产生的振动:
AC (Aortic valve closure):主动脉瓣关闭。标志着收缩期结束,心室开始准备下一次充盈。
MO (Mitral valve opening):二尖瓣开放。标志着心室开始接受来自心房的血液(被动充盈)。
RF (Rapid filling):快速充盈期。二尖瓣开放后,血液快速从心房流入心室的阶段。
PTT
指的是脉搏压力波从动脉系统的一点传播到另一点所花费的时间。
在用 PPG + SCG 的系统中,我们通常这样定义和测量它:
以 SCG 的主动脉瓣打开点(AO) 作为“起点”:它标志着心脏开始把血液射入主动脉的那一刻。
用同一心动周期的 PPG 信号 来定义“终点”:通常取外周(如手指、手腕)PPG 波形开始快速上升的起始点,也就是脉搏波到达这个末梢部位的时刻。
起点和终点之间的时间差,就是 脉搏到达时间(PAT),它可以很好地近似 脉搏波传导时间(PPT)。
它和血压有直接的物理关联:
血管越硬,脉搏波传播得就越快(PPT/PTT 越短)。
血压越高,动脉壁的紧张度增加,波速也会升高(PPT 缩短)。
PTT的计算
从SCG信号中找到AO点
AO(主动脉瓣开放)点,对应心脏将血液射入主动脉的瞬间,在SCG上表现为一个显著的加速度峰值。
1. 信号预处理
原始SCG信号常带有呼吸漂移和体动噪声,需要先处理:
带通滤波:通常保留 1–50 Hz 的频段(重点是收缩期高频成分)。这可以去掉低频的呼吸漂移和高频肌肉噪声。
去趋势与平滑:必要时用小波变换或移动平均进一步降噪,但注意不要磨平AO这个尖锐的峰。
2. 定位心动周期边界
根据SCG自身的周期性来划分心跳阶段:
计算SCG信号的包络(如希尔伯特变换后的绝对值,再低通滤波)。
在包络上寻找峰,两个相邻峰之间的间隔就是一个心动周期。这些峰通常对应心室收缩期的强能量区,有助于将信号切分成一段一段。
3. 在单周期内锁定AO候选点
划分出每个心动周期后,在该周期窗口内寻找AO点:
AO形态特征:它是一个正峰(背向胸部加速度),通常紧跟在SCG信号上一周期末尾之后,且是收缩早期最突出的峰。在完整的SCG周期里,典型顺序是:二尖瓣关闭(MC)→ 等容收缩 → AO(主动脉瓣开放) → 射血期的一系列振动。
寻找策略:
在每个周期信号的前部(比如前20%-40%区间),搜索最大值。这个区间根据正常人心脏收缩时长设定。
为避免选到MC(二尖瓣关闭)峰,可以设置约束:AO峰应在MC峰之后。如果先检测到一个负向或正向后的小峰为MC,则AO在其后约30-60 ms。
另一种简单有效的方法是:对滤波后的信号求绝对值包络,并在包络的收缩期段内找最大峰值,该峰值位置常常就对应AO点附近的主振动,然后再回溯到原始信号上精确定位峰值。
4. 精炼与验证
振幅阈值:舍弃振幅过小的峰(可能是噪声)。
时间规律性:逐拍AO点间隔应大致等于心率间期,相邻两拍的AO间隔与平均心率偏差不应太大(如>20%则丢弃)。
与PPG波形的生理一致性:一个健康的AO点后,必然在100-300ms左右(取决于臂长和血压)出现PPG上升。这个延迟可用于排除误检。
从PPG中提取脉搏波“到达”点
计算PTT需要PPG的起点,即脉搏波开始快速上升的足点(foot)。
预处理:对PPG使用 0.5–8 Hz 带通滤波,去除高频噪声和基线漂移。
定位足点:
一阶导数最大值法:对PPG信号求一阶导数,找到每个周期内斜率最大的点(信号上升最快处)。然后以此点为界,向前搜索局部最低点,那个最低点就是foot。这是最常用的稳健方法。
切线交点法:做过导数最大点的切线,该切线与信号基线(舒张末水平)的交点即为足点。更精确,但稍微复杂。
直接搜索局部最小值:在划分好的周期窗口内,直接找PPG信号的最低点。缺点是舒张末期可能受前一个重搏波影响而并非最平坦部,但工程上也可用。
SCG与PPG特征点的对齐,计算PTT
这里需要把同一心脏搏动产生的SCG AO点和PPG foot点配对起来。
1. 信号同步是前提
SCG和PPG必须是同一硬件、同一时钟下同步采集的。这样每个采样点都有一个统一的时间戳,没有对齐误差。
2. 配对规则(因果对齐)
对于一次心跳:
先在SCG上找到第拍的 AO 时刻,记为。
因为脉搏波传导需要时间,PPG的foot点一定晚于这个AO点。所以我们要找的是之后出现的第一个 PPG foot 点,作为第拍的到达时刻。
该拍的脉搏到达时间:
如果某拍漏检了PPG foot或AO,跳过该拍。正常情况下,PAT在 150–350 ms 左右。
3. 避免周期错位
如果算法将前一周期的PPG foot误配给后一周期的AO,PAT会变得很短或负值。可通过限制PAT合理范围(如100-400ms)来剔除异常配对。
整体计算结束后的“合成”
“合成”是指把逐拍的PTT序列转化为连续的血压估计,并可能恢复成一条平滑的血压波形。这里分两步。
1. 逐拍PTT序列的平滑与插值
计算出的是一系列不等间隔的离散点(每个心跳一个值),需要:
去除异常值:利用中值滤波或基于心跳间隔的阈值筛选。
插值重采样:将不等间隔的PAT序列用样条插值或线性插值,转化为固定频率(如100Hz)的连续PAT信号。这样便于后处理。
平滑滤波:再通过一个低通滤波器(比如0.5Hz截止),滤除呼吸和逐拍波动,得到相对平稳的PTT趋势。
2. 由PTT合成血压估计
校准模型最常用的是线性或对数模型:
线性模型:
更生理的是基于莫因斯-科特维格(Moens-Korteweg)方程的对数模型:
参数
a, b或k1, k2需要用袖带血压计进行一次静息校准来求解。
然后,将连续的PAT值逐点代入公式,得到连续收缩压估计。舒张压可通过额外公式或基于脉搏波形分析得出,但通常精度更低。
最终的“合成”产物:
逐拍血压数值(一个心跳一个血压值)
连续血压波形(经过插值和平滑后,每秒几十个血压点,画出类似血压监测的曲线)