Files
ruvnet--RuView/docs/research/sota-2026-05-22/ticks/tick-8.md
T
rUv 650612e5a2 research(R6): Fresnel-zone forward model — bedrock physics for CSI sensitivity (#710)
The workspace DSP (vital_signs, multistatic, pose_tracker, tomography)
implicitly assumes a forward model that maps scatterer geometry to
per-subcarrier phase shifts. Nobody had written it down. This tick
makes it explicit.

Closed-form first-Fresnel-zone radius + point-scatterer path-delta +
per-subcarrier phase prediction over 802.11n/ac 20 MHz channels (52
subcarriers, 312.5 kHz spacing). Pure NumPy demo + JSON output for
downstream consumers.

Headline numbers:
- 5 m link first-Fresnel radius @ midpoint: 40 cm (2.4 GHz), 27 cm (5 GHz)
- Inside zone-1: phase spread <0.5 deg across 52 subcarriers (band-flat)
- Outside zone-1: phase spread up to 16 deg (band-dispersed)

This unifies R5 + R6: R5's experimentally measured band-spread top
subcarriers is exactly what the Fresnel forward model predicts for
zone-1 occupancy.

Closes the loop on three earlier threads:
- R7 (mincut adversarial) gets a precise definition of 'physically
  inconsistent' instead of a learned classifier
- R10 (foliage range) needs to retract 100 m sparse estimate to ~70 m
  to account for Fresnel-zone obstruction
- R12 (eigenshift negative result) gets its revision basis: PABS over
  Fresnel-grounded forward operator

Honest scope: point-scatterer only, first Fresnel only, frequency-flat
reflectivity, LOS-only (no multipath). The scalar version is the right
first-order approximation; volume-integral / multi-zone / multipath
extensions catalogued as R6.1+R6.2 follow-ups.

Coordination: ticks/tick-8.md, no PROGRESS.md edit.
2026-05-22 01:31:09 -04:00

2.5 KiB

Tick 8 — 2026-05-22 05:25 UTC

Thread: R6 (Fresnel forward model) Verdict: Working closed-form forward model + numpy demo. Bedrock physics that the entire wifi-densepose-signal DSP pipeline implicitly assumes is now explicit.

What shipped

  • examples/research-sota/r6_fresnel_zone.py — pure-numpy Fresnel-zone radius + per-subcarrier phase prediction. Four canonical scenarios over 802.11n/ac 20 MHz channels (52 subcarriers, 312.5 kHz spacing).
  • examples/research-sota/r6_fresnel_results.json — machine-readable predictions.
  • docs/research/sota-2026-05-22/R6-fresnel-forward-model.md — research note with the model, the demo headline numbers, what it gives each existing workspace module, R12's revision path with a basis, R10 range correction, honest scope.

Headline numbers

First Fresnel envelope (the "channel of maximum sensitivity"):

Link 2.4 GHz @ midpoint 5 GHz @ midpoint
2 m 25 cm 17 cm
5 m 40 cm 27 cm
10 m 56 cm 39 cm

A typical bedroom 5 m WiFi link has a ~40 cm wide ellipsoid where human occupancy dominates the CSI. Outside that, you're picking up only diffracted edge contributions.

Per-subcarrier phase predictions confirm what R5 measured experimentally: inside zone-1, phase spread across 20 MHz is < 0.5° (band-flat); outside zone-1, spread grows to 15° (band-dispersed). R5's band-spread top-subcarriers are now physically explained, not just measured.

Why this matters for the research loop

Three earlier threads were forced to bootstrap from data because no forward model existed:

  • R7 (mincut adversarial) — could only detect inconsistency, not predict expected. With R6, "physically inconsistent" has a precise definition: residual ≥ noise floor on all links simultaneously.
  • R10 (foliage range) — used FSPL + ITU foliage but ignored Fresnel-zone obstruction. R6 says the 100 m sparse-foliage range should be retracted to ~70 m (zone obstruction adds ~30% discount).
  • R12 (eigenshift, negative result) — failed because SVD spectrum loses spatial structure. R6's forward operator is the basis that R12's PABS revision needs.

Coordination

Tick-8 via ticks/tick-8.md. No PROGRESS.md edit. Branch research/sota-r6-fresnel-forward.

Remaining threads

R1 (ToA multistatic), R2 (room field model — partly subsumed by R6+R12 path), R3 (cross-room re-ID), R4 (federated learning), R11 (through-bulkhead maritime), R13 (contactless BP), R15 (RF biometric across rooms).

~6.6h to cron stop (12:00 UTC).