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 :

$$y[n]=\frac{G}{L}x[n]+\frac{\sigma}{\sqrt{2}}w[n]$$

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');

Was this topic helpful?