Back to Ruview

Spatial Resolution Analysis for RF Topological Sensing via Minimum Cut

docs/research/rf-topological-sensing/09-resolution-spatial-granularity.md

0.7.045.1 KB
Original Source

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
  2. Node Density vs Resolution
  3. Cramer-Rao Lower Bounds
  4. Graph Cut Resolution Theory
  5. Multi-Frequency Enhancement
  6. Tomographic Resolution
  7. Experimental Validation
  8. Resolution Scaling Laws
  9. Integration with RuView Codebase
  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:

FrequencyWavelengthLink 2mLink 3mLink 5mLink 7m
2.4 GHz12.5 cm25.0 cm30.6 cm39.5 cm46.8 cm
5.0 GHz6.0 cm17.3 cm21.2 cm27.4 cm32.4 cm
5.8 GHz5.17 cm16.1 cm19.7 cm25.4 cm30.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.

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

NodesLinksMean SpacingCenter ResWall ResAngular Bins
8281.67m55-70cm80-120cm8
12661.25m40-55cm60-80cm12
161201.00m30-40cm50-60cm16
201900.80m25-35cm40-55cm20
242760.67m20-30cm35-50cm24
324960.50m15-25cm25-40cm32

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:

Bandlambdar_F (3m link)Subcarriers (20 MHz)Bandwidth
2.4 GHz12.5 cm30.6 cm52 (802.11n)20 MHz
5.0 GHz6.0 cm21.2 cm52 (802.11n)20/40 MHz
5.8 GHz5.17 cm19.7 cm52 (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

AspectTomographyMincut
Resolution modelVoxel gridGraph partition
OutputContinuous attenuation mapBinary/categorical partition
Resolution limit~Fresnel zone~Fresnel zone / sqrt(K_cuts)
Computational costO(L * P * iterations)O(N^3) for spectral, O(N * L) for flow
Multi-targetNatural (different voxels)Requires K-way cut
CalibrationNeeds baseline W matrixNeeds baseline weights
Dynamic rangeQuantitative alpha valuesQualitative boundary detection
Real-time capabilityModerate (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:

FactorImpact on ResolutionMitigation
FurnitureMultipath changes baseline, +10-20%Recalibrate baseline
Open doorsChanges room geometry, +5-15%Adaptive graph weights
HVAC airflowAdds coherence noise, +5-10%Temporal averaging
WiFi interferenceReduces SNR, +10-30%Channel selection
Number of peopleDegrades per-person, sqrt(K) factorMulti-way cut
TemperatureDrifts baseline slowly, +2-5%Longitudinal recalibration
HumidityAffects 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:

NPredicted delta (relative)Measured delta (simulation)
81.001.00 (reference)
120.670.72
160.500.55
240.330.40
320.250.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:

ConfigurationB_effdelta_rangeCross-range benefit
20 MHz single band20 MHz7.5mBaseline (52 subcarriers)
40 MHz single band40 MHz3.75m1.4x (104 subcarriers)
80 MHz (802.11ac)80 MHz1.875m2.0x (256 subcarriers)
20+20 MHz dual-band~2.6 GHz5.8cm1.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 timeT (at 100 Hz)Resolution improvement
10 ms11.0x (baseline)
100 ms101.8x
1 s1003.2x
10 s10005.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:

ParameterDoubling from baselineResolution improvement
Node count (16 -> 32)2x1.5-1.7x
Bandwidth (20 -> 40 MHz)2x1.3-1.4x
SNR (25 -> 31 dB)2x (linear)1.3-1.4x
Frequency (2.4 -> 5 GHz)2.1x1.3-1.5x
Time averaging (100ms -> 1s)10x1.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:

ModuleResolution RoleSection
signal/src/ruvsense/coherence.rsEdge weight computation (CR metric)4.7
signal/src/ruvsense/field_model.rsSVD eigenstructure for voxel grid6.1
signal/src/ruvsense/tomography.rsISTA reconstruction, L1 solver6.3
signal/src/ruvsense/phase_align.rsDual-band phase coherence5.5
signal/src/ruvsense/multistatic.rsMulti-link fusion weights3.3
ruvector/src/viewpoint/geometry.rsCramer-Rao bounds, Fisher info3.1
ruvector/src/viewpoint/coherence.rsPhase phasor coherence gate4.7
ruvector-mincutGraph cut partitioning4.1
ruvector-solverSparse 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

  1. Youssef, M. and Agrawala, A. (2007). "Challenges: Device-free passive localization for wireless environments." ACM MobiCom.

  2. Zhang, D. et al. (2007). "RF-based Accurate Indoor Localization." IEEE PerCom.

Cramer-Rao Bounds for Localization

  1. Patwari, N. et al. (2005). "Locating the Nodes: Cooperative Localization in Wireless Sensor Networks." IEEE Signal Processing Magazine, 22(4), 54-69.

  2. 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

  1. Stoer, M. and Wagner, F. (1997). "A Simple Min-Cut Algorithm." JACM, 44(4), 585-591.

  2. Shi, J. and Malik, J. (2000). "Normalized Cuts and Image Segmentation." IEEE Trans. PAMI, 22(8), 888-905.

  3. Von Luxburg, U. (2007). "A Tutorial on Spectral Clustering." Statistics and Computing, 17(4), 395-416.

WiFi CSI Sensing

  1. Halperin, D. et al. (2011). "Tool Release: Gathering 802.11n Traces with Channel State Information." ACM SIGCOMM CCR.

  2. Ma, Y. et al. (2019). "WiFi Sensing with Channel State Information: A Survey." ACM Computing Surveys, 52(3).

  3. Yang, Z. et al. (2013). "From RSSI to CSI: Indoor Localization via Channel Response." ACM Computing Surveys, 46(2).

ESP32 CSI

  1. Hernandez, S. M. and Bulut, E. (2020). "Lightweight and Standalone IoT Based WiFi Sensing for Active Repositioning and Mobility." IEEE WoWMoM.

  2. Espressif Systems. "ESP-IDF Programming Guide: Wi-Fi Channel State Information." docs.espressif.com.

Compressive Sensing and Super-Resolution

  1. Candes, E. J. and Wakin, M. B. (2008). "An Introduction to Compressive Sampling." IEEE Signal Processing Magazine.

  2. 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.