Main Content

Model Coherent-on-Receive Behavior

When modeling a coherent-on-receive monostatic radar, use the EnableInputPort and PhaseNoiseInputPort properties. In a monostatic radar, the transmitter and receiver cannot operate simultaneously. Therefore, it is important to keep track of when the transmitter is active so that you can disable the receiver at those times. By setting the EnableInputPort to true, you can input a record of when the transmitter is active as an argument when executing the phased.ReceiverPreamp System object™.

In a coherent-on-receive radar, the receiver corrects for the phase noise introduced at the transmitter by using the record of those phase errors. By setting the PhaseNoiseInputPort property to true, you can input a record of the transmitter phase errors as an argument when executing the phased.ReceiverPreamp System object.

Coherent-on-Receive for Rectangular Pulse

To illustrate coherent-on-receive, construct a rectangular pulse waveform with five pulses. The waveform pulse repetition frequency (PRF) is 10 kHz and the pulse width is 50 μs. The pulse repetition interval (PRI) is exactly two times the pulse width so the transmitter alternates between active and inactive time intervals of the same duration. For convenience, set the gains on both the transmitter and receiver to 0 dB and the peak power on the transmitter to 1 W.

Use the PhaseNoiseOutputPort and InUseOutputPort properties of the transmitter to record the phase noise and the status of the transmitter.

Enable the EnableInputPort and PhaseNoiseInputPort properties of the receiver preamp to determine when the receiver is active and to correct for the phase noise introduced at the transmitter.

Delay the output of the transmitter using the delayseq function to simulate the waveform arriving at the receiver preamp when the transmitter is inactive and the receiver is active.

waveform = phased.RectangularWaveform('NumPulses',5);
transmitter = phased.Transmitter('CoherentOnTransmit',false,...
    'PhaseNoiseOutputPort',true,'Gain',0,'PeakPower',1,...
    'SeedSource','Property','Seed',1000,'InUseOutputPort',true);
wf = waveform();
[troutput,trstatus,phasenoise] = transmitter(wf);
troutput = delayseq(troutput,waveform.PulseWidth,...
    waveform.SampleRate);
receiver = phased.ReceiverPreamp('Gain',0,...
    'PhaseNoiseInputPort',true,'EnableInputPort',true);
y = receiver(troutput,~trstatus,phasenoise);
subplot(2,1,1)
plot(real(troutput))
title('Delayed Transmitter Output with Phase Noise')
ylabel('Amplitude')
subplot(2,1,2)
plot(real(y))
xlabel('Samples')
ylabel('Amplitude')
title('Received Signal with Phase Correction')