Asking the fleet what it is doing…
monad-knowledge Wi-Fi sensing lab · FIIT STU

The wireless channel: how a signal becomes a channel before any CSI

Lecture 0 — first, the words

This is the opening week of WS501, Wi-Fi CSI Sensing from First Principles. Before any equation, here is the whole field in one plain sentence, the handful of words you need, and why anyone should care.

What this field is. Wi-Fi sensing uses the way radio waves bounce around a room to detect, count, or locate people — without a camera, and without anyone carrying a device. Here is the picture to keep in your head for the rest of the course: shout in an empty gym and you hear one clean echo; fill the gym with milling people and the echoes blur into a constant, shifting mush. Radio does exactly the same thing, and this course is about how we measure that mush.

The words you need. A few terms appear constantly. Each gets a one-line plain meaning here, and we return to each in context later.

  • Channel — the single summary of everything that happens to a radio signal between the transmitter and the receiver: every echo, every bit of power lost on the way, rolled into one number per frequency.
  • CSI (Channel State Information) — the measured snapshot of that channel, taken across many tiny sub-channels at once. Think of it as the signal's fingerprint of the room.
  • Multipath — radio does not travel in one straight line; it bounces off walls, floor, and furniture and arrives by many paths at once. Each path is one echo.
  • Line-of-sight (LOS) / non-line-of-sight (NLOS) — LOS means a clear straight path exists between transmitter and receiver; NLOS means that path is blocked, so only bounced echoes arrive.
  • Decibel (dB) — a unit for ratios of power on a logarithmic scale. Rule of thumb: +3 dB means double the power, −10 dB means a tenth of the power. We measure losses in dB so we can add them up instead of multiplying.
  • Phasor — a way to draw a wave as a little rotating arrow: its length is the wave's strength, its angle is its phase (where it is in its cycle). Adding waves becomes adding arrows.
  • Fourier transform — a tool that asks "what mix of steady tones makes up this pattern?" It turns a pattern over time into a pattern over frequency, like splitting white light through a prism into colours.
  • OFDM — the Wi-Fi waveform that splits one channel into many narrow sub-channels carried at once. Week 2 covers it; for now, just "Wi-Fi sends many tones side by side."

Why bother. Counting people helps with safety (spotting dangerous crowding before it becomes a crush), comfort (knowing which rooms are full), and energy (heating and ventilating only the rooms people are in). Cameras are invasive and expensive; manual counting does not scale. The question that frames the whole course is: can we do it for free, with the Wi-Fi signals already in the air? To even attempt that, we first have to understand what a Wi-Fi signal turns into on its way across a room. That is the job of Week 1.

By the end of the week you will be able to build the channel formula from the physics of multipath, tell steady links from wandering ones with a single number, quantify what a wall costs in measured decibels, recognise that the layout of a floor is itself an experimental variable, explain why a moving person is detectable, and hold the two complementary pictures of the channel — ray-tracing (count the echoes, for position) and scattering (measure how fast it decorrelates, for speed) — that the rest of the course draws on. Week 2 then explains how Wi-Fi hardware actually extracts the per-subcarrier channel we call CSI.


1. From transmitter to receiver: the physics of multipath

Picture a transmitter sending out a radio wave at one instant. A direct copy reaches the receiver first, by the short straight path. Reflected copies bounce off walls, ceiling, and floor — each travels farther, so it arrives later and weaker. Diffracted copies bend around edges and corners. The receiver hears all of these copies added together, at once. It is like shouting in a canyon: you hear your own voice, then the cliff echo a moment later, then a fainter echo off the far wall, all overlapping.

To write this down, give each echo two numbers: its delay τᵢ (Greek "tau") — how many seconds late it arrives — and its strength rᵢ — how much of the original wave survived that path. The received signal is then every delayed, weakened copy of the sent signal, added up, plus a little background noise:

y(t) = \sum_{i} r_i \, x(t - \tau_i) + n(t)

Here the big Σ means "add them all up"; y is what we receive over time, x is what was sent, each echo i is the sent wave delayed by τᵢ and scaled by rᵢ, and n is thermal noise. In words: the antenna hears the same transmission arriving several times — once per path — each copy delayed by how long that path took and shrunk by how much it lost on the way, with noise added on top.

When nothing in the room is moving, this expression defines the wireless channel as a fixed, linear filter.

Channel impulse response. If we imagine sending a single sharp pulse instead of a continuous signal, the response is just the row of echoes themselves — one spike per echo, placed at its arrival time and weighted by its strength and phase. This row of spikes is called the channel impulse response (CIR):

h(\tau) = \sum_{i} \alpha_i \, e^{-j\phi_i} \, \delta(\tau - \tau_i)

where αᵢ is the real strength of echo i and φᵢ is the phase it picked up along the way. The CIR tells you when energy arrives, not how the channel behaves across frequency. That is the next section's job.


2. The channel across frequency, and the system model

A picture before the next tool. A Fourier transform asks what mix of steady tones makes up a pattern over time — like an audio equaliser splitting a song into bass, mid, and treble, or a prism splitting white light into colours. We borrow one fact from it: the time-shift property says that a delay in time becomes a steady rotation in frequency. The later an echo, the faster its arrow spins as we sweep across frequency.

Applying the Fourier transform to the echo sum, and using that one property, turns the row of echoes into the channel frequency response (CFR):

H(f) = \sum_{i} r_i \, e^{-j2\pi f \tau_i}

In words: at each frequency, the channel is the sum of all the echoes turned into little rotating arrows (phasors). The arrow for echo i has length rᵢ and an angle that grows with frequency times that echo's delay. (Recall: a phasor is a wave drawn as a rotating arrow — length is strength, angle is phase — so adding waves becomes adding arrows tip-to-tail.)

Sweep across frequency and the arrows rotate at different rates, so they alternately reinforce and cancel. The result is a rippling loud-soft pattern across the band. Picture several musicians playing the same note but starting at slightly different times: at some pitches they line up and swell, at others they fall out of step and cancel. That rippling is called frequency-selective fading, and it is set by the delays of the echoes — not by whether the carrier is 2.4 or 5.0 GHz.

The system model. At any one frequency, the channel is a single number that multiplies the transmitted symbol. So what we receive equals the channel times what we sent, plus noise:

Y = H \cdot X + N

This is the model used all semester. Evaluating H at the many subcarrier frequencies of a Wi-Fi (OFDM) waveform gives a whole vector of channel numbers — that vector is the channel state information (CSI). A change in any echo's delay — caused, for instance, by a person moving through the room — rotates the contributing arrows and shifts the whole interference pattern across subcarriers. This is why CSI carries information about the scene: the room's geometry is encoded in the echo delays, which are encoded in the phases of the channel. The channel is, in a precise sense, a fingerprint of the room's shape and contents.

Figure 1 — A three-echo channel (left) and the rippling channel strength it produces across a 20 MHz band (right). More spread-out echoes pack more dips into the band. Reproduce in workbook §1.

Animation — Figure 1 set in motion. The direct path and the wall echo are frozen; only the person moves. Watch their echo's arrow rotate in the tip-to-tail sum while every subcarrier of the |H(f)| curve shifts. Geometry, delays, and the phase rate are schematic (a real 5 GHz carrier would spin the arrow hundreds of turns); the delays used are consistent with the indoor delay spreads of §7.

How hardware recovers the channel. A real receiver recovers the channel by sending a known block of symbols (a preamble) and dividing the received signal by what it knows it sent. This is the operation that produces the CSI used throughout the course. Its full derivation — the OFDM preamble structure and the errors that creep into the phase — is the subject of Week 2.


The model above assumes we know every echo exactly. In practice an indoor room has many reflectors whose exact geometry is unknown or changing. So we treat the channel at a fixed frequency as a random quantity and ask about its statistics. Two everyday pictures cover the cases.

A torch in a dark room gives one strong, steady beam plus faint glints off the walls; the total stays roughly constant, so you can rely on it. That is a line-of-sight (LOS) link. Light through fog has no single dominant ray, just scattered glow from everywhere; the brightness flickers and can briefly drop to near zero. That is a non-line-of-sight (NLOS), scatter-only link. Fading is just the channel strength going up and down; the foggy case is called Rayleigh fading and the torch case Rician fading.

Rayleigh fading — the foggy case. With many comparable echoes and no dominant one, the channel-arrow wanders randomly around the origin. The strength |H| then most often sits at a moderate value but can occasionally collapse to near zero — a deep fade. The probability of each strength follows the Rayleigh curve:

p(r) = \frac{r}{\sigma^2} \exp\!\left(-\frac{r^2}{2\sigma^2}\right), \qquad r \geq 0

where σ² is the average scatter power. This describes a link cut off from any direct path — behind heavy obstruction, deep into a building — and such a link is unreliable on its own.

Rician fading — one dominant ray. When a strong direct ray exists alongside the scatter, the channel-arrow wanders around a fixed point rather than the origin. The single number that captures this is the K-factor:

K = \frac{\text{power in the dominant ray}}{\text{power in the scattered echoes}}

A big K means a strong ray dominates and the link is steady (the torch); K near zero means no ray wins and the channel behaves like Rayleigh (the fog). In decibels, K(dB) = 10·log₁₀K, so K = 10 in power is +10 dB and a K below 0 dB means scatter wins.

Reading K off real data. A moment estimator is a recipe that reads a quantity straight from simple summaries of the data — here, its average and its spread. The Greenstein moment estimator watches how jittery the channel power is over time: a steady link barely jitters, giving a large K; a wandering link jitters a lot, giving K near zero. No curve-fitting is required. (For completeness, the full Rician probability curve involves a standard mathematical function written I₀; you never evaluate it by hand, and as the dominant ray vanishes it collapses back to the Rayleigh curve. The K-factor and the estimator are all a newcomer needs.)

The workbook (§2) applies this estimator to simulated channels and recovers the true K to within about one percent across K = 0 to 16, from 15 000 samples. You will see that links with a clear line of sight and no obstruction give K ≈ 10–15 dB, while through-wall links in the lab give K below 0 dB — the fog-like regime — because once the direct ray is weakened the scattered field wins.

Figure 2 — Left: simulated channel-strength histograms for a foggy (K = 0) and a torch-like (K = 8) link with the theory curves overlaid. Right: the moment estimator recovers the true K from 15 000 samples across two decades. Reproduce in workbook §2.


4. Path loss and wall attenuation: from free space to indoor walls

Even with no walls at all, power falls off with distance. A light bulb looks dimmer the farther you stand, because its energy spreads over an ever-bigger sphere; radio does the same, and the farther the receiver, the smaller the slice of signal it catches. (Recall: a decibel is a ratio of power on a log scale — +3 dB doubles the power, −10 dB cuts it to a tenth — and we measure each loss in dB so we can add them up.) In free space, the fraction of power the receiver catches shrinks with the square of distance, and also shrinks at higher frequency because a fixed-size antenna intercepts a smaller slice of a shorter wavelength. At 2.4 GHz the wavelength is about 12.5 cm; at 5 GHz about 6 cm. So at a fixed distance the higher band starts out with roughly 6.5 dB more free-space loss than the lower band.

In a cluttered, furnished room, measured power follows a simple rule: measure the power one metre out, then subtract a fixed number of dB every time you multiply the distance by ten. How punishing the clutter is sets that number — gentle in open space, harsher in a furnished room.

What a wall costs. Each physical wall a signal crosses adds a fixed power penalty on top of the distance term, and the size of that penalty depends on the material. For plasterboard — the lightweight gypsum-board partitions typical of offices and homes — the measured values are:

  • 2.4 GHz: approximately 0.5 dB per wall crossing
  • 5.0 GHz: approximately 11.0 dB per wall crossing

At 2.4 GHz a plasterboard wall is almost transparent — it barely dims the signal. At 5.0 GHz the same wall is like frosted glass, costing 11 dB, a roughly twenty-two-fold drop in power. This gap is one of the most practically important facts in indoor Wi-Fi sensing, and the lab's measured data confirm it (Section 5).

The band choice can break an algorithm. Some crowd-counting methods work by detecting the sharp dip when a person crosses the direct line; those methods were validated in concrete buildings, where one wall removes 10–20 dB and the dip is obvious. In a plasterboard building at 2.4 GHz, one wall removes only half a dB — the dip is too small to detect, so the method quietly fails. "It worked in their building" is not the same as "it works in ours"; the building material is part of the experiment.

Figure 3 — Total loss versus walls crossed at 2.4 vs 5.0 GHz. Left: total loss at a 5 m reference; the two-or-more-wall bars are hatched because the lab never built such a link (Section 6). Right: the headline per-wall steps — 0.5 dB at 2.4 GHz, 11.0 dB at 5.0 GHz. Reproduce in workbook §3.


5. What the lab measured: the through-wall campaign

The formulae above are not abstract. The lab's through-wall measurement campaign carried out 52 runs on one test floor, sweeping crowd size from 0 to 6 people at both 2.4 and 5.0 GHz, with three repeats per setting for robustness, across five radio links.

Two kinds of link were represented: one in-room link that crosses no walls, and four through-wall links that cross one wall each. Holding the distance roughly fixed isolates the wall effect from plain free-space spreading.

The loss-per-wall ladder. The empty-room runs (no people) give the loss for each link with nothing in the way. Across all 52 runs, the per-wall step is:

Walls crossed 2.4 GHz step 5.0 GHz step
0 → 1 wall ≈ 0.5 dB 11.0 dB

These 0.5 dB and 11.0 dB figures are recovered directly from the empty-room baseline and match the standard construction-material model. You will reproduce this ladder in the workbook (§3).

The per-person effect. With people in the room, the through-wall links lose a little more power per person. Aggregated over repeats and through-wall links, the measured slope is:

\frac{\text{change in signal}}{\text{per person}} = \begin{cases} -0.050 \pm 0.019\ \text{dB} & (2.4\ \text{GHz}) \\ -0.064 \pm 0.024\ \text{dB} & (5.0\ \text{GHz}) \end{cases}

Each added person costs the through-wall link about a twentieth of a dB at 2.4 GHz and a touch more at 5 GHz — a small, noisy, but consistent drift, far weaker than the 11 dB a single wall already removes. The body is mostly water, which absorbs and scatters radio; the effect is slightly larger at 5 GHz because the body is electrically bigger relative to the shorter wavelength. These slopes are the empirical grounding for the occupancy models introduced in Week 4.

Figure 4 — Through-wall signal versus crowd size for the one-wall links, drawn from the measured per-person slopes; the shaded bands are ±1 slope spread across repeats. Over a dozen people the total drop is under 1 dB on both bands. Reproduce in workbook §4.


6. Geometry as an experimental variable: a design goal that failed

The campaign set itself a goal in advance: at least one link should cross two or more walls, so a two-wall penalty could be measured and the loss-per-wall pattern confirmed. This goal failed: no link on the test floor crossed two or more walls.

Why? The answer is geometric. The path that was meant to cross two walls lines up with a doorway gap in the second wall. The signal therefore passes through air, not wall, at that second crossing — so it crosses only one solid wall. The number of walls a signal crosses depends on the exact shape of the floor, not on the room names.

This failure teaches three things.

The floorplan decides what is measurable. Which wall-counts are physically possible depends on where you place transmitter and receiver in the actual room shapes. A researcher who reads wall-counts off a room map, without tracing the signal's path through the real wall outlines, may find that a planned multi-wall condition does not exist in the chosen floor. Shift a receiver 10 cm past a doorway and the wall-count — and 11 dB at 5 GHz — changes.

Ground truth needs checking, not guessing. "This link crosses two walls," guessed from a room map, can disagree with the real, traced crossing count. Reliable ground truth requires tracing the signal through the actual wall outlines or inspecting the floor plan by hand. The workbook (§3) loads the test floor, traces each link through the wall polygons, and recovers the true crossing counts — exposing the discrepancy directly.

A negative result is still a measurement. The shortfall was recorded, not buried, alongside the loss-per-wall and per-person data, with a recommendation to choose a floor with a confirmed two-wall link for the follow-on run. Reporting only the conditions that worked would create a selection bias and hide the limits of the method.


7. Coherence time and coherence bandwidth: when the channel is predictable

The channel is not static — it changes whenever anything in the room moves. Two scales govern this.

Coherence bandwidth — an everyday picture. Press two neighbouring piano keys and they sound almost the same, rising and falling together; press two keys far apart and they behave independently. Wi-Fi subcarriers are the same: those close enough together fade together, those far apart fade on their own. The coherence bandwidth B₀ is how far apart in frequency two subcarriers must be before they fade independently. It depends on the delay spread σ_τ — how spread out in time the echoes are — through:

B_0 \approx \frac{1}{2\pi\,\sigma_\tau}

The more spread out the echoes, the smaller the band over which subcarriers fade together: long echoes mean fast ripple and a narrow B₀. A typical room about 20 m across has σ_τ ≈ 20–50 ns, giving B₀ ≈ 3–8 MHz. A 20 MHz Wi-Fi channel spans several B₀, so it is frequency-selective. In practice, with B₀ ≈ 6 MHz and Wi-Fi subcarriers spaced 312.5 kHz apart, about 19 neighbouring subcarriers move together — so CSI is not independent per subcarrier; it fades in groups. This grouping is what lets us compress CSI later, and it is why a naive "treat every subcarrier separately" model goes wrong.

Recovering the echoes (and its limit). Running the Fourier transform backwards (an inverse transform, or IFFT) on the measured channel recovers the echo pattern — but only coarsely. With a 20 MHz channel, the finest time-gap we can resolve is about 50 ns, which is a path-length difference of about 15 m. Echoes closer than that blur into one. A commodity 20 MHz trace therefore gives only a blurry view of the multipath — a limitation Week 2 makes precise.

Coherence time — an everyday picture. An ambulance siren rises in pitch as it races toward you and drops as it passes; that is the Doppler effect. A person walking through the room shifts the radio echoes the same way, and the faster they move, the bigger the shift and the quicker the channel changes. The coherence time T₀ is how long the channel stays roughly the same before motion changes it. The biggest Doppler shift is f_max = v/λ — walking speed over wavelength — and the channel changes over a Doppler spread f_a ≈ 2·f_max, so:

T_0 \approx \frac{1}{2\,f_a}

For a person walking at 1.2 m/s at 2.4 GHz, where λ ≈ 12.5 cm, the maximum Doppler shift is f_max = 1.2/0.125 ≈ 9.6 Hz, the spread is f_a ≈ 19 Hz, and so T₀ ≈ 1/(2 × 19) ≈ 26 ms. A typical access point takes a fresh CSI snapshot every 10 ms (100 times a second) — comfortably within that 26 ms window — so it captures the channel several times before it changes. T₀ is not the system's sensitivity; it is the window over which we can treat the channel as steady while estimating it. The workbook computes T₀ for both bands in §5.

Why is motion detectable? Here is the puzzle: a person at 1.2 m/s moves only 4.8 cm between two snapshots taken 10 ms apart. That is tiny — why isn't it invisible? Because phase is a fine ruler. Moving an echo's path by just 3 cm — a quarter wavelength at 2.4 GHz — rotates that echo's arrow by a quarter turn, a large change in the summed channel. Human motion is detectable not because the person moves far between samples, but because the channel is phase-sensitive: a few-centimetre displacement causes an order-one change in the channel. This same phase sensitivity is why CSI can later pick up breathing — chest motion of well under a centimetre.

Figure 5 — Left: the echo pattern recovered by inverse transform (blue) against the true echoes (green); the 50 ns grid blurs nearby ones. Centre: the coherence bandwidth shaded on the channel. Right: how fast the channel decorrelates as time passes for a walking person, with the coherence time marked on each band. Reproduce in workbook §5.


8. Two models of the same channel: ray-tracing and scattering

Everything above built one description of the channel — the echo sum H(f) = \sum_i r_i\,e^{-j2\pi f \tau_i}. It is worth stepping back, because that formula is not the only way to think about the channel, and the other way is the one that makes a moving person's speed fall straight out of the data. The field uses two complementary models, and knowing which one a method lives in tells you what it can and cannot do.

The ray-tracing model — count the echoes

The echo sum is the ray-tracing model. It treats the channel as a small, countable set of discrete paths, each a ray with a strength r_i and a delay \tau_i, bouncing off walls and furniture on its way from transmitter to receiver. Writing the impulse response as one spike per ray,

h(\tau) = \sum_{n=1}^{N} \alpha_n\, e^{-j\phi_n}\, \delta(\tau - \tau_n),

makes the geometry explicit: each \tau_n is a path length, so if you can resolve the rays you can reason about where the reflectors are. This is the model behind localisation and tracking — estimate the delays and angles of the rays and you triangulate a person's position (Week 8). Its weakness is exactly its strength: it assumes you can pick the rays apart, which §7 showed a 20 MHz commodity card cannot really do (15 m resolution blurs most indoor echoes into one), and it degrades badly when there is no clean line of sight and the "rays" are really a diffuse smear.

This is also why RSSI is not enough. RSSI collapses the whole channel into a single number — the total received power, \text{RSSI} = 10\log_{10}\lVert V\rVert^2 for V = \sum_n \lVert V_n\rVert e^{-j\phi_n} — which is the superposition of all the rays with their phases already baked in. Two completely different room states can give the same RSSI, and RSSI fluctuates wildly even on a static link as the rays drift in and out of phase. CSI keeps the per-subcarrier complex values H(f_j) = \lVert H(f_j)\rVert e^{j\angle H(f_j)}, so the ray structure survives. Week 2 builds that per-subcarrier object; here the point is only that throwing the channel down to one scalar throws away the geometry.

The scattering model — measure how fast it decorrelates

The second model gives up on counting rays. In a cluttered, furnished room the reflectors are too many and too vague to resolve, so the scattering model treats the channel as a sum over a cloud of scatterers and asks a statistical question instead of a geometric one. Split the channel into the part from things that are not moving and the part from things that are:

H(f,t) = \underbrace{\sum_{o\,\in\,\Omega_s} H_o(f,t)}_{\text{static scatterers}} + \underbrace{\sum_{p\,\in\,\Omega_d} H_p(f,t)}_{\text{dynamic scatterers}}.

The static part is a constant background. The interesting part is the dynamic scatterers — a walking person, a moving arm — each of which, moving at speed v, writes a Doppler phase e^{-jk v \cos\alpha\, t} onto its contribution (k = 2\pi/\lambda, \alpha the angle of motion). The genius of this model is that you never have to separate those contributions. Instead you ask how quickly the channel decorrelates from itself over a time lag \tau — the autocorrelation function (ACF):

\rho_H(\tau) = \frac{\mathrm{Cov}\!\left[H(f,t),\,H(f,t+\tau)\right]}{\mathrm{Cov}\!\left[H(f,t),\,H(f,t)\right]} \;\approx\; \mathrm{sinc}(k v \tau),

where \mathrm{sinc}(x) = \sin(x)/x. This is the same decorrelation §7 plotted for coherence time — now turned into a measurement. The faster the scatterers move, the faster \rho_H falls away from 1, and the first time it crosses zero, \tau_0, pins the speed. The first zero of \mathrm{sinc} is at k v \tau_0 = \pi, so

\boxed{\,v = \frac{\pi}{k\,\tau_0} = \frac{\lambda}{2\,\tau_0}\,}

— read the lag at which the channel first decorrelates, and you have the speed, with no ray separation and no line of sight required. This is what makes the scattering model the workhorse of speed-oriented sensing: activity and gesture recognition (Week 7), gait, and breathing-rate estimation, and it is robust precisely where ray-tracing fails — under NLoS occlusion and heavy multipath, because it never tried to resolve the paths in the first place.

Workbook §6 draws the two pictures side by side (fig6) and then reproduces the scattering result (fig7): it simulates a dynamic-scatterer channel at a known speed, computes the empirical ACF, overlays \mathrm{sinc}(kv\tau), and recovers the speed from the first zero — the printed line reads true v = 1.00 m/s → recovered 1.00 m/s at 5 GHz.

Figure 6 — The same channel, two models. Left: the ray-tracing view — a few discrete rays (direct + wall reflections) with delays τ and strengths r, the basis for localisation. Right: the scattering view — a cloud of static scatterers plus one moving (dynamic) scatterer whose Doppler phase makes the channel decorrelate over time, the basis for speed sensing. Reproduce in workbook §6.

Figure 7 — The scattering speed model. Left: the channel autocorrelation ρ_H(τ) for a dynamic scatterer moving at 1 m/s (5 GHz), with the empirical estimate tracking the sinc(kvτ) theory and the first zero τ₀ marked. Right: speed recovered from the first ACF zero (v = λ/2τ₀) against ground truth for several speeds — the scattering model reads speed without resolving a single ray. Reproduce in workbook §6.


Bridge to Week 2. One question is left open: in real Wi-Fi hardware, how is the channel actually computed? The outline answer is the known-preamble division sketched in Section 2 — the receiver sends a known block of symbols and divides the received signal by what it knows it sent. The full story, though — the preamble structure, the guard intervals, and the timing and phase errors that corrupt the estimate — needs a grounding in the OFDM physical layer. Week 2 derives the OFDM receiver from first principles and traces the path from raw samples to the CSI matrix the card reports.


Key results and where to reproduce them

Result Where it comes from Workbook
The echo pattern (channel impulse response) indoor multipath theory §1 (Fig 1)
The channel across frequency; frequency-selective fading multipath theory; indoor ray tracing §1 (Fig 1)
System model: received = channel × sent + noise element-wise system model §1
K-factor; the Greenstein moment estimator Wi-Fi sensing survey §2 (Fig 2)
Free-space path loss Wi-Fi sensing survey §3
Wall loss: 0.5 dB (2.4 GHz) / 11.0 dB (5 GHz) per wall lab campaign (session details in workbook); concrete-wall contrast from the through-wall counting literature §3 (Fig 3)
Per-person effect: −0.050 ± 0.019 dB (2.4 GHz), −0.064 ± 0.024 dB (5 GHz) lab campaign (session details in workbook) §4 (Fig 4)
The failed two-wall goal: no two-wall link on the test floor lab campaign (session details in workbook) §3–§4
Coherence time: T₀ ≈ 26 ms at 2.4 GHz for a walker commodity-Wi-Fi delay profiling §5 (Fig 5)
Coherence bandwidth and echo recovery; ~15 m resolution at 20 MHz commodity-Wi-Fi delay profiling §5 (Fig 5)
Ray-tracing vs scattering: two models of one channel WST tutorial "Understanding CSI"; CARM §6 (Fig 6)
Speed from the channel ACF: ρ(τ) ≈ sinc(kvτ), v = λ/2τ₀ scattering / CSI-speed model §6 (Fig 7)

Further reading

  • fallani2026_04be — derivation of the echo pattern and the channel in indoor multipath; how Wi-Fi cards acquire CSI from the preamble; the subcarrier reporting structure of a commodity card.
  • ma2020_4782 — comprehensive survey of Wi-Fi sensing; free-space path loss; the Rician K-factor; Fresnel-zone geometry. ACM Computing Surveys 2020.
  • Yang, Zhang, Chi & Zhang 2022, Hands-on Wireless Sensing with Wi-Fi: A Tutorial (Tsinghua TNS; arXiv:2206.09532) — the "Understanding CSI" page is the clearest statement of the ray-tracing vs scattering dichotomy used in §8, including the scattering ACF speed model ρ(τ) ≈ sinc(kvτ) and the RSSI-vs-CSI contrast. https://tns.thss.tsinghua.edu.cn/wst/
  • wang2015_48cf — the CARM CSI-speed model behind §8's scattering view: relates the channel autocorrelation to motion speed for activity recognition; the direct and wall-reflected path diagrams behind the echo-sum model. MobiCom 2015.
  • xie2015_0389 — recovering the echo pattern from commodity hardware; the coherence-time formula; Doppler analysis for walking people; resolution bounds. MobiCom 2015.
  • guarino2026_e72c — the system model in element-wise form; reproducibility principles, including open data and open code, for sensing datasets. 2026.
  • depatla2018_97a9 — counting people through walls with the line-crossing model, validated in concrete buildings; the essential contrast case for plasterboard buildings where one wall costs too little to trigger the dip. PerCom 2018.
  • halperin2010_94f8 — the Linux 802.11n CSI Tool; how real hardware estimates the channel from the preamble. SIGCOMM 2010.
  • zhang2024_df4a — baseband channel formulation; the carrier-frequency phase that makes the channel frequency-selective; indoor segmentation by ray tracing. ICNC 2024.