Wi-Fi CSI radar: what it really measures, and where the marketing stops

By Wu Jun · Updated 2026-10-29 · 6 min read

Search for "Wi-Fi CSI radar" and you will find both serious research and "see through walls" marketing. The radar analogy is useful because both radar and CSI infer targets from reflections and multipath. CSI, however, has no dedicated radar waveform and does not automatically produce a range-angle-velocity cube.

This page separates what is practical, what is possible only under controlled conditions, and what must not be claimed by default. The boundaries are grounded in our 10-minute GL-MT6000 capture.

1. Radar concepts mapped to CSI

Radar concept What this router's CSI can do Key condition
Motion detection Yes amplitude/phase change over time, subcarriers and links; requires an empty-room baseline
Still-person presence Partial depends on respiration, small posture motion and a stable link; needs quality gating
Range Coarse, controlled estimate only calibration, direct-path assumptions and phase slope; indoor multipath biases the result
Velocity/Doppler Low-frequency components only bounded by independent snapshot rate and observation time, not full gait micro-Doppler
Angle of arrival Research-grade coarse estimate multiple antennas, phase calibration and known geometry; 2 Tx x 4 Rx is still limited
Human pose Controlled research multiple antennas, large data, specific environments and models; public evidence remains largely preprint-level
Imaging/identity Not a consumer capability CSI is a channel-change measurement, not a camera image or biometric fingerprint

The CSI sensing survey provides the broader capability map [1]. IEEE 802.11bf is standardising WLAN sensing measurements and procedures [2], but a standards project does not mean existing routers already implement a complete radar stack.

2. Where the radar analogy works

Classic radar transmits a known waveform and measures delay, Doppler and angle in the echo. Wi-Fi sensing normally uses existing frames and estimates the complex channel on each subcarrier. Both can infer motion from reflections, but CSI has four practical limits:

  1. Opportunistic waveform: frame length, modulation, bandwidth and transmission times are not fully controlled by the sensing algorithm;
  2. Strong indoor multipath: a target reflection is only one part of the measured channel;
  3. Receiver-side measurement: a station must keep sending traffic; the router is not alone transmitting radar pulses;
  4. Finite snapshot rate: chains from one measurement share a time instant and cannot be counted as extra time samples.

"Wi-Fi radar" is therefore a useful description of a sensing paradigm, not evidence of FMCW or millimetre-wave radar resolution in range, angle and velocity.

3. Why 95.5 records/s cannot drive Doppler processing

Our 10-minute capture averages 95.5 chain records/s over 57,293 records. Closing measurements on chain_info bit 15 gives 7,609 groups over 599.924 seconds, or about 12.68 Hz. After removing anomalous groups, the analysis uses about 12.64 Hz.

The eight chains are different tx/rx combinations at almost the same instant. Concatenating them as a 95.5 Hz series creates a sampling rate that does not exist and treats simultaneous data as if it evolved in time.

For a 12.64 Hz snapshot system, the unambiguous Doppler span is:

[-FS/2, +FS/2] = [-6.32, +6.32] Hz

At 5 GHz, radial motion at 1 m/s has 2v/λ ≈ 33 Hz, which aliases. Consequently:

Wider bandwidth, more subcarriers or a larger neural network do not remove this limit. Bandwidth improves frequency resolution; it does not increase the snapshot rate.

4. What we actually observed in this capture

The grade E setup is a GL-MT6000, 5 GHz HE80, 256 subcarriers and a dedicated AP interface. The 10-minute capture contains 57,293 records with no gap longer than five seconds [3]. The parser and analysis scripts are public [4].

The data supports these statements:

The data does not by itself establish:

The reason is simple: the capture has no synchronised ground truth for position, velocity, pose or events. Without ground truth, you can demonstrate signal changes, not measurement error.

5. A runnable low-frequency Doppler/time-frequency example

The code below assumes one selected chain per measurement and uses the real snapshot rate. Each window removes a linear trend, applies a Hann window and computes FFT power over time:

import numpy as np

FS = 12.64          # independent measurements/s, not 95.5 chain records/s
WIN = 256           # 20.3 s
HOP = 32            # 2.5 s

def slow_doppler(phase):
    phase = np.asarray(phase, dtype=float)
    rows = []
    starts = range(0, len(phase) - WIN + 1, HOP)
    for start in starts:
        x = phase[start:start + WIN].copy()
        idx = np.arange(WIN, dtype=float)
        slope, intercept = np.polyfit(idx, x, 1)
        x = x - (slope * idx + intercept)
        x = (x - x.mean()) * np.hanning(WIN)
        rows.append(np.abs(np.fft.fftshift(np.fft.fft(x))))

    power = np.column_stack(rows)
    freqs = np.fft.fftshift(np.fft.fftfreq(WIN, d=1.0 / FS))
    return freqs, power

freqs, power = slow_doppler(phase)
mask = np.abs(freqs) <= 5.0
freqs, power = freqs[mask], power[mask]

This is not a complete radar pipeline. It has no range gates, array-angle processing, waveform matching or absolute velocity calibration. It is only a way to inspect low-frequency time-frequency structure.

6. Evidence required before making a claim

Claim Minimum evidence
Detects motion empty/still/moving controls plus false-positive and miss rates
Detects a still person respiration reference, distance, posture, empty baseline and gate coverage
Measures range multiple known distances and angles with MAE/RMSE, P90 error and multipath conditions
Measures velocity known snapshot rate, unambiguous range, reference velocity and an aliasing check
Measures angle array geometry, phase calibration, multiple true angles and resolution
Recognises human pose subject/room-separated data, reproducible model and independent test
Images through walls controlled wall materials, MIMO array, ground-truth images and independent reproduction; not a consumer claim

Work such as "DensePose From WiFi" shows that multi-antenna CSI can reconstruct coarse human pose in a controlled research setting, but the public evidence remains preprint-level [5]. It does not imply that a consumer router can recognise faces or identity in real time.

7. If you need real radar capability

Choose the platform from the measurement requirement:

For learning the CSI pipeline, human-activity classification and home-network experiments, the GL-MT6000 route remains useful. The mistake is upgrading "can observe channel changes" into "has a complete radar".

8. Privacy and responsible deployment

Even without a camera, CSI can infer motion, presence, routines and some behaviour. A deployment should:

IEEE 802.11bf and CSI privacy research make sensing security and countermeasures part of the design problem [2] [1].

9. Conclusion

Related: respiration detection · the physical limits of through-wall sensing · 80 MHz vs 40 MHz

References and data sources

Every external claim carries a source and an evidence grade (grading scheme). Grade E marks first-party, reproducible measurements from this project.

  1. Grade A · standard/review WiFi Sensing with Channel State Information: A Survey
    W. Ma, W. Zhou, X. Wang · ACM Computing Surveys · 2019
    doi:10.1145/3310194 · citations 857 · verified: CrossRef API, 2026-10-11 · The field's most-cited CSI sensing survey (857 citations, verified via CrossRef).
  2. Grade A · standard/review IEEE 802.11bf — WLAN Sensing (standard project)
    IEEE Standards Association · IEEE 802.11 Working Group · 2020
    standards.ieee.org/ieee/802.11bf/10331/ · verified: standards.ieee.org HTTP 200, 2026-10-11 · Official project page for turning sensing into a WLAN standard capability (approved September 2020).
  3. Grade E · first-party measurement This project's 10-minute raw capture (57,293 records / 600.0 s, SHA-256 00373f83…95e2)
    Router CSI Lab · 2026
    okwujun.pw/en/datasets/ · verified: Reassembled chunks verified byte-identical (2026-10-11) · The local raw master has SHA-256 00373f83…95e2; the public de-identified derivative has SHA-256 527466ce…a440. They must not be confused.
  4. Grade E · first-party measurement Router CSI Toolkit — capture/analysis/watchdog scripts (MIT, public repository)
    Router CSI Lab · 2026
    github.com/jjjwu/router-csi-toolkit · verified: GitHub API verified the public repository, capture-quality preflight, successful CI and the v0.1.3 release on 2026-11-02; the archive SHA-256 is 59f144c0…adea7 · The public repository includes a dependency-free capture preflight; the browser checker uses the same container definition and evidence boundaries.
  5. Grade D · preprint/wiki DensePose From WiFi
    J. Geng, D. Huang, F. De la Torre · arXiv preprint arXiv:2301.00250 · 2023
    arxiv.org/abs/2301.00250 · verified: arXiv abs page HTTP 200, 2026-10-11 · Preprint: coarse human pose reconstruction from multi-antenna CSI, a controlled-setting study that does not imply consumer capability.