phased.Transmitter
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:
Create the
phased.Transmitter
object and set its properties.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
creates a
transmitter System object, transm
= phased.Transmittertransm
.
creates a transmitter object, transm
= phased.Transmitter(Name
=Value
)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
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.
Transmitter configuration, specified as "EIRP"
,
"Budget"
, or "Cascade"
. This property defines
which effects are applied to the transmitter.
If the
Configuration
is set to"EIRP"
, the following list describes the order in which effects are applied to the input signalScale the input signal according to the
PeakPower
property.Scale the input signal according to the
Gain
property.Decrease the input signal according to
LossFactor
property.Add a random phase shift to the signal based on the
CoherentOnTransmit
property setting.
If the
Configuration
property is set to"Budget"
, the following list describes the order in which effects are applied to the input signal.Add system noise according to the method specified in the
NoiseMethod
property.Apply gain to the signal according to the method specified in the
GainMethod
property.Apply a phase offset according to
PhaseOffset
property.Apply a random phase shift based on the
CoherentOnTransmit
property setting.
If the configuration is
"Cascade"
, the input signal is propagated through each component in theCascade
to generate the output.
Example: Configuration="Cascade"
Data Types: char
| string
Cascade components, specified as a 1-by-N cell array. Place compatible objects in series to define the behavior of the transmitter. Below is a list of compatible components.
Compatible components
rf.Amplifier
(RF Toolbox)rf.Mixer
(RF Toolbox)rf.PAmemory
(RF Toolbox)rf.Sparameter
(RF Toolbox)rf.Filter
(RF Toolbox)
An empty cell array has no effect on the signal.
Dependencies
To enable this property, set the Configuration
property to
"Cascade"
.
Data Types: cell
Transmit peak power, specified as a positive scalar or length-N
vector of positive values where N is the number of channels. Use
PeakPower
assuming that 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.
Dependencies
To enable this property, set the Configuration
property to
EIRP
.
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.
Dependencies
To enable this property, set the Configuration
property to
"Budget"
.
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 Configuration
property to
"EIRP"
.
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:
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'
, theNoiseFigure
property determines the noise level.When set to
'Noise temperature'
, theNoiseTemperature
property determines the noise level.When set to
'Noise factor'
, theNoiseFactor
property determines the noise level.
The noise bandwidth is derived from the input signal sample rate.
Example: 'Noise figure'
Dependencies
To enable this property, set the Configuration
property to
"Budget"
.
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 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.
Dependencies
To enable this property, set the Configuration
property to
'Budget'
.
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
ejϕwhere ϕ is a uniform random variable
on the interval [0,2π]. If set to false
, input must be a column
vector.
Dependencies
To enable this property, set the Configuration
property to
"EIRP"
or "Budget"
.
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
.
Set this property to true
to output the introduced transmitter
random phase noise for each output sample. This information could be used in the
receiver to simulate coherent-on-receive systems. Set this property to false to not
output the random phase noise.
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
Randomization occurs if:
you set the
CoherentOnTransmit
property tofalse
and theNoiseMethod
is not set to'None'
,or set the
Configuration
property to"Cascade"
and randomization is performed by an object listed in theCascade
property.
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 tofalse
or set the
NoiseMethod
property to'None'
and set the SeedSource
property to
'Property'
.
Data Types: double
| single
Usage
Description
Input Arguments
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
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)
viewGain | Plot output transmitter power or output phase shift as a function of input transmitter power |
viewLayout | Draws the layout of the transmitter |
Examples
Transmit a pulse containing a linear FM waveform with a bandwidth of 5 MHz and a sample rate of 10 MHz.
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(Configuration="Budget",... 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 = 19','Channel 2, Gain = 21','Channel 3, Gain = 25', ... 'Location','SouthEast') hold off
Algorithms
Cubic polynomials can be used to model nonlinear amplifier power gain. The general form of the cubic nonlinear AM-AM amplifier is characterized by
where u is the input power and
FAM-AM(u) is the output
power. c1 represents the linear gain in the
Gain
property.
and OIP3 is the third-order intercept point specified by the
OIP3
property.
A lookup table expresses the relationship between output power or phase change as a function of input power at discrete points. The table contains values for TAM-AM and TAM-PM. The output power is derived by linear interpolation or extrapolation of
between these values.
Active properties by configuration
Properties | Description | EIRP (Radar Equation) | Budget | Cascade |
Configuration | Transmitter configuration | Y | Y | Y |
Cascade | Transmitter components | N | N | Y |
PeakPower | Peak Power | Y | N | N |
GainMethod | Gain method | N | Y | N |
Gain | Antenna gain | Y | Y | N |
LossFactor | Transmit loss | Y | N | N |
OIP3 | Output third order intercept point | N | Y | N |
Table | Amplifier lookup table | N | Y | N |
NoiseMethod | Noise method | N | Y | N |
NoiseFigure | Noise figure | N | Y | N |
NoiseFactor | Noise factor | N | Y | N |
NoiseTemperature | Noise temperature | N | Y | N |
ReferenceTemperature | Reference temperature | N | Y | N |
SampleRate | Sample rate | N | Y | N |
PhaseOffset | Phase offset | N | Y | N |
InUseOutputPort | Duplexer modeling | Y | Y | Y |
CoherentOnTransmit | Random phase offset per TX | Y | Y | Y |
PhaseNoiseOutputPort | Phase noise | N | Y | Y |
SeedSource | Seed source | Y | Y | N |
Seed for random number generator | Seed | Y | Y | N |
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
Usage notes and limitations:
See System Objects in MATLAB Code Generation (MATLAB Coder).
Version History
Introduced in R2011aThe transmitter now supports three separate configurations to be applied to different
operating modes: EIRP
, Budget
, and
Cascade
.
The System object lets you create multichannel data that incorporates impairments such as gain nonlinearities, signal noise, phase offsets, and random phase shifts.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: United States.
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)