Main Content

phased.Transmitter

Description

The phased.Transmitter System object™ models a waveform transmitter. The object supports system-level multi-channel transmitter chain modelling including impairments such as non-linear gain, system noise, and phase offsets.

To create a transmitter:

  1. Create the phased.Transmitter 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

example

transm = phased.Transmitter creates a transmitter System object, transm.

transm = phased.Transmitter(Name=Value) creates a transmitter object, transm, with each specified property Name set to the specified Value.

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Properties

expand all

The order that transmitter effects are applied to the signal is fixed. The following list describes the order in which effects are applied to the input signal. All properties need not be included but if they are, they will be applied in this order regardless of the order in which their properties are listed:

  1. The input signal is scaled according to PeakPower property.

  2. System noise is added according to the method specified in NoiseMethod property.

  3. The signal gain is applied according to the method specified in GainMethod property. “This gain may be linear or non-linear as a function of input power.

  4. A phase offset is added to the signal according to the PhaseOffset property.

  5. A random phase shift is applied based on the CoherentOnTransmit property

Properties can be applied to N channels by specifying properties as an N-element vector. If a property is specified as a scalar, it will be expanded to match the size of vector properties. Scalars are expanded to length-N vectors containing the scalar value.

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.

Transmit peak power, specified as a positive scalar or length-N vector of positive values where N is the number of channels. The transmitted signal has a maximum input power of 1 Watt. If PeakPower is a scalar, the same value will be applied to all channels. Units are in Watts.

Data Types: double

Method for applying gain to the transmitted signal, specified as 'Linear', 'Cubic polynomial' or 'Lookup table'.

  • When set to 'Linear', a linear gain is applied.

  • When set to 'Cubic polynomial', a cubic polynomial model is used to apply non-linear gain.

  • When set to 'Lookup Table', a lookup table is defined to directly specify output power and phase shift as a function of input power.

Data Types: char | string

Linear transmitter gain, specified as a scalar or length-N vector of real values. N is the number of channels. If Gain is a scalar, the same value is applied to all channels. Units are in dB.

Dependencies

To enable this property, set the GainMethod property to 'Linear' or 'Cubic polynomial'.

Data Types: single | double

Transmit loss factor, specified as a nonnegative scalar or length-N vector of nonnegative values. N is the number of channels. If LossFactor is a scalar, the same value is applied to all channels.

Dependencies

To enable this property, set the GainMethod property to 'Linear'.

Data Types: double | single

Output third-order intercept point (OIP3). specified as a scalar or length-N vector of real values. N is the number of channels. OIP3 expresses the non-linearity of the transmitter or receiver. If OIP3 is a scalar, the same value is applied to all channels. See Nonlinearities and Noise in Idealized Baseband Amplifier Block (RF Blockset) for a detailed discussion of OIP3. Units are in dBm.

Dependencies

To enable this property, set the GainMethod property to 'Cubic polynomial'.

Data Types: single | double

AM/AM-AM/PM lookup table, specified as a 3-by-M-by-N real-valued array. The lookup table specifies amplifier power characteristics. M is the number of table entries and N is the number of channels. Each row in the table expresses the relationship between output power or phase change as a function of input power. Specify AM/AM (in dB/dB) and AM/PM (in deg/dB) characteristics in a [Pin(dBm),Pout(dBm),Phase shift(degrees)]-by-M matrix or [Pin(dBm),Pout(dBm),Phase shift(degrees)]-by-M-by-N array. Use the table to linear interpolate or extrapolate power values. The column 1 input power must increase monotonically. There must be at least 3 rows in the table. The power output can be written as:

uout=TAMAM(|u|)eTAMPM(|u|+u)

Dependencies

To enable this property, set the GainMethod property to 'Lookup table'.

Data Types: single | double

Method for defining the system noise, specified as 'None', 'Noise figure', 'Noise factor' or 'Noise temperature'.

  • When set to'None', no noise is applied.

  • When set to 'Noise figure', the NoiseFigure property determines the noise level.

  • When set to 'Noise temperature', the NoiseTemperature property determines the noise level.

  • When set to 'Noise factor', the NoiseFactor property determines the noise level.

The noise bandwidth is derived from the input signal sample rate.

Example: 'Noise figure'

Data Types: char | string

Transmitter noise figure, specified as a real scalar or length-N vector of real values. N is the number of channels. If NoiseFigure is a scalar, the same value is applied to all channels. Noise is generated with respect to the temperature defined by the ReferenceTemperature property.

Dependencies

To enable this property, set the NoiseMethod to 'NoiseFigure'.

Data Types: single | double

Transmitter noise factor, specified as a positive scalar or length-N vector of positive values. N is the number of channels. If NoiseFactor is a scalar, the same value is applied to all channels. Noise is generated with respect to the temperature defined by the ReferenceTemperature property.

Dependencies

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

Data Types: single | double

Equivalent noise temperature, specified as a positive scalar or length-N vector of positive values. N is the number of channels. If NoiseTemperature is a scalar, the same value is applied to all channels. Units are in K.

Dependencies

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

Data Types: single | double

Reference temperature, specified as a positive scalar or a length-N vector of positive values. N is the number of channels. If ReferenceTemperature is a scalar, the same value is applied to all channels.

Dependencies

To enable this property, set the NoiseMethod property to 'Noise figure' or 'Noise factor'.

Data Types: single | double

Sample rate of the input signal, specified as a positive scalar. Use this property to add noise to the signal. The SampleRate is only used to derive the noise bandwidth of the signal.

Dependencies

To enable this property, set the AddInputNoise property to true or set the NoiseMethod property to 'Noise figure', 'Noise factor', or 'Noise temperature'.

Data Types: single | double

Phase offset, specified as a real scalar or length-N vector of real values. N is the number of channels. If PhaseOffset is a scalar, the same value is applied to all channels. Units are in degrees.

Data Types: single | double

To obtain the transmitter in-use status for each output sample, set this property to true and use the corresponding output argument of the object function. In this case, 1's indicate the transmitter is on and 0's indicate the transmitter is off. If you do not want to obtain the transmitter in-use status, set this property to false.

Data Types: logical

Specify whether to preserve coherence among transmitted pulses. When you set this property to true, the transmitter does not introduce any random phase to the output pulses. When you set this property to false, the transmitter adds a random phase noise to each transmitted pulse. The random phase noise is introduced by multiplication of the pulse by ewhere ϕ is a uniform random variable on the interval [0,2π].

Data Types: logical

To obtain the introduced transmitter random phase noise for each output sample, set this property to true and use the corresponding output argument of the object function. You can use in the receiver to simulate-coherent-on receive systems. If you do not want to obtain the random phase noise, set this property to false.

Dependencies

To enable this property, set the CoherentOnTransmit property to false.

Data Types: logical

'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.

Dependencies

To enable this property, set the CoherentOnTransmit property to false or specify that the NoiseMethod is not set to a value other than 'None'. To use this object with the Parallel Computing Toolbox, set this property to 'Auto'.

Data Types: char | string

Random number generator seed, specified as a nonnegative integer between 0 and 232–1.

Dependencies

To enable this property, set the CoherentOnTransmit property to false, set the SeedSource property to 'Property', and set the NoiseMethod property to 'None'.

Data Types: double | single

Usage

Description

example

Y = transm(X) returns the transmitted waveform voltage Y. The transformation is based on the selected properties of the transmitter, such as the peak power, gain, and noise. Power is calculated from signal voltage assuming a reference impedance of 1 Ohm.

[Y,TR] = transm(X) returns the on/off status TR of the transmitter as additional output when the InUseOutputPort property is set to true.

[Y,PHNOISE] = transm(X) returns random phase noise PHNOISE added to each transmitted sample. To enable this syntax, set the CoherentOnTransmit property to false and set the PhaseNoiseOutputPort property to true.

[Y,TR,PHNOISE] = transm(X) You can combine optional output arguments when their enabling properties are set. Optional outputs must be listed in the same order as the order of the enabling properties.

Input Arguments

expand all

Transmitter Input signal voltage, specified as a complex-valued vector or complex-valued matrix. The number of rows is equal to the number of samples.

If X is a vector, the number of rows in Y equals the number of rows in X.The number of columns in Y equals the number of channels in the receiver.

In the case where X is a vector, the number of channels is determined by the active properties that indicate a channel number, such as NoiseFigure, ReferenceTemperature, Gain, PhaseOffset, etc.

Receiver effects are applied to the signal in a fixed order although some effects can be omitted. The order in which effects are applied to the input signal:

  • Input noise is added according to the AddInputNoise property.

  • System noise is added according to the method specified in NoiseMethod property.

  • Signal gain is applied according to the method specified in the GainMethod property.

  • Phase offset is added to the signal according to PhaseOffset.

Data Types: single | double
Complex Number Support: Yes

Output Arguments

expand all

Transmitter output signal voltage, returned as a complex-valued vector or complex-valued matrix. If X is a matrix, the size of Y is equal to the size of X. The transformation is based on transmitter characteristics, such as the gain, nonlinearity, and noise. Power is calculated from signal voltage assuming a reference impedance of 1 Ohm.

Data Types: single | double
Complex Number Support: Yes

On/off status of the transmitter, returned as false or true.TR is a logical vector where true indicates the transmitter is on for the corresponding sample time, and false indicates the transmitter is off. TR is a logical matrix with the same size as the input X argument.

Dependencies

To enable this argument, set the InUseOutputPort property is true.

Random phased noise, returned as complex-valued vector or complex-valued matrix. PHNOISE is the random phase noise added to each transmitted sample when the CoherentOnTransmit property is false and the PhaseNoiseOutputPort property is true. PHNOISE is a vector having the same size as Y. Each element in PHNOISE contains the random phase between 0 and 2*pi, added to the corresponding sample in Y by the transmitter.

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

viewGainPlot transmitter output power as function of transmitter input power
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

Transmit a pulse containing a linear FM waveform with a bandwidth of 5 MHz. The sample rate is 10 MHz and the pulse repetition frequency is 10 kHz.

fs = 1e7;
waveform = phased.LinearFMWaveform('SampleRate',fs, ...
    'PulseWidth',1e-5,'SweepBandwidth',5e6);
x = waveform();
transmitter = phased.Transmitter('PeakPower',5e3);
y = transmitter(x);

Transmit a pulse containing a linear FM waveform. The transmitter has three channels with different gains, OIP3 values, and phase offsets.

First, create an LFM waveform. The sample rate is 10 MHz, the pulse width is 10 microseconds, and the sweep bandwidth is 5 MHz.

fs = 10e6;
waveform = phased.LinearFMWaveform('SampleRate',fs, ...
    'PulseWidth',1e-5,'SweepBandwidth',5e6);
x = waveform();

Transmit the waveform over three channels..

tx = phased.Transmitter(GainMethod="Cubic polynomial", ...
    Gain=[19,21,25],OIP3=[11,32,29],PhaseOffset=[0,30,45]);
y = tx(x);

Display gains for each channel.

viewGain(tx,'ChannelIndex',1,'Parent',gca);
hold on
viewGain(tx,'ChannelIndex',2,'Parent',gca);
viewGain(tx,'ChannelIndex',3,'Parent',gca);
legend('Channel 1, Gain = 11','Channel 2, Gain = 21','Channel 3, Gain = 25', ...
    'Location','SouthEast')
hold off

Algorithms

expand all

References

[1] Edde, B. Radar: Principles, Technology, Applications. Englewood Cliffs, NJ: Prentice Hall, 1993.

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

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

Extended Capabilities

Version History

Introduced in R2011a

expand all