Abstract:
A linearizer and method. In a most general embodiment, the inventive linearizer includes a characterizer coupled to an input to and an output from said circuit for generating a set of coefficients and a predistortion engine responsive to said coefficients for predistorting a signal input to said circuit such that said circuit generates a linearized output in response thereto. In a specific application, the circuit is a power amplifier into which a series of pulses are sent during an linearizer initialization mode of operation. In a specific implementation, the characterizer analyzes finite impulse responses of the amplifier in response to the initialization pulses and calculates the coefficients for the feedback compensation filter in response thereto. In the preferred embodiment, the impulse responses are averaged with respect to a threshold to provide combined responses. In the illustrative embodiment, the combined responses are Fast Fourier Transformed, reciprocated and then inverse transformed. The data during normal operation is fed back to the data capture, corrected for distortion in the feedback path from the output of the amplifier, converted to basedband, synchronized and used to provide the coefficients for the predistortion linearization engine. As a result, in the best mode, each of the coefficients used in the predistortion linearization engine can be computed by solving the matrix equation HW=S for W, where W is a vector of the weights, S is a vector of predistortion linearization engine outputs, and H is a matrix of PA return path inputs as taught herein.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the benefit of U.S. Provisional Application Ser. No. 60/616,714, Oct. 7, 2004, the disclosure of which is hereby incorporated by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to electrical and electronic circuits and systems. More specifically, the present invention relates to power amplifiers for communications systems and predistortion linearizers used in connection therewith. 
     2. Description of the Related Art 
     Power amplifiers are used in a variety of communications applications. Power amplifiers not only typically exhibit non-linear distortion but also possess memory effects. While non-linear distortion follows the power amplifier characteristics, the memory effects depend on signal characteristics (e.g., signal bandwidth and also transmit power level.) 
     Conventional techniques use Lookup Table (LUT) based methods to generate inverse transfer functions in both amplitude and phase to correct for non-linearity in the output of power amplifiers. However these techniques do not effectively handle memory effects and thus provide very moderate linearization improvements. 
     More importantly, power amplifiers are generally expensive and consume much power. Multiple carrier applications, such as cellular telephone base stations, are particularly problematic inasmuch as a single amplifier is typically used with each carrier signal. Conventional approaches combine separate power amplifiers to transmit multiple carrier signals. However, this approach is also expensive and power intensive. 
     Further, for maximum efficiency, each power amplifier must be driven close to its saturation point. However, as the power level is increased, intermodulation distortion (IMD) levels increase. Hence, the output power level must be ‘backed-off’ to maintain acceptable ACPR (adjacent channel power ratio) levels. Unfortunately, the required power back-off to meet government (e.g. FCC) specified IMD levels limits the efficiency of the power amplifier to relatively low levels and does not offer a solution that is sufficiently cost effective for certain current requirements. 
     An alternative approach is to use a predistortion linearizer. This technique allows power amplifiers to operate with better power efficiency, while at the same time maintaining acceptable IMD levels. However, conventional digital predistortion linearizers have, been shown to reduce the IMD levels by only about 10-13 dB for signal bandwidths in excess of 20 MHz. 
     Hence, a need remains in the art for an efficient, low cost system or method for amplifying multiple carrier signals while maintaining low intermodulation distortion levels. 
     SUMMARY OF THE INVENTION 
     The need in the art is addressed by the linearizer and method of the present invention. In a most general embodiment, the inventive linearizer includes a characterizer coupled to an input to and an output from said circuit for generating a set of coefficients and a predistortion engine responsive to said coefficients for predistorting a signal input to said circuit such that said circuit generates a linearized output in response thereto. 
     As a result, in the best mode, the weights used in the predistortion linearization engine can be computed by solving a matrix equation HW=S for W, where W is a vector of the weights, S is a vector of predistortion linearization engine outputs, and H is a matrix of PA return path inputs. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an illustrative implementation of a transmitter implemented in accordance with the present teachings. 
         FIG. 2  is a block diagram of an illustrative implementation of a characterizer in accordance with the teachings of the present invention. 
         FIG. 3  is a series of timing diagrams illustrative of the process of calibration of the receive feedback path in accordance with an illustrative embodiment of the present teachings. 
         FIG. 4  is a block diagram of an illustrative implementation of the IF to baseband converter. 
         FIG. 5  is a block diagram of an illustrative implementation of a DPD coefficients estimator in accordance with the present teachings. 
         FIG. 6  is a simplified block diagram of a DPD engine implemented in accordance with an illustrative embodiment of the present teachings. 
     
    
    
     DESCRIPTION OF THE INVENTION 
     Illustrative embodiments and exemplary applications will now be described with reference to the accompanying drawings to disclose the advantageous teachings of the present invention. 
     While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility. 
       FIG. 1  is a block diagram of an illustrative implementation of a transmitter implemented in accordance with the present teachings. The inventive transmitter  10  includes a conventional transmitter  12  with a digital upconverter  14 , a DAC  16 , an analog upconverter (UC)  18  and a power amplifier  20 . The digital upconverter  14  converts a baseband input signal y(t) to intermediate frequency (IF) and the analog upconverter  18  converts the analog IF signal to radio frequency (RF) for amplification by the power amplifier  20 . The output z(t) of the power amplifier  20  is fed to a conventional RF antenna  22  for transmission. 
     In accordance with the present teachings, linearization of the performance of the transmitter  12  is effected by a DPD engine  100 . The DPD engine performs an inverse filtering of the transmitter  12  using coefficients supplied by a characterizer  30  in a feedback path thereof. As discussed more fully below, the characterizer computes the coefficients of a feedback compensation filter (i.e., using the receive path equalization process) and solves the normal equation during normal operation to compute the weights of the DPD block that are used to provide predistortion. Those skilled in the art will appreciate that the digital processing may be implemented in software using a general purpose microprocessor or other suitable arrangement. 
     In operation, a complex in-phase and quadrature (I-Q) input signal x(t) is sent to the DPD engine  100  and passes through a set of filters. As discussed more fully below, these filters are non-linear filters with programmable complex weights provided by a characterizer  30 . The output of the DPD engine  100  is a predistorted I-Q sample stream. 
     The transmitter  12  converts the I-Q samples of the DPD output into an RF signal at the desired frequency and power level for transmission. The outputs from the DPD engine  100  are processed by the digital upconverter  14 , which converts the I-Q signal into IF digital samples. The IF digital samples are then converted to an analog IF signal by the DAC  16  and are then frequency shifted by the RF upconverter  18  to produce an RF signal. This signal is then amplified using the power amplifier (A). The linearized output of the transmitter  12  at the desired power level is then sent to the transmit antenna  22 . 
     In accordance with the present teachings, this linearized output is achieved by simultaneously capturing data after the DPD block and at the feedback input in the characterizer  30 . The data is correlated/shifted, scaled, combined with noise, and then solved for the predistortion coefficients which are averaged with the previously computed-weights and then applied on the transmit data in the DPD block. This data capture and weight computation is then repeated continuously. Sampling of the PA output is effected by coupling off a signal from the PA output with attenuation of the signal on the line from the PA output to a feedback circuit  24  that includes a down converter  26  and an analog to digital converter (ADC)  28 . The down converter  26  converts the signal to intermediate frequency (IF). The ADC  28  converts the IF signal to digital form and feeds the digital samples to the characterizer  30 . 
     The characterizer  30  computes the coefficients of the inverse filter for the transmitter  12  such that the PA output signal z(t) is linearized with respect to the input signal x(t). As discussed more fully below, the samples from the receive feedback path into the characterizer first pass-through a feedback compensation filter whose coefficients were computed by the characterizer to remove the distortion generated in the feedback section, after which the DPD output and the compensated signal are then time aligned and scaled (scaling is not shown in the invention but is a crucial step although a trivial one since the scaling is fixed). Then a DPD coefficient estimator solves a set of normal equations producing weights. Finally these weights are averaged to produce the coefficients for the DPD engine. The more detailed description of these blocks follows below. 
     From equation 4 of  A Robust Digital Baseband Predistorter Constructed Using Memory Polynomials , by Lei Ding, G. Tong Zhou, Zhengriang Ma, Dennis R. Morgan, J. Stevenson Kenney, Jaehyeong Kim, Charles R. Giardina. C. Manuscript submitted to IEEE Trans. On Communication, Mar. 16, 2002, the PA can be modeled as 
                     y   ⁡     (   n   )       =       ∑     k   =   1     K     ⁢       ∑     q   =   0     Q     ⁢       a   kq     ⁢            x   ⁡     (     n   -   q     )              k   -   1       ⁢     x   ⁡     (     n   -   q     )                     [   1   ]               
where x is the input to the PA, a kq =c kq e jφkq . Similarly, if we want to predistort the signal, we implement a structure equivalent to the PA model,
 
                     y   ⁡     (   n   )       =       ∑     k   =   1     K     ⁢       ∑     q   =   0     Q     ⁢       w   kq     ⁢            x   ⁡     (     n   -   q     )              k   -   1       ⁢     x   ⁡     (     n   -   q     )                     [   2   ]               
where w kq =a kq e jφkq , and x(t) and y(t) are DPD input and output respectively. A practitioner may use only the odd k terms in the first summation since the even terms correspond to out-of-band harmonics which are not of interest in the illustrative application. However, performance can be enhanced by using these terms. Equation 2 can be realized with a structure based on the following manipulation thereof:
 
                           y   ⁡     (   n   )       =       ⁢       ∑     q   =   0     Q     ⁢       ∑     k   =   1     K     ⁢       w   kq     ⁢            x   ⁡     (     n   -   q     )              k   -   1       ⁢     x   ⁡     (     n   -   q     )                         =       ⁢       ∑     q   =   0     Q     ⁢       (       ∑     k   =   1     K     ⁢       w   kq     ⁢            x   ⁡     (     n   -   q     )              k   -   1           )     ⁢     x   ⁡     (     n   -   q     )                         [   3   ]               
The inner summation in parenthesis can be viewed as a filter for a fixed ‘k’. This feature is exploited in the hardware implementation.
 
     The processing sequence of the data input to the DPD is as follows: 
     Select the parameters K (K is odd) and Q for the DPD engine. 
     1. Compute the signal amplitude |x(n)|, and subsequently compute the powers |x(n)| 2 , |x(n)| 3 , |x(n)| 4 , . . . , |x(n)| K−1 . 
     2. The signals |x(n)| k , k=, 2, 3, . . . , K−1 are sent to a tapped delay line to generate |x(n−q)| k , k=1, 2, 3, . . . , K−1, q=0, 1, . . . , Q. 
     3. The signals |x(n−q)| k  are multiplied with the coefficients w kq  and the results are summed to produce the combined weights: 
     
       
         
           
             
               
                 
                   
                     ∑ 
                     
                       k 
                       = 
                       1 
                     
                     K 
                   
                   ⁢ 
                   
                     
                       w 
                       kq 
                     
                     ⁢ 
                     
                       
                          
                         
                           x 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               - 
                               q 
                             
                             ) 
                           
                         
                          
                       
                       
                         k 
                         - 
                         1 
                       
                     
                   
                 
               
               
                 
                   [ 
                   4 
                   ] 
                 
               
             
           
         
       
     
     4. The combined weights are then used as coefficients for filtering the signal x(t) to produce the signal: 
     
       
         
           
             
               
                 
                   
                     y 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         q 
                         = 
                         0 
                       
                       Q 
                     
                     ⁢ 
                     
                       
                         ( 
                         
                           
                             ∑ 
                             
                               k 
                               = 
                               1 
                             
                             K 
                           
                           ⁢ 
                           
                             
                               w 
                               kq 
                             
                             ⁢ 
                             
                               
                                  
                                 
                                   x 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       n 
                                       - 
                                       q 
                                     
                                     ) 
                                   
                                 
                                  
                               
                               
                                 k 
                                 - 
                                 1 
                               
                             
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         x 
                         ⁡ 
                         
                           ( 
                           
                             n 
                             - 
                             q 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   [ 
                   5 
                   ] 
                 
               
             
           
         
       
     
     The coefficients, w kq , used in the data path implementation of the DPD engine are generated by the characterizer  30  as discussed more fuilly below and illustrated in  FIG. 2 . 
       FIG. 2  is a block diagram of an illustrative implementation of a characterizer  30  in accordance with the teachings of the present invention. The transmit data and the PA feedback data are stored in random access memory (RAM)  32  and  34  respectively for signal processing in batch mode. While the transmit data phase is known, the PA feedback data is an IF signal and its phase is dependent on the time interval during which the data is collected. Thus it is necessary to capture the data at the time of known phase in relation to the phase of the transmit data phase at the DPD output so that the computed DPD coefficients can be averaged to increase accuracy. 
       FIG. 3  is a series of timing diagrams illustrative of the process of initialization and compensation filter coefficient calculation in accordance with an illustrative embodiment of the present teachings. As illustrated in  FIG. 3   a , during the initialization process a stream of impulses are transmitted using a signal generator or DAC at the input to the feedback path just after the coupling means. 
     As illustrated in  FIG. 3   b , samples output by the ADC  28  are collected and samples surrounding the peaks that exceed a threshold are stored. These samples are represented as: 
           Peak                             1   st     ⁢   pulse                 2   nd     ⁢   pulse             …           …               M   th     ⁢   pulse           ⁡     [           r   11         …         r     1   ⁢   k           …         r     M   ⁢           ⁢   1                 r   21         …         r     2   ⁢   k           …         r     M   ⁢           ⁢   2               …       …       …       …       …           …       …       …       …       …             r     M   ⁢           ⁢   1           …         r   Mk         …         r   MN           ]             [   6   ]               
The impulse responses are averaged to improve the signal-to-noise ratio to produce the mean impulse response as:
 
     
       
         
           
             
               
                 
                   Peak 
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       c 
                       ⁡ 
                       
                         ( 
                         t 
                         ) 
                       
                     
                     = 
                     
                       [ 
                       
                         
                           
                             
                               c 
                               1 
                             
                           
                           
                             … 
                           
                           
                             
                               c 
                               k 
                             
                           
                           
                             … 
                           
                           
                             
                               c 
                               N 
                             
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   [ 
                   7 
                   ] 
                 
               
             
           
         
       
     
     As illustrated in  FIG. 3   c , a processor (not shown) in the characterizer  30  then computes the Fast Fourier Transform (FFT) of this impulse response to produce the spectral response of RF down converter  26  and the ADC  28 . Hence, the processor and associated software implement a PA feedback inverse filter estimator  36 . Note that zeros are padded to produce the desired number of samples that the PA Feedback correction filter will use.
 
 C ( f )= FFT ( c ( t ))= FFT ([ c   1   c   2   c   3    . . . c   N 0 0 0 . . . 0])  [8]
 
The spectral response of the PA Feedback path filter is then computed as follows:
 
 D ( f )=1/ C ( f )  [9]
 
and the inverse FFT is used to determine the coefficients for the PA Feedback compensation filter d(t):
 
 d ( t )= IFFT ( D ( f ))  [10]
 
It is noted that this process is only performed only during system initialization, or per request.
 
     The feedback compensation filter coefficients output by the estimator  36  are input to a feedback correction filter  38 . The feedback correction filter  38  is a finite impulse response filter with N taps. The coefficients of this filter are extracted as set forth above. This filter removes any distortion caused by the RF down converter  26  and ADC  28 . 
     The output of the PA feedback correction filter  38  is an IF signal and it is necessary to convert it into a baseband signal in I-Q form for subsequent signal processing. 
       FIG. 4  is a block diagram of an illustrative implementation of the IF to baseband converter  40 . The output of the feedback correction filter  40  is first multiplied by cos(2πf IF n/f s ) and sin(2πf IF n/f s ) via multipliers  44  and  46  respectively. These outputs are fed through low-pass filters  48  and  50  to extract a baseband signal centered at DC. Since the ADC  28  ( FIG. 1 ) may have an output sample rate different than the sample rate in the DPD engine  100 , assume that the ratio between the DPD rate and the ADC sample rate is P/Q. Then the outputs of the low pass filters are up-sampled by a factor of P (by up-sampling circuits (US)  52  and  54 ) and filtered by filters  55  and  57 . Following a time shift via shifters  56  and  58 , these signals are then filtered and down-sampled (DS) by a factor of Q by down-sampling circuits  60  and  62 . The output signals are baseband I-Q signals having the same sampling rate as the DPD engine. 
     The shifters  56  and  58  placed between the up-samplers  52 ,  54  and down-samplers  60 ,  62  refine the time t 2  during the time synchronization. After the synchronization, this time shift t 2  is kept constant. 
     As mentioned above, the time synchronization is required to align the DPD output signal and the output of the PA Feedback Correction Filter. The time offset error is deterministic and is due to the latency delay in the transmit and receive paths. After synchronization, the time shift will maintain a constant value since the time drift is insignificant. 
     The correlation process to align the signal is as follows: 
     Coarse Correlation 
     a—First, note that there are multiple possible values of n2 in  FIG. 4  that will give different results for r. Since r is a function of n2, we will so indicate only during the correlation discussion by writing the output as r(n,n2). After finding the optimal value for n2, we apply it as in  FIG. 4  and drop the n2 from the r notation. We compute the correlation between input y(n) and output r(n,n2) signals over +/− L sample shift with n2=0 as follows: 
     
       
         
           
             
               
                 
                   
                     
                       R 
                       ⁡ 
                       
                         ( 
                         l 
                         ) 
                       
                     
                     = 
                     
                        
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                         
                         ⁢ 
                         
                           
                             y 
                             ⁡ 
                             
                               ( 
                               
                                 i 
                                 - 
                                 l 
                               
                               ) 
                             
                           
                           · 
                           
                             
                               r 
                               * 
                             
                             ⁡ 
                             
                               ( 
                               
                                 i 
                                 , 
                                 0 
                               
                               ) 
                             
                           
                         
                       
                        
                     
                   
                   , 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       for 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       l 
                     
                     = 
                     
                       - 
                       L 
                     
                   
                   , 
                   
                     
                       - 
                       L 
                     
                     + 
                     1 
                   
                   , 
                   … 
                   ⁢ 
                   
                       
                   
                   , 
                   0 
                   , 
                   … 
                   ⁢ 
                   
                       
                   
                   , 
                   
                     L 
                     - 
                     1 
                   
                   , 
                   L 
                 
               
               
                 
                   [ 
                   11 
                   ] 
                 
               
             
           
         
       
     
     b—Search for the shift l that yields maximum correlation R(l). n 1 =l max  is the coarse shift; and 
     c—Output the time shift n 1 . 
     Since the correlation R(l) has the sampling rate of f s , the time correlation is accurate to ±1/(2f s ) 
     Fine Correlation 
     a—After the coarse time sync, compute correlation between shifted input y(n−n 1 ) and output r(n,n2) signals over n2            {−2, −1, 0, 1, 2} sample in time shift where n2 functions as shown in  FIG. 4 ;
     
       
         
           
             
               
                 
                   
                     
                       R 
                       ⁡ 
                       
                         ( 
                         g 
                         ) 
                       
                     
                     = 
                     
                        
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                         
                         ⁢ 
                         
                           
                             y 
                             ⁡ 
                             
                               ( 
                               
                                 i 
                                 - 
                                 
                                   n 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   1 
                                 
                               
                               ) 
                             
                           
                           · 
                           
                             
                               r 
                               * 
                             
                             ⁡ 
                             
                               ( 
                               
                                 i 
                                 , 
                                 g 
                               
                               ) 
                             
                           
                         
                       
                        
                     
                   
                   , 
                   
                     
                       for 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       g 
                     
                     = 
                     
                       - 
                       2 
                     
                   
                   , 
                   
                     - 
                     1 
                   
                   , 
                   0 
                   , 
                   1 
                   , 
                   2 
                 
               
               
                 
                   [ 
                   12 
                   ] 
                 
               
             
           
         
       
     
     b—Search for the shift g that yields maximum correlation R(g). n 2 =g max  is the fine shift; 
     d—Output the time shift n 2 ; and 
     e—Since the correlation R(g) has the sampling rate of Qf s , the time correlation is accurate to ±1/(2Qf s ) 
     DPD Coefficients Estimator 
     After the signals s(n) and r(n) are aligned in time by a time shift estimator  42  and time shifters  56 ,  58  and  64 , the DPD weights are estimated by a DPD coefficients estimator  70 . The objective is to solve the DPD equation as defined in [3]: 
                     s   ⁡     (   n   )       =       ∑     q   =   0     Q     ⁢       ∑     k   =   1     K     ⁢       w   kq     ⁢            r   ⁡     (     n   -   q     )              k   -   1       ⁢     r   ⁡     (     n   -   q     )                     [   13   ]               
where s(n) is derived from the DPD output and r(n) is derived from the PA Feedback output.
 
       FIG. 5  is a block diagram of an illustrative implementation of a DPD coefficients estimator in accordance with the present teachings. The inputs S 1  is s(n) and R 1  is r(n) from the above discussion. The process for weight estimation is described below. 
     High Pass Noise Generation: 
     Because both the signal s(n) and r(n) have narrow bandwidths relative to the DPD sampling frequency, the estimation of the weights may exhibit undesirable behavior at high frequencies where little signal content exists. To prevent this from happening, either a properly scaled all-pass or high-pass signal (pre-stored in a RAM  72  or generated using a random noise generator such as a pn linear feedback shift register), is added to both signals s(n) and r(n) at steps  74  and  76 . This added all-pass or high-pass signal ensures bounded, stable weights and also greatly improves weight averaging. 
     The new signals with the added signal are expressed as:
 
 S   2   =S   1   +N   [14]
 
 R   2   =R   1   +N   [15]
 
where S 1  and R 1  are the processed DPD samples and the processed IF to BB converter output, respectively.
 
     Soft Factor: 
     When operating near saturation of the PA, the peak amplitude of the DPD output s(n) will increase as the DPD loop progresses, but the amplitude of the ADC output will be remain saturated due to PA compression. This is always the case for a PA with an input versus output amplitude profile which curves very flat very quickly, i.e. it becomes highly saturated, and the user has selected a low K and small Q which will not provide an accurate solution for W. A perfect PA has a linear transfer function, output=100*input, i.e., a straight line. A real PA will start to tail off from linear as the input power is increased eventually hitting a maximum output power no matter how much the input power is increased (it becomes a flat line at this time), so the transfer function ends up looking like a hockey stick. The soft factor is used to remove the samples s(n) with very strong amplitude from consideration in solving for the weights in equation [5]. Let
 
 S=[s (0) s (1) s (2) s (3) . . .  s ( U− 1)] T   [16]
 
be the processed DPD signal samples, the soft factor vector is expressed as:
 
 G=[g (0) g (1) g (2) g (3) . . .  g ( U− 1)] T   [17]
 
where
 
 g   i =1 for | s   1   |&lt;T   2 
 
=0 otherwise
 
T 2  is the user chosen threshold that controls how large the samples are that will be processed. This soft factor vector will be used to help solve for the weights with high accuracy.
 
     Sampling Shift n 3 : 
     The distribution of the weight W between [0−Q] impacts the accuracy of the DPD engine. In order to maximize the accuracy of the DPD=PA −1  estimation process, it is necessary to place the weight distribution correctly, by shifting the delay n 3  between from 0 to Q and checking for the residue error E as defined in Equation 26. The output of the sample Shift is expressed as:
 
 R   3 ( n )= R   2 ( n−n   3 )  [18]
 
     DPD Weight Estimator 
     The DPD equation can be expressed as: 
     
       
         
           
             
               
                 
                   
                     s 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         q 
                         = 
                         0 
                       
                       Q 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           1 
                         
                         K 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           w 
                           kq 
                         
                         ⁢ 
                         
                           
                              
                             
                               r 
                               ⁡ 
                               
                                 ( 
                                 
                                   n 
                                   - 
                                   q 
                                 
                                 ) 
                               
                             
                              
                           
                           
                             k 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           r 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               - 
                               q 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   [ 
                   19 
                   ] 
                 
               
             
           
         
       
     
     Let U be the number of observation samples. The above equation can be expressed in this form:
 
 S   Ux1   =H   UxT   W   Tx1   [20]
 
where
 
 T= ½( N+ 1)( Q+ 1)  [21]
 
 S=[s (0) g (0)  s (1) g (1)  s (2). g (2) s (3). g (3) . . .  s ( U− 1). g ( U− 1)] T   [22]
 
 H=[h   10   h   30    . . . h   K0   |h   11   h   31    . . . h   K1   | . . . . . . |h   1Q   h   3Q    . . . h   KQ ]  [23]
 
 h   ij   =[s   ij (0). g (0)  s   ij (1). g (1)  s   ij (2). g (1)  s   ij (3). g (3) . . .  s   ij ( U− 1). g ( U− 1)] T   [24]
 
and
 
 W=[w   10   w   30    . . . w   K0   |w   11   w   31    . . . w   K1   | . . . . . . . . . . . . |w   1Q   w   3Q    . . . w   KQ ] T   [25]
 
     Note that the equation S Ux1 =H UxT W Tx1  was modified to take into account the soft factor G. The normal equation [20] can be solved with QR method or Matrix inversion technique to estimate the coefficient set W. 
     The residue error for this estimation is:
 
 E=∥S   Ux1   −H   UxT   ·Ŵ   Tx1 ∥ 2   [26]
 
where Ŵ Tx1  is the computed weight vector.
 
     Coefficient Averaging 
     After solving for the coefficients W(t) using samples taken at discrete times t (t=0, 1, 2, . . . ), the coefficient set can be expressed as: 
                     W   ⁡     (   t   )       =     [             w   10     ⁡     (   t   )               w   11     ⁡     (   t   )           …           w     1   ⁢   Q       ⁡     (   t   )                   w   20     ⁡     (   t   )               w   21     ⁡     (   t   )           …           w     2   ⁢   Q       ⁡     (   t   )               …       …       …       …               w     k   ⁢           ⁢   0       ⁡     (   t   )               w     K   ⁢           ⁢   1       ⁡     (   t   )           …           w   KQ     ⁡     (   t   )             ]             [   27   ]               
The phase of the fundamental component at DC is expressed as:
 
                       θ   1     ⁡     (   t   )       =     angle   ⁢           ⁢     (       ∑     q   =   0     Q     ⁢           ⁢       w     1   ⁢   q       ⁡     (   t   )         )               [   28   ]               
It is necessary to maintain this fundamental component phase as zero to ensure that the DPD block does not provide phase rotation of the desired signal. Thus, the new coefficient set W 2 (t) is expressed as:
 
                       W   2     ⁡     (   t   )       =       [             w   10     ⁡     (   t   )               w   11     ⁡     (   t   )           …           w     1   ⁢   Q       ⁡     (   t   )                   w   20     ⁡     (   t   )               w   21     ⁡     (   t   )           …           w     2   ⁢   Q       ⁡     (   t   )               …       …       …       …               w     k   ⁢           ⁢   0       ⁡     (   t   )               w     K   ⁢           ⁢   1       ⁡     (   t   )           …           w   KQ     ⁡     (   t   )             ]     ⁢     ⅇ     -       jθ   1     ⁡     (   t   )                     [   29   ]               
Now, since all of the weights have the same findamental component phase and are also highly correlated, the coefficients can be filtered to improve the signal to noise ratio. The filter coefficient set is expressed as:
   W   3 ( t+ 1)=(1−α) W   3 ( t )+α W   2 ( t+ 1)  [30] 
where W 2 (t) is the coefficient set per data taken and W 3 (t) is the filtered coefficient set.
 
     As noted above, the transmitter  12  ( FIG. 1 ) can be modeled as a combination of multiple filters, where each filter is associated with an intermodulation order with its own amplitude, phase and delay, linearization may be achieved using multiple filters with weights designed to effect an inverse or reciprocal operation. Such that when the signal output by the DPD engine is processed by the power amplifier  20  of the transmitter  12  the performance of the transmitter  12  is improved with respect to the efficiency thereof As the generation of the DPD coefficients is set forth above, these coefficients are utilized in the manner depicted in  FIG. 6  to implement the DPD engine  100 . 
       FIG. 6  is a simplified block diagram of a DPD engine implemented in accordance with an illustrative embodiment of the present teachings. As shown in  FIG. 6 , the engine  100  includes a complex finite impulse response (FIR) filter  110  with ‘Q’ taps. The amplitude of the input signal ‘x’ is computed at  108  by an absolute value operation. This signal is fed forward to a series of multipliers  160  . . .  180 , each of which multiply the input signal by the output of the previous multiplier. As a result, a number of products are available each of which being a sample of the input signal raised to consecutive powers. Each of these products is fed to one of K tapped delay lines  140 ,  142 , . . .  144 . Each delay line has a Q+1 multipliers e.g.,  146 ,  150 ,  154 , . . .  158  and Q delay elements e.g.,  148 ,  152 , . . .  156 . A plurality (Q) of summers or summation operations  132 ,  134 ,  136  . . .  138  are included. Those skilled in the art will appreciate that the engine  100  depicted in  FIG. 6  utilizes the coefficients generated above in accordance with equations [1-30] above to provide predistorted input signals to effect linearization of the operation of the transmitter  12  as discussed herein. 
     Thus, the present invention has been described herein with reference to a particular embodiment for a particular application. Those having ordinary skill in the art and access to the present teachings will recognize additional modifications applications and embodiments within the scope thereof. 
     It is therefore intended by the appended claims to cover any and all such applications, modifications and embodiments within the scope of the present invention. 
     Accordingly,