4. 心率传感器原理

在Edge AI可穿戴设备中,心率(HR)与心率变异性(HRV)是最核心的生理参数之一。无论是运动手环、医疗级贴片,还是智能手表,其心率监测模块几乎都基于两种物理原理:光电容积脉搏波描记法(PPG)和心电图(ECG)。理解这两种技术的物理本质、信号特征与噪声来源,是后续进行边缘端信号处理、特征提取与模型部署的前提。本章将系统拆解PPG与ECG的传感原理、信号形态、噪声模型及基础处理方法,并给出工程化的判断路径与实战案例。

可穿戴心率传感技术:PPG与ECG信号链路与噪声源 PPG 光电容积脉搏波 LED光源 + 光电二极管 波长:绿光(530nm)/红光(660nm)/红外(940nm) 测量部位:手腕、指尖、耳垂 信号频率:0.5~5Hz ECG 心电图 干/湿电极 + 差分放大器 导联:单导联(I/II)、三导联 测量部位:胸部、双腕、胸腹 信号频率:0.05~100Hz 信号特征对比 PPG:交流分量(AC) + 直流分量(DC) ECG:P波/QRS波/T波 PPG 主要噪声源 • 运动伪影(MA):手腕摆动、肌肉收缩 • 环境光干扰:太阳光、室内照明(50/60Hz) • 皮肤接触压力变化:佩戴松紧 • 组织灌注变化:温度、血压波动 • 串扰:LED驱动信号耦合 ECG 主要噪声源 • 肌电干扰(EMG):肌肉震颤(20~500Hz) • 基线漂移:呼吸、电极极化(<0.5Hz) • 工频干扰:50/60Hz及其谐波 • 电极接触噪声:运动导致阻抗变化 • 运动伪影:肢体运动、导线摆动 处理基础:带通滤波 → 运动伪影消除(自适应滤波/IMU辅助) → R峰/波峰检测 → HR/HRV计算

4.1 核心原理:PPG与ECG的物理基础与信号形态

PPG(光电容积脉搏波描记法)利用光在生物组织中的吸收与散射特性。当LED发出的特定波长光照射皮肤表面时,一部分光被血液中的血红蛋白吸收,另一部分被组织、骨骼和皮肤反射或透射。由于动脉血随心脏搏动产生周期性容积变化,光电二极管接收到的反射光强度也随之波动。这个波动信号即为PPG信号。PPG信号由两部分组成:直流分量(DC)反映组织、静脉血和毛细血管的静态吸收,变化缓慢;交流分量(AC)叠加在DC之上,幅值通常仅为DC的1%~5%,反映动脉血的搏动性变化。AC分量的频率即心率频率,其形态包含主波、重搏波等特征。

ECG(心电图)则通过体表电极记录心肌细胞去极化和复极化过程中产生的生物电信号。单个心动周期中,ECG波形依次出现P波(心房去极化)、QRS波群(心室去极化)和T波(心室复极化)。其中R波具有最高的幅值和最陡峭的斜率,是心率检测中最可靠的标志点。可穿戴设备通常采用干电极或导电织物电极,通过差分放大器提取两电极间的电位差,共模抑制比(CMRR)是衡量其抗干扰能力的关键指标。

工程要点:PPG适合手腕、耳垂等光学可及部位,功耗较低但易受运动干扰;ECG信号质量更高、抗运动伪影能力更强,但需要至少两个接触电极,且功耗相对较高。在Edge AI设备中,两者常互补使用——日常佩戴用PPG,运动剧烈或需要高精度HRV分析时切换至ECG。

4.2 信号特征与关键参数

无论是PPG还是ECG,在进入算法处理前,都需要明确其信号特征参数,以便设计合适的滤波器与特征提取策略。下表总结了两种信号的核心特征参数:

参数维度PPG信号ECG信号
幅值范围AC分量:0.1~5mV(经TIA后);DC分量:1~10VR波:0.5~2mV;P波:0.1~0.3mV
频率范围0.5~5Hz(心率基频);重搏波谐波可达10Hz0.05~100Hz(诊断带宽);QRS能量集中在5~25Hz
信噪比(SNR)运动时SNR可低至0dB甚至负值静止时SNR可达20dB以上;运动时降至5~10dB
采样率要求≥25Hz(推荐100~200Hz)≥250Hz(推荐500Hz以上用于HRV分析)
主要特征点主波峰值、重搏波切迹、上升沿斜率P波起点、QRS起点/终点、R峰、T波终点
HRV计算依据相邻主波峰间隔(PPI)相邻R峰间隔(RRI)

在可穿戴场景中,PPG的采样率通常设为50~100Hz以平衡功耗与精度,而ECG则建议至少250Hz,否则R峰定位误差会显著影响HRV的时域指标(如SDNN、RMSSD)。

4.3 噪声来源深度剖析与处理基础

可穿戴设备的心率信号噪声远比临床设备复杂,主要源于运动、环境与硬件非理想性。以下按噪声类型逐一分析其产生机制与基础处理策略。

4.3.1 PPG的运动伪影(MA)

运动伪影是PPG最大的挑战。当手腕摆动或手指弯曲时,皮肤与传感器之间的相对位移改变光路长度,导致DC分量剧烈波动,其幅值可能超过AC分量的数倍。此外,静脉血的惯性运动也会产生低频干扰。基础处理手段包括:加速度计辅助的自适应滤波(如LMS、RLS算法),将IMU信号作为参考噪声源进行对消;频域滤波,利用心率频率范围(0.5~4Hz)与运动频率(通常<2Hz)的差异进行带通限制;信号质量评估(SQI),通过模板匹配或峰度指标判断当前信号是否可信,不可信时丢弃或插值。

4.3.2 ECG的基线漂移与肌电干扰

ECG的基线漂移主要由呼吸引起的胸廓运动、电极极化电位变化造成,频率低于0.5Hz。处理时可采用高通滤波(截止频率0.5Hz)或中值滤波(窗口长度约200ms)去除。肌电干扰(EMG)频率范围20~500Hz,与QRS波群部分重叠,简单低通滤波会损失QRS高频成分。工程上常采用自适应陷波器或小波变换,在保留QRS形态的同时抑制EMG。工频干扰(50/60Hz)则通过陷波器或带阻滤波器消除,但需注意陷波器可能引入振铃效应,影响T波检测。

风险提示:过度滤波会破坏信号形态。例如,PPG的上升沿斜率是评估血管弹性的重要指标,若低通截止频率设置过低(如<5Hz),会平滑掉上升沿细节,导致脉搏波传导时间(PTT)计算偏差。ECG的QRS波群若被过度滤波,R峰定位可能偏移数个采样点,直接影响HRV分析的准确性。

4.3.3 硬件噪声与接触噪声

PPG的LED驱动电流纹波、光电二极管的暗电流、运放的1/f噪声都会叠加在信号上。ECG的电极-皮肤接触阻抗会随出汗、运动而变化,产生接触噪声。基础处理包括:硬件上采用右腿驱动电路(ECG)降低共模干扰,屏蔽与走线分离减少串扰;软件上采用中值滤波去除脉冲型尖峰,卡尔曼滤波对信号进行最优估计。

4.4 信号处理基础流程与判断方法

在Edge AI设备中,心率信号处理需在资源受限的MCU/DSP上实时完成。标准处理链路如下:

  1. 前置放大与抗混叠滤波:模拟端进行固定增益放大(PPG通常50~100倍,ECG 100~1000倍),并采用截止频率为采样率0.4倍的低通滤波器。
  2. ADC采样:PPG用12~16bit ADC,ECG用16~24bit ADC,采样率按前述要求设置。
  3. 数字带通滤波:PPG采用0.5~8Hz带通,ECG采用0.5~40Hz带通(用于心率检测)或0.05~100Hz(用于诊断)。
  4. 运动伪影消除:结合IMU数据,使用自适应滤波器或频谱插值法。
  5. 特征点检测:PPG用自适应阈值+峰值检测;ECG用Pan-Tompkins算法(差分、平方、移动窗口积分)检测R峰。
  6. 心率计算与SQI评估:计算RR/PP间隔,剔除异常值,输出实时心率与HRV参数。
判断方法:当PPG信号质量指数(SQI)低于0.5时,应切换至ECG通道或提示用户静止。SQI可通过以下方式计算:① 信号在预期心率频带内的能量占比;② 相邻波峰间隔的变异系数(CV<10%为优);③ 模板匹配相关系数(r>0.8为优)。

4.5 实战案例:运动手环PPG信号的运动伪影消除

背景与约束:某款运动手环采用绿光PPG(530nm)传感器,采样率100Hz,MCU为Cortex-M4F(主频80MHz,Flash 256KB)。用户反馈在跑步(步频约180步/分)时心率显示跳变严重,误差达±15bpm。

初始现象与目标:静止时心率准确(±2bpm),跑步时误差增大。目标是将运动时误差控制在±5bpm以内,且算法延迟不超过2秒。

关键数据与日志:通过调试接口抓取PPG原始波形与加速度计(三轴,±8g,50Hz)数据。发现PPG信号中叠加了幅值约为AC分量3倍的周期性干扰,频率约3Hz(与步频180步/分对应)。

分析判断过程:首先确认干扰频率与步频一致,判定为运动伪影。尝试固定截止频率的带通滤波(0.5~4Hz),但干扰频率3Hz落在通带内,无法有效去除。进一步分析发现,加速度计z轴(垂直方向)信号与PPG干扰波形高度相关(相关系数0.82),适合作为参考信号。

实际操作步骤:

// 伪代码:LMS自适应滤波器消除运动伪影
#define FILTER_ORDER 8
float w[FILTER_ORDER] = {0};  // 滤波器权重
float mu = 0.01;              // 步长因子

float lms_filter(float ppg_raw, float accel_z) {
    float ref_buf[FILTER_ORDER] = {0};
    // 将accel_z及其延迟线作为参考输入
    for (int i = FILTER_ORDER-1; i > 0; i--) ref_buf[i] = ref_buf[i-1];
    ref_buf[0] = accel_z;
    // 计算滤波器输出
    float y = 0;
    for (int i = 0; i < FILTER_ORDER; i++) y += w[i] * ref_buf[i];
    // 误差信号:PPG原始信号减去估计的噪声
    float e = ppg_raw - y;
    // 更新权重(LMS算法)
    for (int i = 0; i < FILTER_ORDER; i++) w[i] += 2 * mu * e * ref_buf[i];
    return e;  // 输出消除噪声后的PPG信号
}

结果对比:采用LMS自适应滤波后,跑步时心率误差从±15bpm降至±4bpm。算法占用CPU约12%(80MHz主频),Flash增加6KB,满足资源约束。

风险与代价:自适应滤波器在步频与心率接近时(如快走时心率约120bpm,步频约120步/分)可能将真实心率成分误消除。为此增加了SQI监测,当检测到输出信号质量下降时,自动切换至ECG通道(若设备有)或提示用户。

复盘经验:① 运动伪影消除必须结合IMU数据,单一频域滤波无法应对动态干扰;② 自适应滤波器的步长因子需根据信号强度动态调整,过大导致发散,过小收敛慢;③ 在Edge设备上实现时,需将滤波器系数定点化(Q15格式),避免浮点运算开销。

4.6 常见误区与总结复盘

  • 误区一:采样率越高越好。实际上,过高的采样率(如PPG>500Hz)会增加功耗与存储压力,而心率信号带宽有限,100Hz已足够。但ECG用于HRV分析时,采样率不足会导致R峰定位误差,建议至少250Hz。
  • 误区二:滤波越干净越好。过度滤波会破坏信号形态特征。例如,PPG的重搏波切迹是评估动脉硬化的指标,若低通截止频率低于8Hz,切迹可能消失。
  • 误区三:忽略信号质量评估。很多团队直接对原始信号进行峰值检测,导致运动时误检率飙升。应在检测前加入SQI门控,低质量信号不参与心率计算。
  • 误区四:ECG的CMRR越高越好。虽然高CMRR能抑制共模干扰,但可穿戴设备的电极阻抗高且不平衡,过高的CMRR可能引入新的噪声。实际设计中,CMRR达到80dB即可满足多数场景。

总结:PPG与ECG各有优劣,可穿戴设备应根据应用场景选择或融合。PPG适合连续监测但需重点解决运动伪影,ECG信号质量高但需解决电极接触与功耗问题。信号处理的核心在于“针对性滤波+自适应消除+质量评估”三位一体。在Edge AI架构中,这些处理应在传感器端或MCU端实时完成,仅将处理后的特征(如心率、HRV、SQI)上传至应用层,以减少无线传输功耗与延迟。