seemoo-lab / nexmon_csi

Channel State Information Extraction on Various Broadcom Wi-Fi Chips
299 stars 122 forks source link

phase difference for AoA, ToF and Doppler profile #222

Open yujianyuanhaha opened 3 years ago

yujianyuanhaha commented 3 years ago

greetings,

As stated in many other work in intel 5300 and Atheros chip CSI, the phase difference is pretty useful for: (1) Angle of Arrival (AoA) estimation, using the phase difference in a Uniform Linear Array, and 3 antennas of a ASUS router can do so, (2), Time-of-Flight (ToF) estimation, using multiple subcarriers of the OFMD subcarriers, (3), Doppler profile using adjacent packages, especially for human activity monitor.

In another post I have note the unstable amplitude issue during cross session -- which mean the amplitude will turn into another waveform given same environment but diff time session, and it is universal across nexmon, intel 5300 and Atheros. Leaving phase information we can look into.

However, I figure there have not been solid work and sanity check done with nexmon, especially for the offset calibration, issue 221 mention the flip issue issue mention SFO issue.

Take the Raspberry PI 5G-band 80M CSI collected dataset is a static environment for example.

  1. the ToF estimation/ phase diff between subcarriers, it is much noisy than I thought. image

  2. The AoA estimation, I guess there is only 1x1 spatial stream, even though I setup the nexutil filter in in 1x4 way. image

  3. The Doppler profile, I suppose it is all zeros since there is no movement and environment change, but the results show the difference is zig-zag and have different periods. image

Hence I really wonder nexmon CSI can really do any of the three profile with the unknown offset. Let me know if I get them wrong.

Best

Jet

yujianyuanhaha commented 3 years ago

another work we can refer to is "Tewes, Simon, and Aydin Sezgin. "WS-WiFi: Wired Synchronization for CSI Extraction on COTS-WiFi-Transceivers." IEEE Internet of Things Journal 8.11 (2021): 9099-9108.", it mentioned the temperature and attennas imperfection that bring the offset.

image

haochenku commented 3 years ago

Hi Jet, how do you make the multiple NSS work? I tried in my side, for 2nd NSS and 3rd NSS, they are all zeros. @yujianyuanhaha

yujianyuanhaha commented 3 years ago

@haochenku you need to setup iperf3 between AP and a Client to trigger high throughput communication, so that the nexmon router can overhear tons of CSI.