4. 原始血氧信号预处理

从血氧探头采集到的原始信号,本质上是光电容积脉搏波(PPG)的数字化采样序列。以常见的双波长反射式或透射式探头为例,红光(约660 nm)与红外光(约940 nm)两路通道各自输出一串随血液搏动而变化的电压或电流采样值。这个序列里同时叠加了多种成分:反映动脉搏动的交流分量(AC)、由组织、静脉血和骨骼等相对稳定吸收形成的直流分量(DC)、呼吸引起的基线漂移、运动伪迹,以及50 Hz工频及其谐波干扰。预处理的直接目标,就是把真正属于脉搏的交流成分从这些叠加项中分离出来,并给出一个可量化的“这段信号能不能用”的判断。

一、去直流:把大偏置拿掉,让交流分量成为主角

PPG信号的直流分量通常远大于交流分量。以某次手指透射式采集为例,红外通道ADC输出满量程为65535,静息状态下直流基线可能落在40000左右,而脉搏引起的交流波动只有几百个码值。如果直接对原始序列做滤波或求峰,数值范围会被直流主导,后续算法难以稳定工作。去直流最直接的做法是减去一个滑动窗口内的均值:

# 示例:滑动均值去直流(窗口长度 N=256,采样率 fs=100 Hz)
dc[i] = mean(raw[i-N+1 : i+1])
ac[i] = raw[i] - dc[i]

窗口长度需要覆盖至少一个完整心动周期。若采样率为100 Hz、心率约60~100次/分,一个周期约0.6~1.0 s,对应60~100个采样点,因此窗口取128或256点较为稳妥。窗口过短会把脉搏波本身也当作直流减掉,窗口过长则对基线变化响应迟钝。去直流后,信号围绕零点波动,交流幅度通常只有几十到几百个码值,后续处理才具备可比性。

二、去趋势:消除呼吸与缓慢漂移

去直流之后,信号仍可能存在缓慢的基线漂移,主要来源是呼吸运动、探头轻微位移和温度变化。这类漂移频率通常低于0.5 Hz,而脉搏基频一般在0.8~3.0 Hz之间。去趋势的常用方法是多项式拟合或滑动中值滤波后相减。工程上更常用的是对去直流后的信号再做一次截止频率约0.5 Hz的高通滤波,或者用移动平均线估计趋势并逐点减去。判断去趋势是否合适,可以观察信号是否还存在明显的上下缓慢起伏;若脉搏峰谷仍然清晰、基线基本水平,说明趋势已被有效抑制。

三、带通滤波:锁定脉搏频带

带通滤波是预处理的核心环节。其作用是在频域上保留脉搏基频及其低次谐波,同时压制低频漂移和高频噪声。典型参数为通带0.5~5.0 Hz,对应心率30~300次/分,覆盖了临床和日常监测的主要范围。若只关注静息心率,也可收窄到0.7~3.5 Hz。实现上,IIR巴特沃斯滤波器阶数低、计算量小,适合嵌入式实时处理;FIR滤波器则具有严格线性相位,便于保持脉搏波形形状。以下是一个二阶巴特沃斯带通滤波的示例参数:

# 示例:fs=100 Hz,通带 0.5–5.0 Hz,二阶巴特沃斯
# 通过双线性变换得到差分方程系数(示意)
b = [0.1367, 0, -0.1367]
a = [1.0000, -1.7196, 0.7266]
y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2] - a1*y[n-1] - a2*y[n-2]

滤波后应检查通带内脉搏峰是否保留、通带外能量是否被压制。一个实用的观察方式是:滤波前后分别计算0.5~5.0 Hz频带能量占总能量的比例,若滤波后该比例显著提升,说明带通起到了预期作用。

四、工频干扰抑制:针对50 Hz及其谐波

工频干扰来自市电耦合,表现为50 Hz(部分地区60 Hz)及其谐波上的窄带能量。由于PPG有效频带最高约5 Hz,工频干扰本身不在通带内,但若前置放大或ADC采样引入非线性,仍可能通过混叠或谐波落入低频区。抑制手段主要有三类:一是模拟前端采用右腿驱动或屏蔽;二是数字端使用50 Hz陷波器;三是在带通滤波已经覆盖0.5~5.0 Hz的情况下,工频及其低次谐波通常已被大幅衰减,此时陷波器可作为补充。陷波器设计时要注意Q值,Q过高会导致陷波带宽过窄、对频率漂移敏感,Q过低则会误伤邻近的脉搏谐波。工程上常取Q=30~50,陷波深度约20~30 dB。

五、信号质量评估指标:判断这段信号能不能用

预处理完成后,需要给出一个可量化的质量判断,而不是仅凭肉眼观察。常用的指标包括:

  • 灌注指数 PI:PI = AC/DC × 100%,反映搏动成分相对直流的大小。静息手指测量时PI通常在0.5%~5%之间,低于0.3%往往提示灌注不足或探头接触不良。
  • 信号噪声比 SNR:以脉搏基频及其谐波频带能量为信号,其余频带能量为噪声,计算比值。SNR低于某阈值(如3 dB)时认为信号不可靠。
  • 峰谷一致性:检测相邻脉搏周期的峰峰值和间期,计算变异系数。若间期变异系数过大,提示运动伪迹或心律失常。
  • 模板匹配度:取一段高质量脉搏波作为模板,计算当前段与模板的相关系数,低于0.7通常认为波形畸变明显。

这些指标可以组合成一个质量评分,用于决定该段数据是进入后续计算还是被丢弃。例如,PI低于0.3%且SNR低于3 dB时,直接标记为无效段;PI正常但模板匹配度低时,可尝试重新定位或提示用户保持静止。

原始PPG信号预处理链路与质量评估 原始PPG采样 红光/红外双通道 fs=100 Hz 去直流 滑动均值 N=256 AC = raw − DC 去趋势 抑制 <0.5 Hz 漂移 呼吸/位移基线 带通滤波 0.5–5.0 Hz 保留脉搏基频+谐波 工频抑制 50 Hz 陷波 Q=30–50 频域处理示意(幅度谱) 频率 (Hz) 幅度 0 0.5 1.0 2.0 3.0 5.0 50 漂移 基频 2次 3次 带通保留区 0.5–5.0 Hz 50Hz 信号质量评估指标 灌注指数 PI PI = AC/DC × 100% 正常 0.5%–5% 信噪比 SNR 脉搏频带/其余频带 低于 3 dB 不可靠 峰谷一致性 间期变异系数 过大提示伪迹 模板匹配度 与模板相关系数 低于 0.7 畸变明显 综合评分 → 有效段进入后续计算 / 无效段丢弃或重采

把上述环节串起来看,预处理并不是简单地“多滤几次”,而是每一步都对应着明确的干扰来源和频带位置。去直流解决大偏置,去趋势解决慢漂移,带通锁定脉搏频带,工频抑制处理窄带干扰,质量评估则给出最终取舍依据。实际工程中,这些步骤的顺序和参数需要根据采样率、探头类型和运动水平调整,但判断逻辑是一致的:先看信号里有什么,再决定用什么手段把它拿掉或留下。