|On this page…|
The 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. phased.ReceiverPreamp operates on baseband signals. The object is not intended to model system effects at RF or intermediate frequency (IF) stages.
The phased.ReceiverPreamp object has the following modifiable properties:
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 step. 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 in dB.
NoiseFigure — Receiver noise figure in dB
ReferenceTemperature — Reference temperature of the receiver in kelvin
EnableInputPort — Add input to specify when the receiver is active
PhaseNoiseInputPort — 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, phased.ReceiverPreamp computes the effective system noise temperature by taking the product of the reference temperature and the noise figure converted to a power measurement with db2pow. See 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.
Specify a 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 phased.ReceiverPreamp.step method.
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 y to y1.
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 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. You can input a record of when the transmitter is active by setting the EnableInputPort to true and providing this record to the step method.
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 to step when you set the PhaseNoiseInputPort property to true.
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.
Use the PhaseNoiseOutputPort and InUseOutputPort properties on the transmitter to record the phase noise and the status of the transmitter.
Enable the EnableInputPort and PhaseNoiseInputPort properties 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 is active.
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');