# Demo — Range-Doppler Map

The range-Doppler map is what a pulse-Doppler radar actually produces: a 2D picture with clutter piled up at zero Doppler and movers standing out in their own cells. This demo lets you move a target, toggle MTI, and find the blind speed where the target vanishes into the clutter notch.

## The picture

A target's Doppler shift is $f_d = 2 v_r / \lambda$. MTI cancels the zero-Doppler clutter but creates blind speeds at

$$
v_{\text{blind},n} = \frac{n\,\lambda\,\text{PRF}}{2}.
$$

A target whose velocity lands on a blind speed is cancelled along with the clutter.

## Interactive demo

<a class="demo-fullscreen" href="../_static/demos/RangeDopplerMap.html" target="_blank" rel="noopener">Open in full screen</a>

<div class="demo-wrap">
<iframe src="../_static/demos/RangeDopplerMap.html"
        title="Interactive range-Doppler map with MTI"
        width="100%"
        loading="lazy">
</iframe>
</div>

## Walkthrough

1. **Look at the default map.** A bright vertical ridge sits at zero Doppler (clutter); a single bright cell off the ridge is the moving target.
2. **Slide the target velocity.** The target cell slides along the Doppler axis while the clutter ridge stays fixed at zero — that separation is what makes the target detectable.
3. **Toggle MTI on.** The zero-Doppler column is nulled: the clutter ridge collapses and the target pops out against a clean background.
4. **Read the blind-speed readout.** With MTI on, set the target velocity to the first blind speed $v_{\text{blind},1}$. The target lands in the notch and **disappears** — cancelled with the clutter.
5. **Raise the PRF.** The blind speeds move higher; nudge the target off the notch and it reappears. This is exactly why pulse-Doppler radars favor higher PRF.
6. **Change the wavelength (band).** The Doppler-to-velocity scaling changes; the same Doppler shift now corresponds to a different velocity.

## Key observations

- **Clutter is rejected by Doppler, not amplitude.** It is far stronger than the target but lives at zero Doppler, so MTI nulls it without touching the mover.
- **Blind speeds are MTI's cost.** A target on a notch is invisible; PRF choice manages where the notches fall, trading against range ambiguity.
- **The B-21's motion is hard to hide.** Once moving, its Doppler signature stands off the clutter ridge — defeating this picture is what Block 2's EA techniques are for.

## Source

<a class="matlab-link" href="../_static/downloads/ECE%20495%20EW%20%E2%80%93%20Code.zip#code/L5_DopplerMTI.m" download><svg viewBox="0 0 22 22" width="14" height="14" aria-hidden="true" style="vertical-align:-2px;margin-right:6px;"><rect width="22" height="22" rx="3" fill="#e87722"/><text x="11" y="15.5" text-anchor="middle" font-family="'Inter',sans-serif" font-size="9" font-weight="800" fill="#fff" letter-spacing="-0.04em">MAT</text></svg><span class="ml-text">MATLAB · code/L5_DopplerMTI.m</span><span class="ml-arrow">↓</span></a>

The in-class script plots the single-delay MTI response $|H(f)| = 2|\sin(\pi f T)|$, marks the blind speeds, and builds a synthetic range-Doppler map before and after MTI.
