The present invention provides a methodology to improve digital pre-distortion for correcting amplifier distortion.
The weight estimator 12 models the amplifier distortion as a least-squares estimation problem with multi-channels and equal weight lengths. The weight estimator 12 collects digital samples at both the input and output of the amplifier and estimates the parameters of the amplifier non-linear distortion model. With these modeled parameters, the weight estimator 12′ generates weights that the pre-distorter 10 uses to pre-distort the input signal to counter the amplifier distortions.
Operation of the weight estimator 12 will now be described in greater detail. As shown in
The amplifier output signal x(n) is expanded into a column vector of K=5 magnitude-polynomial terms or multi-channels, to model the amplifier nonlinearity distortion:
Note that variables are underscored or bolded to represent a vector or matrix. xH(n) is used to denote the conjugate transpose of vector x(n) and xT(n) is used to denote the transpose of vector x(n). Also, x*(n) is used to denote the complex conjugate of x(n).
The amplifier output signal x(n) is a complex number whereas the magnitude-polynomial multipliers are positive real numbers. This means that these K=5 terms in vector x(n) are the scaled versions of the amplifier output signal x(n).
Here, K=5 is the number of multi-channels (or magnitude-polynomial terms) and L=6 is the total number of delayed versions in each multi-channel. As each of these terms has an associated complex weight (or coefficient) multiplier, the total number of weights is M=KL=30. The cross-polynomial term will be considered below.
These 6 vectors are concatenated into an M×1 vector, as the multi-channel vector u(n) for the least-square estimation model, and a corresponding M×1 weight vector w as shown below:
Notice that output signal vector u(n) can be expressed in two ways, either in terms of magnitude-polynomial vectors x(n−l) or individual elements ui(n).
The estimate of the desired amplifier input signal, at time n, is given as:
The least-squares estimation problem is to find the optimal weights w that minimize the sum of error squares, given N pairs of actual amplifier input signal d(n) and vector u(n), n=1, 2, . . . , N:
The optimal weights solution for the least-squares estimation problem satisfies the following matrix equation:
wLS=R−1·v
where R is the M×M correlation matrix and v is the M×1 cross-correlation vector defined as:
From the definition of the correlation matrix, it can be seen that matrix R(n)=└ri,j(n)┘ is symmetric, i.e., ri,j(n)=r*i,j(n), 1≦i,j≦M. Accordingly, as is well-known only the upper triangular elements need to be computed and then used for the other elements. The total number of elements is 465 (=M·(M+1)/2) out of 900 elements.
Since the vector u(n) consists of 6 delayed versions of vector x(n), so do the correlation matrix and cross-correlation vector. The correlation matrix can be divided into the following 6×6 blocks of correlation values:
Block Ri,j(n) is a 5×5 correlation matrix between vectors x(n−i+1) and x(n−j+1) such as expressed below:
Ri,j(n)=x(n−i+1)·xH(n−j+1), 1≦i,j≦5.
Most of the elements in matrix R(n) are the same as elements in matrix R(n−1), as shown below:
Ri+1,j+1(n)=Ri,j(n−1), 1≦i,j≦5.
This is illustrated graphically in
The new elements in R(n) that are not included in R(n−1) are the top row of blocks and the left most column of blocks. The top row of blocks is:
x(n)·uH(n)=[R1,1(n)R1,2(n)R1,3(n)R1,4(n)R1,5(n)R1,6(n)].
The first block R1,1(n) is a diagonal block with symmetric elements and the remaining blocks are off-diagonal blocks. Hence, only the 140 elements in the first block R1,1(n) need to be computed.
From the symmetry property, only the 21 upper triangular blocks need to be considered. These blocks can be grouped into 2 types, diagonal and off-diagonal blocks, where the blocks in each type have the same structure as set forth in table 1 below:
The symmetry property may be used to compute only 465 elements of the correlation matrix out of 900 elements. Each correlation value is computed using complex-complex multiplication with 4-multiplications and 2-additions. The complexity is summarized in table 2 below:
Also, the delayed version property may be used to reduce the computation complexity where only 140 correlation values are computed. Each correlation value is computed using complex-complex multiplication with 4-multiplications and 2-additions. The complexity is summarized in table 3 below:
The present invention relates to amplifier predistortion.
In one embodiment of the present invention, a weight vector is generated based on a pre-distorted input signal and an output signal of an amplifier using a computation reduction technique. The computation reduction technique decomposes a number of multiplication operations between complex numbers such that a number of multiplications and a number of additions to generate the weight vector is reduced as compared to if the number of multiplication operations between complex numbers was not decomposed. An input signal for input to an amplifier is pre-distorted based on the generated weight vector.
The present invention will become more fully understood from the detailed description given herein below and the accompanying drawings, wherein like elements are represented by like reference numerals, which are given by way of illustration only and thus are not limiting of the present invention and wherein:
The present invention provides methodologies for reducing the computation complexity of the pre-distorting operation discussed in detail above. To better understand the methodologies of the present invention, the operations for complex and scalar multiplications will be reviewed, and then the methodologies of the present invention will be described by examining the correlation matrix and the cross-correlation vector.
Complex and Scalar Multiplications
The basic operation to construct a correlation matrix is repeatedly multiplying two complex numbers and adding the result to accumulators. With the direct approach, each complex-complex multiplication requires 4 multiplications and 2 additions. An example of this is shown below:
(a+ib)·(c+id)=(a·c−b·d)+i(a·c+b·d)
Using this example, the distortion model will be analyzed and the scalar terms in the correlation matrix and cross-correlation vector identified. The general complex-complex multiplications will then be converted to scalar-complex multiplications or scalar-scalar multiplications according to methodologies of the present invention to reduce the computation complexity. The following are some guidelines:
Scalar-scalar multiplication—If both numbers are scalar, scalar-scalar multiplication will be used, since this requires only 1 multiplication.
Table 4 below summarizes the complexity of different multiplications:
Correlation Matrix
Reducing the computation complexity for determining the correlation matrix will be discussed first. The correlation matrix includes two types of blocks: Type 1 or diagonal blocks, and Type 2 or off-diagonal blocks.
Type 1 (Diagonal) Blocks
The correlation matrix has L=6 diagonal blocks. Without loss of generality, handling the first diagonal block R1,1(n) will be described in detail and handling of the other diagonal blocks will be readily understood from this discussion. It will be shown that the K·K=25 elements in diagonal block R1,1(n) are real-valued and can be represented by 9 polynomial terms.
Letting a=|x(n)|, we have:
Diagonal block R1,1(n) is the auto-correlation block of x(n) and includes real valued elements as shown below:
Notice that a2=|x(n)|2=x(n)·x*(n).
Therefore, there are only 9 distinct real values {a2, a3, a4, . . . , a9 and a10} in the block. These polynomial terms can be obtained sequentially. Using these properties the computation complexity may be reduced.
The following is the procedure performed at the weight estimator 12′ of
The computation complexity, excluding the square-root operation, is summarized below in table 5. The baseline given in this and other tables is for the prior art methodology discussed in detail in the Background of the Invention section:
Type 2 (Off-Diagonal) Blocks
Without loss of generality, handling of off-diagonal block R1,2(n) will be described in detail, and the handling of other off-diagonal blocks will be readily apparent from this discussion. Letting a=|x(n)| and b=|x(n−1)|, we have:
The off-diagonal block becomes:
Therefore, the only complex-complex multiplication that is computed is the first element x(n)·x*(n−1) in the block. The rest of the terms may be obtained sequentially using scalar-complex multiplications.
The following is the procedure the weight estimator 12′ performs according to an embodiment of the present invention to compute elements in the off-diagonal block R1,2(n):
The computation complexity is summarized below in table 6 below:
The magnitude b=|x(n−1)| may be computed and stored at the weight estimator 12′ while computing diagonal block R1,1(n−1) at time n−1. Accordingly, there is no need to repeat the square-root operation.
The following tables summarize the reduction in computation complexity for the improved algorithm. If we compute the 465 elements in the upper triangular correlation matrix according to the symmetry property, the complexity reduction is summarized in the following table:
If we compute only the 140 elements in the top block row of the correlation matrix according to the delayed version property, the complexity reduction is summarized in the following table:
In both cases, more than one half of the computation complexity can be reduced.
Cross Correlation Vector
Next, reducing the computation complexity for determining the cross correlation vector will be described.
The cross correlation vector at time n is:
Let al=|x(n−l)|, 0≦l≦5, then each cross correlation vector block d(n)·x(n−l) may be expressed as:
Within this block, complex-complex multiplication is used once to compute d(n)·x(n−l), and the remaining 4 elements are obtained, sequentially, by multiplying the previous element by al, using scalar-complex multiplication. Note that al, 0≦l≦5 may be computed and stored before and does not need to be computed again.
The following is the procedure performed by the weight estimator 12′ according to an example embodiment of the present invention to compute the cross-correlation vector:
Repeating for 0≦l≦5,
The computation complexity is summarized below in table 7:
Improved Method with Cross Terms
Next, cross-polynomial terms will be considered, and it will be shown that the same techniques of the present invention may be used to reduce computation complexity. Cross-polynomial terms account for correlation between polynomial terms from different delay times, and may improve the effectiveness of the distortion modeling.
Consider the products |x(n−m)|2x(n) and |x(n−m)|4x(n), 1≦m≦12, which are the cross product between a current sample and a magnitude-polynomial at a different sample time. Let bm2=|x(n−m)|2 and bm4=|x(n−m)|4. Two cross term vectors y(n) and z(n) may be defined as:
The cross term vectors y(n) and z(n) are appended to the concatenated amplifier output signal vector u(n) as shown below:
Note that with the cross terms, there are M=KL+12+12=54 elements in the input signal vector u(n). This assumes that bm2 and bm4 were computed and stored by the weight estimator 12′ while computing diagonal block R1,1(n−m) at time n−m for m=1, 2, . . . , 12. It is also assumed that a2=|x(n)|2 was already computed and stored for use by the weight estimator 12′.
Correlation Matrix
Reducing the computation complexity for determining the correlation matrix including cross polynomial terms will now be described. The expanded correlation matrix becomes:
It will be appreciated that each block Ri,j(n) for i=1, . . . , 6 and j=1, . . . , 6 is a 5×5 matrix and cross-polynomial terms were not included in the vector u(n) as discussed above. Accordingly, these Type 1 and Type 2 blocks may be computed as discussed above, and only the computation of the blocks in the last two row and last two columns will be described in detail. The last two columns and last two rows have different sizes than the first 36 blocks. For example, diagonal blocks R7,7(n) and R8,8(n) are 12×12 matrices, and off-diagonal blocks R1,7(n) and R1,8(n) are 5×12 matrices.
From the symmetry property, only the upper triangular blocks within the last two columns need to be considered. These 15 blocks can be grouped into 4 further types where the blocks in each type have the same structure as set forth in table 8 below (it will be recalled that block Types 1 and 2 were discussed above):
Type 3 Blocks
Consider block R1,7(n) shown below:
Hence all 60 elements are real-valued.
The following is the procedure performed at the weight estimator 12′ according to an embodiment of the present invention to compute the elements in block R1,7(n):
The computation complexity is summarized below in table 9:
Type 4 Blocks
Consider block R2,7(n) where a1=|x(n−1)| shown below:
Hence, only one complex-complex multiplication is computed for all 60 elements. The following is the procedure performed by the weight estimator 12′ to compute the elements in block R2,7(n):
The computation complexity is summarized below in table 10:
Type 5 Blocks
Consider block R7,7(n) shown below:
All elements in the block are real valued. From the symmetry property, only the 78 (=12·13/2) upper triangle elements need to be computed. For each of these elements, the term bi2·bj2·a2 is computed, which requires 2 scalar-scalar multiplications. The computation complexity is summarized below in table 11:
Type 6 Block
Consider block R7,8 shown below:
All 144 elements in the block are real valued. For each of these elements, the term bi2·bj4·a2 is computed, which requires 2 scalar-scalar multiplications. The computation complexity is summarized below in table 12:
Computation Complexity
The section will summarize the reduction in computation complexity, in the correlation matrix, for the improved methodology with cross terms. There are 1485 (=54*55/2) elements in the upper triangular correlation matrix. The complexity is summarized below in table 13:
Cross Correlation Vector
Next, reducing the computation complexity for determining the cross correlation vector will be described. The cross correlation vector at time n is:
For 0≦l≦5, the computation of each cross correlation vector block d(n)·x(n−l) was discussed in detail above. Accordingly, on the computation of the cross correlation vector blocks with cross term will be described in detail.
First d(n)·y(n) is computed, and then is used to compute d(n)·z(n). To compute d(n)·y(n), a complex-complex multiplication is used once to compute d(n)·x(n). Then, the elements bl2·d(n)·x(n) and bl2·bl2·d(n)·x(n) for 1≦l≦12 are obtained using scalar-complex multiplication.
The following is the sequence performed by the weight estimator 12′ according to an embodiment of the present invention to compute the cross-correlation vector for y(n) and z(n) sections:
The computation complexity is summarized below in table 14:
The present invention provides methodologies to reduce the computation complexity for digital pre-distortion. As demonstrated above, more than half the correlation computation may be reduced.
The invention being thus described, it will be obvious that the same may be varied in many ways. For example, while mentioned as applicable to digital pre-distortion for RF amplifiers, the present invention is also application to pre-distortion for other types of amplifiers. Furthermore, the computation reduction techniques discussed above for the different types of blocks and cross correlation vectors may be used together or may be used independently of each other. In other words, the computation reduction technique for only one type of block may be used. Such variations are not to be regarded as a departure from the invention, and all such modifications are intended to be included within the scope of the invention.
| Number | Name | Date | Kind |
|---|---|---|---|
| 6054894 | Wright et al. | Apr 2000 | A |
| 6240278 | Midya et al. | May 2001 | B1 |
| 6294956 | Ghanadan et al. | Sep 2001 | B1 |
| 7026871 | Saed | Apr 2006 | B2 |
| 7248656 | da Silveira et al. | Jul 2007 | B2 |
| 7286009 | Andersen et al. | Oct 2007 | B2 |
| Number | Date | Country | |
|---|---|---|---|
| 20070296493 A1 | Dec 2007 | US |