Skip to content
Radar Systems

Doppler and coherent radars: Doppler shift, coherent and non-coherent radars, MTI and pulse-Doppler

The Doppler shift proved, the difference between coherent (STALO, COHO, I/Q) and non-coherent (magnetron) radars, the MTI canceller and blind speeds, pulse-Doppler processing and the choice of the PRF, a simulation with a building and a target.

A moving target changes the frequency of the echo: this is the Doppler effect. Measuring it gives the velocity and, above all, separates moving targets (aircraft, cars, people) from the huge echoes of stationary objects (ground, buildings, sea waves), the so-called clutter. To do so the radar must know the phase of what it transmits: this is the difference between coherent and non-coherent radars. This lesson derives the Doppler shift, explains the two architectures, and presents the two classic techniques, the MTI filter (moving target indication) and pulse-Doppler processing, with a simulation that compares them.

The idea in simple words

Everybody knows the Doppler effect from an ambulance siren: when it approaches the pitch is higher, when it moves away it is lower. Radio waves do the same, but the frequency shift is tiny, a few thousand hertz out of billions. To notice it the radar uses a trick: instead of measuring the frequency of a single pulse, it looks at how the phase of the echo changes from one pulse to the next.

The phase can be pictured as the position of a clock hand. If the target is still, each echo comes back with the hand in the same position. If the target approaches, the range gets a little shorter at every pulse and the hand moves on by a certain angle: the speed at which the hand turns is the speed of the target. To read the hand, however, the radar must know where it was when the pulse left: this is a coherent radar. A radar that starts each pulse with the hand in a random position (non-coherent) cannot do it.

The great practical advantage: stationary objects (ground, houses, mountains), which give enormous echoes, have a still hand, and can be removed by keeping only the echoes whose hand turns. This is how a car or an aircraft can be seen in front of a mountain.

The Doppler shift

Theorem. A target approaching with radial velocity v_r shifts the echo frequency by f_D = \dfrac{2v_r}{\lambda}.

Proof. The echo returns after travelling 2R(t), so its phase relative to the transmitted signal is \varphi(t) = -\frac{2\pi}{\lambda}\,2R(t). The instantaneous frequency is the derivative of the phase divided by 2\pi: f_D = \frac{1}{2\pi}\frac{d\varphi}{dt} = -\frac{2}{\lambda}\frac{dR}{dt} = \frac{2v_r}{\lambda}, with v_r = -dR/dt positive if the target approaches. ∎

The 2 again comes from the round trip. The shifts are tiny compared with the carrier: a car at 30 m/s in front of a 10 GHz radar gives 2 kHz out of 10 GHz; at 77 GHz (automotive radar) 15.4 kHz; an aircraft at 250 m/s in front of a 3 GHz radar, 5 kHz. Only the radial component of the velocity counts: an aircraft crossing sideways gives no Doppler.

Coherent and non-coherent radars

A shift of a few kilohertz on a carrier of gigahertz cannot be measured within a single one-microsecond pulse: it is measured by comparing the phase of the echo from one pulse to the next. Over N pulses with period T = 1/PRF, a target produces the sequence e^{j2\pi f_DnT}: a sinusoid “sampled” at the PRF, whose frequency is estimated with an FFT. This is possible only if the radar knows the phase each pulse started with.

Coherent radar. The whole radar is locked to a very stable oscillator (the STALO, stable local oscillator, and the COHO, coherent oscillator, in classic radars; a single clock reference in digital radars). Every pulse leaves with a known phase, and the receiver measures the signal as a complex number, with in-phase and quadrature components (I/Q). The transmitter must be an amplifier (klystron, travelling wave tube, solid-state transistors) that amplifies a signal generated with known phase. Practically all modern radars are coherent: airborne pulse-Doppler radars, Doppler weather radars, automotive radars, SAR.

Non-coherent radar. The transmitter is a power oscillator, typically a magnetron, which starts with a random phase at every pulse. The receiver detects only the amplitude (the envelope) of the echo. It is simple and cheap, and measures range and direction well: it is the navigation radar of boats, and the surveillance radars of the first decades were like this. But it cannot measure Doppler, and cannot separate a moving target from a fixed echo in the same cell. A middle way is the coherent-on-receive radar: the phase of each transmitted pulse is sampled and subtracted from the echo, recovering coherence afterwards (with lower performance than a true coherent radar).

Coherent and non-coherent radar
Top, the coherent radar: a stable oscillator drives the power amplifier and is the reference of the receiver, which measures the I and Q components. Bottom, the non-coherent radar: the magnetron starts with a random phase at every pulse and the receiver detects only the amplitude of the echo.

The MTI filter

The simplest way to remove fixed echoes is to subtract two consecutive pulses: y_n = x_n - x_{n-1}. A stationary echo is the same from one pulse to the next and cancels; a moving echo changes phase and survives.

Theorem. The two-pulse canceller has response |H(f)| = 2\,|\sin(\pi f/PRF)|.

Proof. It is an FIR filter with H(z) = 1 - z^{-1}; on the unit circle, with z = e^{j2\pi f/PRF}, |1 - e^{-j\theta}| = |e^{-j\theta/2}|\,|e^{j\theta/2} - e^{-j\theta/2}| = 2|\sin(\theta/2)| with \theta = 2\pi f/PRF. ∎

The response is zero at zero frequency (stationary clutter) but also at all multiples of the PRF: targets with f_D = k\cdot PRF disappear. These are the blind speeds v_b = k\frac{\lambda\,PRF}{2}: at 10 GHz with a PRF of 1 kHz, 15 m/s, 30 m/s, … The remedy is to alternate different PRFs (staggered PRF), so that a speed blind for one is not blind for the other. Three-pulse cancellers (1 - 2z^{-1} + z^{-2}) widen the “notch” around zero, useful when the clutter is not perfectly still (trees moved by the wind, waves).

Pulse-Doppler processing

Instead of subtracting, an FFT over N pulses is computed for each range cell: each FFT output is a filter centred on a velocity. Velocity resolution \Delta v = \frac{\lambda}{2NT}; unambiguous velocity \pm\frac{\lambda\,PRF}{4} (the FFT of samples at the PRF sees frequencies from -PRF/2 to +PRF/2). With 64 pulses at 1 kHz in X band: 0.23 m/s resolution, ±7.5 m/s without ambiguity.

Choosing the PRF. Unambiguous range c/(2\,PRF) and unambiguous velocity \lambda\,PRF/4 go in opposite directions: their product is fixed, \frac{c\lambda}{8}.

  • Low PRF (a few kHz): range without ambiguity, velocity very ambiguous. Surveillance radars.
  • High PRF (hundreds of kHz): velocity without ambiguity, range very ambiguous. Airborne radars against fast targets.
  • Medium PRF: both ambiguous, and the ambiguities are resolved using several PRFs (with a reasoning similar to the Chinese remainder theorem). It is the choice of modern fighter radars.

The result of the processing is a range-Doppler map, the basic image of almost all coherent radars (it will appear again in the FMCW car radar).

Summary

  • A target approaching with radial velocity v_r shifts the echo frequency by 2v_r/\lambda; only the velocity component along the line of sight counts.
  • Doppler is measured by comparing the phase of the echo from pulse to pulse: a coherent radar is needed.
  • The MTI filter subtracts consecutive pulses and cancels stationary echoes, but has blind speeds, which are avoided by changing the PRF.
  • Pulse-Doppler processing (FFT over the pulses) separates targets by velocity and produces the range-Doppler map.
  • Unambiguous range and velocity conflict through the PRF: low, medium or high depending on the mission.

The simulation

A range cell contains a building (fixed echo, 1000 times stronger in amplitude, that is 60 dB) and a target approaching at 5 m/s. Radar at 10 GHz, PRF 1 kHz, 64 pulses, some noise.

  • Coherent with FFT: the target appears at 4.92 m/s (the true velocity, quantised to the 0.23 m/s resolution), 60 dB below the peak of the building but at a different position in the spectrum: separated.
  • MTI: the fixed echo cancels completely (in this simulation it is perfectly still), the target passes with a gain of 1.73.
  • Non-coherent: with a random phase at every pulse, the spectrum becomes flat: the echo of the building “smears” over all velocities and covers the target. The amplitude, the only thing the radar measures, fluctuates by only 0.07 %: the target cannot be seen.
Doppler spectrum of the cell with the building and the target
Coherent radar, blue: the huge peak at zero velocity is the building, the small peak at almost 5 metres per second is the target, 60 dB lower but well separated. Non-coherent radar, grey: the spectrum is flat and the target cannot be distinguished.
import numpy as np

c, f0, PRF, N = 299792458.0, 10e9, 1e3, 64            # X band, PRF 1 kHz, 64 pulses
lam, T = c / f0, 1 / PRF
rng = np.random.default_rng(0)
n = np.arange(N)

v = 5.0                                                # target approaching at 5 m/s
fD = 2 * v / lam                                       # Doppler shift
target_echo = 1.0 * np.exp(1j * 2 * np.pi * fD * n * T)
fixed_echo = 1000.0 * np.exp(1j * 0.3)                 # clutter: a building, 60 dB stronger and still
noise = (rng.normal(size=N) + 1j * rng.normal(size=N)) * 0.05
x = target_echo + fixed_echo + noise                   # samples in the same range cell, pulse by pulse

def spectrum(s):
    S = np.abs(np.fft.fftshift(np.fft.fft(s * np.hanning(N))))
    return 20 * np.log10(S / S.max() + 1e-12)
vel = np.fft.fftshift(np.fft.fftfreq(N, T)) * lam / 2      # velocity axis

print(f"f_D = {fD:.0f} Hz; velocity resolution {lam / (2 * N * T):.3f} m/s; unambiguous velocity +-{lam * PRF / 4:.1f} m/s")
# 1) coherent radar: FFT over the pulses, the target separates from the fixed echo
S = spectrum(x)
k = np.argmax(np.where(np.abs(vel) > 1, S, -999))
print(f"coherent: target at {vel[k]:.2f} m/s, {S[k]:.1f} dB relative to the fixed echo peak")
# 2) two-pulse MTI: y_n = x_n - x_(n-1) cancels what does not move
y = x[1:] - x[:-1]
print(f"MTI: fixed echo power reduced from {np.mean(np.abs(fixed_echo) ** 2):.0f} to {np.mean(np.abs(np.diff(np.full(N, fixed_echo))) ** 2):.0f}; "
      f"gain on the target |H| = {2 * abs(np.sin(np.pi * fD / PRF)):.2f}")
print(f"MTI blind speed: {lam * PRF / 2:.1f} m/s")
# 3) non-coherent radar: every pulse starts with a random phase (magnetron), only the amplitude is measured
phase = np.exp(1j * rng.uniform(0, 2 * np.pi, N))
xn = x * phase
amp = np.abs(xn)
Sn = spectrum(xn)
print(f"non-coherent: amplitude fluctuation {amp.std() / amp.mean() * 100:.2f} %, no Doppler peak (maximum away from zero {Sn[np.abs(vel) > 1].max():.1f} dB, flat)")

Running it prints f_D = 334 Hz, 0.234 m/s resolution and ±7.5 m/s unambiguous span; for the coherent radar the target at 4.92 m/s, 60.3 dB below the fixed echo; for the MTI the fixed echo cancelled and a gain of 1.73 on the target, with a blind speed of 15 m/s; for the non-coherent radar a fluctuation of 0.07 % and a flat spectrum, whose maximum (0 dB) falls far from zero velocity.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x