Power Amplifier
Libraries:
RF Blockset /
Idealized Baseband
Description
The Power Amplifier block models a two-port power amplifier using a memory polynomial expression derived from the Volterra series. The Volterra series models the nonlinear relationship between input and output signals. This block includes memory effects: the output response depends on the current input signal and the input signal at previous times. Use this block when transmitting narrowband signals into your RF system.
The Power Amplifier block mask icons are dynamic and show the model specified in the Model parameter.
Model: Memory polynomial | Model: Cross-term memory |
---|---|
|
|
Examples
Speed Up PA and DPD simulation
Speed up your PA and DPD simulation using Idealized Baseband Power Amplifier block.
Ports
Input
Port_1 — Time-dependent input signal
column
Time-dependent input signal, specified as a column. A column represents consecutive points in time.
Data Types: double
| single
Output
Port_1 — Time-dependent output signal
complex column
Time-dependent output signal, returned as a complex column. The output time-dependent signal is equal in size to the input time dependent signal.
Data Types: double
| single
Parameters
Model — Model to design amplifier
Memory polynomial
(default) | Cross-term memory
Use either the Memory polynomial
model or the
Cross-term memory
model to design the power amplifier. The
following table summarizes the characteristics of the two models.
Model | Characterization Data | Type of Coefficients | In-Band Spectral Regrowth | Out-of-Band Harmonic Generation |
---|---|---|---|---|
Memory polynomial (default) | Bandpass (I,Q) | 2-D Complex matrix | Yes | No |
Cross-term memory | Bandpass (I,Q) | 2-D Complex matrix | Yes | No |
For more information, see Model Type in Power Amplifier Block.
The Model Type parameter has been renamed to Model. (since R2024a)
Coefficient matrix — Coefficient matrix
1+0i
(default) | 2-D complex matrix
Coefficient matrix, specified as a 2-D complex matrix for the Memory
polynomial
and Cross-term memory
models.
For the Memory polynomial
and Cross-term
memory
models, you can identify the complex coefficient matrix based on
the measured complex (I,Q) output-vs.-input amplifier characteristic. As an example, see
the helper function in Coefficient Matrix Computation.
The size of the matrix depends on the number of delays and the degree of the system nonlinearity.
For the
Memory polynomial
model, the matrix has dimensions .For the
Cross-term memory
model, the matrix has dimensions .
Measured interval of PA data (s) — Sample time of measured input-output data
1e-6
(default) | positive scalar
Sample time of the input-output data that the block uses to construct the coefficient matrix, specified in seconds.
The Time interval of measured PA data (s) parameter has been renamed to Measured interval of PA data (s). (since R2023b)
Simulate using — Type of simulation to run
Code generation
(default) | Interpreted execution
Type of simulation to run, specified as one of the following:
Code generation
— Simulate model using generated C code. The first time you run a simulation, Simulink® generates C code for the block. The C code is reused for subsequent simulations, as long as the model does not change. This option requires additional startup time, but the speed of the subsequent simulations is faster thanInterpreted execution
.Interpreted execution
— Simulate model using the MATLAB® interpreter. This option shortens startup time speed, but the speed of the subsequent simulations is slower thanCode generation
. In this mode, you can debug the source code of the block.
Algorithms
Model Type in Power Amplifier Block
The Power Amplifier block in the Idealized Baseband library supports two model types.
Memory polynomial
— The narrowband memory polynomial implementation (equation (19) of [1]) used in this model operates on the envelope of the input signal, does not generate new frequency components, and captures in-band spectral regrowth. Use this model to create a narrowband amplifier operating at high frequency.The output signal, at any instant of time, is the sum of all the elements of the complex matrix of dimensions :
In the matrix, the number of rows equals the number of memory terms, and the number of columns equals the degree of the nonlinearity. The signal subscript represents the amount of delay.
Cross-Term memory
— The narrowband memory polynomial implementation (equation (23) of [1]) used in this model also operates on the envelope of the input signal, does not generate new frequency components, and captures in-band spectral regrowth. Use this model to create a narrowband amplifier operating at high frequency. This model includes leading and lagging memory terms and provides a generalized implementation of the memory polynomial model.The output signal, at any instant of time, is the sum of all the elements of the matrix specified by the element-by-element product
C .* MCTM,
where C is a complex coefficient matrix of dimensions and
In the matrix, the number of rows equals the number of memory terms, and the number of columns is proportional to the degree of the nonlinearity and the number of memory terms. The signal subscript represents the amount of delay. The additional columns that do not appear in the
Memory polynomial
model represent the cross terms.
Coefficient Matrix Computation
To compute coefficient matrices, the block solves an overdetermined linear system of
equations. Consider the Memory polynomial
model for the case
where the memory length is 2 and the system nonlinearity is of third degree. The matrix that
describes the system is and the sum of its elements is equivalent to the inner product
If the input to the amplifier is the five-sample signal [x(1) x(2) x(3) x(4) x(5)] and the corresponding output is [y(1) y(2) y(3) y(4) y(5)], then the solution to which can be found using the MATLAB backslash operator, provides an estimate of the coefficient matrix.
The treatment of the Cross-Term Memory
model is similar. The
matrix that describes the system is and the sum of its elements is equivalent to the inner product
If the input to the amplifier is the five-sample signal [x(1) x(2) x(3) x(4) x(5)] and the corresponding output is [y(1) y(2) y(3) y(4) y(5)], then the solution to provides an estimate of the coefficient matrix.
Use this helper function to compute coefficient matrices for the Memory
polynomial
and Cross-Term Memory
models. The
inputs to the function are the given input and output signals, the memory length, the degree
of nonlinearity, and the absence or presence of cross terms.
function a_coef = fit_memory_poly_model(x,y,memLen,degLen,modType) % FIT_MEMORY_POLY_MODEL % Procedure to compute a coefficient matrix given input and output % signals, memory length, nonlinearity degree, and model type. % % Copyright 2017 MathWorks, Inc. x = x(:); y = y(:); xLen = length(x); switch modType case 'memPoly' % Memory polynomial xrow = reshape((memLen:-1:1)' + (0:xLen:xLen*(degLen-1)),1,[]); xVec = (0:xLen-memLen)' + xrow; xPow = x.*(abs(x).^(0:degLen-1)); xVec = xPow(xVec); case 'ctMemPoly' % Cross-term memory polynomial absPow = (abs(x).^(1:degLen-1)); partTop1 = reshape((memLen:-1:1)'+(0:xLen:xLen*(degLen-2)),1,[]); topPlane = reshape( ... [ones(xLen-memLen+1,1),absPow((0:xLen-memLen)' + partTop1)].', ... 1,memLen*(degLen-1)+1,xLen-memLen+1); sidePlane = reshape(x((0:xLen-memLen)' + (memLen:-1:1)).', ... memLen,1,xLen-memLen+1); cube = sidePlane.*topPlane; xVec = reshape(cube,memLen*(memLen*(degLen-1)+1),xLen-memLen+1).'; end coef = xVec\y(memLen:xLen); a_coef = reshape(coef,memLen,numel(coef)/memLen);
References
[1] Morgan, Dennis R., Zhengxiang Ma, Jaehyeong Kim, Michael G. Zierdt, and John Pastalan. "A Generalized Memory Polynomial Model for Digital Predistortion of Power Amplifiers." IEEE Transactions on Signal Processing. Vol. 54, No. 10, October 2006, pp. 3852–3860.
[2] Gan, Li, and Emad Abd-Elrady. "Digital Predistortion of Memory Polynomial Systems using Direct and Indirect Learning Architectures". Proceedings of the Eleventh IASTED International Conference on Signal and Image Processing (SIP) (F. Cruz-Roldán and N. B. Smith, eds.), No. 654-802. Calgary, AB: ACTA Press, 2009.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Version History
Introduced in R2022aR2024a: Parameter of Power Amplifier block from Idealized Baseband library renamed
The following in the Power Amplifier block in the Idealized baseband library has been renamed or changed:
The Model Type parameter has been renamed to Model.
The
Cross-Term Memory
value in the Model parameter has been renamed toCross-term memory
.The default value of the Coefficient Matrix parameter has been updated to
1+0i
from1
.
When you open a model created before R2024a containing the Power Amplifier block, the software replaces the:
Model Type parameter with the Model parameter.
Cross-Term Memory
value with theCross-term memory
value.Default value of the Coefficient Matrix parameter from
1
to1+0i
.
R2023b: Parameter of Power Amplifier block from Idealized Baseband library renamed
The Time interval of measured PA data (s) parameter in the Power Amplifier block in the Idealized baseband library has been renamed to Measured interval of PA data (s).
When you open a model created before R2023b containing the Power Amplifer block, the software replaces the Time interval of measured PA data (s) parameter name with Measured interval of PA data (s).
See Also
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: .
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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)