Simulate multipath bouncing for passive radar sensing

31 views (last 30 days)
I would like to simulate the passive sensing of radar pulses from multiple radars, which also includes multi-path effects. I have been adopting this MATLAB example involving a single radar and direct path: https://www.mathworks.com/help/phased/ug/signal-parameter-estimations-in-a-radar-warning-receiver.html
I figured out how to include multiple radars, but not multi-path. The phased.ScatteringMIMOChannel function models multipath, but it is designed for one transmitter and one receiver, with a different signal for each transmitting element. In the passive sensing example, there is only one pulse train per radar, while phased.ScatteringMIMOChannel expects a pulse train for each transmitting element.
As with the example, I want to model the full waveforms themselves, not just abstract pulses. Can someone please point me in the right direction? I'm content with the signal bouncing off clutter just one time (radar-clutter-receiver).

Accepted Answer

Aditya
Aditya on 17 Dec 2025 at 6:54
Edited: Aditya on 17 Dec 2025 at 6:55
Hi ,
You're correct: phased.ScatteringMIMOChannel expects a signal per transmitter element, which doesn't directly match your scenario (multiple, independent radars, each with their own pulse train, and one receiver). But you can still model multipath (including clutter bounces) for each radar pulse train, with some workarounds.
1. Model Each Path Explicitly
Since you want to model direct and single-bounce (clutter) paths for each radar, you can explicitly sum the delayed, attenuated copies of the radar pulse train at your receiver.Steps:
a. For Each Radar:
  • Generate its pulse train (as you already do).
b. For Each Path (Direct, and Each Multipath/Clutter Path):
  • Compute path delay (distance/speed of light).
  • Compute path loss (free-space or with additional attenuation for clutter).
  • Apply Doppler shift if needed (for moving clutter).
  • Sum delayed, attenuated, and Doppler-shifted copies of the pulse train.
c. Sum All Radars' Contributions
  • Add up all the contributions at the receiver.
2)Suppose you have N radars and for each, you want to model the direct path and M clutter paths:
fs = ...; % sample rate
c = physconst('LightSpeed');
% For each radar
for radarIdx = 1:N
txSignal = ... % the radar's pulse train
% For each path (direct + multipath)
for pathIdx = 1:(1+M)
% Set up path parameters
if pathIdx == 1
% Direct path
pathLen = ...;
attenuation = ...;
doppler = ...;
else
% Clutter path
pathLen = ...; % radar->clutter->receiver
attenuation = ...; % include clutter RCS, etc.
doppler = ...; % if clutter is moving
end
% Compute delay in samples
delay = pathLen/c;
delaySamples = round(delay*fs);
% Apply delay, attenuation, Doppler
sig = attenuation * txSignal;
sig = sig .* exp(1j*2*pi*doppler*(0:length(sig)-1)/fs);
sig = [zeros(1,delaySamples), sig]; % delay
sig = sig(1:length(txSignal)); % truncate to original length
% Add to received signal
rxSignal = rxSignal + sig;
end
end
You can wrap the above in functions for clarity.
You can refer to following documentation asw ell:
https://www.mathworks.com/help/phased/ug/signal-parameter-estimations-in-a-radar-warning-receiver.html
  1 Comment
black cat
black cat on 17 Dec 2025 at 15:12
Thank you for explaining! I also found this example to be helpful as well: https://www.mathworks.com/help/phased/ug/local-and-global-coordinate-systems-example-in-radar.html

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!