RuView 物理引导的合成 RF 世界生成器:随机化物理参数而非纹理的域随机化实践
【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView
导读
本文深入解读 RuView 统一 RF 空间世界模型(ADR-273 族)中的第四支柱——物理引导的合成 RF 世界生成器(ADR-276,代码落地于v2/crates/ruview-unified/src/synth/)。当真实标注数据稀缺时,该生成器用一阶原理的射线追踪(Allen–Berkley 镜像法 + 双站散射)从物理参数出发合成带标签的 CSI 数据,并对物理参数(材料介电常数、几何、运动学、硬件 nuisance)做域随机化,从而为 ADR-273 验收管线提供"构造即真值"的训练与反泄漏评测数据。读完本文你将掌握:其物理模型(复介电常数墙材、Fresnel 反射、镜像法多径、双站人体散射、自发涌现的 Doppler)、域随机化的参数边界、可复现的确定性纪律,以及如何通过仓库内单元测试验证"直接路径 ≡ Friis / 信道互易 / 镜像几何 / 解析 Doppler"四条物理锚点。
背景:为什么用物理生成合成 RF 数据
RuView 做 WiFi 无源感知(存在性检测、人员活动、空间智能、生命体征),其最稀缺的资源是有标签且多样化的 RF 数据:真实采集数据在房间、材料、天线摆放、人员、芯片组各维度上覆盖严重不足。2026 年的行业证据(如 WaveVerse 相位相干射线追踪,以及 HybridSim 在显式物理建模时合成→真实活动识别的 92.07% vs 54.22% 差距)指向一个规律(依 ADR-276 §0 定义,均属 EXTERNAL-UNVERIFIED 动机性证据):
合成 RF 只有在物理显式、且随机化作用于物理参数(介电常数、几何、运动学、硬件 nuisance)时才能迁移,而非叠加观感噪声(cosmetic noise)。
这正对应 ADR-273 §2 五支柱排序中第 4 项(子 ADR-276)的战略价值:一个物理生成器还能为 ADR-273 验收机制提供真实采集永远无法提供的两种东西——构造即真值(ground truth by construction)与无限的严格切分多样性。在仓库证据链上,本生成器的全貌见 v2/crates/ruview-unified/src/synth/mod.rs:其模块文档明确写着"由一阶多径物理生成带标签 CSI 窗口",并列出四条在测试中证明的物理锚点。
一、房间与材料建模:复介电常数驱动的墙
物理核心的第一步是房间与墙面材料。代码见 v2/crates/ruview-unified/src/synth/room.rs,建模为鞋盒房间[0,Lx]×[0,Ly]×[0,Lz],单一墙材由复介电常数描述:
ε = ε_r − j·σ/(ω·ε₀)其中ε_r为相对介电常数、σ为电导率(S/m,损耗项)、ω=2πf、ε₀=8.8541878128e-12 F/m。法向入射 Fresnel 电压反射系数为:
Γ = (1 − √ε)/(1 + √ε)这与 ray trace 中的镜像法简化约定一致——法向入射是标准简化,角度依赖被留作"可随机化的细化项而非正确性要求"。
仓库内置的材料预设
Material结构体内置了四个预设(ITU-R P.2040 量级的工程近似),并通过构造器与单元测试验证了物理合理性:
| 材料 | ε_r | σ (S/m) | 备注 |
|---|---|---|---|
concrete() | 5.3 | 0.073 | 浇注混凝土(ITU-R P.2040 量级) |
drywall() | 2.9 | 0.016 | 石膏板 |
glass() | 6.3 | 0.004 | 窗玻璃 |
absorber() | 1.0 | 0.0 | 理想吸波体(暗室),用于隔离直达径的测试 |
测试 fresnel_coefficient_sane_for_concrete 与 absorber_reflects_nothing 固化三项"已测合理性"结论(ADR-276 §2.1):
- 2.4 GHz 混凝土的
|Γ| ≈ 0.39–0.45,且实部为负(稠密介质导致相位反转); - 所有无源材料在 2.437 GHz 与 5.18 GHz 下
|Γ| < 1(能量守恒); - 当
ε_r = 1, σ = 0时Γ = 0精确成立(实现误差 < 1e-12)。
人员建模:房间内受验证的点散射体
人员被建模为匀速直线运动的双站点散射体(PersonSpec,字段start/velocity/rcs_m2),躯干 RCS 量级在 WiFi 频段约为 0.3–1.0 m²。RoomSpec::new是带验证的构造器(v2/crates/ruview-unified/src/synth/room.rs#L102-L129):拒绝非正/非有限尺寸、拒绝起点在房间外、拒绝非正 RCS 的 person,测试room_validation_rejects_bad_specs覆盖了这些分支。时间推进由position_at(t)线性外推,velocity为常量。
二、多径物理与信道合成:镜像法 + 双站散射(raytrace.rs)
信道合成在 v2/crates/ruview-unified/src/synth/raytrace.rs 中实现。核心是 Allen–Berkley 镜像法,反射阶数 ≤ 2,按轴生成镜像±x + 2nL,反弹次数为|2n|(正镜像)或|2n−1|(负镜像);在此基础上叠加人员的单次双站散射。频率域信道表达式为:
H(f) = Σ_paths Γ^order · (c/f)/(4π) · s_p · e^{−j·2πf·d_p/c}其中各路径的幅度因子s_p依路径类型取不同形式:
- 墙路径:
s_p = 1/d; - 人员散射路径:
s_p = √(σ_rcs/4π)/(d₁·d₂)(双站雷达方程的幅度形式,d₁为 TX→person 距离、d₂为 person→RX 距离)。
每个PathContribution携带distance_m(决定延迟与相位)、amp_scale、reflection(路径上复反射系数乘积,即Γ^order)、order(墙反弹次数)。enumerate_paths对每轴做 sign ∈ {+, −} 与 lattice shift n ∈ {−1, 0, 1} 的枚举并裁剪超过max_order的组合,遇到|Γ|=0的反射直接剪枝;synthesize_csi以中心子载波频率评估材料反射系数后遍历整段频率响应,直接产出一段复数频响。
关键设计声明:Doppler 从不被注入。多普勒效应是人员的路径长度在相邻快照之间变化而自然涌现的(mod.rs 顶部文档同样强调这一点),这一"涌现式 Doppler"由下述解析测试严格验证。
物理门(MEASURED-CODE)
生成器给出的每一条物理断言都在同文件#[cfg(test)]中以可复现的单元测试固化(ADR-276 §2.2 的 MEASURED-CODE 表)。运行cd v2 && cargo test -p ruview-unified synth即可重放:
| 物理门 | 测试函数 | 通过标准 |
|---|---|---|
| 直达径 ≡ Friis | direct_path_is_exact_friis | 吸波墙下每子载波误差 < 1e-15(d=5的直达几何) |
信道互易H(a→b)=H(b→a) | channel_is_reciprocal | 有 person + 混凝土墙时误差 < 1e-12 |
| 镜像几何 | first_order_reflection_matches_mirror_geometry | 地面/天花板反弹恰好在镜像距离(5 m)上命中;路径计数为 1 直达 + 6 一阶 + 二阶集合 |
| Doppler | moving_person_produces_the_analytic_doppler_phase_rate | 4 步内残余相位旋转匹配−2πf·Δd/c,误差 < 1e-6 rad |
其中 Doppler 测试的做法值得注意:它对"含人房间"与"空房间"两套 CSI 求差得到 person 残余分量,再把相邻快照残余的相位旋转与由镜像几何解析计算的−2πf·(d(t₁)−d(t₀))/c在单位圆上比较(相角对 2π 取模),从而确证速度恒定移动的点散射体产生理论上精确的多普勒相位率。
三、域随机化:随机化物理参数,而非纹理(generator.rs)
如果说 ray trace 是"确定性物理引擎",那么 v2/crates/ruview-unified/src/synth/generator.rs 就是"随机化这层物理"的语料生成器。其哲学与room.rs/mod.rs一脉相承:扰动的对象是物理参数与硬件 nuisance,不是纹理级观感噪声。
配置与确定性纪律
pub struct SynthConfig { pub seed: u64, // 主种子:同种子 ⇒ 字节级一致语料 pub n_rooms: usize, // 房间数 pub windows_per_room: usize, // 每房间窗口数(半数有人、半数空、交错) pub links: usize, // 每房间链路数(TX→RX 对) pub snapshot_dt_s: f64, // 快照间隔(秒) }默认配置为seed: 0xC0FFEE, n_rooms: 8, windows_per_room: 24, links: 3, snapshot_dt_s: 0.05。所有随机性经由seeded_rng(见 v2/crates/ruview-unified/src/math.rs#L191-L193)派生自ChaCha20——这正是 nvsim(ADR-089)延续下来的确定性约定:同一种子 ⇒ 跨机器字节一致的语料。测试corpus_is_byte_deterministic_per_seed直接逐复样本比对两种子生成的语料,并验证换种子后语料必然分叉。
随机化的物理参数(每房间)
生成器逐房间按下列边界抽取物理参数(与 ADR-276 §3 以及generate()中rng.gen_range一致):
| 参数 | 随机范围 | 语义 |
|---|---|---|
| 房间尺寸 | 4–10 × 3–8 × 2.4–3.2 m | 几何多样性 |
| 材料 ε_r | [2, 7] | 覆盖混凝土/砖/玻璃量级 |
| 材料 σ | [0.002, 0.1] S/m | 损耗多样性 |
| TX/RX 摆放 | 0.3…尺寸−0.3 m,高度 1.0–2.0 m | 每房间随机links条链路 |
| 人员起始位置 | 房间内 25%–75% 区间,高 1.0–1.6 m | 每房间一位随机 person |
| 人员速度 | 0.3–1.0 m/s × 0.2(面内方向随机) | 匀速直线段 |
| RCS | 0.3–0.8 m² | 躯干量级 |
此外,代码将窗口起始时刻设计为按(w % 6)循环推进,使人员在房间内往返运动而不会走出房间。presence 标签由w % 2 == 0交错决定——一半窗口有人、一半窗口为空,且person_pos在窗口中间时刻给出精确坐标(空窗口为None)。
硬件 nuisance:模型在真实场地翻车的原因清单
ADR-276 反复强调,真正在野外击溃朴素模型的往往是硬件非理想性,因此每个房间会抽取一个HardwareProfile("芯片组"),并对每个样本施加下列扰动:
| Nuisance | 默认参数 | 实现方式 |
|---|---|---|
| 每房间增益 | ×0.5–2.0 | Complex64::from_polar(gain, …)的幅度因子 |
| 静态相位偏置 | ±π | 同一 profile 下的常数旋转 |
| CFO 漂移 | ±0.3 rad/快照 | 相位随快照索引线性累积:phase_offset + cfo·s |
| 热噪声 | σ ∈ [0.01, 0.05] | 每样本独立复数加性噪声 |
| 丢包 | 5% | 命中快照"重发"上一帧(快照冗余送达) |
| 宽带干扰突发 | 3% | 命中样本噪声幅度 ×10 |
一条极具说服力的实证(ADR-276 §3):CFO nuisance 立刻击败了第一版 tokenizer——空房间被识别成有运动,从而迫使体系引入现在记录在 ADR-274 §3.1 的 CFO 对齐步骤。这正是"物理参数随机化"的价值所在:在真实部署前暴露出此类缺陷。
构造即隔离:每条窗口自带完整 PartitionKey
语料的抗泄漏价值来自结构,而非事后清洗。每条LabeledWindow都携带完整的PartitionKey(结构见 v2/crates/ruview-unified/src/eval.rs#L22-L38),七个维度是:room / day / person / chipset / firmware / layout / session。生成器为每个窗口填充形如room-{idx}、chip-{idx%3}、fw-{idx%2}、layout-{(idx/2)%2}、session=room-{idx}-s{w%6}的键,并区分有人窗口的 person ID 与空窗口的"none"。由此,ADR-273 §4 要求的按房间/天/人员/芯片/固件/布局的严格隔离切分(holdout)天然存在,无需事后清洗即可跑反泄漏评测。
测试侧对此有两条直接证据:
presence_windows_carry_more_temporal_energy:有入窗口的时域幅度方差严格 > 空窗口方差的 5 倍(ADR 记录真实测得的比值远高于此阈值);labels_and_partition_keys_are_complete:18 个窗口全部断言modality == RfModality::Synthetic(诚实标签)、presence == person_pos.is_some()、键各字段非空且确实存在多个房间(保证 room-holdout 可分)。
四、诚实标签链:从RfModality::Synthetic到 SYNTHETIC 分级
ADR-276 §0 把诚实性纪律放在第一位。生成器的每个输出都被打上RfModality::Synthetic戳记(该变体定义于 v2/crates/ruview-unified/src/tensor.rs#L47-L49,注释明确规定:"Synthetic 张量绝不能被当作实测数据上报")。这条戳记会存活到 ADR-277 导出边界的Provenance.synthetic字段,并最终决定 ADR 声明是否被标为 SYNTHETIC 级——这条链是结构性的,而非编辑性的。
依赖它的载体是统一张量RfTensor:形状(links, bins, snapshots)的复数张量。生成器将每房间数据组织为links × 56 bins × 8 snapshots(常量CANONICAL_BINS = 56、CANONICAL_SNAPSHOTS = 8,见 tensor.rs),子载波在 2.437 GHz 中心频率上铺开 20 MHz(56 个子载波,正对应 20 MHz 802.11n CSI 去除保护间隔后的可用子载波数,最常用的真实来源无需重采样)。每个张量还携带sample_age_s、timestamp_ns、device_id、clock_quality、uncertainty与CalibrationMeta,为后续 encoder/tokenizer/Gaussian memory 提供统一的规范化输入。
五、该生成器"不是什么":边界与诚实读取
ADR-276 §4 用两段话划清了边界,避免过度承诺:
- 不是 WaveVerse 的替代品:仅含 ≤2 阶镜面反射 + 点散射体,不含绕射、漫散射、角度相关 Fresnel、天线方向图。这些是"当 P2 真实数据差距分析提出要求时"才追加的细化,而非前置条件。
- 不是真实世界准确性的证据:ADR-273 验收数字验证的是管线(encoder/tokenizer/head/反泄漏机制)而非真实感知性能。合成→真实迁移的主张(HybridSim 风格)在本仓库中未经测试,保持 EXTERNAL-UNVERIFIED,直到 P2 重放实验跑完。用 ADR-273 §5 的话说:"在一个 presence ⇔ 移动散射体可构造性可分的世界里,F1 = 1.0 验证的是管线与反泄漏机制,而非真实世界表现。"
六、性能与验收:合成语料不是瓶颈
- 性能口径(release):1 房间 × 4 窗口 × 3 链路约3.1 ms(≈ 260 µs/窗口);8 房间的验收语料即使在 debug 构建下也远低于 1 秒建成(ADR-276 §5)。语料生成永远不是管线瓶颈。
- 验收管线的端到端消费:ADR-273 的验收门(冻结共享 encoder、adapters < 1% 骨干、unseen 房间/芯片/布局)由 v2/crates/ruview-unified/tests/e2e_acceptance.rs 端到端实现,数据源正是本生成器(8 房间 × 20 窗口 × 3 链路,seed 273273),全部数字以 MEASURED-SYNTHETIC 分级呈现。
七、后果与工程收益
综合 ADR-276 §6 与本仓库实现,这一生成器带来的结构性收益可归纳为三点:
- 每一级管线都获得确定性、有物理依据的测试台——adapter/tokenizer/encoder 的回归会对着构造即真值大声失败(CFO 击穿 tokenizer 就是现成案例)。
- 数据稀缺不再阻塞架构工作——按房间/芯片/布局的严格切分实验可以直接跑进 CI。
- 诚实标签链是结构化的——
RfModality::Synthetic→Provenance.synthetic→ SYNTHETIC 分级的 ADR 声明,全链路无人工可绕过环节。
如果要在仓库中验证本文全部结论,最直接的复现路径是:
cd v2 && cargo test -p ruview-unified synth # 四类物理门 + 确定性/标签测试 cd v2 && cargo test -p ruview-unified # 全部单元测试(含 e2e 验收)阅读延伸:本生成器是 ADR-273 六支柱中优先级第 4 的落地子项,其上、下游分别是 ADR-274(universal RF encoder + adapter registry,含 §3.1 CFO 对齐)与 ADR-273 本体(统一 RF 空间世界模型与反泄漏评测协议);它沿袭的确定性纪律来自 ADR-089(nvsim),可为 ADR-135 的空房间基线场景构造仿真等价物,并与 ADR-015(公开数据集训练策略)的 MM-Fi/Wi-Pose 语料来源形成互补。
【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考