Abstract:
An apparatus and method for linearizing a non-linear power amplifier. The method comprises: performing an iteration algorithm by using a desired output signal of the non-linear power amplifier, to calculate an input signal of the non-linear power amplifier, whereby with the calculated input signal of the non-linear power amplifier, the non-linear power amplifier is linearized. The apparatus and method can produce a signal on the output of the non-linear power amplifier with an arbitrarily high quality of performance.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to a communication system, especially to the linearization of a non-linear power amplifier in the communication system. 
       BACKGROUND 
       [0002]    A power amplifier (PA) is a device used in many communication systems which takes as input a low power desired signal and produces as output a higher power version of the desired signal. Although PA&#39;s can be used as linear devices, they are often pushed to operate in their non-linear region because such operation can cause the PA to produce more output power and can also cause the PA to operate more efficiently. However, operating the PA in the nonlinear region comes at a cost in that the output of the PA now contains both a scaled up version of the desired signal, and also a significant amount of distortion. 
         [0003]    Techniques exist whereby the signal coming into the PA is modified so that although the input to the PA differs radically from the desired signal, the output coming out of the PA is, however, a scaled up version of the desired signal. Some examples of techniques which can produce a PA input signal which will produce an arbitrary signal on the PA output are digital predistortion (DPD) or analog predistortion based on a certain assumed PA model. 
         [0004]    These techniques, however, are limited in performance because they assume that the PA&#39;s characteristics can be modeled sufficiently by a specific model. These assumed models are only accurate up to a certain limit and hence the ultimate performance that can be obtained through the use of these techniques is also limited. It would be of benefit if it would be possible to create an arbitrary output on any PA with an arbitrary amount of output signal quality performance. 
         [0005]    Digital predistortion (DPD), as shown in  FIG. 1  (prior art), refers to a method in a communications system where the signal to be transmitted [ 5 ] is passed through a nonlinear predistortion function [ 2 ] before being sent to the nonlinear power amplifier PA [ 1 ]. The general idea is that the nonlinear predistortion function [ 2 ] is chosen such that the cascaded combination of the nonlinear predistortion function [ 2 ] and the nonlinear PA [ 1 ] will produce a system that is linear overall. Thus, the actual PA output [ 6 ], will simply be a scaled up version of the input to the predistortion function [ 2 ]. 
         [0006]    The predistortion function [ 2 ] is often inferred using the indirect learning architecture as depicted in  FIG. 1  (prior art). A coupler [ 4 ], is used to extract a small amount of the power generated by the PA [ 1 ]. This signal is sent through an adaptable inverse PA model [ 3 ], which produces an output that is adapted to match, as closely as possible, the input to the PA [ 1 ]. This adaptation is often implemented as an LMS or an RLS algorithm, although it is possible to use other algorithms. 
         [0007]    Once the difference between the output of the of the inverse PA model [ 3 ] and the PA input is substantially small enough (as measured by the power of the difference signal), the inverse PA model [ 3 ] is simply copied and used directly as the predistortion function [ 2 ]. No model inversion is necessary because the indirect learning architecture described in  FIG. 1  (prior art) directly calculates the inverse model without first calculating the forward model. 
         [0008]    Usually, this process needs to be repeated several times or over several iterations before the output of the PA [ 1 ] is considered to be satisfactory, as measured by common signal transmission quality measurements such as error vector magnitude (EVM) or adjacent channel leakage ration (ACLR). 
         [0009]    A problem with the above structure is the difficulty in choosing the model to be used for the inverse PA model [ 3 ]. Common structures that are used are the Memory Polynomial (MP) or the Generalized Memory Polynomial (GMP), although other models can also be used. Before actually trying a certain model, it is not clear which model will yield the best performance, and it is also not clear which specific parameters for a particular model will yield the best performance. For example, with the Memory Polynomial model, one can specify both the maximum delay of the model and also the maximal nonlinear order of the model. It is not clear, in advance, whether the GMP will perform better than the MP and which settings for maximum delay and nonlinear order in the MP will produce the best results. Furthermore, because the PA [ 1 ] and the inverse PA model [ 3 ] are nonlinear entities, there are no known search algorithms available which will find the optimal models or model settings. 
         [0010]    Typically, the inverse PA model is found by running the system in a lab environment with a real PA. A certain model and certain model settings are chosen and, after the system converges, one observes the final system performance using measurements such as EVM and ACLR. Then, the model and/or the settings are changed and the final system performance is measured again. This procedure may proceed for hundreds of measurements where each measurement may require several minutes of lab time. Finally, the model and settings which resulted in the best performance are chosen and used in the final system. 
         [0011]    It would be beneficial if there was a method of improving the speed at which the optimal inverse PA model could be found. 
         [0012]    An alternate form of DPD based on PA model inversion is shown in  FIG. 2  (prior art). As in the indirect learning architecture, the signal to be transmitted [ 5 ] is passed through a nonlinear predistortion function [ 2 ] before being sent to the nonlinear power amplifier PA [ 1 ]. The general idea is that the nonlinear predistortion function [ 2 ] is chosen such that the cascaded combination of the nonlinear predistortion function [ 2 ] and the nonlinear PA [ 1 ] will produce a system that is linear overall. Thus, the actual PA output [ 6 ], will simply be a scaled up version of the input to the predistortion function [ 2 ]. 
         [0013]    With model inversion DPD, the forward PA model [ 7 ] is known and is an accurate predictor of the PA&#39;s output, given a certain input. This forward PA model may arise from measurements of an actual PA, or it may arise from a mathematical model derived by analyzing the circuit diagram of the PA. The key is that this model must be inverted and then used as the predistortion function. 
         [0014]    One of the major problems with this architecture is that although the PA forward model may in fact be very simple, the inversion of even a very simple nonlinear model is often very difficult and requires a model that is several orders more complex than the PA model itself. 
         [0015]    It would be beneficial if a method existed to linearize the PA without needing to invert the PA model. 
       DISCLOSURE OF INVENTION 
       [0016]    An object of the present invention is to provide a method for linearizing a non-linear power amplifier, which can produce a signal on the output of the non-linear power amplifier with an arbitrarily high quality of performance. The method comprises: performing an iteration algorithm by using a desired output signal of the non-linear power amplifier, to calculate an input signal of the non-linear power amplifier, whereby with the calculated input signal of the non-linear power amplifier, the non-linear power amplifier is linearized. 
         [0017]    In accordance with a certain embodiment of the invention, the iteration algorithm is given by: 
         [0000]    
       
         
           
             
               
                 pa_in 
                 
                   n 
                   + 
                   1 
                 
               
               = 
               
                 
                   pa_in 
                   n 
                 
                 - 
                 
                   alpha 
                   × 
                   
                     ( 
                     
                       
                         
                           pa_out 
                           n 
                         
                         - 
                         
                           pa_out 
                            
                           _desired 
                         
                       
                       
                         G 
                         n 
                       
                     
                     ) 
                   
                 
               
             
             , 
           
         
       
     
         [0000]    wherein pa_out_desired is the desired output signal of the non-linear power amplifier, pa_in n  is the calculated input signal of the non-linear power amplifier for iteration n, pa_out n  is a time aligned output signal of the non-linear power amplifier for iteration n, G n  is a gain of the non-linear power amplifier for iteration n which can be calculated by pa_in n  and pa_out n , and alpha is in a range from 0 to 1, and wherein pa_in 1  is the desired output signal of the non-linear power amplifier divided by an estimated gain of the non-linear power amplifier. 
         [0018]    In accordance with a further embodiment of the invention, the estimated gain of the non-linear power amplifier is specified by a manufacturer of the non-linear power amplifier. 
         [0019]    In accordance with a further embodiment of the invention, the estimated gain of the non-linear power amplifier is obtained by measuring the non-linear power amplifier when a low power signal is input into the non-linear power amplifier. 
         [0020]    In accordance with a further embodiment of the invention, the method further comprises: performing a simulation algorithm by using the calculated input signal of the non-linear power amplifier and a corresponding time aligned output signal of the non-linear power amplifier, to simulate an inverse model of the non-linear power amplifier, whereby the power amplifier is linearized by using the simulated inverse model of the non-linear power amplifier. 
         [0021]    In accordance with a further embodiment of the invention, the iteration algorithm is given by: 
         [0000]    
       
         
           
             
               
                 pa_mdl 
                  
                 _in 
                  
                 
                   _corr 
                   
                     n 
                     , 
                     i 
                   
                 
               
               = 
               
                 
                   pa_mdl 
                    
                   
                     _in 
                     
                       n 
                       , 
                       i 
                     
                   
                 
                 - 
                 
                   alpha 
                   × 
                   
                     ( 
                     
                       
                         
                           pa_out 
                           
                             n 
                             , 
                             i 
                           
                         
                         - 
                         
                           pa_out 
                            
                           _desired 
                         
                       
                       
                         G 
                         
                           n 
                           , 
                           i 
                         
                       
                     
                     ) 
                   
                 
               
             
             , 
           
         
       
     
         [0000]    wherein S n  represents segment n and is composed of samples n*B−M to (n+1)*B−1 of the desired output signal of the non-linear power amplifier, pa_mdl_in n,i  is an input signal of a forward model of the non-linear power amplifier for segment n and iteration i, pa_mdl_out n,i  is an output signal of the forward model of the non-linear power amplifier for segment n and iteration i, G n,i  is an gain of the forward model of the non-linear power amplifier for segment n and iteration i which can be calculated by pa_mdl_in n,i  and pa_mdl_out n,i , alpha is in a range from 0 to 1, and pa_mdl_in_corr n,i  is an input correction signal for segment n and iteration i, wherein pa_mdl_in n,1  is S n  divided by an estimated gain of the forward model, pa_mdl_in n,i+1  is obtained by concatenating samples B to B+M−1 of pa_mdl_in n−1,end  and samples M to B+M−1 of pa_mdl_in_corr n,i , pa_mdl_in n−1,end  is an input signal of a forward model of the non-linear power amplifier for segment n−1 of a final iteration, and pa_mdl_in 0,end  is 0, whereby the input signal of the non-linear power amplifier is obtained by concatenating samples M to B+M−1 of the input signals of the forward model of the non-linear power amplifier of the last iteration for all segments, wherein the forward model of the non-linear power amplifier is a zero delay and memory limited forward model, and an output of the forward model is related to a current input sample and previous M−1 samples of the forward model. 
         [0022]    Another object of the present invention is to provide an apparatus for linearizing a non-linear power amplifier, which can produce a signal on the output of the non-linear power amplifier with an arbitrarily high quality of performance. The apparatus comprises: a device for performing an iteration algorithm by using a desired output signal of the non-linear power amplifier, to calculate an input signal of the non-linear power amplifier, whereby with the calculated input signal of the non-linear power amplifier, the non-linear power amplifier is linearized. 
         [0023]    In accordance with a certain embodiment of the invention, the iteration algorithm is given by: 
         [0000]    
       
         
           
             
               
                 pa_in 
                 
                   n 
                   + 
                   1 
                 
               
               = 
               
                 
                   pa_in 
                   n 
                 
                 - 
                 
                   alpha 
                   × 
                   
                     ( 
                     
                       
                         
                           pa_out 
                           n 
                         
                         - 
                         
                           pa_out 
                            
                           _desired 
                         
                       
                       
                         G 
                         n 
                       
                     
                     ) 
                   
                 
               
             
             , 
           
         
       
     
         [0000]    wherein pa_out_desired is the desired output signal of the non-linear power amplifier, pa_in n  is the calculated input signal of the non-linear power amplifier for iteration n, pa_out n  is a time aligned output signal of the non-linear power amplifier for iteration n, G n  is a gain of the non-linear power amplifier for iteration n which can be calculated by pa_in n  and pa_out n , and alpha is in a range from 0 to 1; wherein pa_in 1  is the desired output signal of the non-linear power amplifier divided by an estimated gain of the non-linear power amplifier. 
         [0024]    In accordance with a further embodiment of the invention, the estimated gain of the non-linear power amplifier is specified by a manufacturer of the non-linear power amplifier. 
         [0025]    In accordance with a further embodiment of the invention, the estimated gain of the non-linear power amplifier is obtained by measuring the non-linear power amplifier when a low power signal is input into the non-linear power amplifier. 
         [0026]    In accordance with a further embodiment of the invention, the apparatus further comprises: an electronic signal generator for repeatedly generating a signal which is the calculated input signal of the non-linear power amplifier; a signal capturing device for capturing an output signal of the non-linear power amplifier, such that at least one period of the signal being generated by the electronic signal generator is captured; and a filter for filtering out frequencies that can not be generated by the electronic signal generator and can not be captured by the signal capturing device from a signal of subtracting pa_out_desired from pa_out n . 
         [0027]    In accordance with a further embodiment of the invention, bandwidths of the electronic signal generator and the signal capturing device are related to the non-linear power amplifier. 
         [0028]    In accordance with a further embodiment of the invention, the signal capturing device is configured to capture the output signal of the non-linear power amplifier for iteration n more than one times, whereby an averaged result of more than one captures is taken as pa_out n . 
         [0029]    In accordance with a further embodiment of the invention, the apparatus further comprises: an inverse model of the signal capturing device for post-processing the output signal of the non-linear power amplifier captured by the signal capturing device, whereby a linearity of the signal capturing device can be improved. 
         [0030]    In accordance with a further embodiment of the invention, the apparatus further comprises: a simulator for performing a simulation algorithm by using the calculated input signal of the non-linear power amplifier and a corresponding time aligned output signal of the non-linear power amplifier, to simulate an inverse model of the non-linear power amplifier, whereby the power amplifier is linearized by using the simulated inverse model of the non-linear power amplifier. 
         [0031]    In accordance with a further embodiment of the invention, the iteration algorithm is given by: 
         [0000]    
       
         
           
             
               
                 pa_mdl 
                  
                 _in 
                  
                 
                   _corr 
                   
                     n 
                     , 
                     i 
                   
                 
               
               = 
               
                 
                   pa_mdl 
                    
                   
                     _in 
                     
                       n 
                       , 
                       i 
                     
                   
                 
                 - 
                 
                   alpha 
                   × 
                   
                     ( 
                     
                       
                         
                           pa_out 
                           
                             n 
                             , 
                             i 
                           
                         
                         - 
                         
                           pa_out 
                            
                           _desired 
                         
                       
                       
                         G 
                         
                           n 
                           , 
                           i 
                         
                       
                     
                     ) 
                   
                 
               
             
             , 
           
         
       
     
         [0000]    wherein S n  represents segment n and is composed of samples n*B−M to (n+1)*B−1 of the desired output signal of the non-linear power amplifier, pa_mdl_in n,i  is an input signal of a forward model of the non-linear power amplifier for segment n and iteration i, pa_mdl_out n,i  is an output signal of the forward model of the non-linear power amplifier for segment n and iteration i, G n,i  is an gain of the forward model of the non-linear power amplifier for segment n and iteration i which can be calculated by pa_mdl_in n,i  and pa_mdl_out n,i , alpha is in a range from 0 to 1, and pa_mdl_in_corr n,i  is an input correction signal for segment n and iteration i, wherein pa_mdl_in n,1  is S n  divided by an estimated gain of the forward model, pa_mdl_in n,i+1  is obtained by concatenating samples B to B+M−1 of pa_mdl_in n−1,end  and samples M to B+M−1 of pa_mdl_in_corr n,i , pa_mdl_in n−1,end  is an input signal of a forward model of the non-linear power amplifier for segment n−1 of a final iteration, and pa_mdl_in 0,end  is 0, whereby the input signal of the non-linear power amplifier is obtained by concatenating samples M to B+M−1 of the input signals of the forward model of the non-linear power amplifier of the last iteration for all segments, wherein the forward model of the non-linear power amplifier is a zero delay and memory limited forward model, and an output of the forward model is related to a current input sample and previous M−1 samples of the forward model. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0032]      FIG. 1  shows an indirect learning DPD; 
           [0033]      FIG. 2  shows a PA model inversion DPD; 
           [0034]      FIG. 3  shows a method of finding an ideal predistortion signal; 
           [0035]      FIG. 4  shows an iterative DPD; 
           [0036]      FIG. 5  shows system identification based on perfect captured data; and 
           [0037]      FIG. 6  shows segmentation of pa_out_desired. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0038]    One embodiment of the invention is implemented by placing the power amplifier (PA) [ 1 ] in a measurement setup as shown in  FIG. 3 . The signal going to the power amplifier [ 1 ] comes from a device which can generate an arbitrary test signal which repeats cyclically, such as an electronic signal generator (ESG) [ 11 ]. Because the PA is nonlinear, a large input bandwidth is required to produce a certain clean output bandwidth. The bandwidth of the ESG [ 11 ] typically must be 5-10 times the bandwidth of the desired operational bandwidth of the PA [ 1 ]. For example, if 5 MHz of clean signal are desired on the output, we may need to supply 25-50 MHz of bandwidth on the input. But it should be noted that different PA&#39;s will require a different amount of bandwidth from the ESG. The output of the PA [ 1 ] is captured in a device capable of capturing at least one full period of the signal being generated by the ESG [ 11 ], such as a programmable spectrum analyzer (PSA) [ 12 ]. The bandwidth of the PSA [ 12 ] must also be 5-10 times the bandwidth of the desired operational bandwidth of the PA [ 1 ]. The bandwidth of the PSA also depends on the particular PA. 
         [0039]    In an actual lab environment, the ESG and the PSA may have different sampling rates. However any of a number of well known techniques can be used to effectively change the sampling rate of the data captured by the PSA to be equal to the sampling rate of the data sent into the ESG. Therefore, the following text assumes that the captured signal, coming from the PSA, has been resampled to the sampling rate of the ESG. 
         [0040]    The general concept is that the invention will iterate several times, and with each iteration, the output of the PA [ 1 ] will look more and more like the desired PA output. In the first iteration, the signal going into the PA [ 1 ], pa_in 1  (with length N samples), from the ESG is simply the desired PA output signal scaled down by a rough estimate of what the gain of the PA [ 1 ] will be (G e ). It is not necessary for G e  to be known very accurately and a rough estimate will do for the first iteration. For example the gain of the PA may be specified by the manufacturer and this value may be used as G e . Another possibility is that a low power signal may be sent into the PA from the ESG and the power of the signal coming out of the PA may be measured by the PSA. In this case, a rough estimate for G e  can be obtained as the square root of the ratio of the power of the signal from the ESG and the power of the signal in the PSA. 
         [0000]    
       
         
           
             
               
                 
                   
                     pa_in 
                     1 
                   
                   = 
                   
                     
                       pa_out 
                        
                       _desired 
                     
                     
                       G 
                       e 
                     
                   
                 
               
               
                 
                   Eq 
                    
                   
                       
                   
                    
                   1 
                 
               
             
           
         
       
     
         [0041]    The repeating signal pa_in 1  is programmed into the ESG [ 11 ], and the PSA [ 12 ] then captures one complete period of the output of the PA [ 1 ]. Because of delays inherent in the system, the captured signal will not be perfectly time aligned with pa_in 1 . Using cross-correlations, the captured signal can be shifted in time so that the delay between pa_in 1  and the time shifted captured signal will be 0. After this time alignment, the time shifted captured signal for iteration n will be called pa_out n . This time alignment is performed for each iteration. 
         [0042]    Because a PA is only mildly nonlinear, the gain of the PA for this, or any subsequent iteration, can be estimated as: 
         [0000]    
       
         
           
             
               
                 
                   
                     G 
                     n 
                   
                   = 
                   
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           0 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                        
                       
                         
                           pa_in 
                           n 
                         
                          
                         
                           ( 
                           i 
                           ) 
                         
                         × 
                         
                           pa_out 
                           n 
                         
                          
                         
                           ( 
                           i 
                           ) 
                         
                       
                     
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           0 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                        
                       
                         
                           pa_in 
                           n 
                         
                          
                         
                           ( 
                           i 
                           ) 
                         
                         × 
                         
                           pa_in 
                           n 
                         
                          
                         
                           ( 
                           i 
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   Eq 
                    
                   
                       
                   
                    
                   2 
                 
               
             
           
         
       
     
         [0043]    Throughout this invention, complete sequences of signals will be represented without an index. Specific samples of a signal will be represented with an index. For example, pa_in n  represents the entire array storing all the samples used by the ESG for iteration n. pa_in n (i) represents the i&#39;th element of the array of samples pa_in n . Because pa_in n  is of length N (as stated earlier), the range of value that i can take is 0 through N−1. 
         [0044]    Again, because the PA is only mildly nonlinear, the output of the PA can be considered to be composed of two components. One component is the desired PA output, and the other component is a difference signal: 
         [0000]      pa_out n =pa_out_desired+diff′ n   Eq 3
 
         [0000]      diff n   =f   B (diff′ n )= f   B (pa_out n −pa_out_desired)  Eq 4
 
         [0045]    Where f B (x) is the result of passing signal x through a zero-delay filter whose effect is to remove any frequencies that cannot be generated by the ESG and any frequencies that cannot be captured by the PSA. For example, this filter can be implemented by first taking an FFT of x, zeroing the frequencies that cannot be generated by the ESG, zeroing the frequencies that cannot be captured by the PSA, and finally performing an IFFT operation. 
         [0046]    The idea is that during the next iteration, the input to the PA will be adjusted so as to cancel out the diff n  signal that was measured during the current iteration. Although the diff n  signal may be cancelled out, new distortion products will be introduced which will be cancelled out in future iterations of the algorithm. However, the new distortion products will be at a lower power level and hence, as the algorithm iterates the difference between the actual PA output and the desired PA output will consistently decrease. 
         [0047]    Specifically, the input for iteration n+1 is calculated as: 
         [0000]    
       
         
           
             
               
                 
                   
                     pa_in 
                     
                       n 
                       + 
                       1 
                     
                   
                   = 
                   
                     
                       pa_in 
                       n 
                     
                     - 
                     
                       alpha 
                       × 
                       
                         
                           diff 
                           n 
                         
                         
                           G 
                           n 
                         
                       
                     
                   
                 
               
               
                 
                   Eq 
                    
                   
                       
                   
                    
                   5 
                 
               
             
           
         
       
     
         [0048]    Wherein, alpha takes on a value between 0.0 and 1.0. The closer alpha is to 1.0, the more quickly the algorithm will converge on a solution, but the more unstable the algorithm may be. Typically, values of alpha between 0.5 and 0.8 offer a good balance between convergence speed and stability. These values are determined experimentally and would vary between different PA&#39;s. 
         [0049]    The above procedure is demonstrated graphically in  FIG. 4 . The PA output after the first iteration is composed of the desired PA output [ 8 ], and a difference signal [ 9 ] indicated with a right-diagonally shaded box. The input used for the second iteration is composed of the original input to the PA and a signal designed to compensate for the difference signal measured in the first iteration. This compensation component is indicated in the figure with a left-diagonally shaded box [ 10 ]. As can be seen in the figure, on the output of the second iteration, the original difference signal [ 9 ] is gone, but a new, smaller difference signal has appeared. This new difference signal is removed with the next iteration which in turn introduces a new, even smaller, difference signal. 
         [0050]    Although  FIG. 4  only shows 4 iterations of this algorithm, this iterative procedure can continue and the key issue is that the performance of this algorithm is only limited by the noise performance and nonlinearity of the PSA. For example, if the PSA introduces noise into the captured data, there is no way that a signal can be placed inside the ESG to compensate for the noise. Thus, we are limited in performance by the noise and nonlinearities of the PSA. This means that no matter which PA is inserted into the test setup, as long as the PA is only mildly nonlinear (almost all PA&#39;s are only mildly nonlinear), this procedure will always be able to find a solution so that the PA output will be as similar as pa_out_desired up to the measurement limit of the PSA. 
         [0051]    It should be noted that because the signals being used are repeating cyclical signals, the noise performance of the PSA can be increased by forcing the PSA to perform several captures and then averaging the results of the captures. For example, if two captures are performed and averaged, this is equivalent to improving the noise performance of the PSA by 3 dB. Four captures would lead to a 6 dB improvement, and so on. This technique of performing multiple captures in the PSA can only be used to improve the noise performance of the PSA. If the PSA also contains nonlinearities, these nonlinearities cannot be reduced by performing multiple captures. 
         [0052]    Techniques do exist, however, which can be used to improve the linearity of the PSA. For example, separately, a known signal can be sent into the PSA and the output can be observed. A mathematical model can be built which can model these nonlinearities and this model can be inverted. This inverse model can then be used to post-process the captured data so as to remove, or at least reduce, the nonlinearities in the PSA. Such techniques can be used to improve the linearity of the PSA and hence improve the overall performance of the invention. 
         [0053]    Iterations can be performed over and over until some performance requirement has been met. For example, iterations can be performed until there is very little or no difference in the PA output between one iteration and the next. Alternatively, iterations can be performed until the difference between the actual PA output and pa_out_desired becomes smaller than a certain threshold. Alternatively, a fixed number of iterations can be performed. 
         [0054]    The final predistorted signal going into the PA is called pa_in final  and the final signal coming out of the PA is pa_out final . Please note that pa_out final  is basically the same as a scaled version pa_out_desired with the only differences being those caused by the measurement error of the PSA. 
         [0055]    The major benefit of this method is that the PA can be made to produce an arbitrary signal, with an arbitrary amount of signal fidelity, limited only by the measurement accuracy of the PSA. This is a major improvement over the prior art where the fidelity of the signal could only improve until a certain limit as determined by the accuracy of the underlying PA model. Please note that PSA is only an example, and any device capable of capturing at least one full period of the signal being generated by the ESG can be used to obtain this major benefit. Then, the signal fidelity is only limited by the measurement accuracy of this device. 
         [0056]    In another embodiment of the invention, once the pa_in final  and pa_out final  signals are determined using the previous embodiment of the invention; they can be loaded up into a computer that can perform system identification. Because the signals are stored in memory or in the computer&#39;s hard drive, the computer can perform many rapid simulations to determine which inverse PA model can best be used for predistortion, and also which parameters should be applied to the inverse PA model so as to give the best performance. For performing these rapid simulations, any system identification technique can be used. 
         [0057]    This procedure can be contrasted with the one described in  FIG. 1  (prior art), where each inverse PA model and each set of parameters for a particular inverse PA model needed to be measured in a slow lab environment. The procedure described above is several orders of magnitude faster than the prior art and, given the same amount of search time, allows for many more models to be searched so as to find the best solution. 
         [0058]    Another embodiment of the invention arises when an accurate zero delay, memory limited model of the forward path of the PA is available. Such a model is one for which the impulse response peaks at a time offset of 0, and for which the output is a function of only the current input sample and the previous M−1 samples, for finite M. Note that for some nonlinear models, it may be difficult or impossible to calculate a meaningful impulse response. For such models, it suffices that for typical signals to be transmitted through the PA, the cross-correlation between the PA model&#39;s input and the PA model&#39;s output peaks at a time offset of 0. This model may come from measurements of a PA, or perhaps it can be derived from a mathematical analysis of the PA&#39;s circuit diagram. It is noted that the performance of this embodiment is limited by the accuracy of the PA model. 
         [0059]    The first step is that the desired PA output signal, pa_out_desired(n), must be broken up into smaller segments. The length of each segment is B+M. B is the number of PA output samples that will be produced from each segment and depends on the implementation. The larger B is, the more efficient the algorithm, but also the larger the delay in creating the PA&#39;s input signal. This is a design parameter that will be determined by the particular implementation that has been chosen to realize this invention. 
         [0060]    Segment n (S n ) of length B+M is composed of samples n*B−M through (n+1)*B−1 of pa_out_desired as indicated by the following notation: 
         [0000]        S   n =pa_out_desired( n*B−M :( n+ 1)* B− 1)  Eq 6
 
         [0061]      FIG. 6  is a graphical depiction of how pa_out_desired can be split up into several segments. The brackets indicate the segments of length B+M samples. Please note that the signal can be segmented in any manner as long as each segment is of length B+M and the overlap between segments is M. This is just one manner in which pa_out_desired can be segmented. 
         [0062]    Each segment is processed individually using the following iterative procedure. 
         [0063]    First, the signal going into the PA model (pa_mdl_in) for segment n, iteration 1 is created as follows: 
         [0000]    
       
         
           
             
               
                 
                   
                     pa_mdl 
                      
                     
                       _in 
                       
                         n 
                         , 
                         1 
                       
                     
                   
                   = 
                   
                     
                       S 
                       n 
                     
                     
                       G 
                       e 
                     
                   
                 
               
               
                 
                   Eq 
                    
                   
                       
                   
                    
                   7 
                 
               
             
           
         
       
     
         [0064]    G e  is a rough estimate of the gain of the PA model and is only used for the first iteration. It is not necessary for this number to be very accurate and a rough estimate is good enough. One method that can be used to estimate G e  is that first, a random noise signal with an average power level similar to the typical power level expected to be input to the PA model can be generated. The PA model can be simulated and the average power of the signal on the output of the PA model can be measured. G e  can simply be set to be the square root of the ratio of the power of the output signal divided by the power of the input signal. 
         [0065]    pa_mdl_in n,1  is sent through the PA model to produce pa_mdl_out n,1  which also is of length B+M. The gain for this iteration or any other iteration i can be calculated as: 
         [0000]    
       
         
           
             
               
                 
                   
                     G 
                     
                       n 
                       , 
                       i 
                     
                   
                   = 
                   
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         
                           B 
                           + 
                           M 
                           - 
                           1 
                         
                       
                        
                       
                         pa_mdl 
                          
                         
                           _in 
                           
                             n 
                             , 
                             i 
                           
                         
                          
                         
                           ( 
                           k 
                           ) 
                         
                         × 
                         pa_mdl 
                          
                         
                           _out 
                           
                             n 
                             , 
                             i 
                           
                         
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         
                           B 
                           + 
                           M 
                           - 
                           1 
                         
                       
                        
                       
                         pa_mdl 
                          
                         
                           _in 
                           
                             n 
                             , 
                             i 
                           
                         
                          
                         
                           ( 
                           k 
                           ) 
                         
                         × 
                         pa_mdl 
                          
                         
                           _in 
                           
                             n 
                             , 
                             i 
                           
                         
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   Eq 
                    
                   
                       
                   
                    
                   8 
                 
               
             
           
         
       
     
         [0066]    Then, a difference signal for segment n, iteration i is calculated as: 
         [0000]      diff n,i =pa_mdl_out n,i   −S   n   Eq 9
 
         [0067]    A correction signal is calculated as: 
         [0000]    
       
         
           
             
               
                 
                   
                     pa_mdl 
                      
                     _in 
                      
                     
                       _corr 
                       
                         n 
                         , 
                         i 
                       
                     
                   
                   = 
                   
                     
                       pa_mdl 
                        
                       
                         _in 
                         
                           n 
                           , 
                           i 
                         
                       
                     
                     - 
                     
                       alpha 
                       × 
                       
                         
                           diff 
                           
                             n 
                             , 
                             i 
                           
                         
                         
                           G 
                           
                             n 
                             , 
                             i 
                           
                         
                       
                     
                   
                 
               
               
                 
                   Eq 
                    
                   
                       
                   
                    
                   10 
                 
               
             
           
         
       
     
         [0068]    Where alpha is a constant that takes a value between 0 and 1. The closer alpha is to 1, the faster the convergence, but the higher the risk of instability. Typically, alpha will have a value between 0.5 and 0.8. 
         [0069]    Finally, to complete this iteration, the PA model input signal for the next iteration is created: 
         [0000]      pa_mdl_in n,i+1 ={pa_mdl_in n−1,end ( B:B+M− 1),pa_mdl_in_corr n,i ( M:B+M− 1)}  Eq 11
 
         [0070]    Where the notation {A,B} indicates that the two sequences A and B should be concatenated together. Furthermore, pa_mdl_in n,end  indicates the value of pa_mdl_in after the final iteration of processing for segment n. 
         [0071]    It should be noted that pa_mdl_in n,i+1  depends on pa_mdl_in n−1,end . If pa_mdl_in n−1,end  is not available, this signal can be replaced by zeros in the above equation. pa_mdl_in n−1,end  is not available, for instance, when the first S segment is being processed. 
         [0072]    This iterative process can continue and with each iteration i, pa_mdl_out n,i  will start to look more and more like S n . The iteration process can continue for a fixed number of iterations, or an automatic iteration termination mechanism can be used. For example, one possibility is to keep iterating until the error power of the difference between pa_mdl_out n,i  and S n  becomes lower than a certain threshold. 
         [0073]    The signal applied to the PA is created as: 
         [0000]    
       
         
               
             
               
               
             
           
               
                   
               
             
             
               
                 Eq 12 
               
             
          
           
               
                   
                 pa_in = { 
               
               
                   
                 pa_mdl_in 0,end (M : B + M − 1), 
               
               
                   
                 pa_mdl_in 1,end (M : B + M − 1), 
               
               
                   
                 pa_mdl_in 2,end (M : B + M − 1), 
               
               
                   
                 ... 
               
               
                   
                 } 
               
               
                   
                   
               
             
          
         
       
     
         [0074]    In an typical realization using, for example, an FPGA, simultaneously while pa_mdl_in n,end (M:B+M−1) is being sent to the PA, pa_mdl_in n+1,end  will be calculated using the iterative process described above. 
         [0075]    The primary advantage of this embodiment of the invention is that whereas the prior art shown in  FIG. 2  attempted to mathematically invert a model, this embodiment of the invention does not need to perform model inversion at all. It can generate the correct PA input given only a forward model of the PA. Because this embodiment of the invention does not attempt to invert a nonlinear model, no model inversion errors are introduced. 
         [0076]    While several embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes and modifications may be made without departing from the spirit and scope of the invention.