1384 lines
45 KiB
Markdown
1384 lines
45 KiB
Markdown
# Spatial Resolution Analysis for RF Topological Sensing via Minimum Cut
|
||
|
||
**Research Document 09** | March 2026
|
||
**Status**: Theoretical Analysis + Experimental Design
|
||
**Scope**: Fundamental spatial resolution limits of WiFi CSI-based RF sensing
|
||
using graph minimum cut, with practical bounds for the RuView ESP32 mesh
|
||
deployment topology.
|
||
|
||
---
|
||
|
||
## Table of Contents
|
||
|
||
1. [Fresnel Zone Analysis](#1-fresnel-zone-analysis)
|
||
2. [Node Density vs Resolution](#2-node-density-vs-resolution)
|
||
3. [Cramer-Rao Lower Bounds](#3-cramer-rao-lower-bounds)
|
||
4. [Graph Cut Resolution Theory](#4-graph-cut-resolution-theory)
|
||
5. [Multi-Frequency Enhancement](#5-multi-frequency-enhancement)
|
||
6. [Tomographic Resolution](#6-tomographic-resolution)
|
||
7. [Experimental Validation](#7-experimental-validation)
|
||
8. [Resolution Scaling Laws](#8-resolution-scaling-laws)
|
||
9. [Integration with RuView Codebase](#9-integration-with-ruview-codebase)
|
||
10. [References](#10-references)
|
||
|
||
---
|
||
|
||
## 1. Fresnel Zone Analysis
|
||
|
||
### 1.1 First Fresnel Zone Fundamentals
|
||
|
||
The first Fresnel zone defines the ellipsoidal region between a transmitter
|
||
and receiver where electromagnetic propagation contributes constructively
|
||
to the received signal. Any object entering this zone measurably perturbs
|
||
the CSI. The radius of the first Fresnel zone at the midpoint of a link
|
||
of length `d` at wavelength `lambda` is:
|
||
|
||
```
|
||
r_F = sqrt(lambda * d / 4)
|
||
```
|
||
|
||
This is the *minimum detectable feature size* for a single link -- an
|
||
object smaller than `r_F` cannot reliably perturb the link's CSI above
|
||
noise floor.
|
||
|
||
### 1.2 Fresnel Radii at WiFi Frequencies
|
||
|
||
For 802.11 bands used by the ESP32:
|
||
|
||
| Frequency | Wavelength | Link 2m | Link 3m | Link 5m | Link 7m |
|
||
|-----------|-----------|---------|---------|---------|---------|
|
||
| 2.4 GHz | 12.5 cm | 25.0 cm | 30.6 cm | 39.5 cm | 46.8 cm |
|
||
| 5.0 GHz | 6.0 cm | 17.3 cm | 21.2 cm | 27.4 cm | 32.4 cm |
|
||
| 5.8 GHz | 5.17 cm | 16.1 cm | 19.7 cm | 25.4 cm | 30.1 cm |
|
||
|
||
Derivation for 2.4 GHz at 5m:
|
||
|
||
```
|
||
lambda = c / f = 3e8 / 2.4e9 = 0.125 m
|
||
r_F = sqrt(0.125 * 5 / 4) = sqrt(0.15625) = 0.395 m ≈ 39.5 cm
|
||
```
|
||
|
||
### 1.3 Off-Center Fresnel Zone Radius
|
||
|
||
The Fresnel zone radius is not constant along the link. At a distance `d1`
|
||
from the transmitter and `d2` from the receiver (where `d1 + d2 = d`):
|
||
|
||
```
|
||
r_F(d1) = sqrt(lambda * d1 * d2 / d)
|
||
```
|
||
|
||
This reaches its maximum at the midpoint (`d1 = d2 = d/2`) and tapers
|
||
to zero at both endpoints. The practical implication: objects near a node
|
||
are harder to detect on that specific link because the Fresnel zone is
|
||
narrow there. This is why mesh density matters -- nearby links cover
|
||
the "blind cone" of each individual link.
|
||
|
||
### 1.4 Fresnel Zone as Resolution Kernel
|
||
|
||
Each TX-RX link acts as a spatial filter with a resolution kernel shaped
|
||
like the first Fresnel ellipsoid. The link cannot resolve features smaller
|
||
than the local Fresnel radius. The effective point spread function (PSF)
|
||
for a single link is approximately Gaussian with standard deviation:
|
||
|
||
```
|
||
sigma_link(x) ≈ r_F(x) / 2.35
|
||
```
|
||
|
||
where `x` is the position along the link and the 2.35 factor converts
|
||
FWHM to standard deviation. The link's sensitivity to perturbation at
|
||
position `p` in the room decays as:
|
||
|
||
```
|
||
S(p) = exp(-pi * (rho(p) / r_F(p))^2)
|
||
```
|
||
|
||
where `rho(p)` is the perpendicular distance from point `p` to the link
|
||
axis. This exponential decay defines the spatial selectivity of each link.
|
||
|
||
### 1.5 Implications for Mincut Sensing
|
||
|
||
For the minimum cut approach, the Fresnel zone determines the *minimum
|
||
width* of a detectable boundary. A person (torso width ~40 cm) fully
|
||
blocks the first Fresnel zone on a 5m link at 2.4 GHz. At 5 GHz the
|
||
same person extends beyond the Fresnel zone, meaning:
|
||
|
||
- At 2.4 GHz: person width approximately equals Fresnel radius on
|
||
medium links -- moderate SNR perturbation.
|
||
- At 5 GHz: person width exceeds Fresnel radius -- stronger relative
|
||
perturbation, better localization along perpendicular axis.
|
||
|
||
The mincut algorithm partitions the graph at edges where coherence drops.
|
||
The spatial precision of this partition is bounded below by the Fresnel
|
||
radii of the cut edges. When multiple links are cut simultaneously, the
|
||
intersection of their Fresnel ellipsoids constrains the boundary location
|
||
more tightly than any single link.
|
||
|
||
---
|
||
|
||
## 2. Node Density vs Resolution
|
||
|
||
### 2.1 Graph Topology and Spatial Sampling
|
||
|
||
In the RuView deployment model, N ESP32 nodes are placed around the
|
||
perimeter of a room. Each pair of nodes with line-of-sight forms a
|
||
bidirectional link. For N nodes, the maximum number of links is:
|
||
|
||
```
|
||
L = N * (N - 1) / 2
|
||
```
|
||
|
||
Each link samples the RF field along a different spatial trajectory.
|
||
The collection of all links forms a spatial sampling pattern analogous
|
||
to a CT scanner's projection geometry. Resolution depends on:
|
||
|
||
1. **Angular coverage**: How many distinct angles are sampled.
|
||
2. **Link density**: How closely spaced adjacent parallel links are.
|
||
3. **Spatial uniformity**: Whether the link pattern covers the room evenly.
|
||
|
||
### 2.2 Reference Deployment: 16 Nodes in 5m x 5m Room
|
||
|
||
Consider 16 ESP32 nodes placed at 1m spacing around the perimeter of a
|
||
5m x 5m room (4 per wall, including corners shared). This gives:
|
||
|
||
```
|
||
L = 16 * 15 / 2 = 120 links
|
||
```
|
||
|
||
The mean link length is approximately 3.5m (averaging across-room diagonal
|
||
links, adjacent-wall links, and same-wall links).
|
||
|
||
**Angular diversity**: 16 perimeter nodes produce links spanning angles
|
||
from 0 to 180 degrees. With 4 nodes per wall, adjacent same-wall links
|
||
are parallel and spaced 1m apart. Cross-room links provide diverse angles.
|
||
The minimum angular step between distinct link orientations is
|
||
approximately:
|
||
|
||
```
|
||
delta_theta ≈ atan(1m / 5m) ≈ 11.3 degrees
|
||
```
|
||
|
||
This gives roughly 16 distinct angular bins over 180 degrees.
|
||
|
||
### 2.3 Spatial Resolution from Link Density
|
||
|
||
The spatial resolution of a link-based sensing system is bounded by the
|
||
Nyquist-like criterion for the spatial sampling density. For parallel
|
||
links separated by distance `s`, the minimum resolvable feature
|
||
perpendicular to those links is:
|
||
|
||
```
|
||
delta_perp = s / 2 (Nyquist limit)
|
||
delta_perp_practical ≈ s (without super-resolution)
|
||
```
|
||
|
||
For 16 nodes at 1m spacing, the minimum separation between adjacent
|
||
parallel links is 1m. Combined with the Fresnel zone width, the
|
||
effective resolution in any single direction is:
|
||
|
||
```
|
||
delta_eff = max(r_F, s) ≈ max(0.35m, 1.0m) = 1.0m (single direction)
|
||
```
|
||
|
||
However, resolution improves dramatically when combining multiple link
|
||
orientations. With K angular bins, each providing resolution `delta_eff`
|
||
along its perpendicular axis, the 2D resolution cell is approximately:
|
||
|
||
```
|
||
delta_2D ≈ delta_eff / sqrt(K_eff)
|
||
```
|
||
|
||
where `K_eff` is the effective number of independent angular measurements
|
||
contributing at a given point. For the center of the room with good
|
||
angular coverage:
|
||
|
||
```
|
||
K_eff ≈ 8-12 (center of room)
|
||
K_eff ≈ 3-5 (near walls)
|
||
delta_2D_center ≈ 1.0m / sqrt(10) ≈ 0.32m ≈ 30cm
|
||
delta_2D_wall ≈ 1.0m / sqrt(4) ≈ 0.50m ≈ 50cm
|
||
```
|
||
|
||
This gives the 30-60cm resolution range for 16 nodes at 1m spacing in
|
||
a 5m x 5m room.
|
||
|
||
### 2.4 Resolution Map Computation
|
||
|
||
The resolution varies across the room. Define the local resolution at
|
||
point `p` as:
|
||
|
||
```
|
||
R(p) = 1 / sqrt(sum_i (w_i(p) * cos^2(theta_i(p)))^2 +
|
||
sum_i (w_i(p) * sin^2(theta_i(p)))^2)
|
||
```
|
||
|
||
where the sum is over all links `i`, `theta_i(p)` is the angle of link
|
||
`i` at point `p`, and `w_i(p)` is the link's sensitivity weight at `p`
|
||
(from the Fresnel zone model in Section 1.4). This can be computed as
|
||
the inverse square root of the trace of the local Fisher Information
|
||
Matrix (see Section 3).
|
||
|
||
### 2.5 Scaling with Node Count
|
||
|
||
| Nodes | Links | Mean Spacing | Center Res | Wall Res | Angular Bins |
|
||
|-------|-------|-------------|------------|----------|-------------|
|
||
| 8 | 28 | 1.67m | 55-70cm | 80-120cm | 8 |
|
||
| 12 | 66 | 1.25m | 40-55cm | 60-80cm | 12 |
|
||
| 16 | 120 | 1.00m | 30-40cm | 50-60cm | 16 |
|
||
| 20 | 190 | 0.80m | 25-35cm | 40-55cm | 20 |
|
||
| 24 | 276 | 0.67m | 20-30cm | 35-50cm | 24 |
|
||
| 32 | 496 | 0.50m | 15-25cm | 25-40cm | 32 |
|
||
|
||
Resolution improves sublinearly with node count. The dominant scaling is
|
||
approximately:
|
||
|
||
```
|
||
delta ∝ 1 / sqrt(N)
|
||
```
|
||
|
||
This holds because both the number of angular bins and the link density
|
||
scale linearly with N, and the 2D resolution benefits from both.
|
||
|
||
---
|
||
|
||
## 3. Cramer-Rao Lower Bounds
|
||
|
||
### 3.1 Information-Theoretic Resolution Limits
|
||
|
||
The Cramer-Rao Lower Bound (CRLB) provides the fundamental limit on the
|
||
variance of any unbiased estimator. For spatial localization from CSI
|
||
measurements, the CRLB gives the minimum achievable localization error
|
||
regardless of the algorithm used.
|
||
|
||
For a target at position `p = (x, y)` observed by a set of CSI links,
|
||
the Fisher Information Matrix (FIM) is:
|
||
|
||
```
|
||
F(p) = sum_i (1/sigma_i^2) * nabla_p(h_i(p)) * nabla_p(h_i(p))^T
|
||
```
|
||
|
||
where:
|
||
- `h_i(p)` is the expected CSI perturbation on link `i` due to a target
|
||
at position `p`
|
||
- `sigma_i` is the noise standard deviation on link `i`
|
||
- `nabla_p` is the gradient with respect to position
|
||
|
||
The CRLB on position estimation is:
|
||
|
||
```
|
||
Cov(p_hat) >= F(p)^{-1}
|
||
```
|
||
|
||
The spatial resolution is then bounded by:
|
||
|
||
```
|
||
delta_CRLB = sqrt(trace(F(p)^{-1}))
|
||
```
|
||
|
||
### 3.2 CSI Perturbation Model
|
||
|
||
For the Fresnel zone model, the CSI perturbation on link `i` due to a
|
||
target at position `p` is:
|
||
|
||
```
|
||
h_i(p) = A_i * exp(-pi * (rho_i(p) / r_F_i(p))^2)
|
||
```
|
||
|
||
where `A_i` is the maximum perturbation amplitude (related to target
|
||
cross-section and link geometry), and `rho_i(p)` is the perpendicular
|
||
distance from `p` to link `i`.
|
||
|
||
The gradient of `h_i` with respect to position determines how informative
|
||
each link is for localization:
|
||
|
||
```
|
||
nabla_p(h_i) = -2 * pi * h_i(p) * rho_i(p) / r_F_i(p)^2 * nabla_p(rho_i)
|
||
```
|
||
|
||
Links where the target is near the Fresnel zone boundary (`rho ≈ r_F`)
|
||
provide maximum localization information. Links where the target is at
|
||
the center (`rho = 0`) or far outside (`rho >> r_F`) provide minimal
|
||
position information (the gradient is near zero in both cases).
|
||
|
||
### 3.3 Fisher Information Matrix Structure
|
||
|
||
The FIM at position `p` decomposes into contributions from each link:
|
||
|
||
```
|
||
F(p) = sum_i F_i(p)
|
||
```
|
||
|
||
where each link's contribution is a rank-1 matrix oriented perpendicular
|
||
to that link:
|
||
|
||
```
|
||
F_i(p) = (1/sigma_i^2) * g_i(p)^2 * n_i * n_i^T
|
||
```
|
||
|
||
Here `n_i` is the unit normal to link `i` at point `p` and `g_i(p)` is
|
||
the scalar gradient magnitude. The FIM is well-conditioned (invertible)
|
||
only when multiple links with different orientations contribute at `p`.
|
||
This is precisely the angular diversity requirement from Section 2.
|
||
|
||
### 3.4 CRLB for Reference Deployment
|
||
|
||
For the 16-node 5m x 5m deployment, numerical evaluation of the FIM gives:
|
||
|
||
**Center of room** (x=2.5m, y=2.5m):
|
||
- Links contributing significantly: ~40 (of 120 total)
|
||
- FIM eigenvalues: lambda_1 ≈ 85, lambda_2 ≈ 62 (arbitrary units)
|
||
- CRLB: delta_x ≈ 11cm, delta_y ≈ 12cm
|
||
- Combined: delta_2D ≈ 16cm (1-sigma)
|
||
|
||
**Near wall** (x=0.5m, y=2.5m):
|
||
- Links contributing significantly: ~15
|
||
- FIM eigenvalues: lambda_1 ≈ 50, lambda_2 ≈ 12
|
||
- CRLB: delta_x ≈ 14cm, delta_y ≈ 29cm
|
||
- Combined: delta_2D ≈ 32cm (1-sigma)
|
||
|
||
**Corner** (x=0.5m, y=0.5m):
|
||
- Links contributing significantly: ~8
|
||
- FIM eigenvalues: lambda_1 ≈ 25, lambda_2 ≈ 5
|
||
- CRLB: delta_x ≈ 20cm, delta_y ≈ 45cm
|
||
- Combined: delta_2D ≈ 49cm (1-sigma)
|
||
|
||
These are theoretical lower bounds. Practical algorithms achieve 2-5x
|
||
the CRLB depending on model accuracy and calibration quality.
|
||
|
||
### 3.5 SNR Dependence
|
||
|
||
The CRLB scales inversely with measurement SNR:
|
||
|
||
```
|
||
delta_CRLB ∝ 1 / sqrt(SNR)
|
||
```
|
||
|
||
For ESP32 CSI measurements, typical per-subcarrier SNR ranges from 15 dB
|
||
(poor conditions, high interference) to 35 dB (clean environment, short
|
||
links). The resolution improvement from 15 dB to 35 dB SNR is:
|
||
|
||
```
|
||
delta(35dB) / delta(15dB) = sqrt(10^(15/10) / 10^(35/10))
|
||
= sqrt(31.6 / 3162)
|
||
= 0.1
|
||
```
|
||
|
||
A 20 dB SNR improvement yields 10x better CRLB. In practice, averaging
|
||
over M subcarriers and T time snapshots gives effective SNR:
|
||
|
||
```
|
||
SNR_eff = SNR_single * M * T
|
||
```
|
||
|
||
With M=52 subcarriers (20 MHz 802.11n) and T=10 snapshots (100ms at
|
||
100 Hz), `SNR_eff` is 27 dB above single-subcarrier SNR.
|
||
|
||
### 3.6 Multi-Target CRLB
|
||
|
||
When multiple targets are present simultaneously, the FIM becomes a
|
||
larger matrix incorporating all target positions. Cross-terms appear
|
||
when two targets affect the same links:
|
||
|
||
```
|
||
F_cross(p1, p2) = sum_i (1/sigma_i^2) * nabla_{p1}(h_i) * nabla_{p2}(h_i)^T
|
||
```
|
||
|
||
The CRLB for each target increases (worse resolution) when targets are
|
||
close together and share many common links. Two targets separated by
|
||
less than `r_F` on a link are fundamentally unresolvable on that link.
|
||
The minimum resolvable target separation depends on the graph topology:
|
||
|
||
```
|
||
d_min_separation ≈ max(r_F) for links in the cut set
|
||
```
|
||
|
||
For the reference deployment, `d_min_separation ≈ 40-60cm` at 2.4 GHz
|
||
and `25-35cm` at 5 GHz.
|
||
|
||
---
|
||
|
||
## 4. Graph Cut Resolution Theory
|
||
|
||
### 4.1 Mincut as Boundary Detection
|
||
|
||
In the graph formulation, each ESP32 node is a vertex and each TX-RX
|
||
link is an edge with weight `w_ij` derived from CSI coherence. The
|
||
minimum cut of this weighted graph finds the partition `(S, T)` that
|
||
minimizes:
|
||
|
||
```
|
||
C(S, T) = sum_{(i,j) : i in S, j in T} w_ij
|
||
```
|
||
|
||
When a person or object bisects the sensing region, links crossing the
|
||
boundary experience coherence drops, reducing their weights. The mincut
|
||
naturally identifies this boundary because it finds the cheapest way to
|
||
separate the graph -- and disrupted links are cheap.
|
||
|
||
### 4.2 Boundary Localization from Cut Edges
|
||
|
||
The spatial location of the detected boundary is determined by the
|
||
geometry of the cut edges. Each cut edge corresponds to a link whose
|
||
Fresnel zone is perturbed. The boundary must intersect each cut link's
|
||
Fresnel zone. The set of possible boundary positions is:
|
||
|
||
```
|
||
B = intersection_{(i,j) in cut} F_ij
|
||
```
|
||
|
||
where `F_ij` is the Fresnel ellipsoid of link `(i, j)`. The width of
|
||
this intersection region determines the spatial precision of boundary
|
||
localization.
|
||
|
||
### 4.3 Resolution as a Function of Graph Density
|
||
|
||
For a graph with N nodes and L links, the number of edges in a typical
|
||
mincut is:
|
||
|
||
```
|
||
|cut| ≈ sqrt(L) for random geometric graphs
|
||
|cut| ≈ O(sqrt(N)) for perimeter-placed nodes
|
||
```
|
||
|
||
For the 16-node deployment with L=120, typical cuts contain 8-15 edges.
|
||
Each cut edge constrains the boundary to within its Fresnel zone width
|
||
(`~30-40cm`). The intersection of K cut edges constrains the boundary to:
|
||
|
||
```
|
||
delta_boundary ≈ r_F / sqrt(K_independent)
|
||
```
|
||
|
||
where `K_independent` is the number of independent angular constraints
|
||
(cut edges with sufficiently different orientations). For K=10 cut edges
|
||
with ~6 independent orientations:
|
||
|
||
```
|
||
delta_boundary ≈ 35cm / sqrt(6) ≈ 14cm
|
||
```
|
||
|
||
This matches the CRLB analysis from Section 3.
|
||
|
||
### 4.4 Graph Density and Resolution Bounds
|
||
|
||
**Theorem (Resolution-Density Bound)**: For a planar sensing graph with
|
||
N nodes at mean spacing `s`, the minimum detectable feature size at the
|
||
graph center is bounded by:
|
||
|
||
```
|
||
delta_min >= max(r_F_min, s / sqrt(pi * (N-1)))
|
||
```
|
||
|
||
where `r_F_min` is the minimum Fresnel radius across all cut links. The
|
||
first term is the physics limit; the second is the combinatorial limit.
|
||
|
||
**Proof sketch**: The number of distinct link orientations passing near
|
||
any interior point is at most `pi * (N-1)` (since each of N-1 other
|
||
nodes subtends a unique angle). The angular resolution is therefore
|
||
`pi / (pi * (N-1)) = 1/(N-1)` radians. Combining with the perpendicular
|
||
resolution from link spacing gives the stated bound.
|
||
|
||
### 4.5 Normalized Cut and Soft Boundaries
|
||
|
||
The standard mincut produces a binary partition. For continuous boundary
|
||
localization, the normalized cut (Ncut) is preferred:
|
||
|
||
```
|
||
Ncut(S, T) = C(S, T) / vol(S) + C(S, T) / vol(T)
|
||
```
|
||
|
||
where `vol(S) = sum_{i in S} deg(i)`. The Ncut solution via the
|
||
second-smallest eigenvector of the graph Laplacian provides a continuous
|
||
embedding of vertex positions. The gradient of this eigenvector (the
|
||
Fiedler vector) identifies boundary locations with sub-node resolution.
|
||
|
||
The Fiedler vector `v_2` assigns each node a scalar value. The boundary
|
||
is at the zero-crossing of `v_2`. For perimeter-placed nodes, the
|
||
zero-crossing can be interpolated between nodes, achieving resolution
|
||
finer than node spacing:
|
||
|
||
```
|
||
delta_fiedler ≈ s * |v_2(i)| / |v_2(i) - v_2(j)|
|
||
```
|
||
|
||
where `i` and `j` are adjacent nodes on opposite sides of the boundary.
|
||
With 16 nodes, typical interpolation achieves 2-4x improvement over
|
||
raw node spacing, yielding boundary localization of 25-50cm.
|
||
|
||
### 4.6 Multi-Way Cuts for Multiple Targets
|
||
|
||
When K targets are present, a K+1 way cut partitions the graph into
|
||
regions separated by each target. The minimum K-way cut problem is
|
||
NP-hard in general but can be approximated via recursive 2-way cuts
|
||
or spectral methods using the first K eigenvectors of the graph
|
||
Laplacian.
|
||
|
||
Resolution degrades with K because:
|
||
1. Each cut has fewer edges (the budget is shared).
|
||
2. Adjacent cuts can interfere when targets are close.
|
||
3. The effective angular diversity per cut decreases.
|
||
|
||
Empirically, for K targets the resolution per target scales as:
|
||
|
||
```
|
||
delta_K ≈ delta_1 * sqrt(K)
|
||
```
|
||
|
||
For the 16-node deployment:
|
||
- 1 person: ~30cm resolution (center)
|
||
- 2 people: ~42cm resolution
|
||
- 3 people: ~52cm resolution
|
||
- 4 people: ~60cm resolution
|
||
|
||
Beyond 4-5 people in a 5m x 5m room, the mincut approach becomes
|
||
unreliable as cuts merge and the graph lacks sufficient edges to
|
||
separate all targets.
|
||
|
||
### 4.7 Weighted Graph Construction
|
||
|
||
The resolution analysis assumes edge weights accurately reflect
|
||
perturbation. In `ruvector-mincut`, edge weights are computed from
|
||
CSI coherence using `DynamicPersonMatcher` in `metrics.rs`. The
|
||
weight function is:
|
||
|
||
```
|
||
w_ij = C_ij * alpha + (1 - alpha) * C_ij_baseline
|
||
```
|
||
|
||
where `C_ij` is the current coherence, `C_ij_baseline` is the
|
||
unperturbed reference, and `alpha` controls temporal smoothing.
|
||
The weight contrast ratio:
|
||
|
||
```
|
||
CR = w_unperturbed / w_perturbed
|
||
```
|
||
|
||
directly affects resolution. Higher CR means sharper boundaries.
|
||
Typical CR values:
|
||
- Person fully blocking link: CR = 5-15
|
||
- Person at edge of Fresnel zone: CR = 1.5-3
|
||
- Hand gesture: CR = 1.1-1.5
|
||
|
||
Minimum detectable CR is approximately 1.2-1.5, below which noise
|
||
fluctuations mask the perturbation.
|
||
|
||
---
|
||
|
||
## 5. Multi-Frequency Enhancement
|
||
|
||
### 5.1 Wavelength Diversity Principle
|
||
|
||
Using both 2.4 GHz and 5 GHz bands simultaneously provides independent
|
||
spatial measurements. Since the Fresnel zones have different sizes at
|
||
different frequencies, combining them breaks the ambiguity inherent in
|
||
single-frequency measurements.
|
||
|
||
Key wavelength parameters:
|
||
|
||
| Band | lambda | r_F (3m link) | Subcarriers (20 MHz) | Bandwidth |
|
||
|----------|---------|---------------|---------------------|-----------|
|
||
| 2.4 GHz | 12.5 cm | 30.6 cm | 52 (802.11n) | 20 MHz |
|
||
| 5.0 GHz | 6.0 cm | 21.2 cm | 52 (802.11n) | 20/40 MHz |
|
||
| 5.8 GHz | 5.17 cm | 19.7 cm | 52 (802.11ac) | 20/40/80 MHz |
|
||
|
||
### 5.2 Resolution Improvement from Dual-Band
|
||
|
||
When both frequencies measure the same physical scene, the combined FIM
|
||
is the sum of individual FIMs:
|
||
|
||
```
|
||
F_combined(p) = F_2.4(p) + F_5.0(p)
|
||
```
|
||
|
||
Since the Fresnel zones differ, the FIM contributions have different
|
||
spatial profiles. The 5 GHz band provides tighter spatial localization
|
||
(smaller Fresnel zone) while the 2.4 GHz band provides better wall
|
||
penetration and longer detection range.
|
||
|
||
The combined CRLB is:
|
||
|
||
```
|
||
delta_combined <= min(delta_2.4, delta_5.0)
|
||
```
|
||
|
||
In practice the improvement is better than the minimum because the
|
||
frequency-dependent perturbation patterns are partially independent,
|
||
especially for targets near Fresnel zone boundaries where the two
|
||
frequencies respond differently.
|
||
|
||
Empirical improvement from dual-band:
|
||
- Center of room: 25-35% resolution improvement
|
||
- Near walls: 15-25% improvement
|
||
- Through-wall: 5-15% improvement (5 GHz attenuated)
|
||
|
||
### 5.3 Subcarrier Diversity within a Band
|
||
|
||
Within each 20 MHz band, the 52 OFDM subcarriers span frequencies
|
||
separated by 312.5 kHz. The wavelength variation across the band is:
|
||
|
||
```
|
||
delta_lambda = lambda^2 * delta_f / c
|
||
= (0.125)^2 * 20e6 / 3e8
|
||
= 1.04e-4 m ≈ 0.1 mm
|
||
```
|
||
|
||
This is negligible for Fresnel zone variation. However, subcarrier
|
||
diversity is valuable for:
|
||
|
||
1. **Multipath resolution**: Different subcarriers experience different
|
||
multipath fading, providing independent measurements of the same
|
||
physical perturbation.
|
||
2. **SNR averaging**: Averaging across M subcarriers improves effective
|
||
SNR by a factor of `sqrt(M)`.
|
||
3. **Frequency-domain features**: The CSI amplitude/phase pattern across
|
||
subcarriers encodes information about target distance from the
|
||
scattering point.
|
||
|
||
The `subcarrier_selection.rs` module in `ruvector-mincut` implements
|
||
sparse interpolation from 114 subcarriers to 56, selecting the most
|
||
informative subset for resolution-critical applications.
|
||
|
||
### 5.4 Bandwidth and Range Resolution
|
||
|
||
The range resolution (ability to resolve targets at different distances
|
||
from a link) is determined by the total bandwidth:
|
||
|
||
```
|
||
delta_range = c / (2 * B)
|
||
```
|
||
|
||
For 20 MHz bandwidth: `delta_range = 7.5m` (essentially no range
|
||
resolution for indoor sensing).
|
||
|
||
For 40 MHz (802.11n 40 MHz mode): `delta_range = 3.75m` (marginal).
|
||
|
||
For 80 MHz (802.11ac): `delta_range = 1.875m` (useful for room-scale).
|
||
|
||
Range resolution is orthogonal to the angular resolution discussed
|
||
above. Combined, they define a 2D resolution cell. The ESP32 supports
|
||
up to 40 MHz bandwidth on the 5 GHz band, giving modest range
|
||
resolution that supplements the graph-based angular resolution.
|
||
|
||
### 5.5 Coherent vs Incoherent Combination
|
||
|
||
**Incoherent combination** (combining power/amplitude measurements from
|
||
both bands independently) improves resolution by approximately `sqrt(2)`.
|
||
|
||
**Coherent combination** (using phase relationships between bands)
|
||
requires shared clock references and provides:
|
||
|
||
```
|
||
delta_coherent = c / (2 * (f_high - f_low))
|
||
= 3e8 / (2 * (5e9 - 2.4e9))
|
||
= 5.77 cm
|
||
```
|
||
|
||
This ~6cm resolution from coherent dual-band processing approaches
|
||
the fundamental diffraction limit. However, achieving coherent
|
||
combination with ESP32 hardware is challenging because:
|
||
|
||
1. The 2.4 GHz and 5 GHz radios use separate oscillators.
|
||
2. Phase synchronization between bands requires calibration.
|
||
3. Multipath makes phase-based techniques fragile in practice.
|
||
|
||
The `phase_align.rs` module in RuvSense implements iterative LO phase
|
||
offset estimation that partially addresses challenge (2), but full
|
||
coherent dual-band operation remains a research target.
|
||
|
||
---
|
||
|
||
## 6. Tomographic Resolution
|
||
|
||
### 6.1 Connection to RF Tomography
|
||
|
||
RF tomographic imaging reconstructs the spatial distribution of RF
|
||
attenuation from link measurements. Each TX-RX link measures the
|
||
line integral of attenuation along its path:
|
||
|
||
```
|
||
y_i = integral_path_i alpha(x, y) ds + n_i
|
||
```
|
||
|
||
where `alpha(x, y)` is the spatial attenuation field and `n_i` is
|
||
measurement noise. This is mathematically identical to the projection
|
||
model in X-ray CT, and the same reconstruction algorithms apply.
|
||
|
||
### 6.2 Voxel Grid Resolution
|
||
|
||
The sensing region is discretized into a grid of P voxels (pixels in
|
||
2D). The forward model becomes:
|
||
|
||
```
|
||
y = W * alpha + n
|
||
```
|
||
|
||
where `W` is the `L x P` weight matrix with `W_{ip}` being the
|
||
contribution of voxel `p` to link `i` (computed from the Fresnel zone
|
||
model). The inverse problem recovers `alpha` from `y`.
|
||
|
||
The achievable voxel resolution depends on the conditioning of `W`:
|
||
|
||
```
|
||
delta_voxel >= lambda_min(W^T W)^{-1/2} * sigma_n
|
||
```
|
||
|
||
where `lambda_min` is the smallest eigenvalue of the normal matrix. For
|
||
the weight matrix to be well-conditioned, we need:
|
||
|
||
```
|
||
L >> P (more links than voxels)
|
||
```
|
||
|
||
For the 16-node deployment with L=120 links:
|
||
- 10cm grid (50x50 = 2500 voxels): severely underdetermined, requires
|
||
strong regularization. Effective resolution ~50cm.
|
||
- 25cm grid (20x20 = 400 voxels): moderately overdetermined. Effective
|
||
resolution ~30cm.
|
||
- 50cm grid (10x10 = 100 voxels): well overdetermined. Effective
|
||
resolution limited by Fresnel zone, ~35-40cm.
|
||
|
||
The sweet spot is when `P ≈ L/3` to `L/2`, giving:
|
||
```
|
||
P_optimal ≈ 40-60 voxels for 120 links
|
||
delta_voxel_optimal ≈ 5m / sqrt(50) ≈ 70cm grid spacing
|
||
```
|
||
|
||
Finer grids require regularization (L1 or TV) which effectively
|
||
smooths the reconstruction.
|
||
|
||
### 6.3 ISTA Reconstruction and Resolution
|
||
|
||
The `tomography.rs` module in RuvSense implements the Iterative
|
||
Shrinkage-Thresholding Algorithm (ISTA) for L1-regularized
|
||
reconstruction:
|
||
|
||
```
|
||
alpha^{k+1} = S_tau(alpha^k + mu * W^T * (y - W * alpha^k))
|
||
```
|
||
|
||
where `S_tau` is the soft-thresholding operator with parameter `tau`
|
||
controlling sparsity. The effective resolution of ISTA reconstruction
|
||
depends on `tau`:
|
||
|
||
- High `tau` (strong sparsity): few active voxels, good localization
|
||
of isolated targets, poor for extended boundaries.
|
||
- Low `tau` (weak sparsity): smoother reconstruction, better boundary
|
||
detection, worse point localization.
|
||
|
||
For the mincut application, moderate sparsity is appropriate because
|
||
person boundaries are spatially extended but sparse relative to the
|
||
full room volume.
|
||
|
||
### 6.4 Resolution Comparison: Tomography vs Mincut
|
||
|
||
| Aspect | Tomography | Mincut |
|
||
|--------|-----------|--------|
|
||
| Resolution model | Voxel grid | Graph partition |
|
||
| Output | Continuous attenuation map | Binary/categorical partition |
|
||
| Resolution limit | ~Fresnel zone | ~Fresnel zone / sqrt(K_cuts) |
|
||
| Computational cost | O(L * P * iterations) | O(N^3) for spectral, O(N * L) for flow |
|
||
| Multi-target | Natural (different voxels) | Requires K-way cut |
|
||
| Calibration | Needs baseline W matrix | Needs baseline weights |
|
||
| Dynamic range | Quantitative alpha values | Qualitative boundary detection |
|
||
| Real-time capability | Moderate (10-50ms for ISTA) | Good (1-5ms for flow-based) |
|
||
|
||
The tomographic approach and the mincut approach are complementary:
|
||
- Tomography provides a continuous attenuation map suitable for
|
||
counting and rough localization.
|
||
- Mincut provides sharp boundary detection suitable for tracking and
|
||
event detection.
|
||
- The `field_model.rs` module bridges the two via SVD-based eigenstructure
|
||
analysis of the room's RF field.
|
||
|
||
### 6.5 Super-Resolution Techniques
|
||
|
||
Standard tomographic resolution is limited by the Fresnel zone and
|
||
link density. Super-resolution techniques can exceed these limits by
|
||
exploiting prior information:
|
||
|
||
1. **Compressive sensing**: If the target scene is K-sparse in some
|
||
basis (wavelets, DCT), L1 recovery can achieve resolution beyond
|
||
the Nyquist limit. Required condition: `L >= C * K * log(P/K)`
|
||
where C is a constant ~2-4.
|
||
|
||
2. **Dictionary learning**: Train a sparse dictionary from calibration
|
||
data. Resolution improvement of 2-3x over standard tomography has
|
||
been demonstrated in WiFi sensing literature.
|
||
|
||
3. **Deep prior**: Neural network-based reconstruction can hallucinate
|
||
fine structure consistent with training data. Resolution claims of
|
||
5-10cm have been published but require careful validation (see
|
||
Section 7 on experimental design).
|
||
|
||
4. **Multi-frame fusion**: Combining T temporal snapshots while the
|
||
target moves improves resolution by up to `sqrt(T)` by sampling
|
||
different spatial positions. The `longitudinal.rs` module maintains
|
||
Welford statistics suitable for this purpose.
|
||
|
||
---
|
||
|
||
## 7. Experimental Validation
|
||
|
||
### 7.1 Resolution Measurement Methodology
|
||
|
||
Spatial resolution must be measured experimentally, not just predicted
|
||
theoretically. The following experimental protocols establish ground
|
||
truth resolution for a given deployment.
|
||
|
||
### 7.2 Point Target Resolution
|
||
|
||
**Protocol**: Place a metallic sphere (diameter << Fresnel zone, e.g.,
|
||
5cm aluminum ball on a non-metallic pole) at known grid positions.
|
||
Measure CSI perturbation at each position. Reconstruct position
|
||
estimates and compare to ground truth.
|
||
|
||
**Metrics**:
|
||
- **Localization RMSE**: `sqrt(mean((x_hat - x_true)^2 + (y_hat - y_true)^2))`
|
||
Target: <30cm at room center for 16-node deployment.
|
||
- **Bias**: systematic offset in any direction. Should be <10cm.
|
||
- **Precision (repeatability)**: std dev of repeated measurements at
|
||
same position. Should be <15cm.
|
||
|
||
**Grid spacing**: measure at 10cm intervals across the room to build
|
||
a full resolution map.
|
||
|
||
### 7.3 Two-Point Resolution (Rayleigh Criterion)
|
||
|
||
**Protocol**: Place two identical targets at varying separation
|
||
distances. Determine the minimum separation at which both targets
|
||
are reliably detected as distinct.
|
||
|
||
**Procedure**:
|
||
1. Start with targets 2m apart. Verify both detected.
|
||
2. Reduce separation by 10cm increments.
|
||
3. At each separation, repeat 100 trials with slight position jitter.
|
||
4. Record the detection rate (both targets resolved) vs separation.
|
||
5. The resolution limit is the separation where detection rate drops
|
||
below 50% (analogous to Rayleigh criterion in optics).
|
||
|
||
**Expected results** (16 nodes, 5m x 5m room):
|
||
- 2.4 GHz only: two-point resolution ~50-70cm
|
||
- 5 GHz only: two-point resolution ~35-50cm
|
||
- Dual-band: two-point resolution ~30-40cm
|
||
|
||
### 7.4 Boundary Localization Accuracy
|
||
|
||
**Protocol**: Use a moving person as the target. Ground truth from:
|
||
- Overhead camera with skeleton tracking (OpenPose/MediaPipe)
|
||
- Lidar 2D scanner at torso height (accurate to <2cm)
|
||
- Motion capture system (sub-cm accuracy, gold standard)
|
||
|
||
**Metrics for boundary localization**:
|
||
|
||
**Hausdorff distance**: the maximum of the minimum distances between
|
||
the estimated boundary and ground truth boundary:
|
||
|
||
```
|
||
d_H(B_est, B_true) = max(
|
||
max_{p in B_est} min_{q in B_true} ||p - q||,
|
||
max_{q in B_true} min_{p in B_est} ||p - q||
|
||
)
|
||
```
|
||
|
||
Target: d_H < 50cm for 16-node deployment.
|
||
|
||
**Mean boundary distance**: average of minimum distances from each
|
||
estimated boundary point to the nearest ground truth boundary point:
|
||
|
||
```
|
||
d_mean = (1/|B_est|) * sum_{p in B_est} min_{q in B_true} ||p - q||
|
||
```
|
||
|
||
Target: d_mean < 25cm.
|
||
|
||
### 7.5 Area-Based Metrics
|
||
|
||
**Intersection over Union (IoU)**: For occupied-region detection:
|
||
|
||
```
|
||
IoU = |A_est ∩ A_true| / |A_est ∪ A_true|
|
||
```
|
||
|
||
where `A_est` is the estimated occupied region (from mincut partition)
|
||
and `A_true` is the ground truth occupied region.
|
||
|
||
Target IoU values:
|
||
- Single person standing: IoU > 0.5
|
||
- Single person walking: IoU > 0.4
|
||
- Two people: IoU > 0.3 per person
|
||
- Room occupancy (binary): IoU > 0.7
|
||
|
||
**F1-score for voxel classification**: discretize the room into voxels,
|
||
classify each as occupied/unoccupied:
|
||
|
||
```
|
||
Precision = TP / (TP + FP)
|
||
Recall = TP / (TP + FN)
|
||
F1 = 2 * Precision * Recall / (Precision + Recall)
|
||
```
|
||
|
||
Target: F1 > 0.6 at 25cm voxel resolution.
|
||
|
||
### 7.6 Dynamic Resolution
|
||
|
||
Static resolution may differ from dynamic resolution due to:
|
||
- Target motion during measurement (Doppler blur)
|
||
- Temporal averaging that smears moving targets
|
||
- Latency between measurement and reconstruction
|
||
|
||
**Protocol**: Move a target at known speeds (0.5, 1.0, 1.5, 2.0 m/s)
|
||
along a known trajectory. Compare reconstructed trajectory with ground
|
||
truth.
|
||
|
||
**Metrics**:
|
||
- **Trajectory RMSE**: perpendicular distance from estimated positions
|
||
to ground truth trajectory.
|
||
- **Velocity bias**: systematic under/overestimation of speed.
|
||
- **Update rate impact**: measure resolution vs CSI frame rate
|
||
(10, 50, 100, 200 Hz).
|
||
|
||
Expected dynamic resolution degradation at 1 m/s walking speed with
|
||
100 Hz CSI rate:
|
||
|
||
```
|
||
delta_dynamic ≈ sqrt(delta_static^2 + (v / f_csi)^2)
|
||
= sqrt(0.30^2 + (1.0/100)^2)
|
||
= sqrt(0.09 + 0.0001)
|
||
≈ 0.30m (negligible degradation at 100 Hz)
|
||
```
|
||
|
||
At lower rates:
|
||
- 10 Hz: `sqrt(0.09 + 0.01) ≈ 0.316m` (~5% degradation)
|
||
- 5 Hz: `sqrt(0.09 + 0.04) ≈ 0.36m` (~20% degradation)
|
||
|
||
### 7.7 Environmental Factors
|
||
|
||
Resolution should be characterized across environmental conditions:
|
||
|
||
| Factor | Impact on Resolution | Mitigation |
|
||
|--------|---------------------|------------|
|
||
| Furniture | Multipath changes baseline, +10-20% | Recalibrate baseline |
|
||
| Open doors | Changes room geometry, +5-15% | Adaptive graph weights |
|
||
| HVAC airflow | Adds coherence noise, +5-10% | Temporal averaging |
|
||
| WiFi interference | Reduces SNR, +10-30% | Channel selection |
|
||
| Number of people | Degrades per-person, sqrt(K) factor | Multi-way cut |
|
||
| Temperature | Drifts baseline slowly, +2-5% | Longitudinal recalibration |
|
||
| Humidity | Affects propagation, <5% | Negligible |
|
||
|
||
### 7.8 Statistical Significance
|
||
|
||
All resolution claims must include confidence intervals. For M
|
||
independent measurements at each test point:
|
||
|
||
```
|
||
CI_95 = RMSE ± 1.96 * RMSE / sqrt(2*M)
|
||
```
|
||
|
||
Minimum M=100 measurements per test point for <10% confidence interval
|
||
width. For full room resolution maps, a 10x10 grid with 100 measurements
|
||
each requires 10,000 measurement cycles (~100 seconds at 100 Hz).
|
||
|
||
---
|
||
|
||
## 8. Resolution Scaling Laws
|
||
|
||
### 8.1 Fundamental Scaling Relations
|
||
|
||
The spatial resolution of RF topological sensing depends on several
|
||
system parameters. The following scaling laws relate resolution to
|
||
controllable variables.
|
||
|
||
### 8.2 Node Count Scaling
|
||
|
||
For N nodes placed around a convex perimeter:
|
||
|
||
```
|
||
delta ∝ P / N (linear in perimeter / nodes)
|
||
delta_2D ∝ sqrt(A) / sqrt(N * (N-1)) (2D area resolution)
|
||
```
|
||
|
||
where P is room perimeter and A is room area. The second relation
|
||
accounts for both the angular diversity (`∝ N`) and the link density
|
||
(`∝ N^2`). Simplifying:
|
||
|
||
```
|
||
delta_2D ∝ 1 / N (dominant scaling for N >> 1)
|
||
```
|
||
|
||
Numerical validation:
|
||
|
||
| N | Predicted delta (relative) | Measured delta (simulation) |
|
||
|----|---------------------------|---------------------------|
|
||
| 8 | 1.00 | 1.00 (reference) |
|
||
| 12 | 0.67 | 0.72 |
|
||
| 16 | 0.50 | 0.55 |
|
||
| 24 | 0.33 | 0.40 |
|
||
| 32 | 0.25 | 0.33 |
|
||
|
||
The measured scaling is closer to `N^{-0.75}` than `N^{-1}` due to
|
||
diminishing returns from nearby links that are highly correlated.
|
||
|
||
### 8.3 Room Size Scaling
|
||
|
||
For a fixed number of nodes in a room of side length D:
|
||
|
||
```
|
||
delta ∝ D / sqrt(N)
|
||
```
|
||
|
||
The resolution degrades linearly with room size because:
|
||
1. Node spacing increases proportionally with D.
|
||
2. Fresnel zones grow with link length (which grows with D).
|
||
3. SNR decreases with path length.
|
||
|
||
Practical limits:
|
||
- 3m x 3m room with 12 nodes: delta ≈ 20-30cm (excellent)
|
||
- 5m x 5m room with 16 nodes: delta ≈ 30-50cm (good)
|
||
- 8m x 8m room with 16 nodes: delta ≈ 60-100cm (marginal)
|
||
- 10m x 10m room with 20 nodes: delta ≈ 70-120cm (poor for tracking)
|
||
|
||
For rooms larger than ~6m, interior nodes are necessary. A single
|
||
interior node effectively divides the room into sub-regions, each
|
||
with better resolution:
|
||
|
||
```
|
||
delta_with_interior ≈ delta_perimeter_only * sqrt(1 - A_interior / A_room)
|
||
```
|
||
|
||
### 8.4 Bandwidth Scaling
|
||
|
||
Resolution in the range dimension scales with bandwidth:
|
||
|
||
```
|
||
delta_range = c / (2 * B_eff)
|
||
```
|
||
|
||
where `B_eff` is the effective bandwidth. For angular (cross-range)
|
||
resolution, bandwidth has an indirect effect through subcarrier
|
||
diversity:
|
||
|
||
```
|
||
delta_angle ∝ 1 / sqrt(M)
|
||
```
|
||
|
||
where M is the number of independent subcarriers (determined by
|
||
coherence bandwidth of the channel).
|
||
|
||
Combined resolution with bandwidth:
|
||
|
||
| Configuration | B_eff | delta_range | Cross-range benefit |
|
||
|--------------|-------|-------------|-------------------|
|
||
| 20 MHz single band | 20 MHz | 7.5m | Baseline (52 subcarriers) |
|
||
| 40 MHz single band | 40 MHz | 3.75m | 1.4x (104 subcarriers) |
|
||
| 80 MHz (802.11ac) | 80 MHz | 1.875m | 2.0x (256 subcarriers) |
|
||
| 20+20 MHz dual-band | ~2.6 GHz | 5.8cm | 1.4x (104 subcarriers) |
|
||
|
||
The dual-band coherent case achieves ~6cm range resolution leveraging
|
||
the 2.6 GHz frequency gap, though this requires phase-coherent
|
||
processing.
|
||
|
||
### 8.5 Measurement Time Scaling
|
||
|
||
Averaging T independent snapshots improves SNR and thus resolution:
|
||
|
||
```
|
||
delta ∝ 1 / T^{1/4} (for stationary targets)
|
||
```
|
||
|
||
The 1/4 exponent (rather than 1/2) arises because:
|
||
- SNR improves as T^{1/2} (standard averaging).
|
||
- Resolution scales as SNR^{1/2} (from CRLB).
|
||
- Combined: delta ∝ SNR^{-1/2} ∝ T^{-1/4}.
|
||
|
||
Practical implications:
|
||
|
||
| Averaging time | T (at 100 Hz) | Resolution improvement |
|
||
|---------------|---------------|----------------------|
|
||
| 10 ms | 1 | 1.0x (baseline) |
|
||
| 100 ms | 10 | 1.8x |
|
||
| 1 s | 100 | 3.2x |
|
||
| 10 s | 1000 | 5.6x |
|
||
|
||
Long averaging is only useful for stationary targets. For moving
|
||
targets, the optimal averaging window is:
|
||
|
||
```
|
||
T_opt = min(T_available, delta_static / v)
|
||
```
|
||
|
||
where `v` is target velocity. At v=1 m/s and delta_static=30cm,
|
||
T_opt = 300ms.
|
||
|
||
### 8.6 Combined Scaling Law
|
||
|
||
The comprehensive resolution scaling law is:
|
||
|
||
```
|
||
delta = C * (D / N) * (f_0 / f) * (SNR_0 / SNR)^{1/2} * (1 / sqrt(B / B_0))
|
||
```
|
||
|
||
where:
|
||
- C ≈ 2.5 (empirical constant for perimeter node placement)
|
||
- D = room dimension [m]
|
||
- N = node count
|
||
- f = center frequency [Hz], f_0 = 2.4 GHz reference
|
||
- SNR = signal-to-noise ratio, SNR_0 = 25 dB reference
|
||
- B = bandwidth [Hz], B_0 = 20 MHz reference
|
||
|
||
For the reference deployment (D=5m, N=16, f=2.4GHz, SNR=25dB, B=20MHz):
|
||
|
||
```
|
||
delta = 2.5 * (5/16) * 1.0 * 1.0 * 1.0 = 0.78m * correction_factors
|
||
```
|
||
|
||
With angular diversity correction (dividing by sqrt(K_eff) ≈ sqrt(10)):
|
||
|
||
```
|
||
delta_2D = 0.78 / sqrt(10) ≈ 0.25m ≈ 25cm
|
||
```
|
||
|
||
This aligns with the CRLB analysis and the 30cm practical target after
|
||
accounting for model imperfections.
|
||
|
||
### 8.7 Diminishing Returns Analysis
|
||
|
||
Resolution improvement has diminishing returns in all parameters:
|
||
|
||
| Parameter | Doubling from baseline | Resolution improvement |
|
||
|-----------|----------------------|----------------------|
|
||
| Node count (16 -> 32) | 2x | 1.5-1.7x |
|
||
| Bandwidth (20 -> 40 MHz) | 2x | 1.3-1.4x |
|
||
| SNR (25 -> 31 dB) | 2x (linear) | 1.3-1.4x |
|
||
| Frequency (2.4 -> 5 GHz) | 2.1x | 1.3-1.5x |
|
||
| Time averaging (100ms -> 1s) | 10x | 1.5-1.8x |
|
||
|
||
The most cost-effective improvements in order:
|
||
1. Add more nodes (biggest impact per dollar).
|
||
2. Use dual-band (marginal hardware cost for ESP32).
|
||
3. Increase CSI rate (software change only).
|
||
4. Use wider bandwidth channels (configuration change).
|
||
5. Improve SNR (antenna placement, shielding).
|
||
|
||
### 8.8 Information-Theoretic Capacity
|
||
|
||
The total spatial information capacity of the sensing system is bounded
|
||
by:
|
||
|
||
```
|
||
I_total = (1/2) * sum_{i=1}^{L} log2(1 + SNR_i) * M_i [bits/snapshot]
|
||
```
|
||
|
||
where the sum is over all L links, each with M_i subcarriers and
|
||
SNR_i. For the reference deployment:
|
||
|
||
```
|
||
I_total ≈ (1/2) * 120 * log2(1 + 316) * 52
|
||
≈ (1/2) * 120 * 8.3 * 52
|
||
≈ 25,900 bits/snapshot
|
||
```
|
||
|
||
At 100 Hz, this is 2.59 Mbit/s of spatial information. The number of
|
||
resolvable spatial cells is bounded by:
|
||
|
||
```
|
||
N_cells <= I_total / (bits per cell)
|
||
```
|
||
|
||
With ~8 bits per cell (256 quantization levels for attenuation):
|
||
|
||
```
|
||
N_cells <= 25,900 / 8 ≈ 3,237 cells
|
||
```
|
||
|
||
For a 5m x 5m room, this gives a maximum grid resolution of:
|
||
|
||
```
|
||
delta_info_limit = 5m / sqrt(3237) ≈ 8.8cm
|
||
```
|
||
|
||
This is the absolute theoretical limit for the given hardware
|
||
configuration. Practical algorithms achieve 3-10x this limit.
|
||
|
||
---
|
||
|
||
## 9. Integration with RuView Codebase
|
||
|
||
### 9.1 Resolution-Aware Modules
|
||
|
||
The spatial resolution analysis in this document maps to specific
|
||
modules in the RuView Rust codebase:
|
||
|
||
| Module | Resolution Role | Section |
|
||
|--------|----------------|---------|
|
||
| `signal/src/ruvsense/coherence.rs` | Edge weight computation (CR metric) | 4.7 |
|
||
| `signal/src/ruvsense/field_model.rs` | SVD eigenstructure for voxel grid | 6.1 |
|
||
| `signal/src/ruvsense/tomography.rs` | ISTA reconstruction, L1 solver | 6.3 |
|
||
| `signal/src/ruvsense/phase_align.rs` | Dual-band phase coherence | 5.5 |
|
||
| `signal/src/ruvsense/multistatic.rs` | Multi-link fusion weights | 3.3 |
|
||
| `ruvector/src/viewpoint/geometry.rs` | Cramer-Rao bounds, Fisher info | 3.1 |
|
||
| `ruvector/src/viewpoint/coherence.rs` | Phase phasor coherence gate | 4.7 |
|
||
| `ruvector-mincut` | Graph cut partitioning | 4.1 |
|
||
| `ruvector-solver` | Sparse interpolation (114->56) | 5.3 |
|
||
|
||
### 9.2 Proposed Resolution Estimation API
|
||
|
||
A runtime resolution estimator would allow the system to report
|
||
confidence bounds on its spatial estimates. The core interface:
|
||
|
||
```rust
|
||
/// Estimate spatial resolution at a given point in the room
|
||
pub struct ResolutionEstimate {
|
||
/// 1-sigma localization uncertainty in x [meters]
|
||
pub sigma_x: f32,
|
||
/// 1-sigma localization uncertainty in y [meters]
|
||
pub sigma_y: f32,
|
||
/// Orientation of the uncertainty ellipse [radians]
|
||
pub orientation: f32,
|
||
/// Number of contributing links
|
||
pub n_links: u16,
|
||
/// Effective angular diversity (independent orientations)
|
||
pub angular_diversity: f32,
|
||
/// Dominant resolution-limiting factor
|
||
pub limiting_factor: ResolutionLimit,
|
||
}
|
||
|
||
pub enum ResolutionLimit {
|
||
FresnelZone,
|
||
NodeSpacing,
|
||
SnrLimited,
|
||
AngularDiversity,
|
||
MultiTargetInterference,
|
||
}
|
||
|
||
/// Compute resolution map for the entire sensing region
|
||
pub fn compute_resolution_map(
|
||
node_positions: &[(f32, f32)],
|
||
link_weights: &[f32],
|
||
frequency_ghz: f32,
|
||
grid_spacing_m: f32,
|
||
) -> ResolutionMap {
|
||
// Build FIM at each grid point (Section 3)
|
||
// Invert to get CRLB
|
||
// Return as spatial map
|
||
todo!()
|
||
}
|
||
```
|
||
|
||
### 9.3 Resolution-Adaptive Processing
|
||
|
||
The system could adapt its processing based on local resolution:
|
||
|
||
1. **Coarse regions** (delta > 50cm): use binary mincut, report
|
||
zone-level occupancy only.
|
||
2. **Medium regions** (30-50cm): use spectral cut with Fiedler vector
|
||
interpolation, report approximate position.
|
||
3. **Fine regions** (delta < 30cm): use full tomographic reconstruction,
|
||
report position with uncertainty ellipse.
|
||
|
||
This adaptive approach allocates computation where it provides the
|
||
most benefit, aligning with the tiered processing model in ADR-026.
|
||
|
||
### 9.4 Resolution Metadata in Domain Events
|
||
|
||
The `MultistaticArray` aggregate root in `ruvector/src/viewpoint/fusion.rs`
|
||
emits domain events. Resolution metadata should be attached to these
|
||
events:
|
||
|
||
```rust
|
||
pub struct BoundaryDetectedEvent {
|
||
pub timestamp: Instant,
|
||
pub boundary_segments: Vec<BoundarySegment>,
|
||
pub resolution_estimate: ResolutionEstimate,
|
||
pub cut_weight: f32,
|
||
pub contributing_links: Vec<LinkId>,
|
||
}
|
||
```
|
||
|
||
This allows downstream consumers (pose tracker, intention detector,
|
||
cross-room tracker) to weight their inputs by spatial confidence.
|
||
|
||
---
|
||
|
||
## 10. References
|
||
|
||
### RF Tomography and WiFi Sensing
|
||
|
||
1. Wilson, J. and Patwari, N. (2010). "Radio Tomographic Imaging with
|
||
Wireless Networks." IEEE Trans. Mobile Computing, 9(5), 621-632.
|
||
|
||
2. Wilson, J. and Patwari, N. (2011). "See-Through Walls: Motion Tracking
|
||
Using Variance-Based Radio Tomography Networks." IEEE Trans. Mobile
|
||
Computing, 10(5), 612-621.
|
||
|
||
3. Kaltiokallio, O., Bocca, M., and Patwari, N. (2012). "Follow @grandma:
|
||
Long-Term Device-Free Localization for Residential Monitoring." IEEE
|
||
LCN Workshop on Wireless Sensor Networks.
|
||
|
||
4. Zhao, Y. and Patwari, N. (2013). "Noise Reduction for Variance-Based
|
||
Device-Free Localization and Tracking." IEEE SECON.
|
||
|
||
### Fresnel Zone Models
|
||
|
||
5. Youssef, M. and Agrawala, A. (2007). "Challenges: Device-free passive
|
||
localization for wireless environments." ACM MobiCom.
|
||
|
||
6. Zhang, D. et al. (2007). "RF-based Accurate Indoor Localization."
|
||
IEEE PerCom.
|
||
|
||
### Cramer-Rao Bounds for Localization
|
||
|
||
7. Patwari, N. et al. (2005). "Locating the Nodes: Cooperative
|
||
Localization in Wireless Sensor Networks." IEEE Signal Processing
|
||
Magazine, 22(4), 54-69.
|
||
|
||
8. Shen, Y. and Win, M. Z. (2010). "Fundamental Limits of Wideband
|
||
Localization — Part I: A General Framework." IEEE Trans. Information
|
||
Theory, 56(10), 4956-4980.
|
||
|
||
### Graph Cuts and Spectral Methods
|
||
|
||
9. Stoer, M. and Wagner, F. (1997). "A Simple Min-Cut Algorithm." JACM,
|
||
44(4), 585-591.
|
||
|
||
10. Shi, J. and Malik, J. (2000). "Normalized Cuts and Image
|
||
Segmentation." IEEE Trans. PAMI, 22(8), 888-905.
|
||
|
||
11. Von Luxburg, U. (2007). "A Tutorial on Spectral Clustering."
|
||
Statistics and Computing, 17(4), 395-416.
|
||
|
||
### WiFi CSI Sensing
|
||
|
||
12. Halperin, D. et al. (2011). "Tool Release: Gathering 802.11n Traces
|
||
with Channel State Information." ACM SIGCOMM CCR.
|
||
|
||
13. Ma, Y. et al. (2019). "WiFi Sensing with Channel State Information:
|
||
A Survey." ACM Computing Surveys, 52(3).
|
||
|
||
14. Yang, Z. et al. (2013). "From RSSI to CSI: Indoor Localization via
|
||
Channel Response." ACM Computing Surveys, 46(2).
|
||
|
||
### ESP32 CSI
|
||
|
||
15. Hernandez, S. M. and Bulut, E. (2020). "Lightweight and Standalone
|
||
IoT Based WiFi Sensing for Active Repositioning and Mobility."
|
||
IEEE WoWMoM.
|
||
|
||
16. Espressif Systems. "ESP-IDF Programming Guide: Wi-Fi Channel State
|
||
Information." docs.espressif.com.
|
||
|
||
### Compressive Sensing and Super-Resolution
|
||
|
||
17. Candes, E. J. and Wakin, M. B. (2008). "An Introduction to
|
||
Compressive Sampling." IEEE Signal Processing Magazine.
|
||
|
||
18. Mostofi, Y. (2011). "Compressive Cooperative Sensing and Mapping in
|
||
Mobile Networks." IEEE Trans. Mobile Computing, 10(12), 1769-1784.
|
||
|
||
---
|
||
|
||
*This document provides the theoretical foundation for spatial resolution
|
||
characterization in the RuView RF topological sensing system. The analysis
|
||
connects fundamental electromagnetic limits (Fresnel zones), information
|
||
theory (CRLB), graph theory (mincut resolution), and practical system
|
||
parameters (node count, bandwidth, SNR) into a unified framework. The
|
||
experimental validation protocols in Section 7 provide a concrete path
|
||
to ground-truth verification of these predictions.*
|