Demo — PRF Explorer#
PRF is one knob that sets two limits at once — and they pull against each other. This demo shows the pulse train, the unambiguous range and velocity it implies, and the invariant that ties them together, so you can watch range coverage trade against velocity coverage in real time.
The tradeoff#
Raise the PRF and \(R_u\) shrinks while \(v_u\) grows; their product never changes.
Interactive demo#
Walkthrough#
Set PRF = 1 kHz (X-band). Read \(R_u = 150\) km and \(v_u = 7.5\) m/s. Note the invariant readout \(R_u\cdot v_u\).
Raise PRF to 10 kHz. \(R_u\) drops to 15 km, \(v_u\) jumps to 75 m/s — but the invariant readout does not move.
Push to 200 kHz. \(R_u = 0.75\) km, \(v_u = 1500\) m/s. Watch the pulse train tighten as PRI shrinks.
Adjust pulse width. The duty-cycle readout updates; longer pulses raise duty cycle (and energy) without changing \(R_u\).
Read the twin-axis plot. \(R_u\) (falling) and \(v_u\) (rising) versus PRF cross — there is no PRF that makes both large.
Use the “Where does my target appear?” widget. Enter a true range of 200 km at PRF = 800 Hz; the apparent range folds to 12.5 km, just like the B-21 example in the reading.
Key observations#
PRF is a compromise, not an optimum. Low PRF = clean range, ambiguous velocity; high PRF = clean velocity, ambiguous range.
The invariant is unbreakable with one PRF. \(R_u\cdot v_u = c\lambda/8\) depends only on wavelength — real radars escape it by using multiple PRFs.
Range folding is exploitable. A target beyond \(R_u\) lands at \(R_\text{true}\bmod R_u\), a known vulnerability for both the radar designer and the jammer.
Source#
MATLAB · code/L4_PulseTrainAndAmbiguity.m↓
The in-class script plots \(R_u\) and \(v_u\) versus PRF and demonstrates the range-folding arithmetic.