Main Content

phased.ReceiverPreamp

Receiver preamp

Description

The ReceiverPreamp System object™ implements a model of a receiver preamplifier. The object receives incoming signals, multiplies them by the amplifier gain and divides by system losses. Finally, Gaussian white noise is added to the signal.

To model a receiver preamp:

  1. Create the phased.ReceiverPreamp object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

receiver = phased.ReceiverPreamp creates a receiver preamp System object, receiver with default property values.

receiver = phased.ReceiverPreamp(Name,Value) creates a receiver preamp object, receiver, with each specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

example

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

A scalar containing the gain (in decibels) of the receiver preamp.

Example: 10

Data Types: double

A scalar containing the loss factor (in decibels) of the receiver preamp.

Example: 5

Data Types: double

Specify how to compute noise power using one of 'Noise power' | 'Noise temperature'. If you set this property to 'Noise temperature', complex baseband noise is added to the input signal with noise power computed from the ReferenceTemperature, NoiseFigure, and SampleRate properties. If you set this property to 'Noise power', noise is added to the signal with power specified in the NoisePower property.

Data Types: char | string

A scalar containing the noise figure (in decibels) of the receiver preamp. If the receiver has multiple channels/sensors, the noise figure applies to each channel/sensor.

Example: 5

Dependencies

To enable this argument, set the NoiseMethod property to 'Noise temperature'.

Data Types: double

A scalar containing the reference temperature of the receiver (in kelvin). If the receiver has multiple channels/sensors, the reference temperature applies to each channel/sensor.

Example: 300

Dependencies

To enable this argument, set the NoiseMethod property to 'Noise temperature'.

Data Types: double

Specify the sample rate, in hertz, as a positive scalar. The SampleRate property also specifies the noise bandwidth.

Example: 5e6

Dependencies

To enable this argument, set the NoiseMethod property to 'Noise temperature'.

Data Types: double

Specify the noise power (in Watts) as a positive scalar.

Example: 1.5

Dependencies

To enable this argument, set the NoiseMethod property to 'Noise power'.

Data Types: double

Specify the noise complexity as one of 'Complex' | 'Real'. When you set this property to 'Complex', the noise power is evenly divided between real and imaginary channels. Usually, complex-valued baseband signals require the addition of complex-valued noise. On occasion, when the signal is real-valued, you can use this option to specify that the noise is real-valued as well.

Data Types: char | string

To specify a receiver enabling signal, set this property to true and use the corresponding input argument when you use this object. If you do not want to specify a receiver enabling signal, set this property to false.

Data Types: logical

To specify the phase noise for each incoming sample, set this property to true and use the corresponding input argument when you use this object. You can use this information to emulate coherent-on-receive systems. If you do not want to specify phase noise, set this property to false.

Data Types: logical

Specify how the object generates random numbers. Values of this property are:

'Auto'The default MATLAB® random number generator produces the random numbers. Use 'Auto' if you are using this object with Parallel Computing Toolbox™ software.
'Property'The object uses its own private random number generator to produce random numbers. The Seed property of this object specifies the seed of the random number generator. Use 'Property' if you want repeatable results and are not using this object with Parallel Computing Toolbox software.

Data Types: char | string

Specify the seed for the random number generator as a scalar integer between 0 and 232–1.

Example: 5

Dependencies

To enable this argument, set the SeedSource property to 'Property'.

Data Types: double

Usage

To model a receiver preamp, call the object with arguments, as if it were a function (described here).

Description

Y = receiver(X) applies the receiver gain and the receiver noise to the input signal, X, and returns the resulting output signal, Y.

example

Y = receiver(X,EN_RX) uses input EN_RX as the enabling signal when the EnableInputPort property is set to true.

Y = receiver(X,PHNOISE) uses input PHNOISE as the phase noise for each sample in X when the PhaseNoiseInputPort is set to true. The phase noise is the same for all channels in X. The elements in PHNOISE represent the random phases the transmitter adds to the transmitted pulses. The receiver preamp object removes these random phases from all received samples returned within corresponding pulse intervals. Such setup is often referred to as coherent on receive.

Y = receiver(X,EN_RX,PHNOISE) combines all input arguments. This syntax is available when you configure H so that H.EnableInputPort is true and H.PhaseNoiseInputPort is true.

Note

The object performs an initialization the first time the object is executed. This initialization locks nontunable properties and input specifications, such as dimensions, complexity, and data type of the input data. If you change a nontunable property or an input specification, the System object issues an error. To change nontunable properties or inputs, you must first call the release method to unlock the object.

Input Arguments

expand all

Input signal, specified as a vector or a matrix.

The size of the first dimension of the input matrix can vary to simulate a changing signal length. A size change can occur, for example, in the case of a pulse waveform with variable pulse repetition frequency.

Enabling signal, specified as a column vector whose length equals the number of rows in X. The data type of EN_RN is double or logical. Every element of EN_RX that equals 0 or false indicates that the receiver is turned off, and no input signal passes through the receiver. Every element of EN_RX that is nonzero or true indicates that the receiver is turned on, and the input passes through.

Phase noise for each sample in X, specified as a column vector whose length equals the number of rows in X. You can obtain PHNOISE as an optional output argument from the phased.Transmitter System object.

Output Arguments

expand all

Output signal, specified as a vector or a matrix. Y has the same dimensions as X.

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

This example shows how to use the phased.ReceiverPreamp System object™ to amplify a sine wave.

Create a phased.ReceiverPreamp System object with a sample rate of 100 Hz. Assume a receiver noise figure of 60 dB.

fs = 100;
receiver = phased.ReceiverPreamp('NoiseFigure',60, ...
    'SampleRate',fs,'NoiseComplexity','Real');

Create the input signal.

t = linspace(0,1-1/fs,100);
x = 1e-6*sin(2*pi*5*t);

Amplify the signal and compare it with the input signal.

y = receiver(x);
plot(t,x,t,real(y))
xlabel('Time (s)')
ylabel('Amplitude')
legend('Input signal','Amplified signal')

Figure contains an axes object. The axes object with xlabel Time (s), ylabel Amplitude contains 2 objects of type line. These objects represent Input signal, Amplified signal.

More About

expand all

References

[1] Richards, M. A. Fundamentals of Radar Signal Processing. New York: McGraw-Hill, 2005.

[2] Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York: McGraw-Hill, 2001.

Extended Capabilities

Version History

Introduced in R2011a

expand all