4、ADC与采样:ADC选型、采样率与分辨率权衡、多通道同步采样、抗混叠滤波
血氧探头这活儿,说到底就是把光信号变成电信号,再把电信号变成数字信号。ADC(模数转换器)就是那个负责最后一步的关键角色。选不好ADC,前面电路设计得再漂亮也是白搭。
我个人习惯把ADC选型比作找对象——没有最好的,只有最合适的。你得先搞清楚你的信号长什么样,再决定要什么样的ADC。
4.1 ADC选型:别光看位数
很多人一上来就问:「我要多少位的ADC?」好像位数越高就越牛。其实不然。血氧探头里,我们关心的核心指标有三个:分辨率、采样率、信噪比。
先说说分辨率。血氧探头通常需要检测PPG信号,这个信号的交流分量(AC)只有直流分量(DC)的1%到5%。你想想看,如果ADC分辨率不够,那点微弱的脉搏波就被量化噪声给淹没了。我在项目中遇到过用10位ADC做血氧的情况,结果波形跟锯齿似的,根本没法用。
一般来说,血氧探头至少需要16位分辨率。我建议用24位的Σ-Δ型ADC,比如TI的ADS1299或者ADI的AD7799。为什么?因为Σ-Δ型ADC内部有过采样和数字滤波,能有效抑制噪声,特别适合这种微弱信号检测的场景。
关键指标速查表:
| 参数 | 血氧探头要求 | 说明 |
|---|---|---|
| 分辨率 | ≥16位,推荐24位 | AC分量太小,位数不够直接淹死 |
| 采样率 | 100Hz ~ 1kHz | PPG信号主要能量在0.5~10Hz |
| 信噪比 | ≥90dB | 保证微弱信号不被噪声覆盖 |
| 输入范围 | 0~3.3V 或 0~5V | 匹配光电二极管输出 |
4.2 采样率与分辨率:鱼和熊掌怎么兼得?
这里有个经典的矛盾:采样率越高,分辨率就越低。为什么?因为ADC内部有个转换时间,你让它跑快了,它就没时间把电压量得那么精细。
但血氧探头其实不需要很高的采样率。PPG信号的频率范围大概在0.5Hz到10Hz之间,根据奈奎斯特定理,采样率至少是信号最高频率的两倍,也就是20Hz。但实际工程中,我们通常会留点余量。
我建议采样率设在100Hz到500Hz之间。100Hz够用,500Hz更稳。再高就没必要了,反而会引入更多高频噪声。你想想看,你测的是心跳,又不是测射频信号。
我的经验:刚开始做血氧时,我总想把采样率设到1kHz以上,觉得数据越多越好。结果发现数据量大了,处理起来慢,而且高频噪声也跟着进来了。后来老老实实降到200Hz,反而效果更好。有时候「少即是多」。
4.3 多通道同步采样:红光和红外光要同时抓
血氧探头需要两个波长的光:红光(660nm)和红外光(940nm)。这两个信号必须同步采样,因为我们要算它们的比值,而这个比值会随着脉搏波动而变化。
如果红光和红外光不是同时采的,哪怕只差了几毫秒,算出来的血氧饱和度都会飘。我在项目中遇到过这个问题,一开始用多路复用器轮流采两个通道,结果波形总是对不齐,血氧值跳来跳去。后来换成同步采样ADC,问题就解决了。
多通道同步采样有两种实现方式:
- 多颗ADC并行:每个通道用一颗独立的ADC,同时触发采样。成本高,但性能最好。
- 单颗多通道同步ADC:比如ADS1299有8个通道,可以同时采样。性价比高,适合血氧探头。
我个人倾向用第二种方案。一来省PCB面积,二来通道间的时序一致性更好。ADS1299内部有专门的同步触发引脚,你给它一个脉冲,所有通道同时开始采样,误差在纳秒级别。
注意:即使用了同步采样ADC,PCB布线也要注意。两个通道的走线长度尽量一致,否则信号传输延迟会导致微小的相位差。我曾经因为走线差了2厘米,导致两个通道的波形有0.1毫秒的偏移,排查了整整一天。
4.4 抗混叠滤波:别让高频信号来捣乱
抗混叠滤波,说白了就是在ADC前面加一个低通滤波器,把高于采样率一半的频率成分滤掉。否则这些高频信号会「伪装」成低频信号混进来,你根本分不清哪个是真哪个是假。
举个例子:你的采样率是200Hz,那么理论上能采到的最高频率是100Hz(奈奎斯特频率)。如果信号里有个150Hz的噪声,它会被ADC「折叠」成50Hz的信号。你辛辛苦苦采到的PPG信号里混了个50Hz的噪声,血氧值能准才怪。
抗混叠滤波器的设计要点:
- 截止频率:设为采样率的1/3到1/2。比如采样率200Hz,截止频率设在60~80Hz。
- 阶数:至少二阶,推荐四阶。阶数越高,衰减越快,但电路也越复杂。
- 类型:巴特沃斯滤波器,通带平坦,适合PPG信号。
嗯,这里要注意:滤波器本身也会引入相位延迟。如果你用多通道同步采样,每个通道的滤波器必须完全一致,否则通道间的相位差又会让你头疼。
避坑指南:我曾经在抗混叠滤波上栽过跟头。当时为了省成本,用了RC一阶低通滤波,结果截止频率太陡,把有用的PPG信号也给衰减了。后来换成四阶巴特沃斯有源滤波器,效果立竿见影。别在滤波器上省钱,真的。
4.5 实战小结
ADC选型和采样这块,说白了就是几个关键点:
- 用24位Σ-Δ型ADC,别省那点钱
- 采样率设在100~500Hz,别贪高
- 多通道必须同步采样,别用复用器
- 抗混叠滤波至少二阶,推荐四阶巴特沃斯
这些做好了,你的血氧探头就成功了一半。剩下的就是算法和校准了,那是后面章节的内容。