Range-Doppler Processing

Definition:

Range-Doppler Processing

A pulsed radar transmits MM pulses and forms a range-Doppler map:

  1. Fast time (within each pulse): matched filtering for range
  2. Slow time (across pulses): FFT for Doppler velocity

RD[r,v]=βˆ£βˆ‘m=0Mβˆ’1ym[r] eβˆ’j2Ο€vm/M∣2\text{RD}[r, v] = \left|\sum_{m=0}^{M-1} y_m[r]\,e^{-j2\pi vm/M}\right|^2

def range_doppler_map(rx_pulses, tx_chirp):
    M, N = rx_pulses.shape
    rd = np.zeros((N, M), dtype=complex)
    for m in range(M):
        rd[:, m] = pulse_compress(rx_pulses[m], tx_chirp)[:N]
    rd = np.fft.fftshift(np.fft.fft(rd, axis=1), axes=1)
    return np.abs(rd)**2

Definition:

Cell-Averaging CFAR Detection

CFAR (Constant False Alarm Rate) sets an adaptive threshold based on the local noise level:

  1. For each cell under test (CUT), average the power in surrounding training cells (excluding guard cells)
  2. Multiply by a threshold factor Ξ±\alpha set from the desired PfaP_{\text{fa}}
  3. Declare detection if CUT power exceeds the threshold

Ξ±=Ntrain(Pfaβˆ’1/Ntrainβˆ’1)\alpha = N_{\text{train}} \left(P_{\text{fa}}^{-1/N_{\text{train}}} - 1\right)

def cfar_1d(signal, n_train, n_guard, pfa):
    N = len(signal)
    n_train_total = 2 * n_train
    alpha = n_train_total * (pfa**(-1/n_train_total) - 1)
    detections = np.zeros(N, dtype=bool)
    for i in range(n_guard + n_train, N - n_guard - n_train):
        train_cells = np.concatenate([
            signal[i-n_guard-n_train:i-n_guard],
            signal[i+n_guard+1:i+n_guard+n_train+1]
        ])
        threshold = alpha * np.mean(train_cells)
        if signal[i] > threshold:
            detections[i] = True
    return detections

Definition:

Doppler/Velocity Resolution

The velocity resolution from MM pulses with PRI TsT_s is:

Ξ”v=Ξ»2MTs=c2fcMTs\Delta v = \frac{\lambda}{2MT_s} = \frac{c}{2f_cMT_s}

The maximum unambiguous velocity is:

vmax⁑=λ4Tsv_{\max} = \frac{\lambda}{4T_s}

Theorem: CFAR Threshold Factor

For exponentially distributed noise (power after square-law detection) with NN training cells and desired PfaP_{\text{fa}}:

Ξ±=N(Pfaβˆ’1/Nβˆ’1)\alpha = N\left(P_{\text{fa}}^{-1/N} - 1\right)

This maintains constant PfaP_{\text{fa}} regardless of the noise level.

CFAR adapts the threshold to the local noise floor. More training cells give a more accurate noise estimate and better PfaP_{\text{fa}} control.

Theorem: Range-Doppler Ambiguity

The unambiguous range and velocity are inversely related:

Rmax⁑=cTs2,vmax⁑=λ4TsR_{\max} = \frac{cT_s}{2}, \quad v_{\max} = \frac{\lambda}{4T_s}

Fast PRF (TsT_s small) gives large vmax⁑v_{\max} but small Rmax⁑R_{\max}.

You cannot simultaneously have fine Doppler resolution and unambiguous long-range detection with a single PRF.

Theorem: Coherent Integration Gain

Coherently integrating MM pulses provides processing gain:

Gint=MG_{\text{int}} = M

or 10log⁑10(M)10\log_{10}(M) dB improvement in SNR. Combined with matched filter gain BTpBT_p, the total processing gain is Mβ‹…BTpM \cdot BT_p.

Example: Building a Range-Doppler Map

Simulate a radar with 128 pulses and build a range-Doppler map with two targets at different ranges and velocities.

Range-Doppler Map

Build and visualize a range-Doppler map with adjustable target parameters.

Parameters

CFAR Detection Demo

Apply CFAR detection to a range profile with adjustable Pfa.

Parameters

Quick Check

What is the main advantage of CFAR over a fixed threshold?

Higher detection probability

Maintains constant false alarm rate in varying noise

Better range resolution

Lower computational cost

Common Mistake: Ignoring PRF Ambiguity

Mistake:

Choosing PRF for maximum range without checking whether the Doppler ambiguity (vmax⁑v_{\max}) is sufficient for the scenario.

Correction:

Check both: Rmax⁑=cTs/2R_{\max} = cT_s/2 and vmax⁑=λ/(4Ts)v_{\max} = \lambda/(4T_s). Use staggered PRF or waveform diversity to resolve ambiguities.

CFAR

Constant False Alarm Rate: an adaptive detection algorithm that maintains a fixed false alarm probability in varying noise/clutter.

PRF / PRI

Pulse Repetition Frequency / Interval: the rate at which radar pulses are transmitted; determines unambiguous range and velocity.

Radar Waveform Comparison

PropertySimple PulseLFM ChirpOFDM Radar
Range resolutioncTp/2cT_p/2c/(2B)c/(2B)c/(2NΞ”f)c/(2N\Delta f)
Processing gain1BTpBT_pNN
PAPR0 dB0 dB~10 dB
Doppler sensitivityHighModerateLow
Comms integrationNoNoYes (JCAS)