Anton Lambrecht, Reda El Hail, Xianjun Jiao, Pieter Crombez, Dominique Schreurs, Peter Karsmakers, Adnan Shahid, Eli De Poorter (IDLab, Ghent University–imec + KU Leuven) — arXiv:2608.20322, August 2026

Three Radars on One Ceiling

Bolt an FMCW radar, an ultra-wideband pulse radio, and a Wi-Fi card to the same bedroom ceiling. Record the same twenty people, at the same instant, through the same neural network. For the first time, the differences that remain are the physics — and the physics has a plot twist.

Prerequisites: what a sine wave is + what an FFT does (roughly). Chirps, channel impulse responses, CSI, range-Doppler maps, and cross-validation are all built from zero.
10
Chapters
3×1
Radios, One CNN
20×6
People × Layouts
89.0%
Best Macro F1

Chapter 0: The Camera Nobody Wants

It is 3:12 in the morning in a care home. In room 14, an eighty-one-year-old resident has been turning over in bed, restlessly, for twenty minutes. Now she sits up on the edge of the bed. She stands. She takes four steps toward the bathroom in the dark.

Nobody knows any of this is happening.

If she makes it back to bed, the night nurse will never hear about the restlessness — even though restless nights, accumulating over weeks, are one of the earliest signals of health deterioration. If she falls, the first person to find out will be whoever opens the door at the 7 a.m. round. Four hours on a cold floor is the difference between a bruise and a hospital admission.

This is not a rare scenario, and it is getting less rare every year. By 2050, the global population aged over 60 is projected to reach 2.1 billion. Sleep problems are especially common in this group: a meta-analysis spanning 36 countries found that 40% of community-dwelling older adults experience poor sleep quality and 29% suffer from insomnia. These are not just uncomfortable numbers — poor sleep in older adults is strongly associated with increased fall risk, cognitive decline, dementia onset, and reduced quality of life. If you could watch the bedroom — reliably, continuously, every night — you could detect deterioration early, intervene in time, and catch the fall within seconds instead of hours.

The obvious answer, and why it is wrong

The obvious answer is a camera. Cameras are cheap, activity recognition from video is a mature field, and a camera would see the restlessness, the sit-up, the walk, and the fall in exquisite detail.

And nobody wants one. A camera in a bedroom — pointed at a person at their most vulnerable, recording them asleep, undressed, confused — is a privacy intrusion that most residents, families, and caregivers find unacceptable. This is not a guess: a survey of 304 informal caregivers of people with dementia rated radio-frequency (RF) sensing systems 4.0 out of 5 for acceptability, against 3.1 out of 5 for camera-based systems. The gap is the whole story. The best sensor is the one that people will actually allow into the room.

The design constraint that drives this entire paper: monitor a bedroom continuously, at night, without ever forming an image. Radio waves do exactly this. A radar illuminates the room with radio energy, the body reflects a little of it back, and motion modulates those reflections. What comes out is not a picture of a person — it is a pattern of velocities and delays. You can tell that someone stood up. You cannot tell who they are, what they look like, or what they are wearing. Privacy is not bolted on afterwards; it is a property of the physics.

What a radio actually "sees"

Before choosing between radio technologies, be sure the premise holds: how can a radio wave detect a person turning over in bed at all?

Start with a wave leaving a transmitter on the ceiling. It travels down, hits the room — floor, bed frame, wardrobe, human — and a fraction of the energy scatters back up to a receiver sitting next to the transmitter. The received signal is a superposition: the sum of many delayed, attenuated copies of the transmitted wave, one copy per reflecting path. Engineers call the collection of paths the multipath environment.

Now the crucial observation. The wardrobe's echo is the same tonight as it was last night: same delay, same strength, same phase. The floor's echo is the same. Every static object contributes a contribution that is constant in time. But the person's echo is not constant. When she rolls over, the path length from ceiling to torso to ceiling changes — and even a few millimetres of change matters, because the radio wavelengths here are centimetres or millimetres. A path-length change of half a wavelength flips the phase of that echo completely.

Think of the received signal as a long exposure photograph of waves. Everything static in the room burns in as a fixed background. Everything moving smears — and the smear pattern encodes how it moved: how fast (the rate of phase change, which Chapter 2 will name Doppler), how far away (the delay, if your radio can resolve it), and how large (the reflected energy). Human activity recognition from RF is the art of reading the smear.

That is the entire physical premise, and notice what it never involves: an image. The radio measures delays, phases, and amplitudes of invisible reflections. The "picture" of the bedroom it could reconstruct, even in principle, is blobs at coarse positions — which is exactly why the caregivers in that survey were more comfortable with it.

Notice also what the premise demands: separating the moving part of the signal from the static part. Every technology in this paper — and every preprocessing pipeline in Chapter 6 — is a different answer to the same two questions: how finely can you slice the room by distance, and how finely can you slice motion by speed? Hold onto those two questions; they will become the axes of every plot in this lesson.

Three radios walk into a bedroom

Say you accept the RF premise. You now face an engineering choice, because three very different radio technologies all claim to do contactless human sensing, and they occupy three very different corners of the design space.

FMCW radar (frequency-modulated continuous wave) is the sensing-first option: a purpose-built radar chip, the kind that ships in cars for cruise control. It sweeps a wide band of millimetre-wave spectrum and measures distance and velocity with remarkable precision. It is mature, it is accurate — and it is only a sensor. It cannot send a single bit of data; it has essentially no communication integration.

Wi-Fi sensing is the opposite corner: a communication-first technology that happens to leak sensing information. Every Wi-Fi packet carries, as a by-product of demodulation, an estimate of the radio channel it travelled through — and a person moving through that channel perturbs the estimate. The seduction is obvious: Wi-Fi is already everywhere, so perhaps sensing comes for free, with minimal additional infrastructure. The catch, as we will compute in Chapter 4, is that Wi-Fi's bandwidth is tiny, and bandwidth is exactly the resource that buys spatial resolution.

IR-UWB (impulse-radio ultra-wideband) sits in the middle. It transmits extremely short pulses over a wide band — wide enough for sharp ranging, narrow enough to stay cheap and low-power — and it is a genuine IEEE communication standard (802.15.4z): the same commercial off-the-shelf (COTS) chip that senses can also transmit data. It offers higher range resolution than Wi-Fi while keeping full communication capability.

 FMCW radarIR-UWBWi-Fi
IdentitySensing-first, communication: noneMiddle ground: senses and communicates (IEEE 802.15.4z)Communication-first, sensing as a by-product
Probe signalFrequency-swept chirps~2 ns pulsesOFDM data packets
Bandwidth in this study~1.19 GHz499.2 MHz20 MHz
The promisePrecisionBalanceUbiquity

Which one should watch room 14? Before this paper, you could not answer that question from the literature — and the reason why is itself worth understanding, because it is a lesson in experimental design.

Why twenty years of papers could not answer the question

Hundreds of studies have evaluated FMCW radar, IR-UWB, or Wi-Fi for human activity recognition individually. Each reports an accuracy. So why not just compare the numbers?

Because the numbers were produced under wildly different conditions, and every difference is a confound — an uncontrolled variable that offers an alternative explanation for the result. Walk through what actually differs:

Different hardware philosophies
IR-UWB studies mostly use sensing-oriented, non-IEEE-compliant research hardware in monostatic setups (one device transmits and receives). Wi-Fi studies almost exclusively use bi-static setups — a separate transmitter and receiver across the room — because commodity Wi-Fi devices split the transmitted and received signal across two boxes.
↓ so when accuracy differs…
Different geometry
The two comparative studies that pair radar with Wi-Fi both put a monostatic radar next to a spatially separated Wi-Fi link. The geometry changes together with the technology — you cannot tell whether the radar won because it is a better sensor or because it had a better viewing angle.
↓ and even if geometry matched…
Different data, different people, different rooms
One prior study evaluates IR-UWB with 30+ participants across seven environments but never separately characterises its Wi-Fi measurements; another compares both modalities but in a single laboratory with five participants. Different participants execute activities differently — the datasets are simply not the same experiment.

There is one more layer of confound hiding in the datasets themselves: most protocols instruct participants to repeat isolated actions — "wave your hand, twenty times, standing here." Repetition makes recognition easier and less realistic at the same time: it removes the messy transitions and execution variability of real behaviour, so the reported accuracy describes a task nobody actually needs solved.

The fix is old-fashioned experimental hygiene: change one variable. Mount all three radios on the same ceiling. Record them simultaneously, against a common time reference, while the same 20 participants perform the same naturally-flowing activities in the same six room layouts. Push all three data streams through the same convolutional neural network and the same evaluation protocols. Now — and only now — a difference in the final score can be attributed to the sensing technology itself. Every activity execution exists identically in all three recordings; the modality is the only thing that varies.
What prior work didWhat it left uncontrolled
Single-modality studies: FMCW-only, UWB-only, or Wi-Fi-only papersEverything — no comparison at all; accuracies live in incompatible experiments
IR-UWB with sensing-grade, non-IEEE hardware, monostaticResults do not transfer to the cheap COTS communication chips a deployment would use
Wi-Fi HAR on commodity devices, bi-static (separate TX and RX boxes)Geometry differs from any monostatic radar it might be compared against
SDR-based monostatic Wi-Fi radar (openwifi and similar)Existed, but was used almost only for respiration-rate sensing — not HAR
Cross-radar studies (custom UWB + mmWave) for domain adaptation or fusionSensing-first, non-IEEE platforms with similar principles; modality never isolated as the variable
Radar-vs-Wi-Fi comparisons (Chen et al.; Dahal et al.)Monostatic radar paired with a spatially separated Wi-Fi link — geometry and technology change together
Repeated-isolated-action protocolsTransitions and execution variability removed; accuracy describes an artificial task
Inline concept check — answer before reading on. Suppose a 2023 study reports 95% accuracy for wall-mounted FMCW and a 2024 study reports 88% for bi-static Wi-Fi, both on ten activities. Name three specific reasons this does not establish that FMCW is the better bedroom sensor.  …  Different mounting geometry (wall-mounted side view maximises radar cross-section; a ceiling deployment penalises differently), different participants and activity protocols (repeated isolated actions vs natural flows change task difficulty), and different classifiers/evaluation splits (a stronger model or a leakier cross-validation can add several points on its own). Any one of the three could account for a 7-point gap by itself.

Why the ceiling?

One more deliberate choice needs defending, because it makes the problem harder. Most prior work mounts the sensor on a wall or tripod, looking sideways at the person. Side-looking geometry maximises the radar cross-section — the effective area of the body that reflects energy back — because a standing human presents their full height and width to the beam. It is the flattering angle.

This paper mounts everything on the ceiling instead, and the reasons are practical rather than academic. A ceiling unit is out of reach, out of sight, and out of the way; it does not occupy a nightstand, cannot be knocked over or unplugged by a confused resident, and installs uniformly across hundreds of identical rooms. In real healthcare deployments, the ceiling is where the sensor will actually live. Yet ceiling-mounted sensing is comparatively rare in the literature — partly because looking straight down at a lying person yields a smaller, less favourable reflection. The paper deliberately evaluates the deployment that matters, not the one that flatters.

What the paper contributes, numbered

1. The controlled comparison
FMCW, IR-UWB, and Wi-Fi, recorded synchronously in an identical ceiling-mounted deployment, processed by the same learning pipeline, evaluated under multiple cross-validation protocols — so observed differences are attributable to the sensing technology, not the experimental design.
2. The signal-level explanation
A framework linking four physical properties — range resolution, Doppler resolution, antenna diversity, and spatial-information retention — to recognition performance and robustness, yielding practical preprocessing guidelines per technology.
3. The open dataset
Synchronized FMCW + IR-UWB + Wi-Fi recordings from 20 participants across six room layouts, published openly — so anyone can rerun, extend, or fuse.

The result, previewed — so you know what to hold the physics accountable for

Here is where the story lands, stated now so that every chapter in between has a destination. On the fine-grained task — distinguishing ten activities like walking, sitting down, lying on the bed, restless movement, eating, clapping — the ultra-wideband pulse radio wins when the test person is new but the room is familiar: 89.0% macro F1, against 83.4% for FMCW and 79.0% for Wi-Fi. But when the room layout is new — the bed moved to a position the network never saw — the ranking flips: FMCW holds steady at 83.8% while IR-UWB drops about ten points to 78.5% and Wi-Fi to 68.8%.

The winner depends on the question. And — this is the beautiful part — the reversal is not noise or luck. It follows from decisions made deep in the signal processing, about whether to keep or throw away one particular axis of information. By Chapter 8 you will be able to predict the reversal before seeing the table.

Meanwhile, for the coarse question a care home actually asks at night — is the resident quiet, restless, getting up, or wandering? — all three radios exceed 92% macro F1 in every condition, including unseen layouts. The cheapest radio in this study costs about fourteen euros. Hold that thought until Chapter 9.

What you will be able to do by the end. Derive each radio's range resolution from its bandwidth by hand (0.126 m, 0.30 m, 7.5 m — and the third number is bigger than the room). Compute a beat frequency and a Doppler resolution on paper. Explain why the preprocessing pipelines diverge — FMCW throws away range on purpose, IR-UWB keeps it, Wi-Fi never had it — and why that single divergence predicts which radar survives an unseen bedroom. Then pick the right radar for a deployment, with power, cost, localization, and communication on the table.

The night in room 14, replayed through the paper's labels

Return to the scenario that opened this chapter, and watch it again through the vocabulary the paper will formalise in Chapter 5 — because the scenario is the coarse label set, in order.

23:40 — NO ACTIVITY
A still sleeper, or an empty room. The state a monitor reports for most of every night — and must report confidently, because false alarms at 2 a.m. are how monitoring systems get unplugged.
02:52 — ANXIOUS
Twenty minutes of tossing and turning. Clinically the most valuable state: restlessness trends, accumulated over weeks, are early-warning data no once-a-day observation can provide.
03:12 — INTERRUPTION
She sits up on the bed edge and stands. Sleep is broken; the fall-risk window opens. A monitor that flags this in real time gives staff their chance to arrive before the walk.
03:13 — WANDER
Four steps toward the bathroom in the dark. The highest disruption level, and for a dementia ward the state that matters most: unaccompanied night wandering is the scenario every care protocol exists to catch.

Every radio in this paper will classify this night correctly more than 92% of the time — even in a room whose furniture arrangement it has never seen. The suspense of the paper is not whether contactless sleep monitoring works; it is what happens when you ask the harder, finer question, and which physics survives it.

How to read a comparison paper

One more tool before the physics: the experimental-design ledger. Any controlled comparison lives or dies by its separation of varied from fixed, so hold this table in mind for the rest of the lesson — every result in Chapter 8 will be an entry in the first row explained by an entry in the second:

 What it is here
The variable (deliberately varied)The sensing modality: FMCW vs IR-UWB vs Wi-Fi — and, inseparably, each modality's physics-mandated preprocessing
The controls (held fixed)Room, ceiling mount position, participants, activity executions (one shared recording!), time reference, labels, CNN architecture, evaluation protocols, metric
The stressors (systematically escalated)Novelty of the test condition: unseen person → unseen layout combination → unseen bed position
The confession (limits the authors state)Hardware and representation vary together, so the four explanatory properties cannot be causally isolated — the interpretation rests on consistency across results, not ablation

That last row is worth respecting. Good papers tell you what they cannot conclude; this one does, explicitly. The lesson will flag the same boundary when we reach it.

The route through this lesson

Chapters 1–4 — build the three machines
One shared mathematical framework for all three radios → FMCW chirps and beat frequencies → UWB pulses, echoes, and a nasty clock-drift problem → Wi-Fi channel estimates and the 7.5-metre range bin. Every resolution number derived by hand.
Chapters 5–7 — the experiment and the pipeline
The HomeLab bedroom, 20 people, six layouts, synchronized recording → three preprocessing pipelines that quietly make opposite choices about spatial information → one CNN, three cross-validation protocols of increasing cruelty.
Chapters 8–9 — the reveal and the decision
The accuracy-vs-robustness trade-off, read off the confusion matrices class by class → then the deployment view: watts, euros, localization, communication — and a decision procedure for choosing your radar.

One reading note. This lesson leans hard on hand arithmetic — you will divide 3×108 by various bandwidths more than once, on purpose. The three range resolutions (0.126 m, 0.30 m, 7.5 m) are the single most explanatory fact in the entire paper, and numbers you have computed yourself are numbers you believe.

Objections, answered before you raise them

"Why not a wearable?" Wearables work when worn. The population this monitoring serves — older adults, and especially people with dementia — forget devices, remove them, and resent them; a sensor that requires nightly compliance from the patient is a sensor that fails on exactly the bad nights. Contactless monitoring shifts the burden entirely off the person being cared for. (This is the standard motivation for the contactless framing the paper adopts; the paper itself takes non-intrusiveness as its starting requirement.)

"Why not a pressure mat in the bed?" A mat sees the bed and nothing else. The highest-stakes state in the whole label set — wandering, the resident walking the room at 3 a.m. — happens precisely when the person has left the instrumented surface. Room-scale sensing is the requirement; the bed is just one region of it.

"Why not a camera with on-device processing that never stores video?" Because acceptability is about trust, not architecture diagrams. A lens pointed at your bed is a lens pointed at your bed; the caregiver survey's 3.1/5 measures how people feel, and a privacy policy does not change what the hardware could do if compromised or misconfigured. RF sensing wins because the raw measurement itself — delays and phases — cannot embarrass anyone.

"Isn't a radar that tracks my movement also creepy?" A fair challenge, and the honest answer is a distinction: the radar reads that a body moved, roughly where, and how fast — the same information a floor creak gives a listener downstairs. It cannot read faces, expressions, clothing, screens, or documents. The caregiver survey suggests most people locate the creepiness line between those two bundles; a deployment still owes residents clear consent, which is why the paper's own protocol ran through two ethics committees.

"What about two people in the room?" Genuinely open. This study records one participant at a time, and nothing in this paper resolves the multi-person case — radar separation of multiple movers is an active research problem (easier with range and angle resolution, i.e. easier for FMCW than for Wi-Fi). File it with Chapter 9's open problems rather than the solved ones.

"If a 2026 paper had to build the fair comparison, what were RF-sensing companies shipping before it?" Products built on single-modality evidence and internal testing — which is exactly why a public, synchronized, open-data comparison matters. It converts "vendor A claims 95%" into "under identical conditions, here is what each physics can and cannot do."

Chapter 0 recap — six things now in your pocket. (1) The need: 2.1 billion over-60s by 2050; 40% poor sleep, 29% insomnia among older adults. (2) The constraint: bedrooms reject cameras — RF 4.0/5 vs camera 3.1/5 acceptability. (3) The physics: RF sensing reads motion-modulated reflections; no image exists. (4) The contenders: FMCW (sensing-first), IR-UWB (middle ground), Wi-Fi (communication-first). (5) The methodological sin of prior work: hardware, geometry, dataset, and evaluation all varied together. (6) The fix: one ceiling, one clock, one CNN, three protocols — plus an open dataset.

Map of the paper, map of the lesson

Paper sectionWhat it doesLesson chapter
I–II. Introduction, Related worksThe need, the confound audit, the ceiling gapCh. 0
III. System modelX[m,k], the s+d+w decomposition, per-technology physicsCh. 1–4
IV. Experimental setupHomeLab, hardware, participants, layouts, labelsCh. 2–5
V. MethodologyThree preprocessing pipelines, the CNN, the protocolsCh. 6–7
VI. Results and analysisThe trade-off, fold-level and per-class forensicsCh. 8
VII–VIII. Deployment trade-offs, ConclusionLocalization, power, cost, communication; the verdictCh. 9

Exercises before you move on

1. The confound hunt. Find any two published HAR accuracies for different sensing technologies (or imagine two: "radar 94%, Wi-Fi 87%"). List every uncontrolled difference you would need to rule out before attributing the gap to the technology. Check yourself: your list should include at least hardware class, mounting geometry, participants, activity protocol (isolated vs flowing), environment count, classifier, split design, and metric — eight axes, any one of which can span 7 points.

2. The acceptability ledger. For camera, wearable, pressure mat, and ceiling radar, write one sentence each on (a) what it observes, (b) when it fails silently, (c) why a resident might reject it. Check: the radar's silent-failure entry should worry you least for privacy and most for multi-person rooms — which this paper does not test.

3. Prediction, on the record. Before reading Chapter 8: write down which radio you expect to win fine-grained recognition with unseen people, and which will survive an unseen bed position best. Keep the note. The lesson is designed so that by Chapter 6 you will want to change your answer — and the change will be the learning.

Cross-domain bridge
Controlled comparison is ablation, wearing lab clothes
What this paper does to sensors is exactly what a careful ML paper does to architectures: hold everything fixed, vary one component, attribute the delta. The synchronized recording plays the role of the shared random seed and shared dataset; the identical CNN plays the role of the shared training recipe. If you have ever refused to believe a benchmark win because the baselines used different data augmentation — you already have the instincts this chapter formalises.
Prior studies had already evaluated FMCW, IR-UWB, and Wi-Fi separately, each reporting accuracies. Why could those published numbers not be compared to decide which sensing technology is better?

Chapter 1: One Framework, Three Radios

Here is the situation on the ceiling of that bedroom. Three boxes hang side by side. One emits frequency-swept chirps sixty billion cycles per second fast. One spits out two-nanosecond pulses. One transmits ordinary Wi-Fi packets. Below them, a participant rolls over in bed — once.

Three completely different physical measurements now exist of that single roll. The FMCW radar recorded beat signals. The UWB radio recorded channel impulse responses. The Wi-Fi card recorded channel state information. Three names, three acquisition principles, three data formats — and if you leave them in three formats, you cannot compare them fairly, because every downstream choice (how to window, how to transform, what to feed the network) would have to be invented three times, differently.

The paper's first quiet contribution is a modelling move: all three measurements are the same kind of object. This chapter builds that object, because everything else in the paper — the preprocessing, the CNN inputs, even the final trade-off — is phrased in its language.

Every radio samples the same channel

Recall the physical picture from Chapter 0: the received signal is a sum of delayed, attenuated echoes — the multipath environment. The environment itself does not care which radio probes it. The wardrobe reflects chirps, pulses, and packets alike; so does the person. Each technology is just a different question asked of the same dynamic channel:

Each question gets asked over and over, hundreds of times per second. So every technology naturally produces a sequence of snapshots of the channel. Stack the snapshots as rows and you get a matrix.

The measurement matrix

X(j) = x(j)[m, k],    1 ≤ m ≤ Mj,   1 ≤ k ≤ Kj,    j ∈ { FMCW, IR-UWB, Wi-Fi }

Read every symbol. The superscript j names the technology. The row index m is slow-time: it counts successive probes — chirp number, pulse number, packet number. The column index k is the fast dimension: it indexes within one probe's answer, and what it physically means depends on the technology. Each entry x(j)[m,k] is a complex number — an amplitude and a phase.

"Slow" and "fast" are radar jargon worth internalising, because the whole paper runs on this split. Fast-time events happen within one probe: the microseconds of one chirp, the nanoseconds of one pulse echo. Slow-time events happen across probes: the milliseconds between chirps, over which a human body actually moves. Human motion is glacial on the fast-time scale and lively on the slow-time scale — which is precisely why the two axes carry different information.

A ninety-second refresher: complex numbers as arrows

Each matrix entry is a complex number, and if that phrase produces any anxiety, spend ninety seconds here — the entire paper runs on one picture.

A complex number is an arrow: it has a length (the amplitude — how strong the echo is) and a direction (the phase — where in its cycle the wave was when it arrived). Radio receivers measure both, delivering each sample as an in-phase/quadrature (IQ) pair — the arrow's horizontal and vertical components. Adding echoes means adding arrows tip-to-tail: two echoes pointing the same way reinforce; two pointing oppositely cancel. That is multipath interference in one sentence.

Why insist on the arrow instead of just the length? Because the direction turns far more sensitively than the length grows. Move a reflector by one wavelength of round-trip path and its arrow rotates a full 360° while its length barely changes. At the wavelengths in this paper — 4.8 mm for FMCW, 4.6 cm for IR-UWB — that means millimetre- and centimetre-scale body motions produce enormous, easily measurable phase rotations. Amplitude sees the person shift; phase sees them breathe. Every "phase drift" crisis and "phase correction" triumph in Chapters 3 and 4 is about protecting this exquisitely sensitive direction measurement from being scrambled.

The one picture to keep: each cell of X is an arrow. Down a column (fixed k, sliding m), static echoes contribute a frozen arrow; a moving person contributes a slowly spinning one; noise adds a tiny random jitter. The spinning is the signal. All of radar signal processing is bookkeeping about arrows.

How many rows does the matrix have? If you observe for a window of duration w, and technology j delivers srj probes per second:

Mj = w · srj

where w is the observation window in seconds and srj is the slow-time sampling rate of technology j. Concrete numbers from the paper's hardware, for the 2.5-second analysis window everything will use:

TechnologySlow-time rate srjWhere it comes fromRows in a 2.5 s window
IR-UWB150 HzOne CIR every 6.67 ms (1 / 0.00667 s = 150)2.5 × 150 = 375 CIRs
Wi-Fi500 Hz (mean)Packets every ~2 ms on average — irregular, the MAC layer decides2.5 × 500 = 1250 packets
FMCWFrames every 50 ms; 96 chirp loops per frameThe chip transmits chirps in bursts (frames), not a steady stream2.5 / 0.05 = 50 frames of 96 chirps

And the columns? The fast dimension Kj is where the three technologies genuinely differ, because it inherits its meaning from the acquisition physics:

Kj = Ns (beat-signal samples per chirp) for FMCW  |   Nf (fast-time delay bins) for IR-UWB  |   Nc (OFDM subcarriers) for Wi-Fi

For FMCW, k walks through the digitised samples of one chirp's beat signal — Chapter 2 will show these encode range as frequency. For IR-UWB, k walks through delay bins of the echo — range as arrival time, directly. For Wi-Fi, k walks through the 53 subcarriers of the OFDM signal — frequencies, from which range could in principle be computed, if only there were enough of them spanning enough bandwidth. (There are not. Chapter 4 is about exactly how "not".)

One matrix, three readings of the columns. The same index k means "beat sample" on one box, "delay bin" on the next, "subcarrier" on the third. The unified framework does not pretend the technologies are identical — it pins down precisely where they differ: in what the fast axis means and how finely it slices the world. Every performance difference in Chapter 8 will trace back to this one sentence.

The decomposition: static + dynamic + noise

Now the payoff of stacking snapshots. Look down any single column k of the matrix — one delay bin, say, watched over hundreds of successive pulses. What does that column contain? Independently of the modality, each measurement splits into three parts:

x(j)[m, k] = s(j)[k] + d(j)[m, k] + w(j)[m, k]

Read the indices before the letters — they carry the meaning. The static term s(j)[k] has no m: it does not depend on slow-time. This is the wardrobe, the bed frame, the walls — every echo that is the same on probe one and probe one thousand. The dynamic term d(j)[m, k] depends on both indices: it is the structured variation in amplitude and phase induced by human motion, changing from probe to probe. The noise term w(j)[m, k] is measurement noise — also varying, but unstructured.

Say it in one line, because it is the most important line in the paper's system model:

The activity information lives entirely in d(j)[m, k] — the dynamic component. The static component s is a nuisance to be estimated and subtracted; the noise w is a nuisance to be averaged away; and everything Chapter 6 does — DC removal, background medians, first-path corrections, Doppler transforms — is one of exactly two moves: remove s, or expose the structure of d along the slow-time axis m. If you understand this decomposition, the three preprocessing pipelines stop being recipes and become obvious.

Why is the structure of d along m so informative? Because a moving body changes path lengths continuously, and a continuously changing path length shows up as a steadily rotating phase in that column of the matrix. The rotation rate is proportional to the body's radial velocity. A Fourier transform along the slow-time axis therefore converts "phase rotation per probe" into a spectrum of velocities — the Doppler spectrum. Walking, sitting down, and restless turning each paint recognisably different velocity-versus-time signatures. This is the "smear pattern" of Chapter 0, now with math under it.

A toy column, by hand

Make the decomposition concrete with a miniature example (illustrative numbers, not from the paper). Watch a single fast-time bin over five successive probes, with a static echo of 1.00 (constant phase 0°), a person's echo of amplitude 0.30 whose phase advances 60° per probe, and noise small enough to ignore:

Probe mStatic sDynamic d[m]Measured x[m] = s + d[m]
11.00 ∠0°0.30 ∠0°1.30 ∠0°
21.00 ∠0°0.30 ∠60°1.17 ∠12.8°
31.00 ∠0°0.30 ∠120°0.89 ∠17.0°
41.00 ∠0°0.30 ∠180°0.70 ∠0°
51.00 ∠0°0.30 ∠240°0.89 ∠−17.0°

Two things to notice. First, the measured signal wobbles in both amplitude and phase even though the static part never moved — a moving reflector superimposed on a static one modulates everything. Second, subtract the constant 1.00 from every row (that is "remove s") and what remains is a clean rotating phasor at 60° per probe: a single Doppler tone, whose frequency tells you the person's radial speed. Averaging along m to estimate s, then subtracting — you have just invented DC removal, the first step of the FMCW pipeline in Chapter 6.

Sim D — static + dynamic + noise, live

One cell of the measurement matrix, watched down its slow-time column. Left: the arrows — frozen static echo (grey), spinning person echo (teal), and their sum (warm), which is what the radio actually measures. Right: the measured signal over slow-time, and its Doppler spectrum. Press the button to subtract the static component and watch the spectrum's giant zero-Doppler spike vanish, leaving only the person's tone.

Person speed

Push the toy one step further and you have invented Doppler processing too. Take the six-probe extension of the dynamic column — the arrow at 0°, 60°, 120°, 180°, 240°, 300° — and feed it to a 6-point discrete Fourier transform. The DFT asks, for each candidate rotation rate, "how well does the data match an arrow spinning at exactly this rate?" At the candidate rate of one-sixth of a cycle per probe (= 60°), every de-rotated sample points the same way: the sum has magnitude 6 × 0.30 = 1.80 — a sharp peak. At every other candidate rate the six de-rotated arrows point in six symmetric directions and sum to zero. One peak, at the bin encoding the person's speed; nothing anywhere else. That peak, computed per range bin per window, is precisely what "Doppler spectrum" will mean for the rest of this lesson.

And now you can see why failing to remove s first would hurt: leave the constant 1.00 in place and the DFT finds a second, six-times-taller peak at rotation rate zero. In a real room the static echoes are not 3× the person's — they can be orders of magnitude stronger. The zero-Doppler ridge would tower over every motion signature, and any classifier looking at the map would spend its capacity on furniture. Clutter removal is not cosmetic; it is what makes the motion visible at all.

The three nuisances, and where each pipeline fights them

The decomposition names two enemies (s and w). Real hardware adds a third the equation hides: imperfections in the sampling itself — clocks that drift, packets that arrive off-schedule. Here is the full campaign map, as a preview of Chapter 6:

NuisanceWhat it does to XFMCW's weaponIR-UWB's weaponWi-Fi's weapon
Static clutter s[k]Giant zero-Doppler ridge drowning motionDC removal per frame (subtract per-range-bin mean over 96 chirps)Running median over 10 s per range-Doppler cellRunning median over 10 s per Doppler bin
Noise w[m,k]Random arrow jitter on every cellNon-coherent sum over 12 virtual antennas— (single channel; its structural weakness)Magnitude average over 53 subcarriers
Sampling imperfectionPhase scrambled or grid warped— (one chip, one clock)TX/RX clock drift → first-path phase subtractionMAC-layer packet jitter → interpolation to uniform 500 Hz

Read the table's empty cells as carefully as its full ones. FMCW's row of "no problem" entries in the third line comes from being a single chip with a single oscillator — a hardware luxury. IR-UWB's empty cell in the second line — no diversity weapon at all — is the deficiency that will force its pipeline to keep the range axis in Chapter 6, which in turn becomes the hinge of the entire paper in Chapter 8. Structural weaknesses propagate a long way.

How fast must slow-time tick?

A natural worry about the slow-time rates: is 150 Hz, or 96 chirps per frame, actually enough? The question is Nyquist's, wearing radar clothes. The Doppler information rides on a phase that rotates as the person moves; sample that rotation too slowly and a fast rotation is mistaken for a slow one — aliasing, the wagon-wheel-spinning-backwards illusion. The unambiguous limit, as the paper states it:

vmax = λ / (4 Tslow)

where Tslow is the slow-time sampling interval — the chirp repetition period for FMCW, the frame or packet interval for IR-UWB and Wi-Fi. The logic: between successive probes the phase must advance less than half a turn (π), and the round-trip geometry contributes 4πvTslow/λ of advance — set them equal and solve. Check IR-UWB by hand: λ = 4.62 cm, Tslow = 6.67 ms,

vmax = 0.0462 / (4 × 0.00667) = 0.0462 / 0.0267 ≈ 1.73 m/s

and FMCW with the 0.52 ms repetition bound from its 96-chirps-per-50 ms frames: 0.00484 / (4 × 0.00052) ≈ 2.3 m/s. The paper's summary judgement: all three technologies comfortably exceed the velocities of typical in-room human motion — especially when seen from a ceiling, where a walking body's velocity is mostly horizontal and only its modest radial component (toward or away from the sensor) registers. The slow-time rates were chosen with this budget in mind; none of the failures in Chapter 8 will be aliasing failures.

The learning problem, stated once

With the measurement object defined, the task of the whole paper fits in one line. For each modality j, learn a classification function

f ( X(j) ) = A

mapping an observation matrix (one 2.5-second window of channel snapshots) to the activity label A of that window — one of ten fine-grained activities, or one of four sleep-disruption levels, defined in Chapter 5. Crucially, f will have the same architecture for all three modalities (Chapter 7), so that the quality of f's answers measures the quality of X(j)'s information — not the cleverness of a per-modality model.

 FMCWIR-UWBWi-Fi
Probe waveLinear frequency chirp~2 ns impulseOFDM data packet
Raw measurementBeat signal per chirpCIR per packetCSI per packet
Slow-time m countsChirps (96 per 50 ms frame)Pulse packets (150 Hz)Wi-Fi packets (~500 Hz, irregular)
Fast axis k meansBeat samples → range as frequencyDelay bins → range as arrival timeSubcarriers → frequency response
Where the person shows upIn all three: as the dynamic component d[m,k] — structured variation along slow-time
Inline concept check. A colleague says: "Wi-Fi CSI and radar are apples and oranges — you can't put them in one framework." What is the two-sentence rebuttal?  …  Both are repeated complex-valued snapshots of the same multipath channel, so both stack into a slow-time × fast-dimension matrix that decomposes into static + dynamic + noise. The technologies differ only in what the fast axis means (beat samples vs delay bins vs subcarriers) and how fast slow-time ticks — which is exactly the difference the paper wants to measure.

The notation, banked for the rest of the lesson

Every symbol the next eight chapters will use, in one table. Bookmark this — the paper's entire mathematical vocabulary is smaller than it looks:

SymbolMeaningIntroduced
X(j), x(j)[m,k]Measurement matrix of technology j; complex entry at slow-time m, fast index kCh. 1
m, MjSlow-time index (probe number); number of probes in a window, Mj = w · srjCh. 1
k, KjFast-dimension index; its size (Ns beat samples / Nf delay bins / Nc subcarriers)Ch. 1
w, srjObservation window duration (2.5 s); slow-time sampling rate of technology jCh. 1
s[k], d[m,k], w[m,k]Static, dynamic, and noise components of a measurementCh. 1
f0, B, Tc, μChirp start frequency, swept bandwidth, chirp duration, chirp rate μ = B/TcCh. 2
τ, fbRound-trip delay 2R/c; beat frequency 2μR/cCh. 2
Δφ, Tr, λ, vInter-chirp Doppler phase 4πvTr/λ; chirp repetition period; wavelength; radial velocityCh. 2
ΔRRange resolution c/(2B): 0.126 / 0.30 / 7.5 mCh. 2–4
Ap, τp, αp[m]Amplitude and delay of multipath component p (CIR); its complex attenuation at slow-time m (CSI)Ch. 3–4
kfpFast-time index of the first path (the phase-correction reference)Ch. 3
fk, NcFrequency of subcarrier k; number of subcarriers (53)Ch. 4
RDM[p,q] / RDMW[k,q]Range-Doppler map: FMCW per-frame per-antenna / IR-UWB per-windowCh. 6
S[t,q], Tbg, 𝒩Wi-Fi time-Doppler map; background-median span (10 s); temporal neighbourhoodCh. 6
Δv, TobsDoppler resolution λ/(2Tobs); coherent observation intervalCh. 6
vmax, TslowUnambiguous velocity λ/(4Tslow); slow-time sampling intervalCh. 1
f(·), AThe shared CNN classifier; the activity label of a windowCh. 1, 7
Chapter 1 recap. (1) All three radios measure the same dynamic multipath channel; only the probe differs. (2) Everything stacks into X[m,k]: slow-time rows, modality-specific fast columns. (3) x = s + d + w, and the activity lives in d — every preprocessing step is "remove s" or "expose d's structure along m". (4) Complex samples matter because phase turns a wavelength of motion into a full rotation — millimetre sensitivity. (5) A DFT along slow-time converts phase rotation into a velocity spectrum; without clutter removal, the zero-Doppler ridge buries it. (6) Slow-time rates comfortably clear the Nyquist budget vmax = λ/(4Tslow) for in-room motion.

Exercises

1. Row counting. How many slow-time rows does each technology contribute to a 4-second observation? Worked: IR-UWB 4 × 150 = 600 CIRs; Wi-Fi 4 × 500 = 2000 packets (on average — the schedule is irregular); FMCW 4 / 0.05 = 80 frames of 96 chirps = 7680 chirps. Note which of those three multiplications hid an asterisk (the Wi-Fi one: mean rate).

2. Complete the decomposition. A fast-time bin over four probes reads 2.20, 2.35, 2.20, 2.05 (real part only, noise negligible). Estimate s and the amplitude of d. Worked: the mean 2.20 estimates s; the residuals +0, +0.15, +0, −0.15 oscillate with amplitude 0.15 — a sinusoid completing half a cycle per probe pair. You have just done DC removal by hand, again.

3. Nyquist audit. Suppose a cost-cut UWB configuration acquired one CIR every 20 ms instead of 6.67 ms. Recompute vmax and judge it. Worked: vmax = λ/(4Tslow) = 0.0462/(4 × 0.02) = 0.58 m/s. Marginal: brisk in-room radial motions would alias. The 150 Hz choice is not generosity; it is margin.

4. Spot the modality. A colleague hands you a measurement matrix: 1250 rows, 53 columns, sampled irregularly before interpolation. Which radio, and what window duration? Worked: 53 columns = OFDM subcarriers = Wi-Fi; 1250 rows at 500 Hz = 2.5 s. The matrix's shape alone identifies the physics — which is rather the point of this chapter.

Cross-domain bridge
s + d + w is background subtraction, is DC blocking, is detrending
The same decomposition runs through half of engineering: computer vision's background subtraction (static scene vs moving foreground vs sensor noise), audio's DC blocking and noise floors, finance's detrending before spectral analysis. In every case the discipline is identical — name which component carries your signal, estimate the others, remove them without damaging the one you keep. Our Bayes filter lesson plays the same game with state and measurement noise.
In the decomposition x[m,k] = s[k] + d[m,k] + w[m,k], why does the static component s carry the index k but not the index m — and why does that make the activity information live in d?

Chapter 2: FMCW: The Chirp Machine

How do you measure the distance to something using a wave? The obvious way: send a short blip, start a stopwatch, and time the echo. Light travels 30 cm per nanosecond, so a wardrobe 2 m away returns its echo after 13.3 nanoseconds. Build a nanosecond stopwatch and you have a radar. (That, roughly, is what IR-UWB does — Chapter 3.)

FMCW radar takes a sneakier route, and the sneak is worth savouring because it converts an impossibly fast timing problem into an easy frequency problem. Instead of a blip, transmit a chirp: a continuous tone whose frequency glides upward at a perfectly steady rate — like a siren sweeping from low to high. In this paper's hardware, the Texas Instruments IWR6843AOP, the sweep runs through the 60–64 GHz millimetre-wave band, covering roughly B ≈ 1.19 GHz of bandwidth per chirp.

stx(t) = Atx exp( j 2π ( f0 t + (μ/2) t² ) )

Every symbol: Atx is the transmit amplitude; f0 is the start frequency of the sweep (around 60 GHz); μ = B/Tc is the chirp rate — how many hertz of frequency the sweep gains per second — where B is the swept bandwidth and Tc the chirp duration. Differentiate the phase and divide by 2π: the instantaneous frequency is f0 + μt, a straight line from f0 to f0 + B. That straight line is the whole trick.

The mixer trick: delay becomes pitch

The echo from a target at range R is a delayed replica of the transmitted chirp — delayed by the round trip time τ = 2R/c. Now do the one clever thing FMCW does: feed the echo and the live transmit signal into an analog mixer, a device that multiplies them. Multiplying two sinusoids produces sum and difference frequencies; low-pass filtering keeps the difference. And what is the difference in frequency between a ramp and a delayed copy of itself?

Picture the two ramps on a frequency-vs-time plot (the simulation below draws exactly this). At any instant, the transmit ramp has been climbing for τ seconds longer than the echo ramp. Since both climb at μ Hz per second, the vertical gap between them is constant: μτ. The mixer output is therefore a single steady tone — the beat signal — at the beat frequency:

fb = μτ = 2μR / c

where R is the target's range and c the speed of light. Range has become pitch. A nanosecond-scale delay — hopeless to time directly with cheap electronics — now lives as a kilohertz-scale audio-band frequency, which an ordinary ADC samples comfortably and an FFT reads off instantly. Multiple targets? Each produces its own tone; the FFT of one chirp's beat signal is the room's range profile, one spectral peak per reflector.

For the algebra-inclined, the mixer's magic in three lines. The transmit phase is θ(t) = 2π(f0t + μt²/2); the echo carries θ(t − τ). The mixer forms the product and the low-pass filter keeps the term oscillating at the phase difference:

θ(t) − θ(t−τ) = 2π( f0τ + μτt − μτ²/2 )

Read the three terms. The middle one, 2πμτ·t, grows linearly with time — a tone at frequency μτ: the beat. The first, 2πf0τ, is a constant phase offset — and a treasure: it contains the carrier's view of the delay, and it is this term that shifts by 4πvTr/λ between chirps when the target moves, giving us Doppler below. The last, πμτ², is a tiny fixed residual (for τ in nanoseconds, negligible). One multiplication, and delay has been split into a frequency you can read cheaply and a phase you can track precisely.

Why 60 GHz? The economics of millimetre waves

Nothing in the FMCW principle requires millimetre waves — automotive radars run at 77 GHz, older systems at 24 GHz. Three converging reasons put this sensor at 60–64 GHz. First, spectrum: multi-gigahertz swaths of contiguous unlicensed bandwidth exist up there, and Chapter 2's central formula says bandwidth is range resolution — the ~1.19 GHz sweep that buys 0.126 m cells simply does not fit in the crowded bands below 6 GHz. Second, geometry: antenna elements are sized to the wavelength, and at λ ≈ 5 mm an entire 3×4 antenna array fits on the chip package — that is what the "AOP" in IWR6843AOP means, antennas-on-package. No PCB antenna design, no RF layout expertise, no external components: the radar is genuinely single-chip, which is what makes the ~EUR 20 price of Chapter 9 possible. Third, phase sensitivity: the shorter the wavelength, the more phase rotation per millimetre of motion — at 5 mm wavelengths, sub-millimetre body motions are measurable, which is the raw material of micro-Doppler.

The trade, honestly stated: millimetre waves attenuate faster, reflect more specularly, and barely penetrate obstacles — a person behind a wardrobe door is gone. In a single bedroom with a ceiling vantage, none of these bite hard; across a whole apartment they would.

Why this matters for a 14-euro-vs-20-euro decision later: the beat trick is why FMCW gets away with sweeping 1.19 GHz of bandwidth while digitising only a narrow beat signal. The hardware pays for bandwidth at the analog front end, not at the ADC. That is how a single-chip radar delivers centimetre-scale range resolution at consumer prices.

Worked example 1: the range resolution, by hand

How far apart must two objects be before their beat tones are distinguishable? Two targets at ranges R and R + ΔR produce beats separated by Δfb = 2μΔR/c. But a tone observed for only Tc seconds has a spectral width of about 1/Tc — the fundamental FFT resolution limit. The tones are resolvable when their separation exceeds that width:

2μΔR / c ≥ 1/Tc   ⇒   ΔR ≥ c / (2 μ Tc) = c / (2B)

The chirp rate cancels against the chirp duration, leaving only the swept bandwidth B. This is the single most important formula in the paper — it will decide the fates of all three radios. Plug in FMCW's numbers, by hand:

ΔR = c / (2B) = (3 × 108) / (2 × 1.19 × 109) = (3 × 108) / (2.38 × 109) = 0.126 m

Twelve point six centimetres. A lying adult occupies roughly a dozen of these range cells; a seated one, several. The radar does not see "a person" — it sees head-echo, torso-echo, knee-echo in separate bins, each with its own motion. Keep this number next to the ones coming in Chapters 3 and 4: 0.126 m vs 0.30 m vs 7.5 m — a bandwidth ratio of roughly 2 : 1 : 0.04.

Worked example 2: a beat frequency you can hear

Let us compute an actual beat tone for a target 2 m below the ceiling. We need the chirp rate μ = B/Tc, so we need a chirp duration. The paper's Table II fixes the exact timing; what the text gives us is that 96 chirp loops fit in each 50 ms frame, which bounds the repetition period per loop:

Tr ≤ 50 ms / 96 = 0.521 ms

The active chirp is somewhat shorter than the repetition period (frames include idle time between chirps — a fact we will actually measure from the paper's own Doppler resolution in Chapter 6). For the arithmetic, take an illustrative Tc = 0.52 ms:

μ = B / Tc = (1.19 × 109) / (5.2 × 10−4) ≈ 2.29 × 1012 Hz/s

Two thousand billion hertz per second of sweep rate. Now the delay for R = 2 m:

τ = 2R/c = 4 / (3 × 108) = 1.33 × 10−8 s = 13.3 ns

And the beat:

fb = μτ = (2.29 × 1012) × (1.33 × 10−8) ≈ 3.05 × 104 Hz ≈ 30 kHz

A 13-nanosecond delay — the time light takes to cross a bedroom and return — has become a 30 kHz tone, squarely in the range of a modest ADC. Sanity-check the resolution claim while we are here: a second target at 2.126 m (one range cell further) beats at fb + 2μ(0.126)/c = fb + 1.92 kHz, and 1.92 kHz is exactly 1/Tc = 1/0.52 ms — one FFT bin. The algebra closes.

Sim A — the chirp, the echo, and the beat

Drag the range slider. The top panel shows transmit and echo chirps on a frequency-vs-time plot — the echo's delay τ is exaggerated for visibility, but the readouts use the real numbers derived above (μ = 2.29 × 1012 Hz/s). The vertical gap between the ramps is the beat frequency; the bottom trace is the beat signal itself, whose pitch grows with range.

Target range 2.0 m

Play with the extremes. At 0.5 m the ramps nearly coincide and the beat is a lazy low tone; at 6 m the gap widens and the beat races. The mapping is perfectly linear — double the range, double the pitch — which is why one FFT recovers every reflector's distance simultaneously.

Velocity: the phase between chirps

Range came from within one chirp (fast-time). Velocity comes from between chirps (slow-time) — exactly the split Chapter 1 promised. Write the measurement matrix for a single target, as the paper does:

x(FMCW)[m, k] = A exp( j 2π ( fb k / fs + Δφ m / 2π ) ) + w[m, k]

Symbols: A the echo amplitude; k the ADC sample index within a chirp, sampled at rate fs, so the first phase term is the beat tone playing out along fast-time; m the chirp index; w[m,k] complex Gaussian noise. And the second term:

Δφ = 4π v Tr / λ

is the inter-chirp Doppler phase shift: v the target's radial velocity, Tr the chirp repetition period, λ the wavelength. The intuition: between two chirps, a target moving at v changes the round-trip path by 2vTr; each wavelength of path change is 2π of phase; hence 2π · 2vTr/λ. A static target (v = 0) has constant phase from chirp to chirp; a moving person's phase rotates, at a rate proportional to speed.

Feel the sensitivity with numbers. At mid-band, 62 GHz, the wavelength is λ = c/f = (3 × 108)/(62 × 109) ≈ 4.84 mm. For a body moving at a gentle v = 0.5 m/s with Tr = 0.52 ms:

Δφ = 4π × 0.5 × (5.2 × 10−4) / (4.84 × 10−3) = 4π × 0.0537 ≈ 0.68 rad ≈ 39° per chirp

Thirty-nine degrees of phase per half-millisecond, from strolling speed. Millimetre waves are exquisitely sensitive motion detectors — a quarter-wavelength of body sway, just over a millimetre, is already 90° of round-trip phase. This is why a radar on the ceiling can see a sleeper's restlessness at all.

Two sanity checks on the phase-shift formula before moving on. Direction: a target moving toward the radar shortens the path, so the phase advances one way; moving away, the other — the sign of the rotation encodes approach versus retreat, which is why Doppler axes run from negative to positive velocities with static clutter at zero. Aliasing: the rotation must stay under half a turn per chirp to be unambiguous — Δφ < π gives v < λ/(4Tr) ≈ 2.3 m/s with our derived numbers, the vmax budget from Chapter 1, comfortably above indoor radial speeds seen from a ceiling.

The 2D-FFT: the range-Doppler map

Look at the single-target matrix again: the phase advances linearly in k (rate set by range) and linearly in m (rate set by velocity). A linear phase is exactly what a Fourier transform turns into a sharp peak. So take a frame of 96 chirps and apply a 2D-FFT — one FFT along fast-time k, one along slow-time m. The result is the range-Doppler map (RDM): a 2D image with range on one axis, radial velocity on the other, and each moving reflector lighting up a pixel at its (distance, speed) coordinate. A person mid-stride is not one pixel but a little constellation — torso at walking speed, one leg swinging faster, the other planted — the micro-Doppler signature that makes activities recognisable.

Sim H — the micro-Doppler gallery

Stylised time-Doppler signatures of four of the paper's activity classes, painted live (illustrative shapes, not recorded data). Velocity on the vertical axis, time flowing left; zero-Doppler in the middle. These textures — the walking braid, the stand-up surge, the anxious flicker, the clap spikes — are what the CNN actually learns to recognise, and note that not one of them requires knowing where the person is.

Micro-Doppler deserves a moment, because it is the actual feature the CNN will learn. A rigid object — a drone, a car — occupies one velocity at a time; its Doppler trace is a clean line. A human is a walking mechanism of hinged parts, each with its own instantaneous radial velocity: during a stride, the torso translates steadily while the swinging leg briefly moves at twice torso speed and the planted foot sits at zero. Plot Doppler versus time and a walker paints a characteristic braid — a strong torso ridge with periodic limb flourishes above and below it. A stand-up paints a single asymmetric surge (torso accelerating upward, then braking). Restless in-bed motion paints low-velocity flicker with no locomotion ridge. Clapping paints brief, sharp, near-symmetric spikes. These textures are what distinguish the ten classes of Chapter 5 — and notice that none of them require knowing where the person is. That observation is FMCW's entire strategy in Chapter 6.

FFT along k (within a chirp)
Beat frequency → range. Resolution c/(2B) = 0.126 m.
+
FFT along m (across 96 chirps)
Phase rotation rate → radial velocity. Resolution set by how long you watch (Chapter 6).
=
Range-Doppler map
The room as a (distance, speed) image, refreshed every 50 ms frame.

Twelve looks at once: virtual antennas

One more hardware gift. The IWR6843AOP carries 3 transmit and 4 receive antennas on the package. Each transmit–receive pairing measures the scene along a slightly different effective path, so the chip synthesises Nr = 3 × 4 = 12 virtual channels — twelve independent range-Doppler maps per frame, from one chip. (The paper defines a virtual antenna simply as a TX–RX antenna pair.)

Why does 3 × 4 give 12 independent looks rather than 7 antennas' worth? Because what matters is the pair: the signal that TX antenna i sends and RX antenna j receives traverses a path whose geometry depends on both endpoints. Each of the 12 (i, j) combinations samples the wavefield as if a separate little radar sat at a distinct effective position — the "virtual" array. The chip time-multiplexes the three transmitters (they take turns, chirp by chirp, within each frame — part of why the frame's coherent time in Chapter 6 will turn out shorter than 50 ms), and the four receivers listen in parallel; software reassembles the 12 channels.

Twelve looks buy two things. In general radar practice they buy angle: the phase differences across the virtual array locate a target's direction, which is how FMCW will later claim genuine 3D localization (Chapter 9). In this paper's recognition pipeline they buy something humbler and, it turns out, decisive: diversity for noise suppression. Sum the twelve RDM magnitudes and the person's echo — present in all twelve — reinforces, while noise — independent across channels — averages down. Chapter 6 performs exactly this non-coherent summation, and Chapter 8 credits it as one of the four properties behind FMCW's robustness.

A useful way to file this chapter: FMCW's design keeps making the same purchase. Wide bandwidth buys sharp range cells. Twelve channels buy signal-to-noise. Millimetre wavelength buys phase sensitivity. Every purchase is aimed at one goal — isolating the moving person's return cleanly from everything else — and in Chapter 6 that clean isolation is precisely what licenses the radical move of throwing the position information away. FMCW spends lavishly on spatial resolution in order to be able to afford not using it.

FMCW ingredientValue hereWhat it buys
Swept bandwidth B~1.19 GHz (60–64 GHz band)0.126 m range cells — body regions separated from clutter
Mixer + beat signalfb = 2μR/c (≈30 kHz at 2 m)Cheap ADC reads nanosecond delays as audio-band tones
Chirp train96 loops per 50 ms frameInter-chirp phase → velocity; 20 Doppler snapshots/s
Wavelength λ≈4.8 mm39° of phase per chirp at 0.5 m/s — micro-Doppler texture
Virtual array3 TX × 4 RX = 12 channelsNon-coherent SNR gain now; 3D localization capability later

Realize it: a range-Doppler map in fifteen lines

Concept without realization is decoration, so here is the entire FMCW measurement model as runnable NumPy — simulate one frame's beat signals for a moving target, then recover its range and velocity with the 2D-FFT. Every constant comes from this chapter's arithmetic.

# One FMCW frame: 96 chirps of a target at R=2 m moving at v=0.5 m/s
import numpy as np

c, B, Tc   = 3e8, 1.19e9, 0.52e-3   # speed of light, sweep, chirp time
mu, lam    = B/Tc, 4.84e-3              # chirp rate 2.29e12 Hz/s, wavelength
Ns, Nc, fs = 256, 96, 256/Tc            # fast samples, chirps, ADC rate
R, v       = 2.0, 0.5

k = np.arange(Ns); m = np.arange(Nc)[:, None]     # fast, slow indices
fb   = 2*mu*R/c                                   # beat: 30.4 kHz
dphi = 4*np.pi*v*Tc/lam                           # 0.68 rad per chirp
X = np.exp(1j*(2*np.pi*fb*k/fs + dphi*m))         # Eq. (8), noise-free

rng  = np.fft.fft(X, axis=1)                      # fast-time FFT -> range
rng -= rng.mean(axis=0, keepdims=True)            # DC removal, Eq. (13)
rdm  = np.abs(np.fft.fftshift(np.fft.fft(rng, axis=0), axes=0))  # RDM

pk = np.unravel_index(rdm.argmax(), rdm.shape)
print("range bin", pk[1], "=", pk[1]*c/(2*B), "m")   # ~2.0 m
print("doppler bin", pk[0]-Nc//2, "->", (pk[0]-Nc//2)*lam/(2*Nc*Tc), "m/s")

Run it and the peak lands at range bin 16 (16 × 0.126 ≈ 2.0 m) with a positive Doppler bin matching 0.5 m/s to within one bin width. Change R and watch the peak slide along the range axis; change v and watch it slide along Doppler; add np.random.randn noise and watch the peak stand above it. Fifteen lines — and you have implemented Equations (6)–(8), (12) and (13) of the paper.

Misconceptions worth killing now

"The beat frequency is the Doppler shift." No — and this confusion ruins many first readings of FMCW. The beat frequency (tens of kHz here) encodes delay, i.e. range, via the ramp geometry; it exists for perfectly static targets. Doppler lives somewhere subtler: in how the beat signal's phase shifts from one chirp to the next (0.68 rad per chirp at 0.5 m/s). Fast-time frequency = where; slow-time phase = how fast. The 2D-FFT separates them precisely because they live on different axes.

"Finer range resolution means seeing farther." Unrelated. ΔR = c/(2B) sets how close two reflectors can be and still be distinguished; maximum range is set by transmit power, antenna gain, and ADC bandwidth. This paper's contest happens entirely within a bedroom, where all three radios reach everything — the fight is over resolution, never reach.

"More chirps per frame would fix FMCW's coarse Doppler resolution." Only by lengthening the coherent interval: Δv = λ/(2Tobs) cares about time observed, not samples taken. Packing 192 chirps into the same 26 ms would halve vmax aliasing headroom… nothing about Δv. To match IR-UWB's 0.009 m/s, FMCW would have to integrate coherently across ~50 frames — and then it would blur every posture transition that unfolds within them. Chapter 6 returns to this trade with the paper's actual numbers.

Chapter 2 recap. (1) A chirp is a linear frequency ramp: f0 + μt over bandwidth B ≈ 1.19 GHz. (2) The mixer converts round-trip delay into a constant tone, fb = 2μR/c ≈ 30 kHz at 2 m. (3) ΔR = c/(2B) = 0.126 m — derived, not quoted. (4) Velocity rides on inter-chirp phase, Δφ = 4πvTr/λ ≈ 39° per chirp at 0.5 m/s. (5) The 2D-FFT per 96-chirp frame yields a range-Doppler map; micro-Doppler texture distinguishes activities without needing position. (6) 3×4 antennas = 12 virtual channels: SNR now, localization later.

Exercises

1. The two-target room. A bed frame at 1.5 m and a person at 2.6 m. Using μ = 2.29 × 1012 Hz/s, compute both beat tones and check they are resolvable. Worked: fb1 = 2μ(1.5)/c = 6.87 × 1012 / 3 × 108 = 22.9 kHz; fb2 = 2μ(2.6)/c = 39.7 kHz. Separation 16.8 kHz » the 1.92 kHz FFT bin width — nearly nine bins apart. The mixer has turned furniture arrangement into a chord.

2. Doubling the bandwidth. A hypothetical 2.38 GHz sweep: what happens to ΔR, and does fb at 2 m change if Tc stays fixed? Worked: ΔR halves to 0.063 m (c/2B). The chirp rate doubles to 4.58 × 1012, so fb doubles to ~61 kHz — finer resolution costs ADC bandwidth. Nothing in radar is free; it is all exchanged.

3. Phase per chirp, revisited. A restless sleeper's torso moves at 0.1 m/s. How many chirps until the Doppler phase accumulates a full turn? Worked: Δφ = 4π(0.1)(5.2 × 10−4)/(4.84 × 10−3) = 0.135 rad per chirp; a full 2π needs 2π/0.135 ≈ 47 chirps — comfortably within one 96-chirp frame, which is exactly why a single frame can register such slow motion at all.

4. Break it. Predict what the range-Doppler map looks like if you forget DC removal in the NumPy snippet. Then actually delete that line and run it. Expected: a bright ridge across the entire zero-Doppler row — every static echo, un-suppressed — dwarfing the moving target's peak. Chapter 1's toy DFT warned you; now you have seen it in pixels.

Cross-domain bridge
The mixer is a change of basis — heterodyning is everywhere
Multiplying by a reference signal to drag information from an inaccessible frequency down to an easy one is the same move as the lock-in amplifier in experimental physics, the superheterodyne stage in every radio since 1918, and — squint — the query-key dot product that scores content against a reference in attention. Whenever a measurement is impossible where it lives, look for the multiplication that moves it. The FFT that then reads the beat spectrum is built from scratch in our FFT lesson.
Inline concept check. Why does the beat-frequency trick fail if the chirp's frequency ramp is not perfectly linear?  …  The constant vertical gap between TX and echo ramps — and hence a single clean beat tone per target — exists only because both ramps have identical, constant slope μ. Ramp nonlinearity makes the gap wander during the chirp, smearing each target's tone across bins and destroying the delay-to-frequency mapping. Linearity of the sweep is the precision part of an FMCW chip.
A target sits at 3 m instead of 2 m. According to the FMCW measurement principle, what changes in the mixer output, and why?

Chapter 3: IR-UWB: Pulses and Echoes

Clap your hands once in a canyon. The sound bounces back from every rock face, and each echo arrives at a time proportional to the distance of the surface that produced it: nearby boulder first, far wall last. Listen to the full pattern of returns and you have, quite literally, measured the shape of the canyon along the line of hearing.

Impulse-radio ultra-wideband is that clap, executed in radio. Where FMCW spread its energy over a long sly chirp, IR-UWB does the direct thing Chapter 2 called impossible: it transmits an extremely short pulse and actually times the echoes. The reason it stops being impossible is bandwidth. A pulse's duration is roughly the reciprocal of its bandwidth — and "ultra-wideband" is defined as an absolute bandwidth exceeding 500 MHz. Do the division for this paper's radio:

pulse duration ≈ 1 / B = 1 / (499.2 × 106) ≈ 2.0 × 10−9 s = 2 ns

Two nanoseconds. In two nanoseconds light travels 60 cm — so echoes from surfaces more than ~30 cm apart in range arrive as separate, non-overlapping blips. The canyon-clap picture holds at bedroom scale.

The channel impulse response

Formally, the received echo pattern from one transmitted pulse is the channel impulse response (CIR) — the multipath environment of Chapter 1, now measured directly in the delay domain:

CIR(t) = Σp Ap δ(t − τp) + n(t)

Every symbol: the sum runs over propagation paths p — each distinct route the pulse can take from transmitter to receiver (direct, via the bed, via the person's torso, via the wall-then-floor…). Ap is the complex amplitude of path p (how much energy, with what phase), τp is its delay (how long the route took), δ is the ideal impulse, and n(t) is noise. The CIR is the room's fingerprint in time: static objects contribute constant taps; a moving person makes some taps breathe in amplitude and rotate in phase — the s + d decomposition again, path by path.

Each transmitted UWB packet yields one CIR. The receiver samples it as complex in-phase/quadrature values at nanosecond resolution along fast-time; successive packets stack as rows. So the measurement matrix is simply

x(IR-UWB)[m, k] = CIRmk),   1 ≤ k ≤ Nf

— the m-th packet's CIR evaluated at delay bin τk. Rows are packets (slow-time), columns are delay bins (fast-time), and the fast axis maps directly to range. No mixer trick needed: delay is measured as delay.

Anatomy of one CIR

Walk along the fast-time axis of a single ceiling-mounted CIR and meet its inhabitants in arrival order. (Delays below are computed from illustrative geometry — a sensor pair 30 cm apart, furniture a couple of metres away — at light speed, 30 cm per nanosecond one-way.)

ArrivalPathIllustrative delayCharacter
1stFirst path (FP): TX antenna → RX antenna directly, ~30 cm~1 nsHuge, static, can saturate the receiver — and, next section, becomes the clock reference
earlyCeiling and mounting-hardware reflectionsa few nsStrong, static clutter crowding the early bins
middleCeiling → bed / person ~2 m below → ceiling (≈4 m round trip)~13 nsThe signal: taps that breathe and rotate when the person moves
lateMulti-bounce paths: wall → floor → wall…tens of nsWeak, increasingly noise-like reverberation tail

The map from bin index to place in the room is fixed by the sampling: complex IQ values at nanosecond resolution mean each fast-time step is roughly 15 cm of one-way distance (30 cm of round trip — consistent with the 0.30 m range bins derived below). The person two metres under the sensor lives around bin 13 and, unlike FMCW where range had to be decoded from beat frequencies, here you could point at the column of the matrix and say "that one is the bed". This directness — the fast axis literally being a map of the room — is worth savouring now, because the decision of whether to let the classifier see that map becomes the paper's pivot.

Worked example: the 0.30 m ruler

The range resolution formula from Chapter 2 was pure bandwidth — ΔR = c/(2B) — and it applies to any ranging waveform, pulses included. The paper's radio operates in UWB channel 5, centred at 6.49 GHz with B = 499.2 MHz. By hand:

ΔR = c / (2B) = (3 × 108) / (2 × 4.992 × 108) = (3 × 108) / (9.984 × 108) = 0.3005 ≈ 0.30 m

Thirty centimetres per delay bin — the 60 cm of two-nanosecond light-travel, halved because the echo path is out-and-back. Compare the two radars honestly: FMCW slices the room into 0.126 m cells, IR-UWB into 0.30 m cells — about 2.4× coarser. A lying body spans a dozen FMCW cells but only a few UWB cells. Both, however, are a different species from what Wi-Fi will manage in the next chapter.

 FMCW (this paper)IR-UWB (this paper)
How range is measuredDelay → beat frequency, via mixerDelay measured directly, per 2 ns pulse
Bandwidth B~1.19 GHz at 60–64 GHz499.2 MHz at 6.49 GHz
ΔR = c/(2B)0.126 m0.30 m
Wavelength λ≈ 4.8 mmc / (6.49 × 109) ≈ 4.6 cm
Receive channels12 virtual (3 TX × 4 RX)1
Also a communication radio?NoYes — IEEE 802.15.4z COTS silicon

The hardware: fourteen euros of radar

The UWB node in this study is deliberately humble: a Qorvo QM33120WDK1 development kit built on the DW3000 transceiver — the same family of chips that does secure car-key ranging and phone-to-tag finding, roughly seven euros apiece at volume. This choice is itself a scientific statement. Most prior UWB sensing research used sensing-first, non-IEEE research radars — excellent instruments that no product would ever ship. The DW3000 is the opposite: an IEEE 802.15.4z-compliant communication chip, mass-produced, already inside consumer devices, whose CIR output is a diagnostic by-product. If this chip can monitor a bedroom, the result transfers directly to hardware that exists at scale — which is exactly the deployment-relevance argument the paper is built on.

The setup uses two nodes: a transmitter with an omnidirectional antenna and a receiver with a directional antenna aimed at the monitored area, each driven by its own Nordic nRF52840 board, placed about 30 cm apart on the ceiling. The antenna asymmetry is a sensible little optimisation: the transmitter floods the whole room (omni — every corner gets illuminated), while the receiver concentrates its limited sensitivity on the area that matters (directional — more gain toward the bed, less toward the mounting hardware behind it).

Two boxes sounds bi-static — but 30 cm of separation is tiny compared to the metres-scale distances to everything in the room. For a target 2 m away, the two nodes' viewing directions differ by roughly atan(0.3/2) ≈ 8.5° — nearly the same look angle, so geometrically the pair behaves like a single radar at one spot: pseudo-monostatic. The comparison with FMCW's ceiling position stays fair. One CIR is acquired every 6.67 ms, giving the slow-time rate

srIR-UWB = 1 / 0.00667 s = 150 Hz

— 150 snapshots of the room's impulse response per second, comfortably fast for human motion.

The clock problem — and why phase is worth saving

Now the flaw that nearly ruins the cheap two-box design. The transmitter and receiver run on separate boards with separate clocks: no shared oscillator, no common time base. Two "identical" crystals never tick identically — they drift relative to each other, and the drift wanders with temperature and time. To the receiver, that drift is indistinguishable from every echo's phase rotating in unison, a time-varying phase drift smeared across the whole CIR.

Why care? Because phase is where the fine motion lives. At 6.49 GHz the wavelength is λ = (3 × 108)/(6.49 × 109) ≈ 4.6 cm, so a path-length change of a single centimetre swings the round-trip phase by 2π · 2/4.6 ≈ 1.6 rad. Work the softest case that matters clinically: a sleeper's restless shift moving the torso's reflection point by 5 mm changes the round-trip path by 10 mm, and the tap's phase by

Δφ = 2π · Δpath / λ = 2π × 0.010 / 0.0462 ≈ 1.36 rad ≈ 78°

— nearly a quarter turn of the arrow, from half a centimetre of body motion. Meanwhile that same 5 mm changes the tap's amplitude imperceptibly. Breathing, restless shifting, the slow roll of a sleeper — centimetre-scale motions — are enormous in phase and nearly invisible in amplitude. Throw away phase and you have thrown away the sensitivity that justifies the radar.

Now the size of the enemy. Crystal oscillators are specified in parts per million; a garden-variety ±20 ppm crystal at a 6.49 GHz carrier corresponds to a frequency disagreement of up to 6.49 × 109 × 20 × 10−6 ≈ 130 kHz between the two boards (typical spec arithmetic, not a paper measurement). Against a motion signal whose interesting content lives below a few tens of hertz, an uncorrected offset of even a minuscule fraction of that is a hurricane against a whisper. Use phase raw and the drift buries everything; the phase axis becomes a record of crystal thermodynamics, not human behaviour.

The rescue is elegant: use the room itself as the reference. Among all the taps in the CIR, one is special — the first path (FP), the direct line-of-sight hop from the transmit antenna to the receive antenna 30 cm away. That path involves no moving object; its true phase should be constant forever. So any phase wobble observed on the first path must be pure clock drift — and since the drift is common to the entire CIR (every tap passes through the same receiver clock), subtracting the first path's phase from every tap cancels the drift everywhere at once.

Formally — this is the correction of De Moerloose et al. that the paper adopts:

x̃[m, k] = x(IR-UWB)[m, k] · e−j ∠x(IR-UWB)[m, kfp]

Symbols: kfp is the fast-time index of the first-path sample; ∠x[m, kfp] is its phase in packet m, taken as that packet's phase offset; multiplying every sample of the CIR by e−j(that phase) rotates the whole response so the first path sits at phase zero, always. What survives is exactly the part that differs from the reference — the activity-induced phase variations of the moving-body taps, now coherent across slow-time and usable.

Notice the beautiful economy: the correction costs one complex multiply per sample, requires no extra hardware, no calibration ritual, no synchronisation cable — and it is the entire difference between "two seven-euro boards" and "a phase-coherent radar". Notice also the contrast being set up: Chapter 4's Wi-Fi platform gets phase stability the expensive way, by physically sharing one clock between transmit and receive. Same problem, two philosophies.

Throwing away the first twelve samples

One last preprocessing decision belongs to the physics of this chapter. The useful activity information rides on multipath components beyond the first path — the FP itself is just the TX–RX line-of-sight hop and says nothing about the room. Worse, the earliest delay bins are routinely corrupted: the receiver can saturate on the strong direct arrival, and strong static reflections (the ceiling the radar is bolted to) crowd the early bins. The paper therefore discards the first 12 fast-time samples of every CIR — the pre-FP region and the FP itself — and keeps the rest. At nanosecond fast-time spacing that is on the order of 12 ns of delay, i.e. roughly the first couple of metres of round-trip range: the immediate neighbourhood of the sensor, sacrificed to protect everything beyond it.

Bins 1–12: discarded
Pre-first-path noise, the LOS spike (clock reference, then expendable), saturation, ceiling clutter
Bins 13+: the room
Bed, chair, person — each ~0.30 m of range per bin, phase-corrected, ready for Doppler analysis in Chapter 6
Sim E — the CIR, the drift, and the rescue

Top: one live channel impulse response — tap magnitude versus delay bin. The first-path spike sits at the left (with the discarded early bins shaded), the person's tap breathes around bin 13. Bottom: the person's tap phase tracked over slow-time — the millimetre-motion signal. Toggle the clock drift of the two unsynchronised boards, then apply the first-path correction and watch the buried sinusoid come back from the dead.

What the correction cannot fix

Honest engineering means naming the residue. The first-path subtraction assumes the FP tap is a perfect, static, cleanly measured reference — and each assumption leaks a little. The FP's own phase estimate carries measurement noise, and subtracting a noisy reference adds that noise to every corrected tap. If anything ever moves near the direct TX–RX line (a hand reaching toward the sensor during maintenance, vibration of the mount), the "static" reference briefly is not. And drift within one packet's nanoseconds-long capture, as opposed to between packets, is not addressed — mercifully tiny, but not zero. The paper will later point to exactly this — "residual phase instability from the unsynchronised transmitter and receiver" — as a co-culprit in IR-UWB's one recurring failure mode: occasionally missing subtle activity altogether, classifying 13% of EATING windows as NO ACTIVITY under LOPO. A corrected phase is a rescued phase, not a perfect one; against FMCW's and openwifi's born-coherent phases, IR-UWB starts each window with a small handicap it must overcome with its other virtues.

Raw CIR stream, 150 Hz
Complex IQ taps at ns resolution; phase scrambled by inter-board clock drift
↓ multiply by e−j∠FP per packet
Phase-coherent CIR stream
Drift cancelled (common-mode); activity-induced per-tap phase evolution preserved
↓ drop fast-time bins 1–12
The room's taps, cleaned
Saturation, LOS spike, and ceiling clutter excised — ready for Chapter 6's per-bin Doppler analysis
Inline concept check. The first-path correction subtracts one phase per packet, not one phase per sample. Why is a single number enough to fix the whole CIR?  …  Because the corruption being removed is clock drift, and both TX and RX clocks act on the packet as a whole — every tap of one CIR is captured through the same oscillator state, so the drift phase is common-mode across fast-time. One measurement of it (on a tap known to be truly static, the LOS path) characterises it completely for that packet. Per-sample corrections would actually be harmful: they would erase the per-tap phase differences that carry the motion signal.

Why not just synchronize the boards?

An engineer's first instinct is to attack the hardware: share a clock and the whole drift problem vanishes, as it does for openwifi. Worth a moment to see why the software fix wins here. Run a coax cable between the nodes and you have constrained the installation (two ceiling boxes now tethered), added connectors and cost, and thrown away the flexibility of placing TX and RX independently. Network time protocols synchronise to microseconds — six orders of magnitude too coarse for carrier phase at 6.49 GHz. A shared external oscillator is what sensing-grade research radars do, and it is exactly the road this paper refuses on principle: the point is to test the COTS chips a product would ship. The first-path correction costs one complex multiply per sample, zero hardware, zero installation constraints — and rescues the phase to the level the results require. When a signal-processing fix substitutes for a hardware requirement, the bill of materials wins.

Realize it: the UWB pipeline's heart in a dozen lines

The first-path correction and the per-bin Doppler transform, exactly as the paper defines them (Equations 14–15), on a simulated drifting CIR stream:

# 375 packets (2.5 s at 150 Hz) x 40 delay bins; person breathing at bin 13
import numpy as np
M, K, kfp = 375, 40, 1
t = np.arange(M)/150.0

drift  = np.cumsum(np.random.randn(M))*0.3        # clock phase random walk (rad)
motion = 1.36*np.sin(2*np.pi*0.3*t)             # 5 mm sway -> 1.36 rad, 0.3 Hz

cir = 0.05*(np.random.randn(M,K)+1j*np.random.randn(M,K))
cir[:,kfp] += 1.0*np.exp(1j*drift)               # first path: drift only
cir[:,13]  += 0.5*np.exp(1j*(drift+motion))      # person: drift + motion

xt = cir * np.exp(-1j*np.angle(cir[:,[kfp]]))     # Eq. (14): subtract FP phase
xt = xt[:,12:]                                    # discard first 12 bins

rdm = np.abs(np.fft.fftshift(np.fft.fft(xt, axis=0), axes=0))  # Eq. (15)
f = np.fft.fftshift(np.fft.fftfreq(M, 1/150.0))
rdm = rdm[np.abs(f) <= 25]                        # crop to +/-25 Hz
print("peak at", f[np.abs(f) <= 25][rdm.max(axis=1).argmax()], "Hz")  # ~0.3

Comment out the correction line and rerun: the drift's random walk smears energy across the whole ±25 Hz band and the 0.3 Hz breathing peak disappears. One line of algebra separates a working radar from a broken one — run both versions and you will never forget why the correction exists.

Chapter 3 recap. (1) UWB = bandwidth > 500 MHz ⇒ ~2 ns pulses ⇒ echoes separable by arrival time; the CIR is the room's delay-domain fingerprint. (2) ΔR = c/(2B) = 0.30 m at 499.2 MHz — coarser than FMCW's 0.126 m, in a different universe from Wi-Fi's 7.5 m. (3) The hardware is COTS 802.15.4z silicon, ~EUR 14, pseudo-monostatic at 30 cm spacing, 150 CIRs/s. (4) Separate clocks scramble phase; the static first path measures the drift, and subtracting its phase per packet (Eq. 14) cancels it common-mode. (5) The first 12 fast-time bins — pre-FP, FP, saturation, ceiling — are discarded. (6) Residual phase noise remains IR-UWB's handicap; single-channel SNR its structural weakness.

Exercises

1. Bin bookkeeping. A wardrobe stands 3.2 m from the sensor (radar range). Which UWB range bin does its echo occupy, and could it share a bin with a person at 3.0 m? Worked: bin index ≈ 3.2/0.30 ≈ 10.7 → bin 10; the person at 3.0/0.30 = bin 10 as well — they share. At FMCW's 0.126 m: bins 25 and 23 — separated. This is "coarser bins isolate less cleanly" as arithmetic.

2. The drift budget. If residual (uncorrected) phase error were 0.1 rad per packet, what apparent motion would it mimic at λ = 4.62 cm? Worked: phase 2π corresponds to λ/2 = 2.31 cm of round-trip-half path change, so 0.1 rad ↔ 2.31 × 0.1/(2π) ≈ 0.37 mm per packet — at 150 Hz that is a spurious 5.5 cm/s "velocity" floor. Sub-millimetre phase hygiene is not pedantry; it is the sensing floor.

3. Design flip. Suppose the receiver, not the transmitter, had the omnidirectional antenna. What changes? Reasoned answer: illumination of the room would narrow (directional TX lights only the aimed region) while reception broadens — the monitored area shrinks to the beam intersection either way, but now motion outside the TX beam is never illuminated at all. The paper's arrangement (omni TX, directional RX) floods the room with signal and spends the directivity on receive sensitivity toward the bed — the better bargain when the interesting region is known.

4. Break the reference. In the NumPy snippet, add a slow phase ramp to the person's tap only (not the FP), rerun, and confirm the correction preserves it. Then add the ramp to the FP only and watch it leak into every corrected tap. Moral: the correction transfers the reference's own corruption to everyone — the reference must be cleaner than the signal, which is why the static LOS hop, and only it, qualifies.

Cross-domain bridge
Reference-channel subtraction: the oldest trick in measurement
Using one channel that should be constant to clean all the others is differential signalling in electronics, the reference electrode in EEG, the control lane in a chemistry assay, and the "known static tap" here. The design pattern: find a measurement that shares every nuisance with your signal but contains none of the signal — then subtract. Our calibration & time-sync lesson treats the same disease (clocks that disagree) with the heavier machinery this fourteen-euro radar cleverly avoids.

Where IR-UWB stands before the contest

Tally the hand of cards this radio brings to Chapter 8. Strengths: true delay-domain ranging with 0.30 m bins; a 4.6 cm wavelength whose phase (once rescued) registers millimetre-scale motion; a 150 Hz snapshot rate; native IEEE 802.15.4z communication; and a bill of materials around fourteen euros. Weaknesses: a single receive channel — no 12-look diversity, so its per-bin signal-to-noise ratio is inherently weaker than FMCW's summed dozen; coarser range cells than FMCW; and a phase that is only as good as the first-path correction. Remember "one receive channel, weaker per-bin contrast" — in Chapter 6 it will force a preprocessing choice (keep the range axis rather than collapse it) that in Chapter 8 becomes the entire story of why IR-UWB wins one contest and loses another.

The IR-UWB transmitter and receiver sit on separate boards with unsynchronised clocks. Why does subtracting the first path's phase from every fast-time sample fix the resulting drift — and what property of the first path makes it the right reference?

Chapter 4: Wi-Fi as a Radar

There is already a radio transmitter in the bedroom. It has been there for years. It is the Wi-Fi access point, and it floods the room with 20 MHz of modulated radio energy hundreds of times per second, every time it moves a packet. The most seductive idea in RF sensing is simply: can we read the reflections we are already making?

The answer is yes, with two enormous asterisks, and this chapter earns both of them honestly. One asterisk is physics (a range resolution so coarse it exceeds the room). One is engineering (the measurement you need is one that no commodity Wi-Fi chip will give you). The paper's Wi-Fi platform is a small tour de force precisely because of asterisk two.

OFDM, and the channel estimate you get for free

Wi-Fi transmits using OFDM — orthogonal frequency-division multiplexing. Instead of one fast signal on one carrier, the 20 MHz channel is divided into many narrow subcarriers, each carrying a slow trickle of data in parallel; this platform exposes Nc = 53 of them. Think of the channel as a comb of closely spaced test tones spanning the band.

Why does Wi-Fi bother with the comb? For communication's own sake: a single fast signal in a multipath room smears into itself (each symbol's echoes arrive on top of the next symbol — inter-symbol interference), whereas many slow parallel signals each see the channel as approximately flat and are easy to equalise. OFDM was invented to make multipath harmless to data. The delicious irony of Wi-Fi sensing: the very mechanism designed to neutralise the channel's structure is what forces the receiver to measure that structure, packet after packet — and the measurement is the sensor.

Here is the gift. To demodulate a packet at all, the receiver must figure out what the propagation channel did to each subcarrier — how much each tone was attenuated and phase-shifted on its way over. That per-subcarrier estimate is the channel state information (CSI), and it is computed for every received packet as a routine part of communication. Sensing piggybacks on it: the person in the room is part of the channel, so the person is in the CSI.

x(Wi-Fi)[m, k] = Σp αp[m] e−j 2π fk τp[m] + w[m, k]

Every symbol: the sum again runs over propagation paths p; αp[m] and τp[m] are the complex attenuation and delay of path p at packet (slow-time) m; fk is the frequency of subcarrier k; w[m,k] is noise. Compare with the UWB CIR of Chapter 3: the same paths, the same α's and τ's — but observed through the frequency domain. Each subcarrier sees the sum of all paths, each path contributing a phase twist proportional to its delay times that subcarrier's frequency. The CSI is the Fourier-domain shadow of the impulse response.

The decomposition of Chapter 1 lands on schedule: paths bouncing off static furniture have essentially constant αp and τp — the static component s[k]. The person's paths have time-varying αp[m] and τp[m], producing dynamic variation d[m,k] in both amplitude and phase across the packet stream. Motion is visible. That much works.

Worked example: the ruler bigger than the room

Now the first asterisk. In principle you could inverse-Fourier the CSI back into a CIR and read off delays, exactly like UWB. How finely? Same law as always — range resolution is bought with bandwidth and nothing else:

ΔR = c / (2B) = (3 × 108) / (2 × 20 × 106) = (3 × 108) / (4 × 107) = 7.5 m

Seven and a half metres per range bin. The bedroom is smaller than the bin. Every echo in the room — bed, wardrobe, torso, arms, legs, walls — lands in one delay cell, premixed before any algorithm gets to look.

It is worth seeing why the same formula applies even though nothing here looks like a pulse. The CSI is the channel's frequency response sampled at the subcarrier frequencies; inverse-Fourier-transform it and you get the channel impulse response — CSI and CIR are a Fourier pair, the same object in two domains. But a Fourier transform of samples spanning bandwidth B can only resolve delay features coarser than 1/B: delay resolution 1/(20 MHz) = 50 ns, and 50 ns of round trip is 7.5 m of range. The 53 subcarriers do fix the unambiguous delay span (plentiful — hundreds of metres), but resolution comes only from total bandwidth, and total bandwidth is 20 MHz. UWB earned its 0.30 m by spending 499.2 MHz; Wi-Fi's 20 MHz buys exactly the 7.5 m it gets. Same law, no appeal.

Line up the three rulers a final time:

 FMCWIR-UWBWi-Fi
Bandwidth~1.19 GHz499.2 MHz20 MHz
Bandwidth ratio~210.04
ΔR = c/(2B)0.126 m0.30 m7.5 m
A lying body spans~a dozen cellsa few cellsa fraction of one cell
Room vs one cellroom » cellroom » cellroom < cell

This is not an implementation weakness that a cleverer algorithm fixes. It is information that was never captured. Whatever Wi-Fi sensing achieves, it must achieve without knowing where in the room the motion is.

So what is left? Time. The 53 subcarriers are sampled ~500 times per second, and a moving body modulates each one — different subcarriers differently, since each path's phase twist depends on fk. The rates of that modulation form a Doppler spectrum: fast body motion writes fast CSI fluctuation. Wi-Fi sensing is Doppler sensing with zero range resolution, plus a whisper of frequency diversity across 53 subcarriers. The whisper is real but faint: 53 samples of a channel spanning only 20 MHz are highly correlated — far too little, the paper notes, to substitute for the missing range separation.

The second asterisk: the chip that will not tell you

Now the engineering asterisk, and it explains the strangest line item in this paper's bill of materials. Everything above assumed you can receive your own reflections — a monostatic radar, transmit and receive at one spot on the ceiling, matching the geometry of the other two radios.

Commodity Wi-Fi chipsets cannot do this, and the reason is worth feeling in your bones. Listening to your own echo means receiving a whisper during your own shout: the direct leakage from the transmit chain into the co-located receiver is vastly stronger than any echo off a human two metres away — the echo has flown metres, spread, and reflected off a poorly reflective body, while the leakage crossed centimetres of circuit board. A communication chip has no reason to fight this battle; its designers assume you are either transmitting or receiving, never both, so the hardware and firmware simply do not expose the reflected-signal CSI in the presence of simultaneous transmission. No COTS chipset does. That is why nearly all Wi-Fi sensing research is bi-static — a separate transmitter and receiver across the room, where the direct path is at least an air-gapped, attenuated one — which is exactly the geometry confound Chapter 0 complained about. And it is why prior monostatic Wi-Fi radar work, on SDR platforms, had ventured only as far as respiration-rate sensing — never full activity recognition. This paper is the first to push the monostatic Wi-Fi radar into the HAR arena, precisely so it can stand on the same ceiling as the other two.

The paper's solution is to abandon commodity silicon and build the radio from source: a ZedBoard FPGA with an AD-FMCOMMS2-EBZ RF front-end, running openwifi — an open-source software-defined-radio (SDR) implementation of IEEE 802.11a/g/n in which every layer, down to the physical-layer channel estimator, is inspectable and modifiable. With full control of the PHY, the platform transmits packets and captures the CSI of their own echoes: a genuine monostatic Wi-Fi radar on the ceiling.

And one property comes along free that money usually buys: because transmit and receive live on the same board, they share one clock. No carrier frequency offset, no sampling frequency offset, no symbol timing offset between TX and RX — the three plagues of bi-static Wi-Fi sensing, gone by construction. The CSI phase is stable, with human motion clearly visible in it, no first-path correction required. Chapter 3's IR-UWB fought clock drift with a clever algorithm; openwifi never contracts the disease. (The bill arrives in Chapter 9: the cheapest SDR platform found costs about EUR 320, against EUR 14 of UWB.)

Packets are transmitted at a mean interval of 2 ms — a mean slow-time rate of srWi-Fi = 500 Hz, the fastest of the three radios. But note the word mean: Wi-Fi is connection-based, packets go out only when the medium-access (MAC) layer permits, so the sampling is irregular. Chapter 6 will have to repair that jitter (by interpolation onto a uniform grid) before any Fourier transform can be trusted — timing jitter corrupts exactly the phase that the shared clock so carefully preserved.

What motion actually looks like in CSI

Put yourself in the classifier's position and watch one subcarrier's arrow over a second of packets. The static room pins it at some resting point — the vector sum of all the frozen paths. When the person moves, their paths' arrows rotate and stretch, and the total arrow traces a wobbling orbit around the static point. The speed of the wobble tracks the body's radial velocities: slow breathing writes a slow sway; a stand-up writes a fast excursion; walking writes sustained oscillation as the body's paths sweep through wavelengths. Now look across the comb: subcarrier 1 and subcarrier 53 sit at different frequencies, so each path's phase twist e−j2πfkτp differs between them — the same motion paints 53 slightly different wobbles. Averaging their magnitudes (as Chapter 6 will) firms up the common story: how much motion energy, at which fluctuation rates. What no amount of cross-subcarrier cleverness recovers, at this bandwidth, is which paths — and therefore which body part, at which location — produced each component of the wobble.

So the Wi-Fi representation that reaches the CNN is a legitimate Doppler signature — genuinely informative about motion intensity and rhythm — with two congenital blind spots: no place axis, and limited ability to separate simultaneous motions. Predict, before Chapter 8 shows you, which fine-grained classes suffer most: the ones distinguished mainly by where they happen (bed transitions vs chair transitions) and the ones distinguished by fine articulation (clap vs wave vs eating). Both predictions will land.

One room, three rulers

Before the experiment, see all three chapters at once. The simulation draws the bedroom from above — ceiling sensor in the centre, bed and chair on the floor, a person moving about. Switch radios and watch the room be sliced by each one's range resolution: 0.126 m rings, 0.30 m rings, or a single 7.5 m bin that swallows everything.

Sim B — one room, three rulers

Top view; the dot on the ceiling marks all three co-located sensors, rings mark range-bin boundaries at each radio's ΔR. The moving dot is a person; the highlighted band is the range bin currently containing them. Count how many bins separate the bed from the walking path in each case — that is the spatial information each radar could use, or overfit to.

Three observations to take from the toy. With FMCW's rings, the person crosses a bin boundary every step — position is richly encoded, and the bed occupies its own distinct set of rings. With IR-UWB's rings, the same structure exists but chunkier — a few bins cover the walking area, and bed versus chair may share bins. With Wi-Fi, the entire room is one undifferentiated bin: the person walking and the person turning in bed produce motion in the same cell, distinguishable only by their velocity signatures. Hold this image; it is the visual form of the trade-off that Chapter 8 measures.

Why bother with Wi-Fi at all?

Given two genuine radars on the same ceiling, why include the crippled one? Three reasons, all fair. First, the counterfactual matters: Wi-Fi's promise of sensing-with-existing-infrastructure is repeated in a hundred papers, and testing it against real radars under identical conditions is precisely the comparison the literature lacked. Second, communication: Wi-Fi is the only one of the three that is already a data network; if its sensing were good enough, one device would do everything. Third, the physics question is genuinely open: with zero range resolution but the fastest sampling and full phase stability, how much activity information survives in Doppler alone? The honest answer — most of it for coarse classes, much less for fine ones — is one of the paper's most useful findings.

 FMCWIR-UWBWi-Fi (openwifi SDR)
GeometryMonostatic (one chip)Pseudo-monostatic (2 nodes, 30 cm)Monostatic (shared TX/RX clock)
Phase stabilityShared clock — stableSeparate clocks — drift, corrected via first pathShared clock — stable by construction
Slow-time rate96 chirps / 50 ms frame150 Hz, regular500 Hz mean, irregular (MAC)
Range information0.126 m bins0.30 m binsnone usable (7.5 m > room)
Native communicationnoneIEEE 802.15.4zIEEE 802.11 — it is the network

Realize it: from packet CSI to a Doppler spectrogram

The Wi-Fi pipeline's essence — interpolation, per-subcarrier STFT, magnitude averaging (Equation 17) — in code you can run on any recorded CSI stream:

# Irregular CSI packets -> uniform grid -> per-subcarrier STFT -> averaged map
import numpy as np
from scipy.signal import stft
from scipy.interpolate import interp1d

# t_pkt: (M,) irregular arrival times; csi: (M, 53) complex channel estimates
grid = np.arange(t_pkt[0], t_pkt[-1], 1/500.0)          # uniform 500 Hz
csi_u = interp1d(t_pkt, csi, axis=0)(grid)               # complex interp

maps = []
for k in range(53):                                    # per subcarrier
    f, tt, Z = stft(csi_u[:,k], fs=500, nperseg=200,     # 0.4 s window
                    noverlap=175, return_onesided=False) # 0.35 s overlap
    maps.append(np.abs(Z))
S = np.mean(maps, axis=0)                                # Eq. (17): average 53

keep = np.abs(np.fft.fftshift(f)) <= 80                  # crop +/-80 Hz
S = np.fft.fftshift(S, axes=0)[keep]
S -= np.median(S, axis=1, keepdims=True)                 # running-median (toy: global)

Note the honest simplification flagged in the last comment: the paper's clutter removal is a running median over a 10 s neighbourhood per Doppler bin, not a global one — swap in a sliding median_filter along the time axis for the real thing, and remember it costs 5 s of latency when centred. Everything else is the pipeline verbatim: 500 Hz grid, 200/175 STFT, 53-subcarrier magnitude average, ±80 Hz crop.

Could bi-static Wi-Fi have competed instead?

A reasonable protest: commodity chips can do bi-static sensing — why insist on the exotic monostatic mode? Because the comparison would have dissolved. A bi-static pair puts the receiver across the room: different illumination geometry, different sensitivity pattern (bi-static Wi-Fi is famously most sensitive on the ellipse between TX and RX), a second box to install and power, and a link whose phase is corrupted by the very offsets the shared clock eliminates. The moment the Wi-Fi geometry differs from the radars' ceiling spot, every observed difference is "geometry or physics?" all over again — the Chapter 0 disease. The paper's choice is the scientifically expensive one: build the hard monostatic platform so that Wi-Fi stands on the same ceiling with the same viewpoint, and its 20 MHz gets a genuinely fair — and therefore genuinely damning — hearing. Deployments that can accept two boxes and uncontrolled geometry may find bi-static Wi-Fi more useful than this paper's monostatic scores suggest; what they cannot claim is single-anchor ceiling parity.

Chapter 4 recap. (1) OFDM's per-packet channel estimates (CSI, 53 subcarriers) are a free sensing signal — the person is part of the channel. (2) CSI and CIR are a Fourier pair, so ΔR = c/(2B) applies: 20 MHz ⇒ 7.5 m ⇒ one bin swallows the room; range information was never captured. (3) What survives is aggregate Doppler at 500 Hz mean packet rate — irregular, needing interpolation. (4) Monostatic operation is impossible on COTS chips (self-interference; CSI not exposed while transmitting); openwifi's SDR does it with a shared TX/RX clock — phase stable by construction, no CFO/SFO/STO. (5) Prior monostatic Wi-Fi work stopped at respiration; this paper takes it to full HAR. (6) Predicted casualties: place-distinguished classes and fine gestures.

Exercises

1. The bandwidth you would need. What channel bandwidth would give Wi-Fi the same 0.30 m resolution as IR-UWB? Could 802.11 provide it? Worked: B = c/(2ΔR) = 3 × 108/0.6 = 500 MHz. Some modern Wi-Fi standards do define 160–320 MHz channels — but this platform's 20 MHz is the classic 802.11a/g/n case that openwifi implements, and even 320 MHz would still be shy of the target. Bandwidth is the whole game; the exercise is the proof.

2. Delay-domain thinking. Convert the room: at delay resolution 1/B = 50 ns per tap, how far apart in range are two adjacent CIR taps derived from this CSI? Worked: 50 ns of round trip = 50 × 0.3/2 = 7.5 m — the same number as always, arrived at through the time domain. If the identical answer keeps appearing from every direction, you have understood the constraint rather than memorised it.

3. Jitter damage estimate. The mean packet interval is 2 ms. If a packet arrives 0.5 ms late and you pretend it was on time, how large is the phase error for a Doppler component at 40 Hz? Worked: a 40 Hz component advances 2π × 40 × 0.0005 = 0.126 rad ≈ 7° per half-millisecond of timing error — per packet. Accumulated across a window, uncorrected jitter of this size smears the upper Doppler band; hence interpolation before any FFT, and hence cropping at ±80 Hz where content still survives.

4. Design a counter-experiment. Sketch how you would test whether Wi-Fi's layout overfitting (Chapter 8) comes from amplitude patterns or phase patterns in the CSI. One good answer: retrain the same CNN on magnitude-only vs phase-only versions of the same windows under LOBPO; whichever input reproduces the ~10-point drop carries the layout fingerprint. The open dataset makes this an afternoon, not a proposal.

Cross-domain bridge
Sensing as a side channel — the exhaust of communication
Wi-Fi sensing belongs to a grand family: information leaking from a system through a channel nobody designed for it. Power-analysis attacks read cryptographic keys from current draw; hard-drive LEDs leak data optically; here, a data link leaks the room's geometry through its channel estimates. The engineering lesson cuts both ways — side channels are free sensors and free surveillance, which is why the same CSI that monitors grandma's sleep is studied by security researchers as a privacy risk when it points at you through a wall. The survey to read is Ma et al. (2019), reference 5 in Chapter 9.
Inline concept check. Bi-static Wi-Fi sensing (separate TX and RX boxes) suffers carrier frequency offset between the two radios' oscillators; the monostatic openwifi platform does not. Where exactly does the offset go?  …  It never arises: CFO is the difference between the transmitter's and receiver's carrier oscillators, and here they are the same physical oscillator on the same board. The echo is downconverted with the very clock that upconverted it, so the systematic phase rotation between packets vanishes and what remains in the CSI phase is channel — including the person. The same logic removed sampling-frequency and symbol-timing offset.
Wi-Fi CSI is sampled fastest of all three radios (500 Hz) and, on this platform, with fully stable phase. Why does it still carry the least information for fine-grained activity recognition?

Chapter 5: The Experiment

Good experiments are mostly a list of temptations resisted. This chapter walks through the measurement campaign the way a reviewer would — asking, at each design choice, what shortcut was refused here, and what would it have cost?

The room

The dataset was collected in the HomeLab in Zwijnaarde — a residential test house built by Ghent University and imec for evaluating IoT, smart-home, and healthcare systems. Not an anechoic chamber, not a lab with cable trays and metal benches: a house, with a bedroom furnished the way an assisted-living room is furnished — a bed, a chair, a table. The multipath environment being sensed is the realistic one, clutter and all.

All three sensing systems — the IWR6843AOP, the two UWB nodes, the openwifi SDR — were mounted on the ceiling above the bed and stayed bolted there for the entire campaign. That fixity matters more than it looks: it means every recording, across every person and every furniture arrangement, shares an identical sensor position. The sensors are the constant; everything else is the experiment.

The clock: the paper's central discipline

Now the choice that defines the study. The three modalities recorded simultaneously, against a common time reference. Not "the same protocol repeated three times", not "matched sessions on different days" — the same physical seconds. When participant 7 stands up from the chair in layout 3, that one stand-up exists in the FMCW stream, the UWB stream, and the Wi-Fi stream, sliced by the same timestamps.

Why synchronized recording is the fairness theorem. Human movement is gloriously irreproducible — ask someone to stand up twice and you get two different stand-ups: different push-off, different speed, different sway. If each radio recorded its own session, every accuracy gap between radios would be confounded with execution differences between sessions, and the paper would collapse into the literature it criticises. Simultaneity deletes the confound entirely: all three radios observe identical activity executions, so a performance difference can only come from what each radio captured of the same event. This single decision is what licenses every conclusion in Chapter 8.

Two engineering notes make the simultaneity workable. First, the three radios occupy widely separated spectrum — the FMCW chirps at 60–64 GHz, the UWB pulses around 6.49 GHz, the Wi-Fi packets in their own 20 MHz channel — so all three can shout at once without stepping on each other's measurements. Second, a common time reference means one set of activity annotations serves all three streams: label the event once, and every modality's windows inherit the same ground truth. Fairness in the data and fairness in the labels, from one clock.

Six bedrooms out of one

A model that memorises "motion at 2.1 m of range = getting out of bed" is not recognising activity — it is recognising furniture. To measure that failure mode, you need the furniture to move. So the campaign created six room layouts by relocating the bed and the chair between recordings, while the ceiling sensors stayed fixed.

The layouts are not interchangeable difficulty-wise, and the paper is specific: layouts 1, 2, 5, and 6 place the bed beneath or close to the radar; layouts 3 and 4 push it farther away or at a less favourable orientation — deliberately harder conditions for in-bed activity recognition. Seated activities get harder the farther the chair sits from the radar, or the wider its angle to the sensing direction. Keep the split "1-2 / 3-4 / 5-6" in mind: Chapter 7 will turn these pairs into the cruellest of the three cross-validation protocols, and Chapter 8 will show one radio caring deeply about which pair is withheld while another barely notices.

Twenty people

A total of 20 participants completed the protocol across the six layouts — 14 male, 6 female, aged 21–67, heights 159–189 cm, weights 50–92 kg — yielding up to 120 person-scenario recordings. The spread matters: radar signatures scale with body size and motion style, so a model trained on one physique can stumble on another. (Chapter 8 reports the reassuring result: within this sample, no modality showed systematic dependence on height, weight, age, or gender — with the honest caveat that 20 people cannot settle demographic robustness in general.) The protocol and consent were approved by the ethics committees of KU Leuven (SMEC, G-2024-8332) and Ghent University, with written informed consent from every participant — the required table stakes for bedroom monitoring research.

Directed, but not choreographed

How do you get natural behaviour out of an instructed session? The campaign's answer: text-to-speech (TTS) instructions describing realistic actions in context"Walk to the left side of the bed", "Sit down on the edge of the bed", "Go to the bathroom and wait there for a moment". Participants were free to execute each action with their own gait, posture, and speed.

Contrast this with the dominant alternative — "perform activity 4, twenty times" — which produces clean, repetitive, transition-free clips that flatter every classifier. Flowing instructions preserve what deployment actually contains: the walk into the sit-down, the fidget before the lie-down, the variability between people. The paper also concedes the remaining artificiality without being asked: the timing of each action is still externally cued rather than fully spontaneous. Directed theatre, not surveillance footage — but with real transitions intact.

Why transitions are the hard part, and the point. A classifier that has only ever seen isolated mid-activity windows never learns what "sitting down" looks like when it begins mid-stride. Real monitoring is continuous — every event is entered from another event. Cutting natural flows into windows means many windows straddle boundaries, which is exactly the ambiguity a deployed system faces at 3 a.m. This design choice makes every number in Chapter 8 smaller and more believable.

Two label sets from one recording

Each TTS instruction was mapped to a label during annotation — and here the paper does something quietly clever: it derives two label sets from the same recordings, because two different customers ask two different questions of a bedroom monitor.

The fine-grained set serves general healthcare activity recognition, with ten classes:

ClassWhat it captures
NO ACTIVITYNo relevant movement in the monitored area — including the participant being out of the room entirely
WALKWhole-body locomotion through the room
STAND UPPosture transition, seated/lying → standing
SIT DOWNPosture transition → seated (bed edge or chair — see mapping note below)
LIE ON BEDPosture transition → lying
GET UP BEDPosture transition, lying → up
ANXIOUSRestless in-bed motion — tossing, turning
EATINGRepetitive hand-to-mouth motion, seated
WAVE HANDSHand gesture, large
CLAP HANDSHand gesture, percussive

One annotation rule deserves a spotlight: semantically equivalent instructions map to one label irrespective of location. "Sit down on the edge of the bed" and "Sit down on the chair" are both SIT DOWN. That is not bureaucratic tidiness — it is a trap laid deliberately for position-dependent models. A radio that can see where motion happens might learn "sit-down-at-bed" and "sit-down-at-chair" as different-looking events that share a label; a radio that cannot see position never faces the split. Remember this rule when Chapter 8 dissects which radios confuse which posture transitions and where.

The coarse sleep-monitoring set remaps the same recordings into four classes forming an ordinal scale of sleep disruption — the actual question a night ward asks:

NO ACTIVITY
Absence of relevant movement. The good outcome: an undisturbed sleeper.
<
ANXIOUS
Restless in-bed motion — tossing and turning. Sleep continues, disturbed.
<
INTERRUPTION
Larger posture changes: sitting up on the bed edge, standing up, lying back down. Sleep is broken.
<
WANDER
Out-of-bed walking — the highest disruption level, and the fall-risk state a care home most wants flagged.

Activities irrelevant to sleep — eating, waving, clapping — are omitted from this set entirely. Note what the remapping does to task difficulty: the fine set's hardest distinctions (which kind of posture transition? which kind of hand gesture?) either merge into INTERRUPTION or vanish. Chapter 8 will find all three radios above 92% on this set everywhere, and the paper is careful to attribute that to the easier question, not to better sensing.

To feel how the two label sets relate, trace a few instructions through both (fine labels and definitions from the paper; the coarse mapping follows from the class definitions):

TTS instruction (examples from the paper)Fine labelCoarse label
"Walk to the left side of the bed"WALKWANDER (out-of-bed walking)
"Sit down on the edge of the bed"SIT DOWNINTERRUPTION (larger posture change)
"Sit down on the chair"SIT DOWN — same label, different placeINTERRUPTION
"Go to the bathroom and wait there for a moment"WALK, then NO ACTIVITY (out of room)WANDER, then NO ACTIVITY
Restless tossing and turning in bedANXIOUSANXIOUS (its own severity level)
Eating, waving, clappingEATING / WAVE HANDS / CLAP HANDSomitted — not sleep-relevant

Notice the fourth row's subtlety: NO ACTIVITY explicitly includes the participant being outside the room. That is a deployment-honest choice — a real bedroom monitor spends most of the night watching either a still sleeper or an empty room, and must call both "nothing happening" rather than hallucinating activity from residual noise. It also seeds a class imbalance (quiet dominates any realistic recording), which is precisely why Chapter 7's classifier needs class weighting and why the evaluation metric will refuse to reward ignoring rare classes.

What the dataset is, in one table

Design elementChoiceTemptation resisted
EnvironmentHomeLab residential bedroom (bed, chair, table)A clean lab with unrealistic multipath
MountingAll three sensors on the ceiling, fixed all campaignThe flattering side-view geometry
RecordingSimultaneous, common time referencePer-modality sessions (execution confound)
Layouts6 (bed/chair moved; 3–4 deliberately unfavourable)One layout — letting models memorise furniture
Participants20 (14M/6F, 21–67 y, 159–189 cm, 50–92 kg); up to 120 person-scenario recordingsA handful of colleagues of similar build
ProtocolTTS-guided natural flows, free execution styleRepeated isolated actions
LabelsFine 10-class + coarse ordinal 4-class, location-independent mappingOne label set tuned to one use case
ReleaseOpen dataset (gitlab.ilabt.imec.be)Numbers you must take on faith

Why a random train/test split would be a scandal

Before Chapter 7's cross-validation protocols, arm yourself against the most common evaluation sin in sensing ML — because this dataset's structure makes it vivid. Recall the windowing: 2.5-second windows advancing by 0.05 seconds. Two adjacent windows share 98% of their samples. They are near-duplicates.

Now imagine shuffling all windows from all recordings into one pool and splitting randomly 80/20. Nearly every test window has siblings in the training set that overlap it almost entirely — same person, same room, same seconds. The model needs only to memorise, and the reported accuracy would be spectacular and meaningless. This failure mode — temporal leakage through overlapping windows — inflates results in a depressing fraction of published sensing work.

The paper's protocols are constructed so this cannot happen: splits are made at the level of people (LOPO), scenarios (LOSO), or bed positions (LOBPO) — never windows. A test window's person or room is absent from training entirely, so its near-duplicate siblings are on the same side of the split as itself. When you evaluate any windowed time-series model, this is the first thing to check in the methods section; when it is missing, stop reading the results.

The dataset card, for your notes. HomeLab Zwijnaarde bedroom (bed, chair, table) · sensors: IWR6843AOP + 2×DW3000 + openwifi SDR, all ceiling-mounted, fixed · recording: simultaneous, common time reference · participants: 20 (14M/6F, 21–67 y, 159–189 cm, 50–92 kg) · layouts: 6 (bed/chair moved; 1-2, 3-4, 5-6 share bed positions; 3–4 unfavourable) · protocol: TTS-guided natural flows, free execution · scale: up to 120 person-scenario recordings · labels: 10-class fine + 4-class ordinal sleep, location-independent mapping · ethics: KU Leuven SMEC G-2024-8332 + Ghent University, written consent · access: open, gitlab.ilabt.imec.be.

An open dataset, and why that raises the stakes

Everything described above — all three synchronized streams, twenty participants, six layouts — is published as an open dataset (gitlab.ilabt.imec.be/datasets/Activity-recognition-datasets). For a comparison paper this is more than good citizenship; it is the difference between an argument and an invitation. Every claim in Chapter 8 can be re-derived by anyone with a laptop; every preprocessing choice in Chapter 6 can be varied and re-scored; and the questions the paper leaves open — would fusing the three modalities beat any single one? does FMCW with range retained really lose robustness? — are now homework problems rather than grant proposals. Synchronized multi-modality recordings of this kind are rare precisely because they are logistically painful to make; releasing one is the paper's most durable contribution, outliving any specific F1 score in it.

Inline concept check. Suppose the campaign had recorded FMCW on Mondays and Wi-Fi on Tuesdays with the same participants and instructions. Which conclusions of the paper would survive, and which would not?  …  The within-modality results (each radio's own accuracy, its layout sensitivity) would survive, since each is internally consistent. Every between-modality comparison — the headline rankings, the trade-off itself — would be compromised: differences could be explained by Monday-vs-Tuesday differences in how people moved, sat, and fidgeted. The synchronization is not a convenience; it is the license for the word "comparison" in the title.
Chapter 5 recap. (1) Real furnished bedroom (HomeLab), sensors bolted to one ceiling spot for the whole campaign. (2) Simultaneous recording to a common clock = the fairness theorem: identical activity executions in all three streams. (3) Six layouts move the furniture, not the sensor — the trap for position-memorising models; 1-2/3-4/5-6 share bed positions. (4) Twenty diverse participants, ethics-approved, up to 120 person-scenario recordings. (5) TTS-guided natural flows keep real transitions; timing still externally cued — the paper says so itself. (6) Two label sets from one recording: fine 10-class (location-independent mapping) and coarse ordinal 4-class sleep disruption. (7) Splits by person/scenario/bed-position — never by window — because 98%-overlapping windows make random splits meaningless. (8) All of it open.

Exercises

1. Windows per minute. With 2.5 s windows and a 0.05 s stride, how many windows does one minute of recording yield, and how many of them contain any given instant? Worked: (60 − 2.5)/0.05 + 1 = 1151 windows per minute; each instant falls inside 2.5/0.05 = 50 consecutive windows. Fifty near-copies of every moment — now re-read the "random splits would be a scandal" section and feel it numerically.

2. The leakage thought experiment. Under LOSO withholding layout 3, list what the model has still seen. Worked: layout 4 shares layout 3's bed position; other layouts contribute its chair position; all 20 people appear in training. Unseen: only the specific bed+chair combination. Now do LOBPO withholding 3-4: the bed position itself is gone. This pairing logic is the entire difference between the two protocols — and between 86.4% and 78.5% for one radio.

3. Label-set design. A hospital asks you to add a fifth coarse class: FALL. What does this paper's protocol lack for training it, and what would you propose? Reasoned answer: falls cannot be ethically cued as natural TTS instructions and are absent from the recordings; options are stunt-performed falls (execution realism suffers), simulation/augmentation, or anomaly-style detection where FALL is flagged as departure from the learned classes. Every published fall-detection paper wrestles exactly this; recognise the gap when reading their numbers too.

4. Ordinal stakes. Why is the coarse label set explicitly ordinal (NO ACTIVITY < ANXIOUS < INTERRUPTION < WANDER), and which confusion in Chapter 8 does ordinality make forgivable? Answer: the classes encode escalating disruption, so adjacent-level confusions (FMCW's 10% ANXIOUS→INTERRUPTION) overstate severity by one step — an acceptable error for an alerting system — whereas any-level→NO ACTIVITY (IR-UWB's 1–2%) skips the scale entirely and silences the alarm. Ordinality is why those two errors of similar size have wildly different products attached.

Cross-domain bridge
Layouts are domain shift you can schedule
Moving the bed between recordings is a controlled dose of what ML calls distribution shift — the deployment gap between training conditions and the world. Vision researchers simulate it with corruptions and new test sets; robotics calls it sim-to-real; this paper manufactures it physically, six times, with furniture. The generalisation ladders of Chapter 7 (person → combination → bed position) are precisely a shift-severity axis, and the LOSO-vs-LOBPO gap is a measured, physical out-of-distribution penalty — rarer and more trustworthy than any synthetic benchmark.
The six layouts move the bed and chair while the ceiling sensors never move. What failure mode of a learned activity recogniser is this designed to expose?

Chapter 6: From Raw Signal to CNN Input

Three measurement matrices now exist, and a neural network is waiting. This chapter is where the paper's most consequential decisions hide — not in the network, but in the transformations before it. Watch for one decision in particular: each pipeline must answer what happens to spatial information, and the three pipelines give three different answers. Nobody frames it as the experiment's pivotal variable at this point. Chapter 8 will reveal that it was.

The design constraint the paper sets itself: preprocessing should be as similar as possible across technologies (so the comparison reflects sensing, not processing) while not disadvantaging any modality by forcing choices tuned to another. The shared skeleton:

Common to all three
Slice into 2.5 s windows with 0.05 s stride → transform slow-time structure into a Doppler representationsuppress static clutter → feed the CNN an image-like 2D map.
but…
Divergent by necessity
How clutter is removed, over what interval Doppler is computed, and — above all — whether the range axis survives into the CNN input: collapsed (FMCW), retained (IR-UWB), never existed (Wi-Fi).

Pipeline 1 — FMCW: sharpen, sum, then throw range away

Each 50 ms frame delivers 96 chirps × Ns beat samples, times 12 virtual antennas — per antenna r, a matrix Fr. Step one is Chapter 2's 2D-FFT: transform along fast-time to resolve range, along slow-time to resolve Doppler, yielding one range-Doppler map per antenna:

RDMr[p, q] = | ℱNc { ℱNs { Fr } } |,   r = 1, …, 12

with range bin p and Doppler bin q. But before the second FFT, the static component must go. Static reflections are constant along slow-time, so after the range FFT they sit at zero Doppler — and the cleanest way to remove a constant is to subtract the mean. For each range bin k, subtract that bin's average over the 96 chirps:

ℱ̂Ns{Fr}[k, m] = ℱNs{Fr}[k, m] − (1/Nc) Σm'Ns{Fr}[k, m']

This is DC removal — literally the toy calculation you did by hand in Chapter 1's five-probe table, done per range bin per frame. The wardrobe vanishes; the person's nonzero-Doppler energy is untouched.

Next, the twelve antennas. The twelve clutter-suppressed RDMs are summed non-coherently — add the magnitudes, ignore the phases. The person's motion energy appears in all twelve maps and adds constructively; noise is uncorrelated across antenna pairs and averages down. Signal-to-noise ratio improves without any phase calibration across the array.

Then the move this whole lesson has been foreshadowing. For each Doppler bin, take the maximum over range:

Range is deliberately collapsed. The 2D range-Doppler map becomes a 1D Doppler profile: "at each velocity, how much motion energy exists somewhere in the room" — with the where discarded. Why is this safe for FMCW when it will not be for IR-UWB? Because of what came before: 0.126 m bins cleanly separate the moving body's returns from clutter, and the 12-antenna sum lifts them well above the noise — so the per-Doppler-bin maximum reliably picks the person, not a noise spike. Sharp resolution and diversity earn the right to throw position away. What survives is the pure micro-Doppler pattern; what is lost is any ability to know whether motion happened at the bed or the chair. Keep the bargain in view: this is robustness being purchased with spatial detail.

Stacking successive frames' Doppler profiles along time yields a time-Doppler map D[t, q] — velocity signature versus time, refreshed every 50 ms. Finally, windowing: 2.5 s windows with a per-sample stride (the 50 ms frame interval), maximising data diversity. The CNN input axes: time × Doppler.

Follow the shapes through one 2.5-second window to make the collapse vivid. Per frame: 12 antennas × 96 chirps × Ns beat samples of raw IQ. After the 2D-FFT: 12 maps of Ns range bins × 96 Doppler bins. After the non-coherent sum: one map, Ns × 96. After the max over range: a single row of 96 Doppler values — the entire frame's spatial structure compressed to one velocity profile. Fifty frames fill the window: a 50 × 96 time-Doppler image. Every number the CNN will ever see from FMCW says "this much energy at this velocity at this moment" — and not one of them says where.

Pipeline 2 — IR-UWB: correct, crop, and keep the range axis

The UWB stream arrives as raw IQ CIRs at 150 Hz. First, Chapter 3's first-path phase correction — without it the Doppler transform would read clock drift as motion. Then discard the first 12 fast-time samples (pre-FP, the FP itself, saturation, ceiling clutter). Then windowing: 2.5 s windows, but with the stride at 0.05 s rather than per-sample — at 150 Hz a per-sample stride would multiply the dataset without adding meaningful diversity, so the stride is matched to the FMCW frame interval for comparability.

Now Doppler. For each window W and each retained fast-time bin k separately, take an FFT along slow-time:

RDMW[k, q] = | ℱm ∈ W { x̃[m, k] } |

— a range-Doppler map again, but note the profound difference from FMCW's: here the Doppler transform runs over the entire 2.5-second window, not over one 50 ms frame. The Doppler axis is then cropped to ±25 Hz, a limit found by per-modality grid search to contain the activity-induced motion; beyond it lies little but noise.

Run the arithmetic on this transform and enjoy how the numbers interlock. The window holds 2.5 s × 150 Hz = 375 packets, so the slow-time FFT has 375 points and its frequency bins are 150/375 = 0.4 Hz wide — which is just 1/Tobs = 1/2.5 s, as it must be. Convert bin width to velocity with the monostatic Doppler relation fD = 2v/λ: Δv = 0.4 × 0.0462 / 2 = 0.00924 m/s — the 0.009 m/s of Table II, re-derived from a different direction. The ±25 Hz crop spans about 125 bins and corresponds to radial velocities up to 25 × 0.0462/2 ≈ 0.58 m/s — modest-sounding, but remember the vantage: from the ceiling, a horizontally walking body presents mostly transverse motion, and the radial component that a downward-looking radar sees is a fraction of the walking speed. The grid search discovering that everything interesting lives within ±25 Hz is the data agreeing with the geometry.

And the pivotal decision, made the other way:

Range is retained. The paper's reasoning, from its own Section V: with one receive channel and coarser 0.30 m bins, the moving returns are less cleanly isolated per bin — weaker contrast means a max-over-range collapse would too often select clutter, or capture only a fragment of an activity signature spread across bins. Retaining the full range × Doppler map avoids that premature selection, and empirically outperformed the collapsed version. So the CNN input axes for IR-UWB are range × Doppler — the network is told where motion happened. Spatial detail preserved; and with it, as Chapter 8 will show, the temptation to memorise the furniture.

Last, residual clutter. DC removal per frame is not available here (there are no frames), so the pipeline estimates the background per range-Doppler cell as a running median over a 10-second temporal neighbourhood, subtracted from the current map:

RDM̃W[k, q] = RDMW[k, q] − medianW' ∈ 𝒩(W) RDMW'[k, q]

where 𝒩(W) is the neighbourhood of windows centred on W spanning Tbg = 10 s. The median tracks what a cell looks like "usually" — slowly varying clutter — while a transient activity, present for a couple of seconds, barely moves the median and thus survives subtraction.

Why a median and not a mean? Robustness to exactly the thing being protected. A mean over 10 s includes the activity: a two-second stand-up contributes a fifth of the samples, dragging the "background" estimate upward and partially subtracting the event from itself. A median asks instead "what value does this cell take on a typical window?" — and a burst occupying a minority of the neighbourhood leaves the middle-ranked value almost untouched. The event survives whole; only what persists most of the time is treated as background. (The same reasoning, at a different timescale, is why FMCW's per-frame DC removal works: over 96 chirps in 26 ms, even a moving person is nearly static, so the mean across chirps is almost purely clutter — there, the mean is safe because the interval is short.) But read "centred" again: the neighbourhood extends into the future. The method is non-causal — it needs up to Tbg/2 = 5 seconds of latency in a real-time deployment before it can finalise a window. A fall detector built exactly this way would learn about the fall five seconds late; a production system would need a causal (past-only) background estimate and should expect slightly worse clutter suppression. The paper flags the latency itself.

Pipeline 3 — Wi-Fi: regularise time, then average the subcarriers

The Wi-Fi stream has a defect neither radar has: irregular sampling. Packets leave when the MAC layer permits, and Fourier analysis assumes uniform spacing — timing jitter directly corrupts the phase evolution that carries Doppler. So step one: interpolate the complex CSI onto a uniform 500 Hz grid.

Why is interpolation onto a uniform grid the very first step, before anything spectral? Because a Fourier transform's notion of "frequency" is cycles per sample, and it trusts the samples to be equally spaced in time. Feed it packets that arrived at 1.7, 2.3, 1.9, 2.6 ms intervals and a perfectly steady 10 Hz motion smears into a haze of spurious frequencies — the jitter itself masquerades as Doppler. Interpolating the complex CSI to an even 500 Hz grid restores the contract. It is the third clock-related repair in three chapters — FMCW needed none (one chip), IR-UWB fixed oscillator drift with a reference path, Wi-Fi fixes scheduling jitter with resampling — three different diseases, one underlying truth: coherent Doppler sensing is only ever as good as its time base.

Step two: per subcarrier, a short-time Fourier transform (STFT) along slow-time — window 200 samples (0.4 s), overlap 175 samples (0.35 s) — producing a time-Doppler map per subcarrier. The 53 maps are then averaged in magnitude:

S[t, q] = (1/Nc) Σk=1Nc | Sk[t, q] |

with t the STFT time index and q the Doppler bin. Each subcarrier sees the same motion through a slightly different phase geometry; averaging 53 slightly different views firms up the common Doppler content — the poor radio's version of FMCW's 12-antenna sum. The STFT yields spectrum out to 250 Hz; a grid search found the action inside ±80 Hz, so the map is cropped there. Then the same 10-second running-median clutter removal as UWB (per Doppler bin, non-causal, same 5 s latency), and the same 2.5 s / 0.05 s windowing. Input axes: time × Doppler — like FMCW's, but with no range axis ever having existed to collapse.

The shape arithmetic, once more, because it hides a satisfying alignment. A 2.5 s window at 500 Hz holds 1250 samples. The STFT hop is 200 − 175 = 25 samples = 0.05 s — exactly the window stride used across all three modalities, so each stride step advances the STFT by precisely one column. Columns per window: (1250 − 200)/25 + 1 = 43 time frames. Frequency bins are 1/0.4 s = 2.5 Hz wide; the ±80 Hz crop keeps 64 of them. So Wi-Fi hands the CNN a 43 × 64 image — comparable in size to FMCW's 50 × 96, built from a radio that was never designed to sense anything.

Worked example: the Doppler resolutions, by hand

Chapter 2 derived range resolution from bandwidth. Doppler resolution has a twin formula with a twist: it is not a hardware constant. It depends on how long you coherently watch, Tobs — a preprocessing choice:

Δv = λ / (2 Tobs)

Intuition first: two targets differing in radial velocity by Δv drift apart in round-trip phase at rate 2Δv/λ cycles per second; to tell them apart, you must watch long enough for at least one full cycle of difference to accumulate — Tobs ≥ λ/(2Δv). Rearranged, that is the formula. Longer watching buys finer velocity discrimination.

IR-UWB, whose Doppler FFT spans the whole 2.5 s window, with λ = 4.62 cm at 6.49 GHz:

Δv = λ / (2 Tobs) = 0.0462 / (2 × 2.5) = 0.0462 / 5 = 0.00924 ≈ 0.009 m/s

Nine millimetres per second of velocity resolution — matching the paper's Table II exactly. That is fine enough to separate the languid components of a roll-over from one another.

FMCW, whose Doppler FFT spans only one 96-chirp frame, reports Δv = 0.093 m/s — ten times coarser, despite the finer wavelength. And we can extract a hidden hardware fact from this number: invert the formula to find the effective coherent interval,

Tobs = λ / (2 Δv) ≈ 0.0048 / (2 × 0.093) ≈ 0.026 s = 26 ms

The 96 chirp loops occupy roughly 26 ms of coherent observation inside each 50 ms frame — the remainder is inter-chirp idle time and the interleaving of the three transmitters. (This also confirms Chapter 2's suspicion that the active chirp is shorter than the 0.52 ms repetition bound.) Why not just lengthen Tobs by FFT-ing across frames? Because Doppler processing assumes the scene's velocities are constant over Tobs: a posture transition lasting a second is not one velocity but a trajectory. FMCW's design samples that trajectory 20 times per second at coarse velocity resolution; IR-UWB's design integrates 2.5 s of it at exquisite resolution. Different bets on the same signal. Wi-Fi sits between: its 0.4 s STFT window gives frequency resolution 1/0.4 = 2.5 Hz per Doppler bin, resolved 20 times per 2.5 s window.

Sim F — Doppler resolution: how long you watch is what you see

Two motion components at nearby radial velocities (torso drift at 0.20 m/s, and a second component you control). The spectrum below is what each radio's Doppler transform sees, with peak width set by its own coherent interval via Δv = λ/(2Tobs). Switch radios: at FMCW's 26 ms frame the peaks merge into one blob; at IR-UWB's 2.5 s window they stand cleanly apart at 0.009 m/s resolution.

2nd velocity
 FMCWIR-UWBWi-Fi
Clutter removalDC removal per frame (mean over 96 chirps, per range bin)Running median, 10 s, per range-Doppler cellRunning median, 10 s, per Doppler bin
Phase repairnone needed (one chip)first-path phase subtractioninterpolation to uniform 500 Hz (jitter)
Doppler interval Tobsone 96-chirp frame (~26 ms coherent)2.5 s window0.4 s STFT window
Doppler resolution0.093 m/s0.009 m/s2.5 Hz per bin, crop ±80 Hz
Diversity combiningnon-coherent sum, 12 antennasnone (single channel)magnitude average, 53 subcarriers
Spatial informationcollapsed (max over range)retained (range axis kept)never existed (7.5 m bin)
CNN input axestime × Dopplerrange × Dopplertime × Doppler
Real-time latency debtup to 5 s (non-causal median)up to 5 s (non-causal median)
Inline concept check. Both radars produce a "range-Doppler map", yet FMCW's RDM and IR-UWB's RDMW are built over wildly different time spans (26 ms vs 2500 ms). What is the trade both are making?  …  The Doppler-FFT interval trades velocity resolution against velocity tracking: Δv = λ/(2Tobs) improves with a long interval, but the transform assumes velocities are constant within it. FMCW takes many quick, coarse velocity snapshots (fine time evolution, 0.093 m/s bins); IR-UWB takes one long, fine exposure per window (0.009 m/s bins, motion history integrated). Neither is wrong — they encode the same event with different priorities, and the CNN receives correspondingly different images.

Realize it: all three pipelines on one page

The complete preprocessing, condensed to honest pseudocode — read it top to bottom and the divergence is impossible to miss:

# ------- FMCW: per 50 ms frame (12 antennas x 96 chirps x Ns samples) -------
for r in antennas(12):
    rng[r]  = fft(frame[r], axis=fast)            # range profile per chirp
    rng[r] -= mean(rng[r], axis=chirps)           # DC removal (Eq. 13)
    rdm[r]  = abs(fft(rng[r], axis=chirps))       # range-Doppler (Eq. 12)
summed  = sum_r(rdm[r])                           # non-coherent 12-antenna sum
profile = max(summed, axis=range)                 # RANGE COLLAPSED -> 1D Doppler
input   = stack_frames(profile, win=2.5, stride=0.05)   # time x Doppler

# ------- IR-UWB: stream of CIRs at 150 Hz --------------------------------
cir  = cir * exp(-1j * angle(cir[:, k_fp]))       # first-path fix (Eq. 14)
cir  = cir[:, 12:]                                # drop pre-FP/FP/saturated bins
win  = window(cir, 2.5, stride=0.05)              # 375 packets per window
rdm  = abs(fft(win, axis=slow_time))              # per range bin (Eq. 15)
rdm  = crop(rdm, doppler=±25)                    # grid-searched band
input = rdm - running_median(rdm, T=10)           # RANGE RETAINED -> range x Doppler

# ------- Wi-Fi: CSI packets, ~500 Hz irregular ----------------------------
csi  = interp_uniform(csi, fs=500)                # repair MAC jitter
S_k  = stft(csi[:, k], win=0.4, overlap=0.35)     # per subcarrier
S    = mean_k(abs(S_k))                           # average 53 subcarriers (Eq. 17)
S    = crop(S, doppler=±80)
S    = S - running_median(S, T=10)
input = window(S, 2.5, stride=0.05)              # NO RANGE EVER -> time x Doppler

Three inputs, one network. The comments in capitals are the paper's destiny written in advance.

Five design questions, answered from the paper's own logic

Why 2.5-second windows? Long enough to contain a posture transition's full velocity trajectory, short enough that windows remain mostly single-activity; and it doubles as IR-UWB's coherent Doppler interval, buying the 0.009 m/s resolution. One number, two jobs.

Why a 0.05 s stride everywhere? It is FMCW's natural frame interval, adopted by the other two for comparability — a per-sample stride at 150 or 500 Hz would inflate the dataset with near-duplicates without adding diversity. Even the stride is a fairness decision.

Why grid-search the Doppler crops (±25 Hz UWB, ±80 Hz Wi-Fi) per modality? Because the informative band genuinely differs with carrier frequency and geometry, and forcing one crop on all three would disadvantage somebody — the exact anti-goal. "As similar as possible, but never tailored to another's physics" cuts both ways.

Why does FMCW skip the running median? Its clutter is already dead: DC removal per frame kills zero-Doppler content 20 times a second, and the range collapse discards the bins where residual static texture would linger. UWB and Wi-Fi, whose maps keep structure that drifts slowly (furniture edges in retained range bins; residual channel texture), need the 10-second median as a second line of defence.

Could the pipelines be swapped — FMCW keeping range, UWB collapsing? Mechanically, trivially. Scientifically, that is the ablation the paper leaves open — the one experiment that would convert the four-property interpretation from a well-argued diagnosis into a proof. The open dataset makes it a weekend project; Chapter 9 files it accordingly.

Chapter 6 recap. (1) Shared skeleton: 2.5 s / 0.05 s windows → Doppler transform → clutter removal → 2D map. (2) FMCW: 2D-FFT per frame, DC removal, 12-antenna non-coherent sum, then max-over-range — range collapsed; 50×96 time-Doppler input. (3) IR-UWB: phase fix, drop 12 bins, whole-window per-bin FFT (0.4 Hz bins → 0.009 m/s), ±25 Hz crop — range retained; range×Doppler input. (4) Wi-Fi: interpolate to 500 Hz, 0.4 s STFT, average 53 subcarriers, ±80 Hz — no range ever; 43×64 input. (5) Running median (10 s, non-causal, 5 s latency) for the two that need it; median beats mean because transients barely move it. (6) Δv = λ/(2Tobs): 0.009 vs 0.093 m/s — and inverting the paper's number exposed the ~26 ms coherent frame.

What breaks if you skip a step — the failure catalogue

Skip DC removal (FMCW): the zero-Doppler ridge — walls, bed frame, wardrobe, orders of magnitude above the person — dominates every map; the max-over-range then harvests clutter instead of motion, and the "Doppler profile" describes the furniture. You saw it in Chapter 2's exercise 4.

Skip the first-path correction (IR-UWB): clock drift rotates every tap's phase far faster than any human moves; the per-bin FFT reads the drift as broadband Doppler and the ±25 Hz band fills with garbage. Chapter 3's snippet, one line commented out.

Skip discarding the 12 early bins (IR-UWB): saturated and ceiling-clutter taps enter the map as the strongest features; worse, the FP itself — now phase-flattened to exactly zero by its own correction — injects a spurious perfectly-static row the median must then handle.

Skip interpolation (Wi-Fi): MAC jitter masquerades as phase noise; the STFT smears every Doppler component (exercise 3, Chapter 4 — ~7° per half-millisecond at 40 Hz), degrading exactly the higher-frequency band where gesture detail lives.

Skip the running median (IR-UWB / Wi-Fi): residual slow clutter — breathing-scale furniture texture, drifting channel structure — survives into the input, and the CNN, given a stable room-specific pattern, will happily learn it. Skipping this step would worsen the very layout overfitting Chapter 8 measures; the median is not cosmetic, it is a partial de-fingerprinting of the room.

Use a centred median in production: not a correctness failure but a latency one — up to 5 s. The paper's honesty about this is your permission to ask every sensing paper: "is any step non-causal, and what does the causal version cost?"

Exercises

1. The numbers ledger, from memory. Close the lesson and write down: window/stride, the three clutter strategies, the three Tobs values, both Doppler crops, and which pipeline keeps range. Check against: 2.5 s / 0.05 s; DC-removal vs 10 s running median (×2); ~26 ms / 2.5 s / 0.4 s; ±25 Hz / ±80 Hz; IR-UWB keeps range, FMCW collapses, Wi-Fi never had it.

2. Bin arithmetic. How many Doppler bins does the IR-UWB ±25 Hz crop retain, and what velocity span is that? Worked: bins are 0.4 Hz wide (1/2.5 s), so ~125 bins; velocity span ±25 × 0.0462/2 = ±0.58 m/s. Modest — and sufficient, because ceiling geometry shrinks radial velocities.

3. Latency audit. An alert pipeline runs: 2.5 s window + centred 10 s median + voting over a completed event. Bound the delay between a wander beginning and the system confirming it. Reasoned: up to 5 s of median future-context + up to 2.5 s for a fully-covering window + the event's own duration for voting = the fall-risk walk may be over before the label is final. Production redesign: causal median, incremental voting on windows so far.

Cross-domain bridge
Feature engineering never died — it moved into the sensor
Deep learning's promise was "raw data in, features learned" — yet here, before a 30k-parameter CNN, stand three hand-built pipelines making decisive representational choices. This is the norm in sensing: the physics-aware transform (Fourier, mel spectrogram, beamforming) compresses raw signal into a space where a small network suffices, and the choice of transform quietly is the hypothesis. Exactly as a mel spectrogram bakes "pitch matters, phase doesn't" into speech models, max-over-range bakes "motion matters, place doesn't" into FMCW — and the paper's results are the empirical bill for each baked assumption. Compare our ConvNets lesson on what CNNs can and cannot be expected to learn from small data.
The FMCW pipeline takes a max over range to make a 1D Doppler profile, while the IR-UWB pipeline keeps the full range × Doppler map. According to the paper, why does the same collapse that works for FMCW fail for IR-UWB?

Chapter 7: One CNN, Three Protocols

A comparison paper faces a temptation its authors deserve credit for resisting: tune a bespoke model per modality and present three local optima as a fair fight. This paper does the opposite. One CNN architecture, identical across all three modalities — so that when the scores differ, the difference measures the information content of the input representations, not the cleverness of three model-design efforts. The classifier is deliberately boring. The evaluation protocols are where the intelligence went.

What the network sees

Each modality delivers a 2D map of shape (T × F) per 2.5-second window — but recall from Chapter 6 that the axes mean different things: for FMCW and Wi-Fi they are time × Doppler; for IR-UWB they are range × Doppler. The network is agnostic; it treats every input as an image. Whether the "image" contains spatial structure is exactly the experimental variable smuggled through from Chapter 6.

The architecture, block by block

StageOperationFiltersPooling
Conv block 13×3 conv, same padding → ELU → batch norm81×2 max-pool (feature axis only)
Conv block 23×3 conv, same padding → ELU → batch norm162×2 max-pool
Conv block 33×3 conv, same padding → ELU → batch norm322×2 max-pool
Conv block 42×2 conv, same padding → ELU → batch norm642×2 max-pool
Conv block 52×2 conv, same padding → ELU → batch norm642×2 max-pool
Headflatten → dense 32 → dense 32 → softmax over the classes

Read the design like an engineer. The filter counts 8, 16, 32, 64, 64 grow as spatial extent shrinks — cheap low-level edge detectors first (a Doppler onset, a velocity ridge), richer combinations deeper. Kernels shrink from 3×3 to 2×2 in the last two blocks because by then the maps are small — a 3×3 kernel would span most of what remains. ELU activations (exponential linear units) keep gradients alive for negative inputs, useful in small networks; batch normalisation stabilises training on modest data. And the quirky detail that proves someone looked at their tensors: the first block pools 1×2 — downsampling only the feature axis F, preserving the first axis at full resolution for one more block before the regular 2×2 cascade begins.

This is a deliberately small network — five conv blocks and two dense-32 layers, orders of magnitude below anything fashionable. Count the convolutional weights yourself from the stated architecture (weights = kernel height × width × input channels × filters, plus one bias per filter):

BlockKernel × in × outWeights + biases
13×3 × 1 × 872 + 8 = 80
23×3 × 8 × 161152 + 16 = 1168
33×3 × 16 × 324608 + 32 = 4640
42×2 × 32 × 648192 + 64 = 8256
52×2 × 64 × 6416384 + 64 = 16448
Convolutional stack total≈ 30,600 parameters

Thirty thousand parameters in the feature extractor — about a millionth of a modern language model (the dense head adds more, its size depending on each modality's input dimensions after five poolings). Right-sized, because the training set — 20 people × 6 layouts of windows, heavily correlated by the 0.05 s stride — is small by deep-learning standards, and because the point is comparison, not leaderboard: an architecture that any of the three representations can saturate. There is also a deployment argument hiding here: a 30k-parameter CNN runs comfortably on the kind of embedded processor that ships beside a EUR 14 radar, so the study's conclusions transfer to hardware a product would actually use.

Keeping a small net honest

Small data invites overfitting, and the paper stacks four defences. L2 weight decay (λ = 10−2 — strong) on all learnable layers penalises large weights. Batch norm operates in the conv blocks. Dropout only in the classifier head — a considered asymmetry: the conv stack is already regularised by weight sharing and batch norm, while the dense layers hold most of the classifier-specific parameters, so that is where dropout pays. And class weighting compensates for imbalance — a night contains vastly more NO ACTIVITY than CLAP HANDS, and without weighting the loss would happily under-serve the rare classes.

Hyperparameters were selected by grid search on training data using the same leave-one-person-out cross-validation as the final evaluation, with the test fold kept unseen — the selected architecture then frozen across modalities. Batch size, learning rate, and schedule were tuned per modality (fair: different input shapes train differently), but the architecture itself was not.

Why "identical CNN" is the right control even though it is nobody's optimum. A bespoke model per modality would confound representation quality with modelling effort — you would learn which team tuned harder, not which physics carries more information. Fixing f() and varying only X turns the classifier into a measuring instrument. The cost is a caveat the paper owns: conclusions are about these representations through this class of model; a transformer or a range-aware architecture could shift the absolute numbers. The relative story, grounded in what information each input contains, is the durable part.

Scoring: macro F1, before and after voting

All results are reported as macro F1. For each class, F1 is the harmonic mean of precision (of the windows I called ANXIOUS, how many were?) and recall (of the true ANXIOUS windows, how many did I find?); macro means the ten per-class F1 scores are averaged unweighted.

Feel the difference with a deliberately rigged toy. A night's stream contains 9,500 NO ACTIVITY windows and 500 ANXIOUS windows; a lazy model predicts NO ACTIVITY always. Plain accuracy: 9500/10000 = 95% — a glowing number for a monitor that has never once detected the restlessness it was installed to detect. Now macro F1. For ANXIOUS: recall 0/500 = 0, so F1ANXIOUS = 0. For NO ACTIVITY: precision 9500/10000 = 0.95, recall 1.0, F1 = 2(0.95)(1.0)/(1.95) = 0.974. Macro average: (0.974 + 0)/2 = 48.7%. The metric collapses to roughly half, exactly reflecting that the model does half its job. That is why every headline number in Chapter 8 is macro F1: plain accuracy would let NO ACTIVITY's abundance launder failure on the rare, clinically interesting classes.

Each number is also reported before and after voting. The classifier emits a label every 0.05 s — but nobody deploys 20 predictions per second; they ask "what was this event?" Voting answers that: all window-level predictions belonging to the same ground-truth activity are replaced by their majority-voted label.

Watch it work, and watch it fail, on a toy event. A 3-second STAND UP spans 60 overlapping windows. Case one: the model labels 38 of them STAND UP, 12 SIT DOWN (the confusable mirror transition), 10 scattered. Majority: STAND UP — all 60 windows are re-labelled correctly, and 22 window-level errors vanish from the score. This is the mechanism behind the +8 to +14-point voting gains of Chapter 8: most window errors are flickers, not sustained misreadings, especially near event boundaries where a window straddles two activities. Case two: the model labels 26 STAND UP and 29 SIT DOWN. Majority: SIT DOWN — now all 60 windows become wrong, including the 26 that were right. Voting amplifies whichever tendency is sustained; it launders noise but doubles down on systematic confusion. That is why voted and unvoted scores are both reported: their gap measures how much of a modality's error is flicker (recoverable by smoothing) versus conviction (not).

The caveat the paper states plainly: voting groups windows using ground-truth activity boundaries, so voted numbers describe event recognition under known segmentation. A deployed system must find event boundaries itself and may gain less.

Sim G — voting: launderer of flickers, amplifier of convictions

One 3-second STAND UP event = 60 windows. Each square is one window's prediction; the strip below shows every window after majority voting. Raise the flicker rate and watch voting shrug off scattered errors — then push the systematic-confusion slider past the tipping point and watch voting convert one sustained mistake into sixty.

Random flicker SIT DOWN confusion

Three protocols, three definitions of "unseen"

Here is where the paper shows its teeth. A single train/test split answers only one question. The real question — will it work on the next patient, in the next room? — decomposes into levels of novelty, and the paper evaluates all of them as leave-x-out cross-validation, reporting mean ± standard deviation over folds:

LOPO — leave one person out (20 folds)
Train on 19 participants, test on the one withheld. Measures generalisation to unseen people in seen environments — every layout appears in training. The kindest protocol.
↓ harder
LOSO — leave one scenario out (6 folds)
Withhold one room layout entirely. Unseen combination — but the paper flags its own protocol as partly optimistic: each scenario moves only one piece of furniture, so the withheld layout's bed position or chair position still appears in other training scenarios. Only the combination is new.
↓ hardest
LOBPO — leave one bed position out (3 folds)
Withhold scenarios in pairs — 1-2, 3-4, 5-6 — so each fold removes one complete bed configuration from training. No leakage path remains for in-bed geometry: the model meets a bed position it has truly never seen. The strictest test of cross-layout generalisation.

Dwell on the LOSO caveat, because papers rarely indict their own protocol. Recall Chapter 5: the six layouts are pairs sharing bed positions. Withhold layout 3 and the model still trained on layout 4 — same bed position, different chair. For activities anchored to the bed (LIE ON BED, GET UP BED, ANXIOUS), the crucial geometry leaked. LOBPO exists precisely to plug that leak: withhold both members of a bed-position pair and in-bed activities occur at genuinely novel ranges. The gap between a radio's LOSO and LOBPO scores therefore measures how much that radio was leaning on the leak — which is exactly how Chapter 8 will catch one modality red-handed.

ProtocolFoldsWhat is unseenWhat still leaksDeployment question answered
LOPO20The personAll layouts seenNew resident, instrumented room
LOSO6The layout combinationBed and chair positions individually, via sibling scenariosRearranged room, familiar positions — the realistic care-home case, where layouts are fairly uniform
LOBPO3The entire bed configurationInstall in a genuinely new room
Inline concept check. Why does macro F1 after voting under LOBPO represent the paper's most deployment-honest headline number — and what one asterisk still hangs on it?  …  LOBPO removes the last geometric leakage (whole bed configurations unseen), voting scores whole events rather than 50 ms flickers, and macro F1 refuses to let the abundant quiet class hide failures on rare clinical events. The asterisk: voting used ground-truth event boundaries, which a live system does not have — it must segment the stream itself, so real event-level gains may be smaller.

Realize it: the exact network, buildable from the table

The paper's Table III translates line for line into any framework. In Keras-style pseudocode, with the paper's regularisation:

# The shared CNN — identical for FMCW, IR-UWB, Wi-Fi inputs
reg = l2(1e-2)                                   # on ALL learnable layers
model = Sequential([
  Conv2D(8,  (3,3), padding="same", kernel_regularizer=reg),
  ELU(), BatchNorm(), MaxPool2D((1,2)),          # pool feature axis only
  Conv2D(16, (3,3), padding="same", kernel_regularizer=reg),
  ELU(), BatchNorm(), MaxPool2D((2,2)),
  Conv2D(32, (3,3), padding="same", kernel_regularizer=reg),
  ELU(), BatchNorm(), MaxPool2D((2,2)),
  Conv2D(64, (2,2), padding="same", kernel_regularizer=reg),
  ELU(), BatchNorm(), MaxPool2D((2,2)),
  Conv2D(64, (2,2), padding="same", kernel_regularizer=reg),
  ELU(), BatchNorm(), MaxPool2D((2,2)),
  Flatten(),
  Dense(32, kernel_regularizer=reg), Dropout(p),   # dropout in head ONLY
  Dense(32, kernel_regularizer=reg), Dropout(p),
  Dense(n_classes, activation="softmax")
])
model.compile(loss="categorical_crossentropy",     # with class weights
              optimizer=Adam(lr_per_modality))     # batch/lr tuned per modality

Nothing exotic — deliberately. If your instinct is "I could train this on a laptop": yes, and that is the point. The experimental power of this paper lives in its data design and protocols, not in architecture novelty.

The metric zoo, and why macro F1 was the right cage

MetricWhat it rewardsFailure mode for this task
AccuracyBeing right on windows, regardless of classPredicting NO ACTIVITY always looks brilliant (the 95%-accurate useless monitor)
Weighted F1Per-class F1, weighted by class frequencyRare classes still barely move the score — the imbalance re-enters through the weights
Micro F1Pooled counts over all classesEquals accuracy in single-label multiclass — same trap, fancier name
Macro F1 (the paper's choice)Every class equally, precision and recall bothCan be harsh: one hopeless rare class caps the score — which is here a feature, since the rare classes are the clinical ones
Chapter 7 recap. (1) One CNN for all three modalities turns the classifier into a measuring instrument; per-modality tuning is confined to batch/LR. (2) Architecture: 5 conv blocks (8/16/32/64/64, 3×3 then 2×2, ELU + BN, 1×2 pool first then 2×2), two dense-32, softmax — ~30k conv parameters. (3) Regularisation: strong L2 (10−2), dropout in the head only, class weighting; grid search under LOPO with the test fold untouched. (4) Macro F1 because the rare classes are the point. (5) Voting = majority label per ground-truth event: launders flicker, amplifies sustained confusion, assumes known segmentation. (6) LOPO → LOSO → LOBPO: unseen person → unseen combination (bed/chair positions leak via siblings) → unseen bed configuration, the strictest.

Exercises

1. Macro F1 by hand. A 3-class fold gives per-class F1 of 0.98, 0.85, 0.40. Compute macro F1, then explain what a 0.40 class does to the headline that accuracy would hide. Worked: (0.98 + 0.85 + 0.40)/3 = 0.743. If the 0.40 class is rare, accuracy might read 0.95 while macro F1 confesses that a third of the system's job is barely working — exactly the honesty the paper's rare gesture classes require.

2. The voting boundary. In the 60-window event with random flicker rate p (errors split between two wrong classes), roughly what p makes voting start to fail? Reasoned: voting fails when correct windows lose the plurality: with errors split two ways, correct count 60(1−p) must beat 30p; that holds until p ≈ 2/3 — voting is remarkably tolerant of unstructured error. It fails much earlier if errors concentrate on one wrong class (sustained confusion beats 50%): structure, not volume, is voting's enemy. Sim G lets you find both boundaries by hand.

3. Fold accounting. How many models get trained for one modality's complete fine-grained evaluation across all three protocols? Worked: LOPO 20 + LOSO 6 + LOBPO 3 = 29 training runs per modality per label set — and the paper reports two label sets and three modalities: the full result table represents 174 trained models. Controlled comparison is mostly compute discipline.

Cross-domain bridge
Leave-X-out is the question "what will vary in deployment?" made executable
Every cross-validation scheme encodes a theory of what the world will change on you. Speaker-independent speech recognition leaves out speakers; cross-hospital medical imaging leaves out hospitals; this paper leaves out people, then layouts, then bed positions. The craft is matching the fold boundary to the deployment boundary — and the paper's own admission that LOSO leaks via sibling scenarios is the sophistication that separates rigorous evaluation from ritual. The temporal-smoothing side of this chapter (voting) gets its full-machinery treatment in CRF & HSMM smoothing.
LOSO already withholds an entire room layout per fold. Why did the paper need LOBPO on top of it?

Chapter 8: The Trade-off Revealed

Everything is now in place: three synchronized data streams, three preprocessing pipelines with one hidden divergence, one boring CNN, three protocols of escalating cruelty. Before the table, make your prediction. Chapter 6 told you FMCW threw away position while IR-UWB kept it. What should happen when the bed moves to an unseen position?

The headline numbers

Fine-grained 10-class, macro F1 after votingFMCWIR-UWBWi-Fi
LOPO — unseen person, seen layouts83.4%89.0%79.0%
LOSO — unseen layout combination86.6%86.4%75.3%
LOBPO — unseen bed position83.8%78.5%68.8%

Read down the columns and the paper's whole thesis is there. IR-UWB starts on top — 89.0% against 83.4% — and bleeds as the protocols harden, losing 10.5 points from LOPO to LOBPO. Wi-Fi starts last and falls just as hard (−10.2 points). FMCW does something almost eerie: 83.4, 86.6, 83.8. When the bed moves to a position the network has never seen, FMCW does not notice — its LOBPO score is four tenths of a point above its LOPO score. The modality that discarded position is the only one indifferent to position changing.

Sim C — the results explorer

Every bar is an exact macro-F1 from the paper's Table IV (after voting). Step through the protocols and watch the ranking flip between LOPO and LOBPO on the fine task; then switch to the sleep label set and watch the differences nearly vanish. Under Fine · LOPO, ghost bars show the before-voting scores and the voting gains.

Protocol: Labels:

Unseen people: everyone copes, voting pays

Start with the kindest protocol. Before voting, per-window LOPO macro F1 is 78.6% for IR-UWB, 75.0% for FMCW, 65.0% for Wi-Fi — and IR-UWB is also the steadiest across participants (standard deviation 5 points against FMCW's 9). Within this sample, no modality shows systematic dependence on height, weight, age, or gender — recognition is not tied to one body profile, though 20 participants cannot settle demographic robustness in general.

Then voting: +14.0 points for Wi-Fi, +10.4 for IR-UWB, +8.4 for FMCW — lifting them to 79.0 / 89.0 / 83.4. The ordering of the gains is itself informative: voting rescues errors that are not sustained across an event, so the modality with the noisiest window-level predictions (Wi-Fi) profits most. Yet even after its biggest-in-class rescue, Wi-Fi remains 4.4 points behind FMCW and 10.0 behind IR-UWB. Temporal smoothing recovers flickers; it cannot conjure spatial information that was never captured.

Unseen layouts: the mean lies, the folds confess

Under LOSO the two radars tie: 86.6% vs 86.4%. Case closed? Look at the fold-to-fold spread, which is where this paper does its best detective work. Across six folds, FMCW's best-minus-worst range is 2.3 points (std 0.8). IR-UWB's is 12.8 points (std 5.4) — five and a half times wider. IR-UWB scores 91–93% when the withheld layout is 1, 2, or 5, but 80–82% when it is 3, 4, or 6 — precisely the layouts where the bed sits farther off-centre or the chair at an unfavourable angle. The mean says "equivalent"; the variance says one radio is placement-sensitive and the other is not.

Then LOBPO removes the last leak, and the tie shatters: FMCW 83.8% (unchanged from LOPO), IR-UWB down 10.5 to 78.5%, Wi-Fi down 10.2 to 68.8%. Even within LOBPO, IR-UWB's loss depends on which bed position is withheld — 73.3% for the 3-4 fold against 81.7% (1-2) and 80.4% (5-6) — while Wi-Fi sits near 69% in all three folds. The paper's diagnosis: IR-UWB's layout-specific losses point at its retained range axis; Wi-Fi's uniform loss reflects a channel response that cannot resolve bed position at all, yet still absorbed layout-specific multipath patterns during training.

Fold-level evidenceFMCWIR-UWBWi-Fi
LOSO mean (after voting)86.6%86.4%75.3%
LOSO fold spread (max − min)2.3 pts (std 0.8)12.8 pts (std 5.4)
LOSO favourable layouts (1, 2, 5)~unchanged91–93%
LOSO unfavourable layouts (3, 4, 6)~unchanged80–82%
LOBPO fold 1-2 / 3-4 / 5-6— (mean 83.8%)81.7 / 73.3 / 80.4%≈69% in all three

Fold-level analysis is an underused instrument, and this table is a masterclass in it. Two systems with the same mean are not the same system: one delivers 86-and-a-bit essentially every time; the other delivers 92 when the furniture cooperates and 80 when it does not. For a product, the second behaviour is worse than its mean — you cannot tell a customer "accuracy depends on where your bed is". Whenever you evaluate anything with folds, plot the folds.

The trade-off, now in its final form. Spatial detail is a loan, not a gift. IR-UWB's range axis and 0.009 m/s Doppler bins buy real discrimination — +13 points over FMCW on STAND UP, +6 on GET UP BED, +4 on SIT DOWN under LOPO — but the collateral is layout dependence: the network learns where transitions happen, and pays 10.5 points when the bed moves. FMCW, having spent its range resolution and antenna diversity to isolate a clean position-free Doppler signature, has nothing to lose when the room changes — and loses nothing. Wi-Fi is the cautionary third case: no explicit position axis, yet it still overfits the layout, because the unresolved CSI mixes the room's whole propagation geometry into every sample — the network memorises the room without ever being told where anything is.

The confusion matrices: reading each radio's mind

Aggregate scores say how much each modality fails; the row-normalised, after-voting confusion matrices say how, and each failure signs its physical cause. One paragraph of instrument-reading first, since these matrices repay careful eyes. Each row is a true class; each entry in the row is the fraction of that class's events predicted as each label; row-normalised means each row sums to 1, so the diagonal entry is exactly that class's recall. The off-diagonal entries are the interesting part: they tell you not just that a class was missed but what it was mistaken for — and misdirections are fingerprints. Confusing LIE ON BED with GET UP BED (its temporal mirror) whispers "I had a location-and-direction cue and it inverted"; confusing CLAP with EATING whispers "I can see hands moved but not how"; confusing anything with NO ACTIVITY whispers "my evidence dropped below detection." Read the next four paragraphs with that decoder ring.

What everyone gets right. NO ACTIVITY is recalled at ≥98% by every modality under every protocol — empty-room detection is solved. FMCW recognises WALK perfectly (100%): a walking body's macro-Doppler is unmistakable in a pure velocity profile. FMCW also holds EATING at 98% and stays stable on hand gestures generally — credit its fine range bins separating body-region returns and the 12-antenna sum lifting subtle hand motion above noise, before the collapse.

Where the bed moves, part 1 — IR-UWB. Under LOBPO, IR-UWB's LIE ON BED recall collapses from 89% to 57%, with 23% assigned to GET UP BED. Read that misdirection carefully: not to a random class, but to the opposite bed transition — the model had partly encoded "which range bins light up, in which order" for the trained bed position, and at an unseen position the learned direction cue inverts or dissolves. WALK recall also slips 95% → 89%, with errors flowing to LIE ON BED and GET UP BED — bed-anchored classes absorbing mistakes exactly as a range-tied representation predicts.

Where the bed moves, part 2 — Wi-Fi. Wi-Fi keeps WALK at 99% under LOBPO but maps 9% of ANXIOUS onto WALK: with zero ability to tell where motion occurs, energetic tossing in bed and walking across the room can produce similar aggregate Doppler. Its GET UP BED falls 78% → 55%, split between SIT DOWN (17%) and LIE ON BED (16%) — the posture-transition family blurring into itself. And CLAP HANDS crashes from 47% to 21%, leaking into EATING and WAVE HANDS: the unresolved channel preserves evidence that hands moved, but not enough detail to say how.

Two signature quirks. IR-UWB is the modality most prone to mapping real activity to NO ACTIVITY — 13% of EATING under LOPO: its single channel's lower per-bin SNR plus residual phase instability from the unsynchronised boards raise the evidence threshold for "something is happening", so subtle repetitive motion sometimes dips below it. FMCW's one notable cross-layout change is LIE ON BED → ANXIOUS doubling from 7% to 14%: with range collapsed, both classes reduce to low-velocity in-bed motion — the price of the collapse, surfacing in the one place two classes are separated mostly by where they occur... which for these two classes is the same place, leaving only subtle Doppler differences.

Confusion (after voting)NumberPhysical cause
NO ACTIVITY recall, all modalities, all protocols≥98%Empty vs occupied is easy in every representation
FMCW WALK / EATING recall100% / 98%Clean position-free Doppler; 12-antenna SNR
IR-UWB LIE ON BED, LOPO → LOBPO89% → 57% (23% to GET UP BED)Retained range axis tied transitions to trained bed position
IR-UWB advantage on STAND UP / GET UP BED / SIT DOWN (LOPO)+13 / +6 / +4 pts vs FMCWFiner Doppler (0.009 vs 0.093 m/s) + retained range — contributions not separable
Wi-Fi CLAP HANDS, LOPO → LOBPO47% → 21%No spatial resolution; gesture detail lost in the mixed channel
Wi-Fi GET UP BED, LOPO → LOBPO78% → 55%Posture transitions blur without position or fine detail
IR-UWB EATING → NO ACTIVITY (LOPO)13%Single-channel SNR + residual phase instability raise detection threshold
FMCW LIE ON BED → ANXIOUS, cross-layout7% → 14%Range collapsed: both classes are low-velocity in-bed motion

The coarse task: everyone graduates

Switch to the 4-class ordinal sleep-disruption labels and the drama deflates — which is itself the finding. After voting: LOPO 98.2% IR-UWB, 96.1% Wi-Fi, 95.1% FMCW; LOSO 97.7 / 95.1 / 94.9; LOBPO 94.2 / 92.6 / 93.4 — all three within 1.6 points of each other at the strictest protocol, all three above 92% everywhere. The distinctions that murdered Wi-Fi on the fine task (which gesture? which transition?) either merged into INTERRUPTION or left the label set entirely. The paper is scrupulous here: these values describe a less demanding classification problem, not improved sensing fidelity.

Sleep 4-class, macro F1 after votingFMCWIR-UWBWi-Fi
LOPO95.1%98.2%96.1%
LOSO94.9%97.7%95.1%
LOBPO93.4%94.2%92.6%

The residual errors still carry signatures worth a deployment engineer's attention. Under LOBPO, FMCW sends 10% of ANXIOUS to INTERRUPTION (adjacent levels — a severity overestimate); Wi-Fi sends 5% of ANXIOUS to WANDER; IR-UWB's WANDER recall falls 97% → 85%, split between ANXIOUS and INTERRUPTION. And one operationally loaded detail: IR-UWB is the only modality assigning non-zero fractions (1–2%) of all three activity classes to NO ACTIVITY. Small numbers — but those are missed sleep disruptions, silent failures, qualitatively worse for a monitoring product than confusing two disruption levels. An alarm that occasionally under-reports severity annoys; one that occasionally reports nothing happened erodes the trust the whole system depends on.

What the errors suggest about fusion

Lay the three modality's failure lists side by side and notice they barely overlap. FMCW's blind spot (LIE ON BED vs ANXIOUS — a where problem) is precisely where IR-UWB's retained range excels. IR-UWB's cross-layout collapse (bed transitions at unseen positions) is precisely where FMCW is untouchable. IR-UWB's missed-detection habit (activity → NO ACTIVITY) is where FMCW's 12-antenna SNR and Wi-Fi's eager 500 Hz sampling rarely fail. Complementary error profiles are the textbook precondition for fusion gains — and this dataset records all three streams synchronously, so the fusion experiment needs no new measurement campaign at all. The paper leaves it untouched, which makes it the most obvious open door in Chapter 9.

Inline concept check. Wi-Fi has no range axis in its input at all — so why does it still lose ~10 points when the bed position changes, almost exactly matching IR-UWB's drop?  …  Because absence of an explicit position axis is not absence of position information. The CSI is the superposition of the room's entire propagation geometry; move the bed and every path's delay and attenuation shifts, changing the "texture" of the channel response. The CNN, given nothing better, learns layout-specific channel patterns entangled with activity patterns — implicit overfitting. FMCW is protected not by lacking spatial information but by its pipeline explicitly isolating the moving return and discarding its coordinates: the input approximates a function of body motion alone.

Read any results table like this one taught you

This chapter's analytical moves generalise far beyond radar, so extract the checklist. One: read the columns of the headline table separately — a modality's trajectory across protocols tells you more than any single cell (FMCW's flat line was the finding). Two: distrust ties on the mean until you have seen the folds — 86.6 vs 86.4 concealed a 5.5× difference in variability. Three: when scores drop, ask where the errors went — misdirection targets (LIE ON BED → GET UP BED, not → random) carry causal information that aggregate deltas do not. Four: check whether before/after-postprocessing gaps differ by system — Wi-Fi's +14.0 voting gain vs FMCW's +8.4 revealed whose raw predictions flicker. Five: separate task difficulty from system quality — the sleep-task scores rose for everyone because the question got easier, and the paper says so rather than banking the credit. Any of these five, applied to the next benchmark table you read, will occasionally save you from a wrong conclusion; together they usually will.

Chapter 8 recap. (1) Fine task after voting — LOPO: 83.4 / 89.0 / 79.0; LOSO: 86.6 / 86.4 / 75.3; LOBPO: 83.8 / 78.5 / 68.8. The ranking flips between first and last. (2) Voting gains +8.4 / +10.4 / +14.0 over 75.0 / 78.6 / 65.0 — noisiest modality gains most. (3) LOSO fold spreads: FMCW 2.3 pts vs IR-UWB 12.8 — the tie was not a tie. (4) Confusion fingerprints: IR-UWB LIE ON BED 89→57% (23% to GET UP BED) at unseen bed positions; Wi-Fi CLAP 47→21%; FMCW's one cost, LIE ON BED→ANXIOUS 7→14%; IR-UWB's silent misses (13% EATING→NO ACTIVITY). (5) Sleep task: everyone >92% everywhere; differences ≤1.6 pts under LOBPO — an easier question, not better sensing; IR-UWB's 1–2% missed disruptions are the operationally scary residue. (6) Cause assignment throughout: retained range overfits layouts; collapsed range transfers; unresolved CSI overfits implicitly.

Exercises

1. Design the missing ablation. Using the open dataset, specify exactly the experiment that would test whether IR-UWB's LOBPO drop is caused by retained range: inputs, folds, and the two numbers you would compare. Answer sketch: rebuild IR-UWB windows with a max-over-range collapse (matching FMCW's recipe), train the identical CNN, evaluate LOPO and LOBPO; compare its LOPO→LOBPO drop against the retained version's 10.5 points. If the collapsed version holds flat (at presumably lower LOPO), property 4 is causally confirmed for this radio.

2. Read a row. Under LOBPO, Wi-Fi's ANXIOUS row sends 9% to WALK; IR-UWB's WALK row sends errors to LIE ON BED and GET UP BED. Explain both misdirections from physics, in one sentence each. Answers: Wi-Fi cannot tell where motion occurs, so energetic in-bed tossing resembles locomotion's aggregate Doppler; IR-UWB's walking errors flow to bed-anchored classes because its representation partly indexes activities by range cells whose meaning changed when the bed moved.

3. The product manager's question. "So IR-UWB is 89% and FMCW is 83% — ship the UWB one, right?" Write the three-sentence correction. Model answer: That 89% holds only when deployment rooms match training layouts; at an unseen bed position IR-UWB falls to 78.5% while FMCW holds 83.8%. If we can collect data per room, UWB wins; if not, FMCW does. And if the product's real question is the four-level sleep scale, every radio clears 92% and we should pick on cost and power instead — which flips the answer back to UWB.

4. Spot the easiest fusion win. From the confusion fingerprints, which single pairing of modalities patches the largest single failure, and how? One defensible answer: FMCW + IR-UWB: FMCW's position-free Doppler anchors LOBPO robustness, while IR-UWB's retained range disambiguates exactly FMCW's LIE-ON-BED/ANXIOUS blur in rooms it knows; a confidence-weighted late fusion could take each radio where the other's fingerprint predicts failure. (The dataset supports testing this today.)

Cross-domain bridge
The accuracy-robustness frontier is everywhere features are chosen
A model given richer features fits its training world better and transfers worse when those features shift — radar range bins here, but equally: surface-form lexical features in NLP (great in-domain, brittle across genres), texture cues in ImageNet CNNs (accurate until the texture changes), price-microstructure features in trading models (alpha until the regime moves). The general law: a feature is a bet that its correlation with the label survives deployment. FMCW's pipeline is a refusal to bet on position; IR-UWB took the bet and collected 5.6 points until the furniture moved. Our Why Fuse? lesson picks up the complementary-errors thread this chapter left dangling.
Between LOPO and LOBPO, IR-UWB falls 89.0% → 78.5% while FMCW moves 83.4% → 83.8%. Which statement best captures the paper's explanation?

Chapter 9: Choosing Your Radar

Strip the paper to its load-bearing idea and you get a four-property framework — the lens through which every result of Chapter 8 becomes predictable rather than surprising. Then finish the way a deployment engineer must: with watts, euros, and what else the box can do.

The four properties

PropertyWhat it buysFMCWIR-UWBWi-Fi
1. Range resolution c/(2B)Separates body regions and objects before information is combined0.126 m0.30 m7.5 m (> room)
2. Antenna diversityNon-coherent integration lifts motion energy over uncorrelated noise — effective SNR12 TX–RX pairs1 channel53 subcarriers averaged (weak substitute)
3. Doppler resolution λ/(2Tobs)Separates closely spaced radial velocities — finer motion description0.093 m/s0.009 m/s2.5 Hz bins (0.4 s STFT)
4. Spatial retentionExplicit position for the classifier — and explicit position to overfitcollapsedretainednone (implicitly entangled)

The trade-off in one breath: properties that preserve more spatial and motion detail give the classifier richer discriminative information — and simultaneously increase the risk of learning environment-specific characteristics that do not transfer. IR-UWB rides properties 3 and 4 to its LOPO crown and is dethroned by property 4 under LOBPO. FMCW spends properties 1 and 2 to make the collapse in property 4 safe, converting spatial detail into robustness. Wi-Fi, holding none of the first three, demonstrates the subtle downside case: even without explicit spatial retention, an unresolved channel response entangles layout into everything.

Spelled out per modality, as the paper's interpretation section argues it. FMCW: fine range bins separate the moving body's returns from most surrounding clutter before anything is combined; the non-coherent sum over twelve pair-specific maps raises their contrast; so after static suppression, the per-Doppler-bin range maximum reliably retains the strongest moving return and can discard its coordinate. Stacked over time, the result preserves the combined micro-Doppler pattern with most explicit position information removed — built to transfer, at the cost of the spatial cues that would help distinguish location-bound transitions. IR-UWB: coarser bins and a single channel mean moving returns are less cleanly isolated per bin, so early selection (the max) is dangerous and retaining the full map is right; together with Doppler resolution ten times finer than FMCW's, this hands the classifier real spatial structure and velocity detail — which improves posture-transition recognition in known layouts and ties those distinctions to the ranges seen in training. Wi-Fi: a stable phase (shared clock) makes motion clearly visible, but the room's paths are mixed before processing; 53 subcarriers over 20 MHz provide some frequency diversity, far too little to reconstruct the missing separation; and because the CSI carries the whole room's combined propagation, the network can learn layout-specific channel patterns together with the activity — overfitting the room without ever being shown a range axis.

One epistemic caveat the paper itself insists on, and so must we: the hardware and the representations were not varied independently — IR-UWB's retained range arrives together with its finer Doppler and its single channel, so their individual causal contributions cannot be quantified from this study. What supports the framework is consistency: the sensing properties, the fold-level behaviour, and the class-specific confusions all point the same way. It is a well-argued diagnosis, not a controlled ablation — the ablation (same radar, collapse vs retain) is an obvious and worthwhile follow-up.

Beyond accuracy: the deployment ledger

Power. More than an order of magnitude separates the three. The DW3000-based IR-UWB pair sips about 0.2 W continuously — and can go far lower with duty-cycling. The single-chip FMCW draws 1.2–1.75 W (upper end for the three-transmitter configuration used here). The Wi-Fi SDR platform consumes 3.5–4.0 W (measured: 5.2 V at 0.68–0.76 A) — with the fair footnote that a ZedBoard-plus-FMCOMMS2 is a development platform, not power-optimised, and not representative of commodity Wi-Fi silicon… which, however, cannot do this job at all.

Scale the power numbers to a facility to feel them. A 200-room care home running FMCW at the 1.75 W worst case burns 1.75 × 24 × 365 ≈ 15.3 kWh per room-year — about 3,070 kWh across the facility; the same building on 0.2 W IR-UWB uses 1.75 kWh per room-year, roughly 350 kWh total (straight arithmetic on the paper's power figures; electricity prices left to your utility). Neither is a fortune — the real power story is different: 0.2 W with duty-cycling headroom is the difference between "needs mains wiring at every ceiling position" and "runs a year on a battery pack", which for retrofit installations is the entire project cost.

Cost. Another order of magnitude, the other way around from what "Wi-Fi is free" intuition suggests. At 1000-unit distributor prices (June 2026): the two-node UWB radar totals about EUR 14 (two ~EUR 7 DW3000 transceivers); the FMCW chip about EUR 20; and monostatic Wi-Fi about EUR 320 for the cheapest suitable SDR — because no commercial Wi-Fi chipset supports the full-duplex monostatic radar mode, a specialised platform is mandatory. Development-grade pricing that would fall in a dedicated deployment, but the structural point stands: the "already deployed" radio is the one whose radar mode requires the most exotic hardware.

Localization. Only FMCW offers robust 3D localization as a complement to HAR: 0.126 m range bins plus angle from the 12 virtual channels. The UWB kits support ranging and angle-of-arrival in principle, but accuracy is bounded by the 0.30 m resolution and — a nasty practical detail — ranging on humans is hard because the body reflects weakly, a limitation amplified by the ceiling geometry's reduced radar cross-section. Wi-Fi's 20 MHz put localization out of reach before the discussion starts.

Communication. The mirror image. Wi-Fi is the data network — sensing reuses an existing link at no spectral cost. IR-UWB is IEEE 802.15.4z: ranging and data on the same COTS device. FMCW is sensing-only; it needs a companion radio to report what it saw — a real bill in installation and certification, not just euros.

 FMCWIR-UWBWi-Fi (monostatic SDR)
Fine HAR, unseen person (LOPO)83.4%89.0%79.0%
Fine HAR, unseen bed position (LOBPO)83.8%78.5%68.8%
Sleep monitoring, worst case93.4%94.2%92.6%
Power1.2–1.75 W~0.2 W3.5–4.0 W
Cost (1k units)~EUR 20~EUR 14~EUR 320
3D localizationrobustlimitedno
Native communicationnone802.15.4z802.11

The decision procedure

Is coarse sleep monitoring the actual product?
Then accuracy barely discriminates — all three exceed 92% even at unseen bed positions — so decide on the ledger: IR-UWB wins on power (0.2 W), cost (EUR 14), and built-in communication. Watch its one wart: 1–2% of disruptions silently classified as NO ACTIVITY.
↓ no — fine-grained recognition needed
Will rooms match the training layouts? (care homes: usually yes)
The LOSO case — the paper calls it the realistic one for fairly uniform care-home layouts — has the radars equivalent on the mean (86.6 vs 86.4). Prefer IR-UWB for its economics if you can tolerate placement sensitivity (fold spread 12.8 pts); prefer FMCW if predictability across rooms matters (spread 2.3 pts).
↓ no — layouts will vary, or nobody will retrain
Unseen rooms, no per-site data collection
FMCW, and it is not close: 83.8% vs 78.5% vs 68.8% at unseen bed positions — plus robust 3D localization as a bonus. Budget the extra watt and the separate data link.
and
When is Wi-Fi the answer?
On this evidence: when monostatic sensing is not actually required — i.e. for research, or for bi-static/existing-infrastructure setups outside this paper's scope. As a single-anchor ceiling radar it is dominated on every axis measured here: least accurate, least robust, most power-hungry, most expensive.
The paper's own closing verdict, compressed: robustness favours FMCW; cost, power efficiency, and integrated connectivity favour IR-UWB; and despite the appeal of reusing existing infrastructure, Wi-Fi is currently the least practical choice for monostatic radar. The preferred modality is a function of the deployment priority — which is precisely why a controlled comparison, rather than a single winner, was the right paper to write.

Three deployments, walked through

Deployment 1: a 200-room care home, retrofit, sleep-safety mandate. The product question is the coarse one — quiet / restless / interrupted / wandering — and every radio clears 92% even at unseen bed positions, so accuracy does not choose. Rooms are near-uniform (the LOSO regime, which the paper calls the realistic care-home case), installation is at scale, and every euro and watt multiplies by 200. Choose IR-UWB: EUR 14, 0.2 W, battery-viable, and the 802.15.4z link reports events without new network drops. Two engineering to-dos come with it: replace the non-causal background median with a causal one (a 5-second-late WANDER alert is a worse product), and characterise the 1–2% silent-miss rate — per event, over months, that number decides whether nurses trust the system.

Deployment 2: a home-care startup shipping one box to a thousand different bedrooms. Now the task is fine-grained (the clinician wants eating patterns and transition counts, not just disruption levels), every bedroom is a layout the model never saw, and per-home calibration visits are economically impossible. This is LOBPO as a business model. Choose FMCW: 83.8% where the others manage 78.5% and 68.8%, plus 3D localization to enrich reports with activity hotspots. Budget the 1.2–1.75 W (mains or generous battery), pair it with any cheap radio for backhaul, and pocket the fold-stability (2.3-point spread) as a support-cost saving: the product behaves the same in every house.

Deployment 3: a research group extending this very paper. Keep all three — that is the point of the open dataset. The highest-value experiments, ranked by effort-to-insight: (1) the representation ablation — FMCW with range retained vs collapsed on identical data — which would isolate property 4 causally; (2) early- and late-fusion of the three streams against the best single modality; (3) causal clutter removal and online segmentation, to convert the voted numbers into deployable ones. Each is a paper, and each needs zero new hardware.

What is still open

Fusion. The dataset is synchronized across all three radios by construction — the ideal substrate for multi-modal fusion, which the paper measures not at all. The confusion analysis begs for it: FMCW's LIE-ON-BED/ANXIOUS blur is exactly where IR-UWB's retained range helps; IR-UWB's unseen-layout collapse is exactly where FMCW's collapsed range is immune. A fused system might keep 89% and 84%. The dataset is open; this is a thesis waiting for an author.

Spontaneity. TTS-cued flows preserve natural transitions but not natural timing — nobody instructed a real insomniac at 3 a.m. Real patients, real nights, and genuinely spontaneous behaviour (plus events this protocol could not ethically stage, like falls) remain the gap between 89% here and a deployable clinical claim.

Causal, segmentation-free operation. Two honest debts from the pipeline: the 10 s running median is non-causal (up to 5 s latency), and voting used ground-truth event boundaries. A production stack needs causal background estimation and online segmentation, both of which will shave points off the voted numbers.

The representation ablation. The four-property framework is consistent with everything observed, but range-collapse-vs-retention was never isolated on one radar. Running FMCW with range retained (and IR-UWB collapsed) on this same open dataset would convert the paper's diagnosis into a proof.

Connections on this site

The moves in this paper are instances of patterns you can go deepen right now. The static/dynamic/noise decomposition and the discipline of asking where the information lives is the heart of our Why Fuse? lesson and the whole Sensor Fusion Atlas. The 2D-FFT that turns phase ramps into range-Doppler peaks is the same Fourier machinery built from scratch in the FFT lesson. The CNN's conv-pool-dense anatomy is derived layer by layer in Convolutional Networks and trained end-to-end in CNN Classification. The synchronized-recording discipline — one clock, many sensors — is the subject of Calibration & Time Sync. And voting-style temporal smoothing of frame-level labels reappears, with more machinery, in CRF & HSMM Temporal Smoothing.

Questions engineers actually ask, answered from the paper

"Can I just fine-tune per room and keep IR-UWB's 89%?" If you can collect labelled data in each deployment room — yes, that is effectively the LOPO condition, and IR-UWB is your radio. The catch is operational: per-room data collection means a technician, a protocol, and a consenting resident per install. LOBPO exists because most deployments cannot afford that; decide which world you live in before choosing.

"Do these results transfer to other rooms, buildings, mounting heights?" Cautiously. The physics arguments (bandwidth → resolution, collapse → robustness) are portable; the exact F1 values are one bedroom's numbers, from cued activities and single occupancy. The paper claims guidelines, not universal constants — and provides the dataset so you can check your own conditions.

"Why do all three do so well on sleep monitoring even at unseen bed positions? Doesn't that contradict the overfitting story?" No — it confirms where overfitting bites. The coarse classes differ mainly in gross motion energy and rhythm (still vs restless vs transition vs walking), which every representation captures without spatial detail. Layout overfitting damaged precisely the fine distinctions that leaned on where; merge those away and the layout dependence mostly merges away with them.

"Is the CNN the bottleneck? Would a transformer change the ranking?" Possibly the absolute numbers; plausibly not the physics-driven pattern. The information Wi-Fi never captured is not recoverable by any architecture, and FMCW's input contains almost nothing layout-specific for any model to overfit. The most architecture-sensitive claim is IR-UWB's: a model with built-in spatial invariances (or aggressive range augmentation) might keep more of its 89% at unseen positions. That is a research question the open dataset invites.

"What single number do I quote in a design review?" Quote two, and the protocol names with them: "89.0% fine-grained macro F1 for IR-UWB when rooms match training (LOPO), 83.8% for FMCW at unseen bed positions (LOBPO)." Quoting either alone misrepresents the paper — the pair is the finding.

Glossary — every term this lesson introduced

TermMeaning in one line
FMCWFrequency-modulated continuous wave radar: chirps, beat frequencies, range-Doppler maps
IR-UWBImpulse-radio ultra-wideband: ~2 ns pulses over ≥500 MHz, echoes timed directly
CSIChannel state information: per-subcarrier complex channel estimate from each Wi-Fi packet
CIRChannel impulse response: the room's echoes as amplitude-delay taps
Chirp / chirp rate μLinearly frequency-swept probe; sweep speed B/Tc in Hz/s
Beat frequency fbMixer output tone 2μR/c — range encoded as pitch
Slow-time / fast-timeAcross probes (ms scale, where motion lives) / within one probe (ns–μs scale, where range lives)
Range resolution ΔRc/(2B): minimum separable reflector spacing — 0.126 / 0.30 / 7.5 m here
Doppler resolution Δvλ/(2Tobs): minimum separable radial-velocity difference — 0.093 / 0.009 m/s
Micro-DopplerThe braid of per-body-part velocities over time that fingerprints an activity
Range-Doppler map (RDM)2D image: reflected energy indexed by (distance, radial velocity)
Monostatic / bi-static / pseudo-monostaticTX and RX co-located / separated / separated by a negligible baseline (30 cm)
Virtual antennaOne TX–RX pair; 3×4 = 12 independent looks on the IWR6843AOP
Non-coherent integrationSumming magnitudes across channels: signal reinforces, uncorrelated noise averages down
First-path (FP) correctionSubtracting the static LOS tap's phase per packet to cancel common-mode clock drift
OFDM / subcarrierMany narrow parallel tones instead of one fast signal; Wi-Fi's 53 test tones over 20 MHz
openwifiOpen-source IEEE 802.11 SDR on FPGA — the platform enabling monostatic Wi-Fi radar
CFO / SFO / STOCarrier-frequency, sampling-frequency, symbol-timing offsets — the bi-static phase plagues a shared clock eliminates
DC removalSubtracting the per-range-bin mean over a frame's chirps — kills zero-Doppler clutter
Running median backgroundPer-cell median over 10 s subtracted from the map; robust to transients; non-causal, up to 5 s latency
STFTShort-time Fourier transform: sliding-window spectra — Wi-Fi's 0.4 s Doppler lens
Macro F1Unweighted mean of per-class F1 — rare classes count fully
VotingMajority label over all windows of one ground-truth event — event-level score under known segmentation
LOPO / LOSO / LOBPOLeave one person / scenario / bed-position out — escalating definitions of "unseen"
Radar cross-section (RCS)Effective reflecting area of a target — reduced for humans seen from the ceiling
Spatial-information retentionWhether the classifier input keeps explicit position — the paper's decisive fourth property
Chapter 9 recap. (1) Four properties explain everything: range resolution, antenna diversity, Doppler resolution, spatial retention — detail buys accuracy and risks layout dependence. (2) The framework is a consistent diagnosis, not an ablation; the paper says so. (3) Ledger: power 1.2–1.75 / 0.2 / 3.5–4.0 W; cost ~EUR 20 / 14 / 320; localization FMCW only; communication Wi-Fi and IR-UWB natively. (4) Decisions: coarse sleep product → IR-UWB on economics; fine HAR in matching rooms → IR-UWB with placement caution; unseen rooms, no retraining → FMCW, decisively; monostatic Wi-Fi → currently dominated. (5) Open: fusion, spontaneous behaviour, real patients, causal pipelines, online segmentation, and the collapse-vs-retain ablation on this very dataset.

The cheat sheet

FactValue
Range resolutions (FMCW / UWB / Wi-Fi)0.126 / 0.30 / 7.5 m — from c/(2B) with B ≈ 1.19 GHz / 499.2 MHz / 20 MHz (ratio ~2 : 1 : 0.04)
Doppler resolutionsFMCW 0.093 m/s (96-chirp frame) · IR-UWB 0.009 m/s (2.5 s window) · Wi-Fi 0.4 s STFT window
Slow-time rates96 chirps / 50 ms frame · 150 Hz CIR · 500 Hz mean packets
HardwareTI IWR6843AOP (60–64 GHz, 3×4 = 12 virtual ch.) · Qorvo QM33120WDK1 / DW3000 (ch. 5, 6.49 GHz) · ZedBoard + FMCOMMS2 running openwifi (53 subcarriers)
Spatial info in CNN inputFMCW collapsed (max over range) · IR-UWB retained · Wi-Fi nonexistent
Fine 10-class, after votingLOPO 83.4 / 89.0 / 79.0 · LOSO 86.6 / 86.4 / 75.3 · LOBPO 83.8 / 78.5 / 68.8 (FMCW / UWB / Wi-Fi)
Voting gains (LOPO fine)+8.4 / +10.4 / +14.0 points over 75.0 / 78.6 / 65.0
LOSO stabilityFMCW fold spread 2.3 pts (std 0.8) vs IR-UWB 12.8 pts (std 5.4)
Sleep 4-class, after votingLOPO 95.1 / 98.2 / 96.1 · LOBPO 93.4 / 94.2 / 92.6 — all >92% everywhere
Signature confusionsIR-UWB LIE ON BED 89→57% (LOBPO) · Wi-Fi CLAP HANDS 47→21% · FMCW LIE ON BED→ANXIOUS 7→14% · IR-UWB EATING→NO ACTIVITY 13%
DeploymentPower 1.2–1.75 / 0.2 / 3.5–4.0 W · Cost ~EUR 20 / 14 / 320 · 3D localization: FMCW only · Comms: none / 802.15.4z / 802.11
Dataset20 participants (14M/6F, 21–67 y), 6 layouts, synchronized, TTS-guided, open

References

  1. Lambrecht, A., El Hail, R., Jiao, X., Crombez, P., Schreurs, D., Karsmakers, P., Shahid, A., De Poorter, E. "A comparison between ceiling-mounted FMCW, IR-UWB and Wi-Fi radar for in-bedroom human activity monitoring and sleep interruption detection," 2026 — arXiv:2608.20322. The paper this lesson is built on; open dataset at gitlab.ilabt.imec.be/datasets/Activity-recognition-datasets.
  2. Jiao, X., Liu, W., Mehari, M., Aslam, M., Moerman, I. "openwifi: a free and open-source IEEE 802.11 SDR implementation on SoC," IEEE VTC2020-Spring, 2020. The platform that makes monostatic Wi-Fi radar possible.
  3. De Moerloose, J., Shahid, A., De Poorter, E. "Towards mm-Level Accurate UWB Radar: High-Accuracy Phase-Based Obstacle Detection through Multi-Channel Fusion," 2026 — arXiv:2606.16657. Source of the first-path phase correction of Chapter 3.
  4. Texas Instruments. IWR6843, IWR6443 Single-Chip 60 to 64 GHz mmWave Sensor Datasheet, rev. F, April 2025. The FMCW radar's configuration and power figures.
  5. Ma, Y., Zhou, G., Wang, S. "WiFi Sensing with Channel State Information: A Survey," ACM Computing Surveys 52(3), 2019. The definitive map of what CSI can and cannot see.
  6. Wrede, C., Braakman-Jansen, A., van Gemert-Pijnen, L. "Understanding acceptance of contactless monitoring technology in home-based dementia care," Frontiers in Digital Health 5, 2023. The 304-caregiver acceptability survey (RF 4.0/5 vs camera 3.1/5).
  7. Canever, J. B. et al. "Worldwide prevalence of sleep problems in community-dwelling older adults: A systematic review and meta-analysis," Sleep Medicine 119, 2024. The 36-country 40%-poor-sleep / 29%-insomnia figures.
"What I cannot create, I do not understand."
The dataset is open, the CNN is five blocks, and every preprocessing step in Chapter 6 is a dozen lines of NumPy. Download one layout's recordings, rebuild the FMCW Doppler profile and the UWB range-Doppler map, and reproduce one row of Table IV — then run the ablation this paper leaves on the table: FMCW with range retained. You would be extending the literature, not just reading it.

Exercises

1. The three numbers, forever. Without looking: the three range resolutions, the two Doppler resolutions, and the three LOBPO fine-grained scores. Check: 0.126 / 0.30 / 7.5 m; 0.093 / 0.009 m/s; 83.8 / 78.5 / 68.8%. If you can also say why each follows from the one before it, this lesson is finished with you.

2. Spec your own deployment. Pick a real setting you know — a relative's bedroom, a hospital bay, a studio apartment. Walk the decision flow: task granularity, layout uniformity, retraining budget, power/wiring, who needs the data and over what link. Write the choice and its two biggest risks. No single answer — but if your write-up never cites a number from the ledger, redo it with numbers.

3. Reproduce one cell. Plan the minimal path to reproducing IR-UWB's LOPO 89.0%: download the open dataset; implement Chapter 6's UWB pipeline (Eqs. 14–16 — the Chapter 3 snippet is most of it); build Chapter 7's CNN; run 20 LOPO folds with class weighting; apply voting within ground-truth events; compute macro F1. Estimate which step costs the most wall-clock. Likely answer: the 20 training runs — everything else is an afternoon. Then run it.

4. Argue the other side. Write the strongest good-faith case that Wi-Fi sensing is still the right investment despite these results. Fair ingredients: bi-static deployments reuse existing infrastructure at true zero hardware cost; newer standards carry wider channels; a sensing-aware future Wi-Fi chipset could expose monostatic CSI at commodity prices; and the coarse-task result (92.6% at unseen positions) shows the information for sleep-grade monitoring already survives 20 MHz. The paper's verdict is about today's monostatic single-anchor option — know exactly how far it extends.

The closing thought

Strip away the radar jargon and this paper teaches a discipline that outlives its numbers. Three instruments looked at the same world. Each was honest about what it kept and what it threw away — and the one engineered to forget the most (position, place, the room itself) was the one still standing when the world rearranged. That is not a radar lesson. That is the bias-variance trade-off with a bedroom ceiling for a blackboard, and it is the reason a well-chosen representation beats a clever model wherever deployment differs from training. When you next design a feature pipeline — any pipeline — ask the question this paper operationalised: which of these features is a fact about the signal, and which is a fact about my lab?

Exit gate — teach it back before you leave.

Without scrolling up: (1) derive all three range resolutions from c/(2B) and say what each means physically for a body in a bedroom; (2) explain the FMCW beat-frequency trick and compute fb for a target at 2 m; (3) state the measurement-matrix decomposition x = s + d + w and name which pipeline step removes s in each modality; (4) explain why FMCW collapses range while IR-UWB retains it, and predict from that the LOPO and LOBPO winners; (5) pick a radar for (a) a battery-powered sleep monitor and (b) a fine-HAR system installed in arbitrary rooms — with numbers. If any of the five stalls, its chapter is one tap away.

A hardware startup asks: "Which radar should we build into our bedroom monitor?" Based on this paper, what is the correct first response?