File Exchange

version 1.6.0.0 (7.48 MB) by Kerry Schutz

### Kerry Schutz (view profile)

A workflow for modeling and simulating PAs and adaptive DPDs.

Updated 01 Aug 2014

See the README.PDF for an explanation of the contents of this zip file and how to use the models. See DPD.PDF for general background on PA and DPD modeling.
Digital pre-distortion (DPD) is a baseband signal processing technique that corrects for impairments inherent to RF power amplifiers (PAs). These impairments cause out-of-band emissions or spectral regrowth and in-band distortion which correlates with an increased bit-error-rate (BER). Wideband signals with a high peak-to-average ratio, as is characteristic of LTE/4G transmitters, are particulary susceptible to these unwanted effects.
In this paper, we illustrate a workflow for modeling and simulating PAs and DPDs. The models shown in this article are based on two technical papers, [1] and [2]. We start from PA measurements. From measurements, we derive a static DPD design based on a memory polynomial. Such a polynomial corrects for both the non-linearities and memory effects in the PA. For simulation purposes, we construct a system-level model to evaluate the DPD’s effectiveness. Because any PAs characteristics will vary over time and operating conditions, we extend the static DPD design to an adaptive one. We evaluate two adaptive DPD designs, one based on the (Least-Mean Square) LMS algorithm and a second using the Recurive Predictor Error Method (RPEM) algorithm.

senh sali

### senh sali (view profile)

i want to aplay your code for a OFDM signal how i can do it ?

Angelos Goulianos

### Angelos Goulianos (view profile)

Hi are you sure that the fit_memory_poly_model works correctly?It seems that referring to past values is not there. for example:
if you analyze x_terms in the scripts for M=2 lets say:
for K=1,M=0:
x_terms(1,1:2)=X(1:2)abs(X(1:2)).^K-1 . Here X(1) is the current input and X(2) should be the previous input according to the mattrix formation in DPD.pdf. However, looking at DPD_analysis.m X(2) corresponds to up(2) which is the next input to the mattrix. Any explanation on this would be much appreciated

TING SHAO YEH

### TING SHAO YEH (view profile)

HI Bilal Khan
I'm using this DPD document for real PA,but the ACPR of (before DPD) is better than (After DPD).maybe we could have a talk and fix this problem?
my mail ID: robert19931026@gmail.com
thx

Bilal Khan

### Bilal Khan (view profile)

Hi

I hope someone still visit here and help me out with a problem. I am using polynomial model for estimating DPD coefficients based on LS solution. The problem is my memoryless model works better than memory polynomial model for DPD (in terms of ACPR reduction not EVM). I dont understnad this. WIth memory polynomial model i get a little extra power in one adjacent channel and the spectrum is unsymmetrical i couldnt understand it why? I have tried the functions provided in this file aswell but the same problem i am getting.
Does anyone ever encounter such problme or if someone can help me out that would be great. Btw i am doing measurement with real PA not simulink model. I am using ARB, PSG UXA in my loop.

yawen

### yawen (view profile)

very useful for beginners.thks!

Zhe Wu

nirbhay kumar

### nirbhay kumar (view profile)

can any one help me for creating VHLD code for this model or any one testing this model in any FPGA and please share that code
thank u
my mail id - nirbhaykumar@bel.co.in

Claire

John Reyland

### John Reyland (view profile)

Very helpful for someone trying to learn this predistortion game

bin jia

David Chang

### David Chang (view profile)

the simulated am/am curve lies in the linear range of the Seleh model; and on increasing the slide gain to about 0.8 (for RPEM) the feedback fails...

Raymond

### Raymond (view profile)

looks like a function called "fit_memory_poly_model" got missing.

JUN