FMCW Radar Signal Processing
A complete engineering guide to Frequency Modulated Continuous Wave radar — from chirp waveform design through beat frequency generation, range-Doppler processing, ambiguity functions and CFAR detection. Worked examples for 77 GHz automotive radar and weather radar.
Why FMCW?
Traditional pulsed radar measures range by timing the round-trip delay of a short pulse. FMCW radar instead transmits a continuous frequency-swept signal — called a chirp — and measures range by comparing the frequency difference between the transmitted and received signals. This approach offers several fundamental advantages over pulsed radar for short-to-medium range applications.
| Parameter | Pulsed Radar | FMCW Radar |
|---|---|---|
| Transmit power | High peak (kW–MW) | Low continuous (mW–W) |
| Range measurement | Time delay (ns precision) | Frequency difference (Hz precision) |
| Min. detectable range | Limited by pulse width | Essentially zero — simultaneous TX/RX |
| Hardware complexity | High voltage pulse gen. | Simple VCO + mixer |
| Size/cost | Large, expensive | Chip-scale MMIC (TI AWR1843) |
| Best for | Long range (air traffic, weather) | Short–medium range (automotive, industrial) |
The Chirp Waveform
An FMCW chirp is a sinusoid whose instantaneous frequency increases linearly with time — from start frequency f₀ to f₀+B over a sweep time Tc.
S = B/Tc (chirp slope, Hz/s)
f(t) = f₀ + S·t (instantaneous frequency)
B = bandwidth swept · Tc = chirp duration
λ = c/fc where fc = f₀ + B/2 (centre frequency)
Key Chirp Design Parameters
| Parameter | Symbol | Controls | Typical (77 GHz Auto) |
|---|---|---|---|
| Centre frequency | fc | λ, Doppler sensitivity | 77 GHz |
| Bandwidth | B | Range resolution | 1–4 GHz |
| Chirp duration | Tc | Max unambiguous velocity | 20–100 μs |
| Chirp slope | S = B/Tc | Beat freq per unit range | 10–200 MHz/μs |
| Chirps per frame | Nc | Velocity resolution | 128–512 |
| Frame time | Tf | Update rate | 10–50 ms |
| ADC sample rate | fs | Max beat frequency | 10–25 Msps |
Beat Frequency & Range
When the transmitted chirp mixes with the delayed received echo, the output is a single tone — the beat frequency fb. Because the chirp is linear, the frequency difference is proportional to the round-trip delay, and therefore to range.
fb = S·τ = S·2R/c = (B/Tc)·2R/c (beat frequency, Hz)
R = fb·c·Tc / (2B) = fb·c / (2S) (range from beat freq)
fb,max = fs/2 (max beat freq = Nyquist limit of ADC)
Worked Example — 77 GHz Automotive Radar
Range & Velocity Resolution
Δv = λ / (2·Nc·Tc) (velocity resolution — depends on coherent integration time)
vmax = λ / (4·Tc) (max unambiguous velocity — from Doppler aliasing)
Rmax = c·fs / (4S) = c·Tc·fs / (4B) (max unambiguous range)
Worked Example — Automotive Radar Specifications
| Application | Frequency | Bandwidth | ΔR | Rmax |
|---|---|---|---|---|
| Automotive ACC | 77 GHz | 1–4 GHz | 3.75–15 cm | 100–250 m |
| Automotive SRR | 79 GHz | 4 GHz | 3.75 cm | 10–30 m |
| Industrial level | 24 GHz | 200 MHz | 75 cm | 50 m |
| Weather (WSR-88D) | 2.7–3.0 GHz | 0.63 MHz | 238 m | 460 km |
| Ground penetrating | 1–10 GHz | 9 GHz | 1.67 cm | 5–10 m |
| Drone altimeter | 24 GHz | 500 MHz | 30 cm | 100 m |
Doppler & Velocity Measurement
A moving target causes a Doppler shift fD = 2v/λ in the received signal. In FMCW, this appears as an additional offset on the beat frequency. A single chirp cannot separate range and velocity — you need at least two chirps (slow-time processing).
fbeat = frange + fD = 2SR/c + 2v/λ (total beat frequency)
φn = 4π·fc·v·n·Tc / c (phase shift between chirp n and n+1)
Range-Doppler Map
The standard FMCW processing chain uses two nested FFTs — a fast-time FFT across ADC samples within one chirp gives range bins, and a slow-time FFT across chirps gives velocity bins.
Ambiguity & Max Range / Velocity
The radar ambiguity function |χ(τ,fD)|² characterises the 2D resolution and sidelobe structure in range-Doppler space. For a linear chirp (LFM), the ambiguity function is a ridge tilted at angle arctan(S) in the range-Doppler plane — meaning a moving target at range R creates the same beat frequency as a stationary target at a slightly different range.
vmax = λ/(4Tc) (from slow-time Nyquist — PRF=1/Tc)
ΔR·Δv = c·λ/(4·Nc·B) (uncertainty principle for radar)
Range-velocity coupling: ΔRerror = v·Tc/2 (range walk per chirp)
| Ambiguity Scenario | Symptom | Fix |
|---|---|---|
| Range aliasing (R>Rmax) | Target appears at R − n·Rmax | Reduce slope S, or use multiple PRFs |
| Velocity aliasing (v>vmax) | High-speed target folds into low-velocity | Shorten Tc, use staggered chirp intervals |
| Ghost targets | Multi-target interference beat products | MIMO orthogonal waveforms, or CFAR thresholding |
| Interference from other radars | Random spikes across range-Doppler | Random chirp start frequency hopping |
Signal Processing Chain
FFT-Based Range-Doppler Processing
The standard 2D FFT FMCW processing pipeline starts with the raw ADC data — a matrix of Ns samples × Nc chirps — and produces a complex Range-Doppler map.
CFAR Detection
Constant False Alarm Rate (CFAR) detection sets an adaptive threshold around each cell under test (CUT) based on the local noise level — so the false alarm rate stays constant regardless of clutter level.
TCFAR = α·Pnoise where α = Nref·(PFA^(−1/Nref) − 1)
Detect if |CUT| > TCFAR
Guard cells: Nguard either side — prevent target energy leaking into reference cells
Real-World FMCW Systems
| System | fc | B | ΔR | Δv | Rmax | Key Use |
|---|---|---|---|---|---|---|
| TI AWR1843 | 77 GHz | 4 GHz | 3.75 cm | 0.2 m/s | 200 m | Automotive ACC/AEB |
| Infineon BGT60TR13C | 60 GHz | 7 GHz | 2.1 cm | 0.5 m/s | 10 m | Gesture / presence detection |
| NXP TEF82xx | 77 GHz | 2 GHz | 7.5 cm | 0.1 m/s | 300 m | Long-range highway |
| Navtech CTS350-X | 24 GHz | 200 MHz | 75 cm | 0.04 m/s | 200 m | Perimeter security |
| Endress+Hauser LR30 | 79 GHz | 4 GHz | 3.75 cm | — | 100 m | Industrial level sensing |