路由器早就在测你的呼吸,只是那层数据没人读

2026-11-12T07:15:00+08:00 | 8分钟阅读 | 更新于 2026-11-12T07:15:00+08:00

@
路由器早就在测你的呼吸,只是那层数据没人读

晚上十点,客厅没人。路由器 5 GHz 频段还在发信标帧,也在给你手机回数据。它得不停测信道,才知道该给哪个客户端分多少带宽。这时候如果有人坐在沙发上,胸廓每四秒起伏五毫米,这些帧的相位会跟着抖七十度左右。

这个抖动量一直在你的路由器里产生,然后被丢掉。因为有 WiFi 以来,这层数据的唯一用途是判断链路质量,从来没人问它还能干什么。

2025 年 9 月 26 日,IEEE 发布了 802.11bf-2025,228 页,把 WLAN 感知正式写进 MAC 层。那天没什么人讨论,因为标准发布不如演示视频好看。但这才是这件事的分水岭。

从扒固件到调接口

在这之前,想让 WiFi 感知,第一步是找一块能吐出 CSI 的网卡。这块网卡通常得是 2010 年前后的 Intel 5300,早就停产,二手市场按颗卖。要么给 Broadcom 芯片刷 Nexmon 补丁,把波束反馈从内核里抠出来。

两条路都很难看:一条依赖古董硬件,一条依赖厂商没打算开放的字段。所以过去十年 WiFi 感知一直停在实验室,不是算法不行,是拿不到数据。

802.11bf 干的事很朴素。它让站点之间可以互相通告「我支持感知」,可以请求并建立一次感知测量,可以主动声明「这一帧你可以拿去用」,还给上层留了一个 MAC 服务接口去取测量结果。物理层接口覆盖 HT / VHT / HE / EHT,外加 60GHz 那套 DMG / EDMG,频段从 1 GHz 到 7.125 GHz。

翻译成人话:以后不用刷固件了,芯片厂商可以名正言顺地把感知当产品功能卖。

CSI 比 RSSI 多了什么

RSSI 是一个数,信号衰减了多少 dB。CSI 是每个子载波的复信道响应 H(f,t),带幅度也带相位。20MHz 信道 64 个子载波,去掉 12 个空载波和 4 个导频,剩 48 个数据子载波,所以 ESP32 报 52 组(数据加导频)。

52 个数和 1 个数的区别在于能不能分辨多径。一个房间里信号会从墙、地板、人身上反射出十几条路径,每条路径的时延不同,落到每个子载波上的相位旋转就不同。人动一下,某些子载波幅度升、某些降,这个纹路就是 CSI 携带的空间信息。RSSI 把所有路径压成一个标量,纹路全丢了。

不同硬件的口径差得很远:

硬件位深子载波数支持标准
Intel 53008 bit30 组a/b/g/n
Atheros10 bit56 / 114(20 / 40 MHz)a/b/g/n
Nexmon(Broadcom / Cypress)未标注256 @80MHz,2048 @160MHza/n/ac/ax
ESP328 bit52 / 114(HT20 / HT40)b/g/n

2048 个子载波听起来比 52 强太多,实际不一定。子载波越多,相位校准越难,因为每个子载波的相位误差不是同一个值,是随频率线性漂移再叠上随机抖动。位深也一样,ESP32 的 8 bit ADC 只给你 48 dB 动态范围,超出这个范围的弱反射直接被量化噪声吃掉。

三道物理坎

第一道,位移换相位。

人在信号路径上挪 1 毫米,往返路程变 2 毫米,相位转 2π×2d/λ 弧度。5 GHz 频段波长 5.2 厘米,胸廓起伏 5 毫米换来 1.2 弧度,约 70 度,这个量在噪声之上,能测。心跳的胸壁位移只有 0.1 到 0.5 毫米,同一套算法下只有 0.024 到 0.12 弧度,也就是 1.4 到 7 度。

差 50 倍。所以呼吸检测满地跑,心率检测大多还得贴片。物理条件差了一个数量级,模型再深也补不回来。2.4 GHz 波长 12.5 厘米,同样的位移只换来四成相位,更吃亏。

第二道,采样率。

呼吸基频 0.2 到 0.5 Hz,走路步频 2 Hz 上下,手势能量集中在 5 Hz 以内。听起来要求很低,但 CSI 拿不到连续采样,它是靠「有包经过」来采样的。ESP-NOW 突发能到 200 包每秒,多节点还要分时。一个 16 节点的网,每条链路一个 3 毫秒时隙,全扫一轮 48 毫秒,整网刷新率就是 20 Hz。

20 Hz 够走路和呼吸,不够心跳的高阶谐波,也不够快速手势。这个天花板是 RF 时序定的,换更强的 CPU 没用。

第三道,相位噪声。

每包 CSI 的相位里混着本振随机偏移(0 到 2π 均匀分布)、采样频率偏移带来的线性漂移、热噪声(底噪大概 -90 dBm)、多径衰落。所以所有 CSI 系统的第一件事都是相位校准,拿导频子载波做参考,或者做 CSI ratio 消掉公共相位。

校准本身有代价:它会连真实信号里的慢变分量一起削掉,削多削少取决于窗长。这是个没有标准答案的取舍,也是各家论文数字互相不可比的根源之一。

第四道是墙。 2.4 GHz 过一堵砖墙十几个 dB,钢筋混凝土承重墙二十 dB 以上。链路预算本来就不宽裕,再衰减两堵墙,剩下的分量掉到 -90 dBm 底噪附近,SNR 不够,算法再花也拉不回来。实验室里的穿墙用的是石膏板隔断,这个区别很大。

论文里的数字该怎么读

这里得泼点冷水。

2022 年底 CMU 那篇 DensePose From WiFi(arXiv:2301.00250)报了个 87.2 的 AP,IoU 阈值 0.5,一度被传成「WiFi 能穿墙看骨架」。论文本身写得挺克制:用的是 1 到 5 个人的办公室和教室录像,ground truth 不是人手工标的,是把预训练 DensePose 跑在视频上生成的伪标注。作者说模型能大致定位人体框和躯干姿态,四肢不行;三个人以上时,从整段幅度相位张量里拆出每个人的信息很困难;训练集里少见的姿势会生成不存在的肢体。代码和模型没放出来。

更麻烦的是评估方法。有位研究者复现早期同类论文的代码时发现,作者把时间序列随机切成 8:2 做训练和测试。相邻帧几乎一样,随机切等于把测试样本的邻居塞进训练集,这是时间序列任务里的典型数据泄漏。同一个模型换到没见过的房间布局上(15 个布局训练,1 个测试),数字掉到只能放在表格里当附注。

这不是一个人的问题。这个领域数据集小、场景少、评估口径各写各的,导致论文之间的精度根本不能横着比。

也有做对了的。NIST 那篇 BreathSmart 报呼吸模式分类 99.54%、呼吸率 98.69%,但人家说清楚了是分类任务、受控条件,还专门分析了路径损耗和 CSI 帧率怎么影响精度。另一篇 VitalCSI 只用了 15 个志愿者,但拿鼻腔气流传感器做对照,PCA 加谱峰检测,再用卡尔曼滤波融合,口径是干净的。做产品要看的是后两篇的写法,不是前者的标题。

一个项目把自己的数字撤回了

今天 GitHub 趋势榜上 RuView 单日 627 星,总星 10.4 万。它用 9 美元的 ESP32 当传感节点,从 CSI 里出 17 个身体关键点、呼吸和心率趋势,全程不用摄像头,跑在树莓派上。

它能出 17 个关键点不算稀奇,稀奇的是它首页写着的话:v2 编码器在时间三元组上的留出集准确率 82.3%,比之前的 66.4% 高;而更早那个「100% 人体存在检测」,是在单类录音上测出来的,已经撤回。

它还给准确率声明内置了一个 honesty check,每条测量挂一条 Ed25519 见证链,记来源和不确定度。同时它自己明说,那个把 WiFi CSI、毫米波雷达、UWB、蜂窝融在一起的统一 RF 世界模型,精度「仍是合成数据,等真实数据验证」。

一个项目把「我们的数字是合成的」写在首页,比把 99% 写在首页的项目可信得多。这话不好听,但过去几年这个领域吃过的亏基本都来自后者。

工程上真正值钱的部分

如果只看模型,会错过 WiFi 感知最有意思的设计约束:瓶颈不在算力。

一个 16 节点网跑相干性估计加最小割,总共约 17 万次运算每秒。ESP32 单核 240 MHz,只占 0.07%,算力完全空着。

瓶颈在带宽。240 条链路,每帧原始 CSI 208 字节,一轮 240 帧是 49920 字节,20 Hz 就是 0.95 MB/s。WiFi 传不动这个量,尤其你还想同时传业务数据。

解法是在端上就把信息压缩掉:每条边只算一个相干性值,4 字节。120 条边一轮 480 字节,20 Hz 是 9.4 KB/s,压缩 104 倍。

这个取舍挺值得抄。感知系统的设计重心在「哪一步丢信息」,不在「模型多大」。先把原始波形压成物理量再上传,比把原始波形送进云端跑大模型更靠谱。

还有一招挺聪明:跳 6 个信道扫,把邻居家的路由器当免费照射源。发射机越多,可分辨的多径几何越多,空间分辨率越高,而你一分钱没花。

没有摄像头,不等于没有隐私

「它不用摄像头所以更安全」是最经不起推敲的一句话。

摄像头只能看一个房间,还隔着一堵墙。CSI 穿墙。它能给你的是:家里在不在人、几个人、睡没睡、呼吸频率趋势、有没有摔倒。这几样凑起来就是行为指纹,而且比画面更难辩解,因为画面你还能说「拍的是客厅」,CSI 说的是「你凌晨三点心跳偏快」。

眼下的现实是:硬件已经在墙上挂着,标准 2025 年就发了,但「谁能读这层数据」没有答案。厂商默认不开,更可能是合规边界不清楚,不是技术做不到。

802.11bf 只定协议,不定隐私。这块只能靠本地处理和可审计性顶。RuView 那条「原始 CSI 不出采集主机」的约束算一个正向样本,虽然它是自证,不是第三方审计。

该信什么,该等什么

能信的是存在检测和动作检测。这两件事信噪比高、容错大,路由器厂商已经在做,效果也确实是「人走了灯灭」这个级别。

该等的是呼吸率、多人区分、姿态精度。呼吸率在静止单人的条件下有可信的论文支撑,跨姿势、跨房间、多人同时在场时基本没有。心率、关键点、穿墙看骨架都还在论文阶段,离产品有距离。

别信的是任何没有留出集口径的演示视频。判断标准很简单:有没有给出跨房间、跨人、跨布局的数字,代码能不能跑起来。给不出这两样,87.2 和 99.54 都只是一个数字。

WiFi 感知的物理底子是硬的,工程难度是真的,只是宣传口径还虚着。这三件事最好分开看。

参考来源

  • IEEE Std 802.11bf-2025, Amendment 4: Enhancements for Wireless LAN Sensing, 2025-09-26
  • DensePose From WiFi, arXiv:2301.00250
  • Mosleh et al., Monitoring Respiratory Motion With Wi-Fi CSI: Characterizing Performance and the BreatheSmart Algorithm, IEEE TBME / NIST
  • Michaelis et al., VitalCSI: Contactless Respiratory Rate Estimation Using Consumer-Grade Wi-Fi CSI
  • Tools and Methods for Achieving Wi-Fi Sensing in Embedded Devices(ESP32 / Nexmon 硬件对比与采样率实测)
  • ruvnet/RuView, GitHub
  • Andrew Walsh, Researchers Misrepresenting the Capability of Human Pose Estimation from WiFi CSI
Me

Cut out summary from your post content here.

The remaining content of your post.