Locale Icon
English
  • Forums

    Popular Forums

    • LTspice
    • Video
    • Power Management
    • RF & Microwave
    • Precision ADCs
    • FPGA Reference Designs

    Product Forums

    • Amplifiers
    • Clocks & Timers
    • Data Converters
    • Direct Digital Synthesis (DDS)
    • Energy
    • Interface and Isolation
    • MEMS Inertial Sensors
    • Power Management
    • Processors & DSP
    • Processors & Microcontrollers
    • Switches & Multiplexers
    • Sensors
    • Voltage References
    View All

    Application Forums

    • A2B Audio Bus
    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing Library
    • Motor Control Hardware Platforms
    • Precision Technology Signal Chains Library
    • Video
    • Wireless Sensor Networks Reference Library

    Design Center Forums

    • ACE Evaluation Software
    • ADEF System Platforms
    • Design Tools & Calculators
    • FPGA Reference Designs
    • Linux Software Drivers
    • Microcontroller no-OS Drivers
    • Power Studio Designer
    • Power Studio Planner
    • Reference Designs
    • Robot Operating System (ROS) SDK
    • Signal Chain Power (SCP)
    • Software Interface Tools
    • System Demonstration Platform (SDP) Support
  • Learn

    Highlighted Webinar

    Power Management Fundamentals II Session 6: Key Layout Considerations for Power

    Understand the physics of printed circuit boards to manage large changes in current or voltage. See how layout tweaks can make big improvements for your...

    Places

    • ADI Academy
    • ADI Webinars
    • Video Annex
    • Virtual Classroom

    Libraries

    • 3D ToF Depth Sensing Library
    • Continuous-Wave CMOS Time of Flight (TOF) Library
    • Embedded Vision Sensing Library
    • Gigabit Multimedia Serial Link (GMSL) Library
    • Optical Sensing Library
    • Precision Technology Signal Chains Library
    • Software Modules and SDKs Library
    • Supervisory Circuits Library
    • Wireless Sensor Networks Library

    Latest Webinars

    • Enabling New Space Missions: ADI’s Commercial Space Screening Approach for Agile, High-Reliability Payloads
    • Design Smarter with Compact, Low-Power Precision Current Source Signal Chains
    • Power Management Fundamentals II Session 6: Key Layout Considerations for Power
    • A 16T/16R X-Band Direct Sampling Phased Array Subsystem using Apollo MxFE
    • Power Management Fundamentals II Session 5: Deeper Look into Power Protection
    View All Webinars
  • Community Hub

    Challenge Yourself!

      KCC's Quizzes AQQ296 about repairing an equation in a digital display

      1. Quote of this month: " When I die, I want to die like my grandfather who died peacefully in his sleep. Not screaming like all the passengers in his...

    View All

    What's Brewing

      Read a Blog, Take this Quiz for Another Chance to Win a Gift Card!

      Important: Read the blog first . The quiz questions are all based on the content from the blog: Mature, Not Old! The Longevity of 4 – 20 mA New...

    View All

    Places

    • Community Help
    • Analog Dialogue Quiz
    • Logic Lounge
    • Super User Program

    Resources

    • EZ Code of Conduct
    • EZ How To Help Articles
    • Getting Started Guide
    • ADI: Words Matter
    • Community Help Videos
    View All
  • Blogs

    Highlighted Blogs

    Taming the Chaos: Correlated and Uncorrelated Sources in LTspice .NOISE Simulations: Part 3 of 3

    Noise analysis of a circuit requires tracking several things simultaneously: each noise source, how those noise sources are shaped by the circuit, and...

     

    ​​Where Errors Lurk in the GMSL Signal Chain​

    Whether you're debugging a stubborn camera link or designing a robust system from scratch, knowing where errors hide is half the battle. GMSL provides...

    Latest Blogs

    • Achieving Power Over Data with RS-485 Transceivers
    • ​​Functional Safety: A Driver of “Shift Left”​
    • The 5 Advantages of Hardware Fault Tolerance
    • The Power Problem Inside Every AI Breakthrough: Part 1 of 3
    • Simplifying Stability with EVAL-KW4503Z: Part 1 of 3
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • ContentZone

    Visit ContentZone

    ContentZone

    Technical articles. Blogs. Videos. Your ADI content, all in one place.

    View ContentZone

    Featured Content

    Featured Content Title

    Blurb About Content

    View Content By Industry

    • Aerospace and Defense Systems
    • Automotive Solutions
    • Consumer Technology Solutions
    • Data Center Solutions
    • Energy Solutions
    • Healthcare Solutions
    • Industrial Automation Technology Solutions
    • Instrumentation and Measurement Solutions
    • Intelligent Building Solutions
    • Wireless Communication Solutions

    View Content By Technology

    • A2B Audio Bus
    • ADI OtoSense Predictive Maintenance Solutions
    • Dynamic Speaker Management
    • Gallium Nitride (GaN) Technology
    • Gigabit Multimedia Serial Link (GMSL)
    • Industrial Vision
    • Power Solutions
    • Precision Technology
    • RF
    • Sensor Interfaces
    • SmartMesh
EngineerZone
EngineerZone
TES GUI & Software Support ADRV9001 – ADRV9007
  • Log In
  • User
  • Site
  • Search
OR
Ask a Question
TES GUI & Software Support ADRV9001 – ADRV9007
  • RF & Microwave
  • Wide Band RF Transceivers
  • TES GUI & Software Support ADRV9001 – ADRV9007
  • Cancel
TES GUI & Software Support ADRV9001 – ADRV9007
Documents Digital Pre-Distortion
  • Q&A
  • Docs/FAQs
  • Members
  • Tags
  • Cancel
  • Documents
  • +Debug: FAQ
  • -Device Configurations: FAQ
    • Analog and Half-Band Peak Detectors
    • +Automated TDD
    • -Digital Pre-Distortion
      • DPD Tuning
    • Implement an External LNA in TES
  • +Physical Design of Customer Systems: FAQ
  • +Produce Sample Code
  • +Quick Start: FAQ
  • +SD Card Image: FAQ
  • +SDK Errata: FAQ
  • +Software Functions: FAQ

Digital Pre-Distortion

Introduction to DPD

This tutorial will cover a brief intro on Digital Pre-Distortion (DPD), why its used and how it works. It will also cover how to go about setting up a DPD measurement, including running calibrations for losses in equipment and give two examples using different Power Amplifiers (PA). The data shown in this tutorial is from real in lab measurements.
This tutorial is for anyone looking to implement or evaluate the performance of the ADRV9002 or ADRV9005 DPD feature. 
To follow along with the practical you will need an ADRV9002 evaluation platform, Transceiver Evaluation Software from the latest SDK, PA and accompanying attenuators and splitters based on your requirements (more on how to chose these below).

Digital Pre-Distortion 

DPD is a feature that uses a real-time feedback loop to pre-distort data being transmitted through a power amplifier (PA). It's used in transceiver applications to generate a more robust linear signal for transmitting data, to keep within ACPR specifications for RF bands and to utilise the PA in its most efficient state to maximise power useage. The PA is most efficient in its compression region, as shown in Figure 1, where the signal gets non-linearitiese introduced as a result. DPD works by taking in the output of the PA, calculating the non-linearity and applying an opposite distortion to the signal before it is transmitted and reaches the PA. The sum of this pre-distortion and the PA distortion should output a perfectly linear signal. This allows the user to get the best performance out of the chosen PA, however each PA will have different performance even with DPD and will need to be fine-tuned. 

For more in-depth understanding and debugging refer to the User Guide for all up-to-date documentation on the DPD and TES functionality.

 

Figure 1. PA Output

FAQ

  1. What is the maximum useable bandwidth for the DPD?
    The maximum bandwidth for DPD on the ADRV9002 is 20MHz. This is based off 1/5th of the maximum internal Tx observation bandwidth of the DPD block, which is 100MHz. Using this much margin allows the DPD engine to correct some of the odd harmonics that will have the biggest impact on stability. 

Setup for DPD

Measurements

The DPD engine requires both Tx and Rx signals to calculate the coefficients. The coefficients will be applied in the Tx signal (pre-distort). Shown in

Figure 2. DPD HW Setup

This setup means that for the user’s implementation, one of the Rx channels will need to be permanently used as the DPD observation path. In the ADRV9002, this means the user can implement one of the following: 

1T1R TDD with DPD 
1T2R TDD with DPD
2T1R TDD with DPD 
2T2R TDD with DPD 
1T1R FDD with DPD 

 

Figuring out what your hardware setup will include is the next step. To do this we would recommend starting with the frequency band your application is targeting, from there you will need to understand the link budget and how much power output will be needed from the transmit system. From this point you can start to look for a suitable PA for the system. When you have found a PA that will operate in the freq of interest and provide enough power you can determine the rest of the DPD feedback loop. Using the input power required to push the PA into the compression region you can determine if an addition gain block is needed before the PA as the output from the EVB will be between 5 and 7dBm max. The ouput power of the PA will determin how much attenuation is needed to bring the loopback signal down to the required -18dBm to the input of the ADRV9002. This will also help identify the power rating on the attenuators needed. 

At this stage you will have a PA, attenuators, gain block and coupler/splitter chosen for the feedback loop. 

Example 1

Equipment List 

  • ADRV9002 evaluation platforrm 
  • PC with latest TES 
  • Spectrum Analyser
  • Signal Generator
  • Power sensor
  • PA / Gain block
  • RF cables 
  • Attenuators 
  • Splitter/Coupler 

Calibration 

Calibrating each piece of the feedback loop is very important to get the most accurate picture of what is happening in the loop and will help evaluate and stabalise the DPD. Calibration is pretty simple but time consuming as it involves using a signal generator and a power sensor to input a signal of good quality and know freq and amplitude into a cable or coupler and sensing the power on the other end of the part under test. The difference in power level through the part is the loss and should be noted. Running this calibraion at the freq uency of interest is important as the response of each part can change against frequency. 

You can use the losses measured to fine tune the attenuation levels in the loopback. 

Hardware setup

Shown in Figure 3 is a block diagram of the setup using the ADRV9001 evaluation board (EVB) Tx1 is the transmit channel. The Tx signal must first go through a filter to get rid of harmonics that may make the DPD unstable. The Tx signal is then passed through a simple Minicircuits gain block to increase the signal power level to be able to push the PA into saturation. The gain block is a fixed 40dB so we have the flexibililty on the ADRV9002 side to use the attneuation to set the initial power level for the loopback. The PA outputs around 40dBm so the attneuators next to the PA must be rated to be able to take the 10W of power. In this loopback there is a 20W 20dB attneuator followed by a 10W 10dB and then 2W 20dB to bring the power level down to -10dBm going into the coupler. The coupler also has its own losses that we have claibrated earlier. The cables also have a loss and the sum of these leaves us with -18dBm going into the Rx port on the EVB. There is a little bit of torrerance here, the power level to the Rx1B input should be -18dBm +-5dB for the DPD to operate correctly. This level is not user configurable. 

The user needs to be aware of the kind of data being transmitted, for example if the data has a high PAR then the Tx data will need to be backed off enough so as not to saturate the DACs when the signal goes through the peak expansion (pre distortion). There is no crst factor reduction block in the ADRV9002, the user should be aware of this and make provisions to apply crest factor to all the signals being supplied to the ADRV9002 for transmitting. The importnace of this and other tuning methods will be discussed in the advanced DPD tutorial. 


Figure 3. Simple Example DPD Block Diagram

TES setup

With this simple setup the user can then use the TES to enable the DPD. For more details on any of the steps below please see the User Guide section on Digital Pre-Distortion and ADRV9001 Evaluation System.

  1. After successfully connecting to the FPGA, in the Configure tab select an LTE TDD setup.

Figure 4. Device Configuration

  1. The external path delay will need to be calibrated. This can be done in the with the Python interface by loading the ‘External_Delay_Measurement.py’ script. This will return the value in ps for the ‘Path Delay’ in the next step. This file is located in the install folder for the TES C:\Program Files\Analog Devices\ADRV9001 Transceiver Evaluation Software\Examples\Python 

                                               

Figure 5. Python Script Window

  1. In the Board Configuration tab select the external loopback on the channel that will be performing DPD. Input the peak power and the calibrated path delay.

Figure 6. Board Configuration

  1. In the Digital Pre-Distortion section of the Advanced Features tab the user can now enable the DPD on the channel of choice. There are options to select the Look Up Table size (larger number of entries provides more granularity)

The Pre-LUT Scale can be used to get better DPD performance if the input signal to the DPD block is too small. The default value is 2 and be changed from 0 to 3.75 in 0.25 steps.

The polynomial terms can be set to Default or when further optimising the user can custom tune the Taps for a better response. For now, we use the default setting.

 

Figure 7. Advanced Features (DPD)

  1. In the Digital Pre-Distortion tab, the channel enabled in the Advanced features tab above will also appear enabled here. This tab gives the user the option to increase or decrease the number of samples of real data used to calculate the coefficients. There is an additional power scale that can be used for small input signals.

DPD Activation can be used to prevent the DPD from going unstable if the signal level going to the DPD block drops unexpectedly. For now, these settings can be left as the default values.

 

Figure 8. Digital Pre-Distortion Tab

  1. The part can now be Programmed. Enabling the DPD will require a DPD tracking calibration which looks for a feedback signal. If the hardware setup is not set up correctly the device will fail to program.
    1. Note: In TES version 0.21.0 the DPD updates the coefficients at the start of a frame. If you are using the Automated TDD function the frame length is known and will occur frequently compared to operating in normal mode. In normal mode you will need to Stop and Start the Tx transmitting to trigger a frame and update the DPD coefficients. 
    2. Note: Make sure that the Transmit file being used has no discontinuities between the start and end of the file. The file is being sent in a loop and discontinuities will cause some unwanted spurious that will make destabilise the DPD performance.

 

 

Measurement Results

Doing the same measurement with and without DPD is the best way to show the impact. To run without DPD you will need to reset the part, disable DPD and program the part again. The results from this measurement are shown in Figure 9. The yellow trace is the result before the DPD is used and the pink trace is with DPD enabled. This shows a 16dB improvement however all setups with differing PAs will produce different results. Figure 9 is for illustrative purposes only.

Figure 9. Signal Analyser Measurement Example Measurement

The measurements below were taken using the ADRV9002 customer evaluation board controlled by the Transceiver Evaluation Software. The measurements show the results from two different PAs with DPD and without. 

Measurement 1 - Tetra1

PA: Sky65160-11

ADRV9002 Profile: 

  • Tetra1, 144Ksps
  • Internal LO
  • Tx Continuous On

Transmit Waveform:

  • TETRA1_sample_rate_144K_bw_25K
    • This can be found in \ADRV9001 Transceiver Evaluation Software\Examples\Tx Data\
  • PAR is about 3dB

Figure 10: Measurement 1 - Tetra1

Measurement 2 - LTE10M

PA: Sky66297-11

ADRV9002 Profile: 

  • TDD LTE10, 15.36Msps
  • Internal LO
  • Tx Continuous On

Transmit Waveform:

  • CFR_sample_rate_15p36M_bw_10M
    • This can be found in \ADRV9001 Transceiver Evaluation Software\Examples\Tx Data\
  • PAR is about 9dB

Figure 11: Measurement 2 - LTE10M

Measurement 3 - LTE20M

PA: Sky66297-11

ADRV9002 Profile: 

  • TDD LTE20, 15.36Msps
  • Internal LO
  • Tx Continuous On

Transmit Waveform:

  • CFR_sample_rate_15p36M_bw_10M
    • This can be found in \ADRV9001 Transceiver Evaluation Software\Examples\Tx Data\
  • PAR is about 9dB

Figure 12: Measurement 3 - LTE20M

MATLAB DPD Analysis Tool 

The MATLAB tool is aimed at analyzing the captured data from dpd_capture.py. This is an IronPython script that can be run from the TES to capture Tx and Rx data for analysis. This tool will help check signal integrity, signal alignment, PA compression level and at last the fine tuning of DPD.

Figure 13: MATLAB DPD analysis tool 

This DPD analysis tool takes in a .csv file that is gererated in the TES with the dpd_capture.py script. This is run from the Python editor in the View tab.

Figure 14: Python Editor

For more in depth understanding of the DPD features and setup have a look at the whitepaper on The Complete Guide to Troubleshoot and Fine Tune Digital Predistortion

Running this will require a MATLAB runtime engine and this is included in the install package for the DPD Analyser. 

The ADRV9002_DPD_Analyser can be downloaded here: ADRV9002_DPD_Analyser.zip

The dpd_capture.py file can be downloaded here: dpd_capture.zip

DPD Power Consumption

The ADRV9002's DPD power consumption, while seemingly dominated by the Observation Receiver (ORx), is actually primarily attributed to the DPD Actuator in average power calculations. This is because the ORx, despite consuming around 225mW for Tetra and 281mW for LTE 20 1T/1R during operation, only runs periodically for data capture (approximately every 2 seconds). The capture duration itself is short, ranging from tens of microseconds to several milliseconds depending on the profile: around 7.1ms for Tetra and 23µs for LTE 20.

Therefore, the average ORx power consumption is significantly lower: around 0.8mW for Tetra and a mere 0.003mW for LTE 20 1T1R. This is calculated by multiplying the ORx power consumption with the ratio of data capture time to the period. Consequently, the ADRV9002's average DPD power consumption is mainly determined by the always-on Actuator, resulting in less than 3mW for Tetra, less than 18mW for LTE 20 1T, and less than 36mW for LTE 20 2T. More details on DPD power consumption are provided here:

 PDF

DPD Performance Reports

The ADRV9001 employs DPD system similar to that of the AD9371 and AD9375 transceivers. The published performance reports for these transceivers with various PAs are listed below. Comparable DPD performance can be expected with the ADRV9001 using similar PAs, provided the instantaneous bandwidth (iBW) requirements are met.

  1. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-HTN7G21P160H_Sp0.pdf
  2. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-HTN7G21P160H_Sp0.pdf
  3. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-NXP_20D025_Sp0.pdf
  4. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-NXP_20D025_Sp0.pdf
  5. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-RFPD-DE705_SP0.pdf
  6. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-Skyworks_SKY66297_Sp0.pdf  
  7. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-Skyworks_SKY66292_Sp0.pdf
  8. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-Skyworks_SKY66295-11_Sp0.pdf
  9. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-Skyworks_SKY66296-11_Sp0.pdf
  10. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-Skyworks_SKY66288-11_Sp0.pdf
  11. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-Skyworks_SKY66294-11_Sp0.pdf
  12. https://www.analog.com/media/en/technical-documentation/test-reports/DPD-PA-Test-Report-Skyworks_SKY66293-21_Sp0.pdf
  13. https://www.analog.com/media/en/technical-documentation/test-reports/Skyworks_Tested_PA_SKY66394-11_5V_25C_R0.1.pdf

 

Tags: transmit ad9371 Transceiver Evaluation Software ADRV9002 ADRV9001 Gain Blocks dpd ad9375 rf amplifiers Wideband Transceiver IC adl5611 RF Integrated Transceivers Show More
  • Share
  • History
  • More
  • Cancel
 
Related Content
  • ADRV9002 DPD Problems
    SimDavVis
    Hi, We are trying to enable DPD in a custom ADRV9002 board and are struggling with getting anything running. We have a 1T 1R setup (Rx1 running at 900MHz, TX2 running at 2GHz. Feedback path after PA...
  • Implement an External LNA in TES
    ConradCollins
    Background The Rx gain table is a table of gain values that are used to control the gain of the receiver chain of ADRV9001. The table is generated by the Transceiver Evaluation Software (TES) based on...
  • ADAR1000EVAL1Z Stingray SDP-S based testsoftware for Windows
    Zmon
    Hi, I have a Stingray on my Table and want to do some quick measurements and configurations. The Wiki only specifies one test software for the SDP-S connector. Its functionality seems rather limited...
 
Related Content
  • ADRV9002 DPD Problems
    SimDavVis
    Hi, We are trying to enable DPD in a custom ADRV9002 board and are struggling with getting anything running. We have a 1T 1R setup (Rx1 running at 900MHz, TX2 running at 2GHz. Feedback path after PA...
  • Implement an External LNA in TES
    ConradCollins
    Background The Rx gain table is a table of gain values that are used to control the gain of the receiver chain of ADRV9001. The table is generated by the Transceiver Evaluation Software (TES) based on...
  • ADAR1000EVAL1Z Stingray SDP-S based testsoftware for Windows
    Zmon
    Hi, I have a Stingray on my Table and want to do some quick measurements and configurations. The Wiki only specifies one test software for the SDP-S connector. Its functionality seems rather limited...
analog-devices logo

About Analog Devices

  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue
  • ADI Developer PortalExternalLink

myAnalog

Interested in the latest news and articles about ADI products, design tools, training, and events?

Go to myAnalog
  • Instagram page
  • Twitter page
  • Linkedin page
  • Youtube page
  • Facebook
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings

©2026 Analog Devices, Inc. All Rights Reserved

analog-devices

About Analog Devices

Down Up
  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

Down Up
  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue
  • ADI Developer PortalExternalLink

myAnalog

Interested in the latest news and articles about ADI products, design tools, training, and events?

Go to myAnalog
Instagram page Facebook Twitter page Linkedin page Youtube page
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings

©2026 Analog Devices, Inc. All Rights Reserved