Skip to main content
emobility.academy
B.Tech / BERadar & lidarIntermediate About 6 weeksADAS & AUTOSAR

FMCW Radar Signal Processing: Range–Doppler Maps and CFAR Detection

Simulate an automotive FMCW radar in MATLAB, generate beat signals for moving targets, form range–Doppler maps with two-dimensional FFTs and detect targets with CA-CFAR. Estimated range and speed are compared with truth and the effect of waveform parameters on resolution is measured.

Tools: MATLAB · Radar Toolbox

FMCW Radar Signal Processing: Range–Doppler Maps and CFAR Detection: Students studying an electric car with DIYguru trainers in the workshop
Representative photo from DIYguru's EV lab, not of this specific project.

The problem

Radar is the main sensor for adaptive cruise control and emergency braking because it measures range and relative speed directly in any light and most weather. Understanding how chirp parameters set range and velocity resolution, and how CFAR separates targets from noise, is the foundation for working with automotive radar data.

Objectives

  • Design FMCW chirp parameters from range and speed requirements.
  • Simulate beat signals for several moving targets with noise.
  • Produce range–Doppler maps using range and Doppler FFTs with windowing.
  • Implement CA-CFAR detection and measure detection and false alarm rates.
  • Compare estimated range and speed with truth.

What you need

Tools and toolboxes

  • MATLAB — Signal simulation, FFT processing and plots.
  • Radar Toolbox — Waveform and radar design helpers and reference examples for automotive FMCW.
  • Phased Array System Toolbox — phased.FMCWWaveform, phased.CFARDetector2D and free-space propagation objects.
  • Signal Processing Toolbox — Window functions and spectral analysis.

Software

  • MATLAB with Radar Toolbox, Phased Array System Toolbox and Signal Processing Toolbox

Extra parts and data

None beyond the software above.

Key concepts

FMCW chirp
A transmitted signal whose frequency rises linearly over a sweep bandwidth B. Mixing the echo with the transmitted signal gives a beat frequency proportional to range.
Range resolution
The minimum separation at which two targets can be distinguished in range, equal to c / (2B).
Doppler FFT
An FFT across successive chirps at each range bin extracts the phase change caused by target motion, giving radial velocity.
CA-CFAR
Cell-averaging constant false alarm rate detection: a threshold for each cell is set from the average noise in surrounding training cells, excluding guard cells, so the false alarm rate stays roughly constant.

Step-by-step guide

  1. 1

    Set radar requirements

    Choose requirements for a forward ACC radar at 77 GHz: maximum range around 200 m, range resolution under 1 m, maximum relative speed of about ±70 km/h or higher and speed resolution under 1 km/h. Derive sweep bandwidth from range resolution, chirp duration and sampling rate from maximum range and beat frequency, and the number of chirps per frame from speed resolution. Tabulate all derived values with the equations used.

    Checkpoint: A parameter table with each value traced to a requirement and an equation.

  2. 2

    Generate the waveform

    Create the chirp with phased.FMCWWaveform using the derived sweep time, bandwidth and sample rate, or generate it directly from the chirp equation. Plot its spectrogram to confirm the linear frequency ramp. Check that the sampling rate exceeds the maximum beat frequency so the farthest target is not aliased. Keep all parameters in one script section so later experiments can change them cleanly.

    Checkpoint: A spectrogram showing the expected sweep and a confirmed sampling margin.

  3. 3

    Simulate targets and beat signals

    Define three to five targets with different ranges, speeds and radar cross sections, including two close in range and two close in speed. For each chirp, compute the delayed, Doppler-shifted echo from each target's current position, add them, mix with the transmitted chirp to get the beat signal and add white Gaussian noise for a chosen SNR. Store the samples as a matrix of samples per chirp by chirps.

    Checkpoint: A beat-signal matrix whose single-chirp FFT shows peaks at the expected beat frequencies.

  4. 4

    Form the range–Doppler map

    Apply a window (Hann or Chebyshev) along fast time and take an FFT per chirp to get range bins, then window and FFT along slow time across chirps for each range bin to get Doppler bins, using fftshift to centre zero velocity. Convert to dB and plot the map with range and speed axes in metres and km/h. Compare windowed and unwindowed maps to show the effect on sidelobes.

    Checkpoint: A range–Doppler map with peaks at the correct ranges and speeds, with and without windowing.

  5. 5

    Implement CA-CFAR

    Implement two-dimensional CA-CFAR with chosen numbers of training and guard cells in range and Doppler and a probability of false alarm such as 1e-6. Write your own loop version first to understand it, then compare with phased.CFARDetector2D. Handle edge cells by excluding them or padding. Output a binary detection map and cluster adjacent detections into single targets. Overlay the detection map on the range–Doppler map and check that clustered detections sit on the target peaks, not on sidelobes.

    Checkpoint: Detection maps from both implementations that agree and pick out every target.

  6. 6

    Estimate range and speed

    For each clustered detection, take the peak cell and refine it with parabolic interpolation between neighbouring bins. Convert to range and radial speed and compare with the simulated truth. Run the simulation for many random target sets and noise realisations and compute RMSE for range and speed and the bias, so accuracy is measured statistically rather than from one example.

    Checkpoint: Range and speed RMSE from at least 100 Monte Carlo runs.

  7. 7

    Measure detection performance

    Vary target SNR from low to high and, for each, run many trials to estimate the probability of detection and the measured false alarm rate in empty cells. Plot detection probability against SNR and compare the measured false alarm rate with the design value. Repeat with different numbers of training cells to see the trade-off between noise estimation and target masking.

    Checkpoint: Detection probability curves and measured false alarm rates against the design value.

  8. 8

    Study resolution and parameter trade-offs

    Place two targets close in range and gradually reduce their separation until they merge; compare the result with c / (2B), with and without windowing. Do the same in speed. Then halve the bandwidth or the number of chirps and repeat to show the direct link between waveform parameters and resolution. Note the cost of more chirps: longer frame time and more memory.

    Checkpoint: Plots showing the measured resolution limits matching theory, before and after parameter changes.

  9. 9

    Report

    Present the requirement-to-parameter derivation, the processing chain, range–Doppler maps, CFAR design, accuracy and detection results and the resolution study. Explain how this processing fits into an ACC or AEB system, where detections become tracks fed to the controller. State the simplifications: point targets, no multipath, no clutter and a single receive channel. Add a short section on how the same chain would run on a radar processor, noting which steps are FFTs and which are detection logic, since that split shapes real-time implementation. Include all parameter tables.

    Checkpoint: A report with figures and scripts that regenerate every result.

Testing & validation

  • Range and speed RMSE and bias over Monte Carlo runs.
  • Probability of detection against SNR and measured false alarm rate.
  • Measured range and speed resolution compared with theory.
  • Agreement between custom and toolbox CFAR detectors.

Expected results

A working FMCW radar simulation with range–Doppler processing, CFAR detection, statistically measured accuracy and resolution, and a clear link from requirements to waveform parameters.

Take it further

  • Add multiple receive antennas and estimate angle of arrival.
  • Add ground clutter and compare CA-CFAR with OS-CFAR.
  • Feed detections into a Kalman tracker for a lead vehicle.
  • Simulate a cut-in scenario with the Driving Scenario Designer and a radar model.

Viva and review questions

What sets range resolution in FMCW radar?

The sweep bandwidth: range resolution is the speed of light divided by twice the bandwidth, so wider sweeps separate closer targets.

Why do you need many chirps per frame?

Velocity comes from the phase change across chirps; more chirps give a longer observation and finer speed resolution.

What do guard cells do in CFAR?

They stop energy from the target itself leaking into the noise estimate, which would raise the threshold and hide the target.

Why apply a window before the FFT?

It lowers spectral sidelobes so a weak target near a strong one is not hidden, at the cost of a slightly wider main lobe.

Learn it at DIYguru

These DIYguru courses and programmes teach what this project needs.

Related EV projects

All 100 ADAS & AUTOSAR projects