Analog Devices ADRV9029 User manual

ADRV9029 DPD, CLGC and CFR User
Guide
One Technology Way •P. O. Box 9106 •Norwood, MA 02062-9106, U.S.A. •Tel: 781.329.4700 •Fax: 781.461.3113•
www.analog.com
Preliminary Technical Data
ADRV9029 Transceiver DPD, CLGC and CFR User Guide
PLEASE SEE THE LAST PAGE FOR AN IMPORTANT
WARNING AND LEGAL TERMS AND CONDITIONS.Rev. PrA | Page 1 of 82
SCOPE
This user guide is the preliminary documentation to explain ADRV9029’s DPD, CLGC and CFR capability. This document is going to
be merged to ADRV9029 user guide. Please refer to ADRV9029 user guide once available thru ADI website.

Preliminary Technical
Data
Rev. PrA | Page 2 of 82
TABLE OF CONTENTS
Scope .............................................................................................................. 1
Digital Pre-Distortion .............................................................................3
Digital Front-End System Level Overview................................3
DPD Introduction and Principle of Operation ........................4
Transceiver DPD Overview..............................................................5
DPD Algorithm Overview.................................................................7
Initializing pre-calibrated coefficients during start-up... 11
DPD Sample Capture ....................................................................... 13
DPD Dynamics.................................................................................... 16
DPD Regularization.......................................................................... 21
DPD Robustness ................................................................................ 23
DPD Actuator Gain Monitoring for Robustness .................. 26
DPD Actuator Bypass ....................................................................... 31
DPD STATUS ........................................................................................ 32
Recommended Sequence for enabling the DPD tracking
calibration ............................................................................................ 33
DPD Stability Metrics Characterization.................................. 34
DPD Characterization for optimizing M-Threshold........... 37
Typical Procedure to Set Up DPD Using GUI ........................ 38
Crest Factor Reduction (CFR) .......................................................... 42
CFR Algorithm Overview .............................................................. 43
Overview of Blocks used in CFR ................................................ 44
API Software Integration............................................................... 45
Typical Procedure to set up CFR Using the GUI.................. 53
Closed Loop Gain Control (CLGC).................................................. 60
CLGC Overview .................................................................................. 60
Elements Of CLGC............................................................................. 60
CLGC Algorithm Overview............................................................ 61
Enable The CLGC Tracking Calibration................................... 62
CLGC Modes Of Operation ............................................................ 63
CLGC Measurement ......................................................................... 65
CLGC Tx Attenuation Control ...................................................... 67
CLGC API Summary.......................................................................... 70
CLGC Configuration Summary.................................................... 70
CLGC Status ......................................................................................... 70
CLGC Errors......................................................................................... 71
CLGC Capture Errors....................................................................... 72
Sequence For Enabling CLGC Tracking Calibration .......... 74
Case Study For Configuring Clgc Batch Sampling Period75
CLGC Recommendations ............................................................... 80

Preliminary Technical
Data
Rev. PrA | Page 3 of 82
DIGITAL PRE-DISTORTION
This section provides an overview of the digital pre-distortion (DPD) function provided in the transceiver, including a hardware
architecture overview, an overview of the DPD algorithm with references to features that enhance DPD robustness and
performance in dynamic signaling conditions, and a summary of API software interface functions to configure these DPD
functions. DPD enables users to achieve higher power amplifier (PA) efficiency by extending the linear operating region of the
power amplifier, while still meeting adjacent channel leakage ratio (ACLR) requirements in the Tx signal chain for compliance
with 3GPP and European Telecommunications Standards Institute (ETSI) standards for 5GNR, LTE and other technologies. The
DPD function in the transceiver supports a carrier bandwidth of up to 200 MHz.
DIGITAL FRONT-END SYSTEM LEVEL OVERVIEW
The transceiver provides digital signal processing capabilities in the embedded ARM processor using closed-loop feedback
signals from the observation receiver channels. These functions improve transmitter performance, measure system output, and
reduce system power consumption. The list of functions includes the following: digital pre-distortion (DPD), closed-loop gain
control (CLGC) and crest factor reduction (CFR). These functions are collectively grouped together as the transceiver digital front
end (DFE).
Figure 1 is a simplified system level overview of the transceiver signal chain with DFE processing blocks highlighted. There are
five main DFE processing blocks:
1. CFR and hard clipper are used to reduce peak to average power ratio (PAPR) of the baseband signal, especially for multi-
carrier waveforms such as OFDM. With reduced PAPR, the PA can operate at a higher output power, increasing the PA
efficiency. This function is explained in the Crest Factor Reduction (CFR) section.
2. There are two half band filters with a total interpolation factor of 4x before the DPD actuator. These blocks can provide a
total of 1x, 2x or 4x interpolation.
3. There are three DPD capture buffers, which include pre-DPD actuator, post-DPD actuator, and observation buffers. Each
buffer can capture a maximum of 4096 samples.
4. DPD actuator, which applies the inverse PA model to the baseband signal for power amplifier linearization.
5. Dual core embedded ARM processor in which the DPD and CLGC algorithms reside. One of the dual core ARM processors is a
control processor(ARM-C) which is the master and the second core is a dedicated ARM core for DPD processing (ARM-D).
BBIC
Tx
Upsamp
& LPF
DPD
ACTUATOR
LPF
LPF
DAC
ADCPFIR
BBIC
Rx
LO
atten
Tx analog atten
ORx atten
CFR PFIR
ORx Obs
Buffer
DPD and CLGC data
capture and
computation
ORx
DDC
(
Optional)
CLGC Loop Gain Ctrl
DFE Signal Processing
Figure 1. ADRV9029 Signal Chain with DFE Processing Blocks Highlighted

Preliminary Technical
Data
Rev. PrA | Page 4 of 82
DPD INTRODUCTION AND PRINCIPLE OF OPERATION
DPD is a technique for improving the linearity of a non-linear system such as a power amplifier by introducing precise anti-
distortion into the input waveform that compensates for the PA’s in-band nonlinear products. DPD works on the principle of pre-
distorting the transmit data in the digital domain to cancel the distortion caused by PA compression in the analog domain. In this
way, DPD can improve PA power-added efficiency by double or more, allowing the PA to be pushed further into saturation while
maintaining linearity requirements.
A baseband model of the power amplifier is created and trained on the input and output digital-baseband samples that pass
through the PA as shown in Figure 2. The pre-distorter then applies an inverse of the PA model function to input samples before
passing them to the transmitter output. The cascade of the pre-distorter response and the PA response becomes a nearly-linear
system.
PA
-1
PA
In
Out Out Out
In In
Figure 2. Concept of Digital Pre-Distortion for Linearizing the PA Response
The intermodulation distortion products between various subcarriers due to PA non-linearities in a wideband transmission
protocol such as LTE/NR manifest as power leaked into adjacent channels. Adjacent Channel Leakage Ratio (ACLR) is defined as
the ratio of the transmitted power on the assigned channel to the power leaked in the adjacent radio channel. The ACLR
performance improvement following the application of DPD to the baseband data is captured in Figure 3. These plots illustrate
how the out of band non-linearities due to intermodulation products of an LTE 20 MHz signal are reduced by 15-20 dB after the
application of DPD.
Figure 3. Power Spectral Density Showing Improvement in ACLR After Application of DPD for a 20 MHz LTE Signal

Preliminary Technical
Data
Rev. PrA | Page 5 of 82
TRANSCEIVER DPD OVERVIEW
The DPD feature on this transceiver enables users to offload power amplifier linearization tasks from the baseband processor to
the transceiver. With DPD implemented on the transceiver, the user does not need to allocate JESD serializer/de-serializer
resources for observing power amplifier feedback data through the ORx channels, resulting in significant system power savings.
Interpolators leading to the DPD actuator allow the baseband processor to transmit data at a lower rate on the JESD204B/C link
than is needed for the full DPD correction bandwidth. The lower data rate at JESD translates directly into power savings and less
number of lanes. Integration of the DPD into the transceiver chip results in significant system level cost, space, and power savings
when compared to conventional FPGA/ASIC based implementations.
A simplified block diagram of the transceiver DPD system is shown in Figure 4. A brief description of the individual blocks is
provided below.
•Transmit Datapath – The digital baseband signal from the JESD de-framer output goes through an optional Crest Factor
Reduction (CFR) block for reduction of the overall peak to average power ratio(PAPR) of the signal followed by a digital
interpolation filter which interpolates the baseband signal by a factor of 1x, 2x or 4x for analyzing the baseband signal over
the DPD analysis bandwidth. The inverse PA model is applied by the DPD engine, followed by the rest of the transmit signal
chain including digital to analog conversion, up conversion by a mixer before the signal is fed into the actual amplifier.
•Observation Datapath– The DPD algorithm relies on observing the non-linearities via a feedback path. The feedback path
is realized using an integrated observation receiver (ORx). The PA output data is sampled through the observation receiver,
down converted and digitized for further analysis by the firmware.
•DPD Processing - The DPD engine is based on an abbreviated implementation of generalized memory polynomial (GMP)
that is a generalized subset of the well-known Volterra series. The simplified polynomial models a large number of PA
characteristics such as weak nonlinearities, temperature variation, and memory effects. The inverse PA model is applied on
the interpolated digital baseband samples through DPD actuator hardware. A dedicated embedded ARM processor (ARM-D)
is used for computation of the GMP coefficients.
HB
1,2
Model
Tx PA
FILTER/DUPLEXER
ORx
ARM-C, ARM-D
HW ACCE L
PA-1
Data From
CFR
ADRV9029 DPD
Firmware
DPD Actuat or
HB
1,2
Figure 4. Simplified Block Diagram of Transceiver DPD
DPD Actuator Overview
The DPD actuator implements a programmable GMP calculator captured in the equation below.
To compensate for memory effects in a large bandwidth signal, a higher order polynomial is required. The DPD actuator can be
programmed to support up to 190 coefficients for wide bandwidth signals. The structure of the DPD actuator is shown in Figure
5. For every pre-distorted output, the GMP model calculates the Sum of Product expression. The product terms consists of a
modeling coefficient ci,j,k,magnitude power term |x(n-i)|k, and cross memory term x(n-j). Each DPD model consisting of GMP
terms can utilize up to 31 look-up-tables (LUT) on one specified bank. The LUTs are 1k samples deep and organized in four banks
of 8-bit tables (256 entries). Please refer to the GMP Model and Transceiver Look Up Table section for more information on the
mapping GMP terms to LUTs.

Preliminary Technical
Data
Rev. PrA | Page 6 of 82
Figure 5. ADRV9029 DPD Actuator Functional Diagram
DPD Half Band Filters
There are two Half Band filters that could be enabled based on the input data rate and the desired DPD actuator rate. The half
band filters have two important characteristics: the passband and stopband ripples are the same; and the passband-edge and
stopband-edge frequencies are equidistant from the half band frequency Fs/4.
Each DPD half-band filter provides either 1× or 2× interpolation rate. A maximum of 4× interpolation can be achieved by
cascading two DPD HB filters. DPD half-band 1 supports a bandwidth of approximately 82% with respect to input data rate. For
example, DPD-HB1 supports a 100 MHz Bandwidth signal at a 122.88 MSPS input rate. DPD half-band 2 supports a bandwidth of
approximately 41% with respect to input data rate. For example, DPD-HB2 supports a 100 MHz bandwidth signal at a 245.76
MSPS input rate. These two characteristics of half band filters can be seen in
Figure 6(2× interpolation) and Figure 7 (4× interpolation).
Figure 6. Response for Half Band 1 Enabled (x2): 82% of Fs

Preliminary Technical
Data
Rev. PrA | Page 7 of 82
Figure 7. Response for Both Half Band 1 and 2 Enabled (x4): 41% of Fs
DPD ALGORITHM OVERVIEW
The ADRV9029 DPD algorithm supports both indirect learning and direct learning DPD mechanisms for extracting DPD model
coefficients. The details of direct and indirect DPD learning mechanisms are provided in the following sections.
The user can configure the transceiver DPD learning algorithm through the adi_adrv9025_DpdTrackingConfigSet() API using the
settings listed in Table 1.
Table 1. DPD Direct Learning Setting
adi_adrv9025_DpdTrackingConfig_t.
enableDirectLearning
DPD Learning Mechanism Selected
0
Indirect Learning
1
Direct Learning
Indirect Learning
Indirect learning involves using the observation receiver data (PA output data) as a reference for predicting the input samples
corresponding to the reference. The function used for predicting the input samples is known as the inverse PA model. Once the
prediction of input samples corresponding to the observed data is good, the estimated inverse PA model is used to pre-distort the
transmit data. In Figure 8, Y represents the observed samples at the output of the PA and X represents the input samples to the
PA. The estimation engine computes the inverse PA model that is applied to transmit data (represented as U) in the DPD actuator.
X
UY
Figure 8. DPD Indirect Learning Architecture

Preliminary Technical
Data
Rev. PrA | Page 8 of 82
The mathematical representation of the DPD coefficient estimation is shown in Figure 9. The DPD engine observes N samples of
PA input samples (X) and PA output samples (Y), and computes M-coefficients (c) corresponding to the inverse PA function F(x).
y1
y2
y3
y4
.
.
.
yN
=
f1(x1) f2(x1) f3(x1) f4(x1) ….. fM(x1)
f1(x2) f2(x2) f3(x2) f4(x2) ….. fM(x2)
f1(x3) f2(x3) f3(x3) f4(x3) ….. fM(x3)
f1(x4) f2(x4) f3(x4) f4(x4) ….. fM(x4)
.
.
.
f1(xN) f2(xN) f3(xN) f4(xN) ….. fM(xN)
c1
c2
c3
c4
.
.
.
cM
YF(x) c
Figure 9. DPD Indirect Learning Coefficient Computation
The coefficient set (c) is estimated through a least squares approximation as described in matrix multiplication equations (1) to
(3).
Y = F x C
F
H
Y = (F
H
F)C
(F
H
F)
-1
(F
H
Y) = C
Auto-
correlation
Cross-
correlation
(1)
(2)
(3)
Multiply by complex conjugate of F on both sides
Take the inverse of the auto-correlation function to
obtain C
DPD Direct Learning
DPD direct learning involves using the pre-DPD actuator Tx signal (U) as reference to minimize the error between the observed
(Y) and reference data (U).
Figure 10. DPD Direct Learning Architecture
The mathematical representation of the DPD coefficient estimation via direct learning is described as follows. An error E is
defined as the difference between observed (Y) and pre-DPD actuator data (U).
E = Y – U
The PA is modeled as the function Fx multiplied by adaptive coefficients C through the error matrix E as shown in Figure 11.

Preliminary Technical
Data
Rev. PrA | Page 9 of 82
Figure 11. DPD Direct Learning Coefficient Computation
The direct learning outcome is an iterative solution, where the current coefficients are based on memory of previously computed
coefficients and currently estimated coefficients ( C ).
The Direct Learning approach uses a parameter, μ, which is the convergence factor that defines the step size for learning
coefficients. The convergence factor μlies in the range [0% to 100%] and is user configurable in the transceiver using the API
adi_adrv9025_DpdTrackingConfigSet() through the parameter adi_adrv9025_DpdTrackingConfig_t.dpdMu.A higher value of the
convergence factor μwould result in faster convergence. However, a really high value of μmight result in an unstable system. The
user can start with a convergence factor of 50% and tune the value based on characterization of the system for convergence time
and stability.
Comparison Between DPD Indirect Learning and Direct Learning
•The DPD indirect learning algorithm is time efficient, since it estimates coefficients through inversion in a single update. The
DPD indirect learning algorithm is preferred when a quicker adaptive response is required by the system.
•The DPD direct learning algorithm is more accurate but iterative in nature as highlighted in the previous section and
requires a longer time to converge compared to indirect learning. The direct learning algorithm is less sensitive to
bandwidth mismatches and is preferred when the signal bandwidth is more than 100 MHz (for example, 2xNR100 or
8xLTE20 systems).
DPD Coefficient Estimation
The maximum number of coefficients is limited to 190 (M = 190), and the number of samples used to calculate the coefficients is
typically 16384 samples (N = 16384). Although the number of samples N is user configurable using the API
adi_adrv9025_DpdTrackingConfigSet(), ADI recommends setting the number of samples to 16384, which provides a good
balance between estimation time and sample size.
The DPD algorithm runs on a dedicated ARM processor (ARM-D) and calculates the coefficients corresponding to GMP terms of
the inverse PA model. This model pre-distorts the digital baseband signal before digital-to-analog conversion and transmission of
samples to the transmitter upconverter (this output becomes the RF input to the PA). The PA output is sampled using an external
loopback to an observation receiver channel input.
The DPD engine then correlates the observation receiver and transmitter samples to calculate the latest set of coefficients. The
DPD engine performs a brief check on model error before updating the LUTs that feed the correction coefficients into the DPD
actuator hardware. Details regarding the GMP model, the actuator and the LUTs are provided in sections to follow. Due to the
relatively simple implementation of this algorithm, the overall time taken to react to sudden changes in transmit waveforms is
relatively short and is typically less than 1 second per transmitter channel (actual time depends on the configurable parameters
of the DPD and ARM scheduling). Certain protection criteria are designed into the algorithm to prevent damage to the PA due to
large model errors. The DPD algorithm is scheduled once every second per transmitter channel in the firmware, which means the
coefficients are updated once every second per transmitter channel.
GMP Model and Look Up Table
For wideband signals such as LTE and 5GNR, PAs begin to exhibit short-term memory effects. These are effectively non-uniform
frequency responses in certain components like the biasing network, decoupling capacitors, or supply circuitry. A given output of
the power amplifier depends not only on the current input, but also on past input values (similar to an FIR filter model). These
memory effects can usually be captured with memory taps in the model if the PA frequency response is locally smooth over the
band. As bandwidth increases, more memory taps are required to accurately model the PA.

Preliminary Technical
Data
Rev. PrA | Page 10 of 82
In this DPD implementation, the GMP is used to model the PA in the baseband. A GMP model is represented as
where x(n) is a complex baseband input signal to the DPD actuator, y(n) is a complex valued output signal of the DPD actuator,
and ci,j,k is the complex valued coefficient of the GMP terms.
The DPD supports a sparse GMP model consisting of a maximum of 190 GMP terms and coefficients in which the memory term
(i), the cross term (j) and the power term (k) are each restricted to a value between 0 to 15. A more complete equation for the
GMP model with the limits on GMP terms is shown in the Figure 12.
The GMP model is user programmable through the API adi_adrv9025_DpdModelConfigSet(). Details pertaining to programming
the DPD model are captured in the information following Figure 13. The GMP model for a particular operating point of the PA is
determined by the user and programmed into the transceiver during initialization.
The GMP model is mapped to LUTs in the DPD actuator. Each feature is specified with a unique combination of i,j, and k indices.
In general, low index values are more significant in sparse GMP models. Therefore, restrictions are placed on actuator datapath
accordingly. The LUT restrictions are illustrated Figure 12. Note that range of i and j’ are labeled per LUT. Each row shares the
same multiplier, therefore, the same j’ value. Roaming LUTs A , B, C, and D are assigned to top or bottom half of the table.
Figure 12. GMP Mapping to DPD Actuator LUTs
There are a few restrictions placed on the GMP terms mapped to the LUTs shown in Figure 12.
•More LUTs are available for smaller i,j values clustered at the top of the LUT banks compared to a fewer LUTs for high i,j
values towards the bottom of the LUT bank. In general, low index values are more significant in sparse GMP models,
therefore the user has more LUTs that can be mapped to lower i,j memory terms.
•Each row in the LUT bank shown in Figure 12 share the same cross term (j) values. This means that GMP terms mapped to
LUT[0:7] must have the same j value. Similarly, GMP terms mapped to LUT[8:13], LUT[14:17], LUT[18:21], LUT22, LUT23,
LUT24, LUT25 must have the same j values, respectively.
•LUTs 28, 29, 30, and 31 are reserved for internal use. These LUTs are not available for the user to program GMP terms.
•LUT26 and LUT27 are floating LUTs. This means that these two LUTs can take a j value that is assigned to one of the four
rows in the upper half of the LUT bank. For example, if LUT[0:7] have j = 1, LUT[8:13] have j = 2, LUT[14:17] have j = 3 and
LUT[18:21] have j = 4, then the GMP terms mapped to LUT26, LUT27 can have a j value in the range [1,4].
A part of the user programmed GMP model is shown in Figure 13. Each row of the GMP model table consisting of the i,j,k LUT and
coefficients is called a ‘feature’.

Preliminary Technical
Data
Rev. PrA | Page 11 of 82
Figure 13. Example of User Programmed GMP Model
The equations below represent the GMP terms that are mapped to LUT10, LUT11 and LUT12 described in Figure 13.
Ylut10 = |x(n-2)|2.x(n-1) + |x(n-2)|3.x(n-1)
Ylut11 = |x(n-3)|.x(n-1) + |x(n-3)|5.x(n-1) + |x(n-3)|7.x(n-1)
Ylut12 = |x(n-4)|.x(n-1) + |x(n-4)|3.x(n-1) + |x(n-4)|8.x(n-1)
The user can program the complex coefficients to 0. The DPD tracking calibration determines the coefficients and applies them to
the GMP terms on each update.
The GMP model can be programmed using the API adi_adrv9025_DpdModelConfigSet() through the data structure
adi_adrv9025_DpdModelConfig_t. The total number of features in the model is conveyed through the variable
adi_adrv9025_DpdModelConfig_t.dpdNumFeatures. Each row of the table or the ‘feature’ is programmed through the array
adi_adrv9025_DpdModelConfig_t.dpdFeatures. Each element of the array corresponds to one row in the table shown in Figure
13.
The values to load the structure adi_adrv9025_DpdModelConfig_t for the example in Figure 13 is shown below.
adi_adrv9025_DpdModelConfig_t.dpdNumFeatures = 8
adi_adrv9025_DpdModelConfig_t.dpdFeatures[0].i = 2
adi_adrv9025_DpdModelConfig_t.dpdFeatures[0].j = 1
adi_adrv9025_DpdModelConfig_t.dpdFeatures[0].k = 2
adi_adrv9025_DpdModelConfig_t.dpdFeatures[0].lut = ADI_ADRV9025_DPD_LUT10
adi_adrv9025_DpdModelConfig_t.dpdFeatures[0].coeffReal = 0
adi_adrv9025_DpdModelConfig_t.dpdFeatures[0].coeffImaginary = 0
.
.
.
.
adi_adrv9025_DpdModelConfig_t.dpdFeatures[7].i = 4
adi_adrv9025_DpdModelConfig_t.dpdFeatures[7].j = 1
adi_adrv9025_DpdModelConfig_t.dpdFeatures[7].k = 8
adi_adrv9025_DpdModelConfig_t.dpdFeatures[7].lut = ADI_ADRV9025_DPD_LUT12
adi_adrv9025_DpdModelConfig_t.dpdFeatures[7].coeffReal = 0
adi_adrv9025_DpdModelConfig_t.dpdFeatures[7].coeffImaginary = 0
INITIALIZING PRE-CALIBRATED COEFFICIENTS DURING START-UP
The DPD functionality on the transceiver provides a mechanism for loading pre-calibrated coefficients into the GMP model to
prevent emissions during start-up and also guide DPD updates at the beginning. There are three different use cases for loading
pre-calibrated coefficients.

Preliminary Technical
Data
Rev. PrA | Page 12 of 82
Single Frequency Band Use Case
In the single frequency band use case, all four transmit channels are working in the same frequency band as shown in Figure 14.
Note the PA model will be the same for all four channels.
Figure 14. Single Frequency Band Use Case Configuration
The API sequence for programming DPD models in a single frequency band use case is shown below. The factory calibrated
coefficients can be programmed into the transceiver using the API adi_adrv9025_DpdModelConfigSet as described in the
previous section. The DPD reset with the LUT restore option must be exercised consecutively on all four channels to program the
coefficients into the DPD actuator hardware.
adi_adrv9025_DpdModelConfigSet()
adi_adrv9025_DpdReset(ADI_ADRV9025_TX1, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdReset(ADI_ADRV9025_TX2, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdReset(ADI_ADRV9025_TX3, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_drv9025_DpdReset(ADI_ADRV9025_TX4, ADI_ADRV9025_DPD_LUT_RESTORE)
Dual Frequency Band Use Case
In the dual frequency band use case, the signals of transmit channels 1 and 2 are centered at fband1 and those of transmit channels
3 and 4 at fband2. PA characteristics are band dependent, so the DPD model that is loaded into transmit channels 1 and 2 must be
different than the model loaded into transmit channels 3 and 4 as shown in Figure 15.

Preliminary Technical
Data
Rev. PrA | Page 13 of 82
Figure 15. Case 2 Dual Band Use Case Configuration
The API sequence for programming DPD models in a dual frequency band use case are shown below. The factory calibrated
coefficients can be programmed into the transceiver through the API adi_adrv9025_DpdModelConfigSet() for the two pairs of
transmit channels as described in the previous section. The DPD reset with the LUT restore option must be exercised for two
channels at a time.
adi_adrv9025_DpdModelConfigSet() /* Load model for Tx12 */
adi_adrv9025_DpdReset(ADI_ADRV9025_TX1, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdReset(ADI_ADRV9025_TX2, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdModelConfigSet()/* Load model for Tx34 */
adi_adrv9025_DpdReset(ADI_ADRV9025_TX3, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdReset(ADI_ADRV9025_TX4, ADI_ADRV9025_DPD_LUT_RESTORE)
Unique GMP Model Per Transmit Channel
In addition to the use cases described above, a user can initialize each transmit channel with a unique GMP model. This approach
is typically used when each PA exhibits a slightly different nonlinearity which in turn requires a different set of coefficients, as
shown in Figure 16.
Figure 16. Use Case where each transmit path requires a different set of DPD coefficients
The API sequence for programming a unique DPD model per transmit channel is shown below. The factory calibrated coefficients
can be programmed into the transceiver through the API adi_adrv9025_DpdModelConfigSet() for the two pairs of transmit
channels as described in the previous section. The DPD reset with the LUT restore option must be exercised for each channel.
adi_adrv9025_DpdModelConfigSet() /* Load model for Tx1 */
adi_adrv9025_DpdReset(ADI_ADRV9025_TX1, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdModelConfigSet() /* Load model for Tx2 */
adi_adrv9025_DpdReset(ADI_ADRV9025_TX2, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdModelConfigSet() /* Load model for Tx3 */
adi_adrv9025_DpdReset(ADI_ADRV9025_TX3, ADI_ADRV9025_DPD_LUT_RESTORE)
adi_adrv9025_DpdModelConfigSet() /* Load model for Tx4 */
adi_adrv9025_DpdReset(ADI_ADRV9025_TX4, ADI_ADRV9025_DPD_LUT_RESTORE)
DPD SAMPLE CAPTURE
The DPD algorithm relies on observing the samples distorted by the PA through an observation channel in order to estimate the
DPD coefficients. The DPD algorithm captures the observation samples after they have been processed by the observation
receiver channel, and before and after the DPD actuator in batches of 4096 samples. The total number of samples that the DPD
algorithm needs to capture is configured using the API adi_adrv9025_DpdTrackingConfigSet() through the parameter
adi_adrv9025_DpdTrackingConfig_t.dpdSamples. The number of samples must be a multiple of 4096. Increasing the number of
samples increases the processing time and computation load. Conversely, a decreased number of samples could impact the

Preliminary Technical
Data
Rev. PrA | Page 14 of 82
accuracy of coefficient estimation. ADI recommends the number of samples be set to 16384, which provides a good balance
between accuracy of estimation of coefficients and processing time.
For successful captures, the transmitter to observation channel external signal routing needs to be conveyed to the firmware
through the API adi_adrv9025_TxToOrxMappingSet().
For accurate estimation of pre-distortion coefficients, the transmitter and observation receiver samples are aligned in time by the
sample capture engine in the transceiver. To align the samples, the external path delay initial calibration needs to be executed.
using the API adi_adrv9025_InitCalsRun() with a mask value of ADI_ADRV9025_EXTERNAL_PATH_DELAY (= 0x00200000) along
with the requisite Tx channel mask.
DPD Sample Capture Process
The DPD algorithm implements a peak detection-based capture strategy since the high-power signal levels contain more useful
information for deriving DPD coefficients. The device’s calibration scheduler can initiate DPD capture at any available point in
time when the transmit signal chain is enabled. The sequence of events involved in DPD sample capture process is shown in
Figure 17.
Figure 17. DPD Tracking Calibration Sample Capture Sequence
Peak Search Window and Peak Detection Based Capture
The DPD capture engine contains a peak detector that triggers captures on the largest peak seen in a specified time window as
shown in Figure 18. Peak detection occurs at the DPD input and after CFR correction is applied.
The peak detection time window is specified in number of samples at the DPD actuator rate using the API
adi_adrv9025_DpdTrackingConfgSet() through the parameter adi_adrv9025_DpdTrackingConfig_t.dpdPeakSearchWindowSize.
While longer peak search windows result in more accurate high-power DPD modeling, the capture process also takes longer to
complete. The goal of peak search window optimization is to increase the probability of capturing high-power data without

Preliminary Technical
Data
Rev. PrA | Page 15 of 82
penalizing the rest of the system operation. In order to do so, the system designer must study the worst case signal statistics. This
DPD contains only one adaptation engine, so the capture mechanism is shared between all active channels.
Figure 18. DPD Peak Detection Based Sample Capture Process for DPD Adaptation

Preliminary Technical
Data
Rev. PrA | Page 16 of 82
DPD Sample Capture in TDD Mode
There are additional considerations that a system developer needs to take into account for configuring the DPD in TDD mode. In
TDD mode, the DPD sample capture process spans multiple TDD downlink slot periods (Tx ON periods), with each batch of 4096
samples captured during one TDD downlink slot period (Tx ON period) through the peak detection process highlighted in the
previous section. The peak search window size is specified by adi_adrv9025_DpdTrackingConfig_t.dpdPeakSearchWindowSize
and configured using the API adi_adrv9025_DpdTrackingConfgSet(). The search window size is restricted to a maximum of one
TDD downlink slot period(one Tx ON period) minus 4096 samples.
An example of a typical sample capture process in TDD mode is illustrated in Figure 19. In this example, the total number of DPD
samples specified by adi_adrv9025_DpdTrackingConfig_t.dpdSamples is set to 16384 samples or four batches of 4096 samples.
Each batch of 4096 samples corresponding to peaks P1, P2, P3, and P4, respectively, are captured over four TDD downlink slot
periods (four Tx ON periods). If each Tx ON period consists of M samples at the DPD actuator rate, then the maximum peak
search window size that can be configured using adi_adrv9025_DpdTrackingConfig_t.dpdPeakSearchWindowSize is restricted to
(M-4096) samples. At the end of four TDD downlink slot periods, a composite capture data consisting of 4 batches of 4096
samples corresponding to peaks P1, P2, P3 and P4 respectively are used to estimate the DPD coefficients as described in the
Indirect Learning sections.
Figure 19. DPD Sample Capture Process in TDD Mode
DPD DYNAMICS
The transcevier DPD is designed to react to dynamic signaling conditions. The algorithm defines four models that can be
implemented depending on the power levels to achieve the best dynamic performance. The four DPD models are defined Table 2.
Table 2. DPD Models Explained
DPD Model Description
M-Table (Max Power Table )
(ADI_ADRV9025_DPD_MODEL_TABLE_M)
Default model in all 3 DPD modes. The conditions for updating this table in
different DPD modes are listed below -
DPD MODE0 – The model defined by M-Table is updated on every DPD iteration
if update criteria is met as described in ADI_ADRV9025_DPD_MODE0 section in

Preliminary Technical
Data
Rev. PrA | Page 17 of 82
Table 3. The update criteria is described in the following section.
DPD MODE1 -The model defined by M-Table is updated when the rms power of
DPD capture samples exceeds previously recorded maximum rms power as
described in ADI_ADRV9025_DPD_MODE1 section in Table 3.
DPD MODE2 –The model defined by M-Table is updated only when the rms
power of DPD capture samples exceeds M-Threshold specified by the
configuration adi_adrv9025_DpdTrackingConfig_t.dpdMThreshold and the rms
power of DPD capture samples exceeds the previously recorded maximum rms
power. Please refer to Table 3 for more details on DPD Mode 2 operation.
C-Table (Current-Table )
(ADI_ADRV9025_DPD_MODEL_TABLE_C)
The model defined by C-Table is a low power model only applicable only in DPD
MODE2 when the rms power of DPD capture samples is below the M-Threshold
value specified by adi_adrv9025_DpdTrackingConfig_t.dpdMThreshold as
described by ADI_ADRV9025_DPD_MODE2 section in Table 3.
R-Table (Recovery Table)
(ADI_ADRV9025_DPD_MODEL_TABLE_R)
R-Table or recovery table is a recovery model that stores the coefficients
generated from the highest power data captured by DPD. The maximum power
recorded by the recovery model doesn’t decay unlike the maximum power
recorded by M-Table(which decays by 0.2 dB per update period).
U-Table (Unity Gain Table)
(ADI_ADRV9025_DPD_MODEL_TABLE_U)
Unity gain model in which output is equal to input. This model is usually
activated in low power conditions where pre-distortion is not necessary.
DPD Modes of Operation
The DPD functionality supports three modes of operation that are listed in Table 3. The user can select one of the three modes
based on the application. The DPD engine needs to react to changing signal conditions, so ADI has developed proprietary
algorithms that address this requirement. Within a cost-bounded implementation there is no solution that will achieve absolute
performance on any time scale of measurement. The ADI solution is an optimized compromise between performance and
complexity.
The DPD mode of operation can be configured through the API adi_adrv9025_DpdTrackingConfigSet() using the parameter
adi_adrv9025_DpdTrackingConfig_t.dpdUpdateMode parameter. The DPD update mode can be set to one of the three
enumerated list of options represented by adi_adrv9025_DpdTrackingUpdateMode_e.
Table 3. DPD Modes of Operation
DPD Mode of
Operation
Description
ADI_ADRV9025_DPD_M
ODE0
DPD coefficients corresponding to the GMP model are updated once every second. This mode
offers the best sustained performance for any signal at the expense of transient emissions when
the signal changes rapidly.
Shown in Figure 20 is the DPD updates in Mode 0. The DPD updates coefficients once every
update period independent of the RMS power measured by the DPD captures for coefficient
computation.

Preliminary Technical
Data
Rev. PrA | Page 18 of 82
DPD Mode of
Operation
Description
Figure 20. DPD Mode 0 Update Example
ADI_ADRV9025_DPD_M
ODE1
DPD coefficients corresponding to the GMP model are updated only if the RMS power measured
by the DPD exceeds the previously recorded maximum RMS power by the DPD algorithm. The
RMS power is calculated on the samples captured by the DPD for coefficient computation. The
number of samples to capture for a DPD update is specified by
adi_adrv9025_DpdTrackingConfig_t.dpdSamples. Typically this is set to 16384 samples. The
recorded maximum power decays at a fixed rate of 0.2 dB per update.
Shown in Figure 21 is an illustration of DPD updates in Mode 1. The DPD algorithm updates
coefficients only when the RMS power measured by the DPD during the update exceeds the
previously recorded maximum power. In this example, there is no update b/w Update 1 and
Update 2 because the RMS power is below the max power recorded.
Figure 21. DPD Mode 1 Update Example
DPD Mode 1 offers the best mitigation of transient emissions when the signal changes rapidly, at
the expense of sustained performance in certain low-power signal conditions.
ADI_ADRV9025_DPD_M
ODE2
In this mode, the DPD algorithm maintains 2 separate look up tables, one for low power region
and the other for the high power region. Depending on the RMS power measured by the DPD
on the samples captured for coefficient computation, the DPD algorithm either switches to the
high power look up table(M-Table) or the low power look up table(C-Table), and the same look

Preliminary Technical
Data
Rev. PrA | Page 19 of 82
DPD Mode of
Operation
Description
up table is active until the next DPD update. The RMS power threshold separating the low power
and high power region is user configurable through the parameter
adi_adrv9025_DpdTrackingConfig_t. dpdMThreshold. The RMS power is calculated on the
samples captured by the DPD for coefficient computation. The number of samples to capture for
a DPD update is specified by adi_adrv9025_DpdTrackingConfig_t.dpdSamples. Typically this is set
to 16384 samples.
Figure 22 is an illustration of DPD updates in Mode 2 operation.
Figure 22. Illustration of DPD Updates in Mode 2
This offers a compromise between modes 0 and 1. There is some mitigation of transient
emissions when the signal changes rapidly and sustained performance in many signaling
conditions.
Transmitter Low Power Threshold
The DPD continuously integrates the baseband power level at the input of the DPD actuator so that it can switch between the
different models described in Table 3. The power is measured for a period of 10 ms through a leaky integrator that runs
continuously in the background. If the 10 ms integrated rms power of the DPD input samples is below the transmitter low power
threshold specified by adi_adrv9025_DpdTrackingConfig_t.minAvgSignalLevel in linear scale, the unity gain table is activated, and
if the 10 ms integrated rms power of the DPD input samples is higher than the Tx low power threshold specified by
adi_adrv9025_DpdTrackingConfig_t.minAvgSignalLevel in linear scale, the DPD model defined by M-Table is activated in DPD
Mode 0 and Mode 1. In DPD mode 2, there is an additional threshold specified by
adi_adrv9025_DpdTrackingConfig_t.dpdMThreshold described in the next section. The dynamics of the DPD based on the
transmit baseband input level is shown in Figure 23.

Preliminary Technical
Data
Rev. PrA | Page 20 of 82
Figure 23. DPD Dynamics and Tx Low Power Threshold
Transmitter M-Threshold
The M-Threshold is a max power threshold specified by adi_adrv9025_DpdTrackingConfig_t.dpdMThreshold that is valid only in
DPD mode 2 operation (adi_adrv9025_DpdTrackingConfig_t.dpdUpdateMode = ADI_ADRV9025_DPD_MODE2). There are two
DPD models (M-Table, C-Table) that the DPD tracking calibration maintains and updates. The DPD model update mechanism in
DPD mode 2 operation is described in Table 4. Note that the switching mechanism between the models M-Table (high power), C-
Table (low power) and U-Table (unity gain) is based on the 10 ms integrated rms power of the DPD actuator input samples,
similar to the mechanism described in DPD Characterization for optimizing M-Threshold section.
The dynamics of the DPD based on the Tx baseband input level with the M-Threshold taken into consideration is shown in Figure
24.
Other manuals for ADRV9029
1
Table of contents
Other Analog Devices Transceiver manuals

Analog Devices
Analog Devices EVAL-ADM2463EEBZ User manual

Analog Devices
Analog Devices ADRV9001 User manual

Analog Devices
Analog Devices AD9865 User manual

Analog Devices
Analog Devices AFDF7021 Installation and operating instructions

Analog Devices
Analog Devices EVAL-AD9081 User manual

Analog Devices
Analog Devices ADRV9029 Manual