第二章:PPG信号基础与光电容积描记法原理

大家好,我是老张。做血氧仪开发这些年,我最大的感触就是——PPG信号这东西,看着简单,坑是真不少。今天咱们就来聊聊它的核心原理。

说白了,血氧仪能测出你的血氧饱和度,靠的就是两束光:一束红光,一束红外光。为什么是两束?一束不行吗?嗯,还真不行。我刚开始接触这个领域时也这么想过,后来被现实狠狠教育了一回。

2.1 光电容积描记法(PPG)是什么?

PPG,全称Photoplethysmography,翻译过来就是光电容积描记法。名字挺长,原理其实不复杂。

你把手放在手电筒上,能看到手指透光发红。这是因为血液在流动,血液量的变化会改变光的吸收量。PPG就是利用这个现象,通过检测光强的变化来反推血液容积的变化。

我在项目中遇到过一个问题:有次调试时PPG波形死活出不来,折腾了两天。最后发现是手指没放好,光路被指甲盖挡住了。你看,有时候最基础的东西反而最容易忽略。

2.2 红光与红外光双波长测量原理

为什么需要两个波长?这得从血氧饱和度的定义说起。

血氧饱和度(SpO₂)是含氧血红蛋白(HbO₂)占总血红蛋白的比例。问题来了——HbO₂和脱氧血红蛋白(Hb)对光的吸收特性完全不同。

关键点:

  • 红光(660nm附近):Hb吸收强,HbO₂吸收弱
  • 红外光(940nm附近):HbO₂吸收强,Hb吸收弱

你想想看,如果只用一束光,你根本分不清是血氧变了还是血容量变了。两束光一对比,就能把血氧信息提取出来。

我习惯把这个过程叫做「光学差分法」。就像做菜时放盐和放糖,单尝一个你分不清,两个对比着尝就清楚了。

2.3 朗伯-比尔定律在血氧测量中的应用

朗伯-比尔定律,听着挺唬人。其实它就是描述光穿过介质时被吸收了多少的规律。

公式长这样:

A = ε × c × L

其中:

  • A 是吸光度
  • ε 是摩尔吸光系数(每种物质不一样)
  • c 是物质浓度
  • L 是光程长度

在血氧测量中,我们把它扩展了一下。因为血液里有两种主要成分:HbO₂和Hb。所以吸光度是两者的叠加:

A_total = ε_Hb × c_Hb × L + ε_HbO₂ × c_HbO₂ × L

用红光和红外光分别测一次,得到两个方程。两个方程解两个未知数(c_Hb和c_HbO₂),血氧饱和度就出来了。

实战小技巧:

我曾经在量产测试中发现,不同批次的LED波长会有±5nm的偏差。别小看这5nm,吸光系数能差出10%以上。所以我的做法是:每批LED到货后先做光谱标定,把实际波长写进固件里。

2.4 AC分量与DC分量

PPG信号里有两个部分:

分量 来源 频率 用途
AC分量 动脉搏动引起的血液容积变化 0.5~5Hz(与心率一致) 计算血氧饱和度
DC分量 组织、静脉血、骨骼等非搏动部分 接近直流 基线校准、运动伪差检测

为什么要区分这两个?因为血氧计算用的是AC/DC比值。说白了,就是把搏动信号归一化,消除个体差异和传感器位置的影响。

我记得有次一个实习生问我:「为什么我的血氧值老是跳来跳去?」我让他看看AC分量的幅值——结果只有DC分量的0.1%。信号太弱了,信噪比不够。后来把LED驱动电流调大了一档,问题就解决了。

2.5 实际测量中的注意事项

避坑指南:

  • 运动伪差:我曾经在跑步机上测试血氧仪,结果波形完全乱套。后来加了加速度传感器做运动补偿,才勉强能用。
  • 环境光干扰:阳光直射下,光电二极管的输出会饱和。我的做法是加一个环境光采样通道,做差分处理。
  • 手指厚度差异:小孩和成人的手指厚度差很多,光程L不一样。我习惯在算法里加一个自动增益控制(AGC),动态调整LED亮度。

2.6 小结

好了,这一章的内容就这些。总结一下:

  • PPG信号是光电容积描记法的简称,通过光强变化反映血液容积变化
  • 双波长测量(红光+红外光)是为了区分HbO₂和Hb
  • 朗伯-比尔定律是血氧计算的理论基础
  • AC/DC比值是实际计算血氧的关键参数

下一章我们会聊到PPG信号的前端模拟电路设计。说实话,那才是真正考验硬件功底的地方。到时候我会分享一些我在电路调试中踩过的坑,保证让你少走弯路。

嗯,今天就到这里。有问题欢迎在课程群里讨论,我看到会回复的。