phased.ReceiverPreamp object enables you
to model the effects of gain and component-based noise on the signal-to-noise
ratio (SNR) of received signals.
on baseband signals. The object is not intended to model system effects
at RF or intermediate frequency (IF) stages.
phased.ReceiverPreamp object has the following
EnableInputPort — A logical
property that enables you to specify when the receiver is on or off.
Input the actual status of the receiver as a vector to
This property is useful when modeling a monostatic radar system. In
a monostatic radar, it is important to ensure the transmitter and
receiver are not operating simultaneously. See
phased.Transmitter and Transmitter.
Gain — Gain in dB
LossFactor — Loss factor
NoiseFigure — Receiver
noise figure in dB
Reference temperature of the receiver in kelvin
EnableInputPort — Add
input to specify when the receiver is active
Add input to specify phase noise for coherent on receive receiver
SeedSource — Enables you
to specify the seed of the random number generator
The noise figure is a dimensionless quantity that indicates how much a receiver deviates from an ideal receiver in terms of internal noise. An ideal receiver only produces the expected thermal noise power for a given noise bandwidth and temperature. A noise figure of 1 indicates that the noise power of a receiver equals the noise power of an ideal receiver. Because an actual receiver cannot exhibit a noise power value less than an ideal receiver, the noise figure is always greater than or equal to one. In decibels, the noise figure must be nonnegative.
To model the
effect of the receiver preamp on the signal,
the effective system noise temperature by taking
the product of the reference temperature and the noise figure converted
to a power measurement with
systemp for details.
phased.ReceiverPreamp computes the noise power
as the product of the Boltzmann constant, the effective system noise
temperature, and the noise bandwidth.
The additive noise for the receiver is modeled as a zero-mean complex white Gaussian noise vector with variance equal to the noise power. The real and imaginary parts of the noise vector each have variance equal to 1/2 the noise power.
The signal is scaled by the ratio of the receiver gain to the loss factor expressed as a power ratio. If you express the gain and loss factor as powers by G and L respectively and the noise power as σ2, the output is equal to :
where x[n] is the complex-valued input signal and w[n] is a zero-mean complex white Gaussian noise sequence.
phased.ReceiverPreamp System object with a gain of 20 dB, a noise figure of 5 dB, and a reference temperature of 290 degrees kelvin.
hr = phased.ReceiverPreamp('Gain',20,... 'NoiseFigure',5,'ReferenceTemperature',290,... 'SampleRate',1e6,'SeedSource','Property','Seed',1e3);
Assume a 100-Hz sine wave input with an amplitude of 1 microvolt. Because the Phased Array System Toolbox assumes that all modeling is done at baseband, use a complex exponential as the input to the
t = unigrid(0,0.001,0.1,'[)'); x = 1e-6*exp(1j*2*pi*100*t).'; y = step(hr,x);
The output of the
phased.ReceiverPreamp.step method is complex-valued as expected.
Now show how the same output can produced from a multiplicative gain and additive noise. First assume that the noise bandwidth equals the sample rate of the receiver preamp (1 MHz). Then, the noise power is equal to:
NoiseBandwidth = hr.SampleRate; noisepow = physconst('Boltzmann')*... systemp(hr.NoiseFigure,hr.ReferenceTemperature)*NoiseBandwidth;
The noise power is the variance of the additive white noise. To determine the correct amplitude scaling of the input signal, note that the gain is 20 dB. Because the loss factor in this case is 0 dB, the scaling factor for the input signal is found by solving the following equation for the multiplicative gain G from the gain in dB:
G = 10^(hr.Gain/20)
G = 10
The gain is 10. By scaling the input signal by a factor of ten and adding complex white Gaussian noise with the appropriate variance, you produce an output equivalent to the preceding call to
phased.ReceiverPreamp.step (use the same seed for the random number generation).
rng(1e3); y1 = G*x + sqrt(noisepow/2)*(randn(size(x))+1j*randn(size(x)));
Compare a few values of
disp(y1(1:10) - y(1:10))
0 0 0 0 0 0 0 0 0 0
To model a coherent on receive monostatic radar use the
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. You can input a record of when the transmitter is active by
providing this record to the
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. You can input a record of the transmitter phase errors
step when you set the
To illustrate this, construct a rectangular pulse waveform with five pulses. The PRF is 10 kHz and the pulse width is 50 μs. The 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 watt.
on the transmitter to record the phase noise and the status of the
on 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
delayseq to simulate the waveform arriving
at the receiver preamp when the transmitter is inactive and the receiver
hrect = phased.RectangularWaveform('NumPulses',5); htx = phased.Transmitter('CoherentOnTransmit',false,... 'PhaseNoiseOutputPort',true,'Gain',0,'PeakPower',1,... 'SeedSource','Property','Seed',1000,'InUseOutputPort',true); wf = step(hrect); [txtoutput,txstatus,phnoise] = step(htx,wf); txtoutput = delayseq(txtoutput,hrect.PulseWidth,... hrect.SampleRate); hrc = phased.ReceiverPreamp('Gain',0,... 'PhaseNoiseInputPort',true,'EnableInputPort',true); y = step(hrc,txtoutput,~txstatus,phnoise); subplot(2,1,1) plot(real(txtoutput)); 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');