Detecting Motion Without a Transmitter

I implemented a passive-radar processing pipeline in MATLAB, using cellular transmissions as the illuminator. A reference channel captured the direct signal; a surveillance channel captured reflections whose delay and Doppler shift carried motion information.

Digital down-conversion and filtering isolated the band of interest. The cross-ambiguity function then searched jointly over delay and Doppler:

$$ \mathrm{Cor}(\tau,f_D)=\sum_{n=0}^{N-1}y_{\mathrm{sur}}[nT_s],y_{\mathrm{ref}}^*[nT_s-\tau],e^{-j2\pi f_D nT_s} $$

Recovering a Motion Trace

Processing 20 field-recording segments produced a Doppler-versus-time heatmap showing a human target’s motion. Peak tracking, combined with the known transmitter–target–receiver geometry, supported velocity estimation.

Vectorizing the correlation computation made the delay–Doppler search practical, while spectrogram checks helped verify frequency selection before interpreting the motion trace.

Doppler frequency–time heatmap for motion detection