Hotdry.

Article

用 commodity WiFi 实现亚赫兹呼吸检测:CSI 分解工程参数

基于 ESP32-S3 的 CSI 信号分解方案,实现 0.1-0.5 Hz 频段呼吸检测,给出带通滤波、相干门控与过零计数的可落地参数。

2026-05-14ai-systems

非接触式生命体征监测长期依赖毫米波雷达或专用传感器,成本与部署复杂度限制了规模化应用。RuView 项目展示了另一种路径:利用现有 WiFi 基础设施的 Channel State Information(CSI),通过亚赫兹信号分解实现呼吸与心率检测。本文聚焦 CSI 分解的工程实现,给出从原始信号到 BPM 读数的完整参数链。

CSI 为何能感知呼吸

WiFi 信号在空间中形成复杂的驻波场,人体胸腔的微小位移(约 4-12 mm)会改变多径传播特性。CSI 记录了每个子载波上的信道频率响应,包含幅度与相位信息。呼吸运动频率落在 0.1-0.5 Hz(6-30 次 / 分钟),远低于 WiFi 帧率,因此可以通过时域累积提取。

关键洞察在于:单个子载波的相位变化对呼吸敏感,但易受噪声干扰;多子载波联合分析通过空间分集抑制噪声。RuView 采用 56 子载波配置,跨 3 个信道(1/6/11)形成 168 个虚拟子载波,构建冗余观测矩阵。

信号处理流水线

1. 带通滤波器设计

呼吸信号与心率信号频段分离,需级联带通滤波:

生理指标 频段 滤波器参数 输出
呼吸 0.1-0.5 Hz 4 阶 Butterworth 6-30 BPM
心率 0.8-2.0 Hz 4 阶 Butterworth 40-120 BPM

滤波器实现采用零相位延迟设计(filtfilt),避免相位失真对过零检测的影响。截止频率选择基于呼吸与心率的生理范围下限,同时避开 0.5-0.8 Hz 的模糊带。

2. 相干门控(Coherence Gate)

CSI 信号质量受多径衰落、人体姿态、环境变动影响。RuView 引入 Z-score 相量门控,通过相位相干性判断测量可信度:

状态 = {
  Accept:       |Z| < 2.0 且 相干性 > 0.7
  PredictOnly:  2.0 ≤ |Z| < 3.0
  Reject:       |Z| ≥ 3.0 或 相干性 < 0.5
  Recalibrate:  连续 10 帧 Reject
}

门控机制确保只有高置信度样本进入 BPM 计算,避免异常值污染。滞后阈值(hysteresis)设计防止状态频繁切换导致的输出抖动。

3. 过零 BPM 提取

滤波后的信号通过过零检测计算瞬时频率:

  1. 检测正向过零点(信号从负到正穿越零轴)
  2. 计算相邻过零点时间间隔 Δt
  3. BPM = 60 / (2 × Δt),因子 2 对应半周期计数
  4. 滑动窗口中位数滤波(窗口 30 秒)平滑输出

该方法对基线漂移鲁棒,计算复杂度 O (n),适合 ESP32-S3 的 240MHz 双核处理器。

部署参数与硬件约束

ESP32-S3 配置

RuView 的固件针对 ESP32-S3 优化,关键参数如下:

  • CSI 采样率:100 Hz(每 10ms 一个 CSI 帧)
  • 子载波数:56(HT40 模式)
  • 内存占用:信号处理流水线约 28KB,MicroLoRA 适配器 2KB,总计 55KB 模型
  • 功耗:主动扫描模式约 150mA,支持 USB 供电或电池方案

空间部署建议

单节点感知范围约 5 米,受菲涅尔区几何约束。推荐部署策略:

  • 单房间监测:2-3 节点形成多视角观测,通过多静态融合提升信噪比
  • 穿墙场景:利用 2.4GHz 绕射特性,单节点可穿透 30cm 混凝土墙体
  • 网格扩展:N 节点形成 N×(N-1) 条链路,注意力加权跨视角嵌入

误差来源与缓解

误差源 影响 缓解策略
身体大幅运动 呼吸信号淹没 运动检测触发暂停,恢复后 10 秒再启用
多径环境变动 基线漂移 自适应基线跟踪,滑动窗口更新
载波频率偏移 相位跳变 相位解卷绕 + 差分处理
采样时钟抖动 频率估计偏差 软件 PLL 同步,或 GPSDO 硬件同步

从原型到产品

RuView 的呼吸检测模块(med_sleep_apnea.rs)已实现为 WASM 边缘模块,5KB 体积,<5ms 推理延迟。该设计允许:

  • OTA 更新:通过 WiFi 推送新模块,无需物理接触
  • 多租户隔离:不同健康监测应用共享 CSI 流,模块级沙箱隔离
  • 隐私保护:原始 CSI 不上云,BPM 计算本地完成,符合 GDPR/HIPAA 无视频要求

对于没有 CSI 能力的设备(如普通笔记本),系统退化为 RSSI-only 模式,仅支持粗粒度存在检测,无法提取呼吸特征。

局限与权衡

当前实现存在已知约束:单节点空间分辨率有限,姿态估计 PCK@20 约 2.5%(无相机监督),目标 35% 需相机地面真值训练。呼吸检测精度受限于 CSI 采样率(100Hz 理论上限 50Hz 信号),对高频心率变异(HRV)分析能力不足。

此外,ESP32-C3 和原始 ESP32 因单核性能不足不支持完整 CSI DSP 流水线,必须使用 ESP32-S3 或研究级网卡(Intel 5300/Atheros AR9580)。

总结

通过 CSI 分解实现亚赫兹呼吸检测,本质是将 WiFi 从通信工具重新定义为分布式传感器网络。关键工程参数 ——0.1-0.5 Hz 带通、相干门控阈值、过零窗口 —— 决定了检测精度与鲁棒性的平衡。对于 $9 的 ESP32-S3 节点,这套方案提供了医疗级生命体征监测的低成本替代路径。


参考来源

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com