Enabling phased-array signal processing on commodity WiFi hardware
Enabling phased-array signal processing on commodity WiFi hardware
ArrayTrack, NSDI '13
(Left) Wi-Vi, SIGCOMM '13
(Right) Wi-See, MobiCom '13
SecureArray, MobiCom '13
WiFi APs are ubiquitous; huge potential for large-scale deployments!
Need phase data usually only available on specialized hardware (e.g. Rice WARP)
Consumer NICs sometimes leak this data, but have other challenges.
Unless accounted for, these APs are useless for signal processing.
Can we combine data from multiple NICs to make One Large Array™?
Time-domain shift is subcarrier (\(k\)) dependent rotation!
\(h\left[n - \color{green}{\tau_0}\right] \overset{DFT}{\longleftrightarrow} H[k]e^{ 2\pi j \color{green}{\tau_0} k/N}\)
Time-domain rotation is equal to frequency-domain rotation!
\(h[n]e^{j\color{blue}\rho} \overset{DFT}{\longleftrightarrow} H[k] e^{j\color{blue}\rho}\)
All inter-card differences are frequency-domain rotations!
Find set of rotations to apply to one card to synchronize with other card
How do we find the right rotation?
Idea: Introduce a shared antenna using a splitter.
On one NIC, oscillators are frequency-locked, but have phase offsets.
Need to find \(\color{red}{\{\phi_i\}}\).
No, not quite...
Exhaustive search becomes too expensive for larger arrays.
For five antennas, need to find φ1 through φ4.
With granularity of 4°, ~65M combinations!
Some combinations of φ1 and φ2 are obviously incorrect.
Can skip these when searching φ3..n!
*Highest product of average estimate quality and number of samples in cluster.
AoA with 3 antennas across 800 packets in a controlled environment.
AoA with 5 antennas across 800 packets in a controlled environment.
Accuracy improves by ~80%!
AoA estimate error 2.5° median, 6.5° 95th percentile.
AoA estimate error 4.5° median, 9.5° 95th percentile.