# Demo — DRFM Deception

Noise jamming shouts at the radar; deception lies to it. A digital RF memory (DRFM) captures the threat's own pulse and replays modified copies that look exactly like real skin returns — and the classic move, range-gate pull-off, walks the radar's tracking gate right off the target. This demo animates that sequence step by step.

## The idea

The radar tracks inside a range gate. A DRFM false return, made brighter than the skin echo, captures the gate, then ramps its delay to drag the gate out in range (recall $R = c\,t/2$). When the false return blinks off, the gate is left coasting on empty space and the true target has slipped free.

## Interactive demo

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

<div class="demo-wrap">
<iframe src="../_static/demos/DRFMDeception.html"
        title="Interactive DRFM range-gate pull-off demo"
        width="100%"
        loading="lazy">
</iframe>
</div>

## Walkthrough

1. **Press Play and watch the capture.** The DRFM false return (red) sits on the true target (navy) but louder; the tracking gate (blue) locks to the stronger return.
2. **Watch the pull-off.** The false return walks out in range, dragging the gate with it while the true target stays put. The separation readout grows.
3. **Watch the blink.** The false return switches off. The gate is now far downrange on nothing, and the true target is outside it — the lock is broken.
4. **Change the walk-off rate.** A faster pull-off breaks lock sooner but is easier for a deception-aware radar to reject; a slower one is stealthier. Reset and run it again.

## Key observations

- **Deception attacks the measurement, not the power budget.** Unlike noise jamming, it does not have to overpower the echo — it only has to be *believed*.
- **DRFM works because it is coherent.** Replaying the radar's own waveform produces a false return that passes the matched filter as genuine.
- **Every move has a counter.** Leading-edge tracking and other ECCM eventually reject the walked return — the cycle from L11 continues.

## Source

<a class="matlab-link" href="../_static/downloads/ECE%20495%20EW%20%E2%80%93%20Code.zip#code/L18_RangeGatePullOff.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/L18_RangeGatePullOff.m</span><span class="ml-arrow">↓</span></a>

The in-class script models the tracking gate, captures it with a cover pulse, ramps the false return's delay to walk the gate off the target, then blinks it off so the true target escapes.
