Patent Publication Number: US-8542767-B2

Title: Digital predistortion training system

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     This application is a continuation of U.S. application Ser. No. 12/686,566, filed Jan. 13, 2010, the entirety of which is incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates to wireless communication systems and devices, and more particularly to digital predistortion in a wireless device. 
     BACKGROUND 
     Digital predistortion (DPD) is a technique that deliberately distorts a baseband signal prior to upconversion and amplification for wireless transmissions. The distortion applied to the baseband signal is designed to cancel out non-linear distortions caused by the power amplifier in the transmitter of the wireless device. 
     The predistortion module in the wireless device applies predistortion to the baseband signal according to predistortion coefficients. Thus, the predistortion coefficients used by the predistortion module need to be computed so that the predistortion module properly cancels out the distortion. There is room from improving the techniques by which the predistortion coefficients are determined for use in a wireless device, such as in a wireless network access point device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a wireless network comprising a plurality of wireless network access point devices and a controller that is configured to initiate predistortion training sessions of an access point device. 
         FIG. 2  is an example of a block diagram of a wireless network access point device configured to be the support the predistortion training session techniques described herein. 
         FIG. 3  is an example of a controller apparatus configured to initiate the predistortion training session and to compute predistortion parameters. 
         FIGS. 4 and 5  are flow diagrams illustrating use of a cost function in computing the predistortion parameters during a predistortion training session. 
         FIGS. 6-8  depict flow charts for training and predistortion parameters computation process logic executed in the controller apparatus for a predistortion training session. 
         FIG. 9  is a flow chart depicting operations of a particular access point device undergoing predistortion training and a participating access point device in connection with obtaining adjacent channel power measurement data during a training session. 
         FIG. 10  is a flow chart depicting operations of a particular access point device undergoing predistortion training and a participating access point device in connection with obtaining error vector magnitude measurement data during a training session. 
         FIG. 11  is a flow chart depicting a process in a access point device to scale a baseband transmit signal prior to predistortion to account for transmit power variations across predistortion parameters. 
     
    
    
     DESCRIPTION OF EXAMPLE EMBODIMENTS 
     Overview 
     Techniques are provided herein for training a digital predistortion module in a wireless communication device. At a controller apparatus that is capable of communicating with a plurality of wireless devices, a particular wireless device that requires adjustment of predistortion parameters is identified. The controller also identifies one or more participating wireless devices to participate in a training session during which the particular wireless device makes test transmissions and the one or more participating wireless devices make measurements based on reception of the test transmissions sent by the particular wireless device. The controller apparatus sends commands to the particular wireless device and to the one or more participating wireless devices to initiate the training session. The controller receives measurement data from the one or more participating wireless devices based on reception of the test transmissions from the particular wireless device during the training session. The controller apparatus determines predistortion parameters for use by the particular wireless device based on the measurement data received from the one or more participating wireless devices. 
     Example Embodiments 
     Reference is made first to  FIG. 1  that shows a wireless network comprising a plurality of wireless network access points (APs)  10 ( 1 ),  10 ( 2 ),  10 ( 3 ) and  10 ( 4 ), and a controller  20 . The APs  10 ( 1 )- 10 ( 4 ) are configured to serve wireless communications with wireless client devices (CDs) shown at reference numerals  30 ( 1 )- 30 (N). The APs  10 ( 1 )- 10 ( 4 ) are, for example, configured to operate in a wireless local area network (WLAN), using the communication standard of IEEE 802.11, known commercially as WiFi™, or in a wireless network that uses the communication standard of IEEE 802.16, known commercially as WiMAX™. While  FIG. 1  shows four APs  10 ( 1 )- 10 ( 4 ), it should be understood that there may be more or less APs in a given WLAN deployment. 
     The controller  20  is, for example, a WLAN controller apparatus that is configured to control various functions of the APs  10 ( 1 )- 10 ( 4 ), such as the frequency channel used for operation, transmit power, etc. The controller  20  communicates with the APs  10 ( 1 )- 10 ( 4 ) via a wired network shown at reference numeral  40 . However, it is also possible that the controller  20  is configured with wireless communication capability to communicate with the APs  10 ( 1 )- 10 ( 4 ) via a WLAN. 
     The predistortion training techniques described herein are applicable to any wireless device that has a digital predistortion circuit or module used to predistort a baseband signal prior to its upconversion and amplification for transmission. 
     As indicated in  FIG. 1  and according to the techniques described herein, the controller  20  is configured to initiation predistortion training at a particular AP, e.g., AP 1 , to compute predistortion parameters adjacent channel power (ACP) measurement data and error vector magnitude (EVM) measurement data received from partner, also called “participating”, APs, based on a cost function. Thus, during a training or measurement session, the controller  20  selects one or more participating APs (possibly including the AP that is selected for predistortion training) to make ACP and EVM measurements. For example, when the controller  20  is undergoing a predistortion training session for AP  10 ( 1 ), the controller  20  may select APs  10 ( 2 )- 10 ( 4 ) to be participating APs which participate in the training session by making ACP and EVM measurement data from received test transmissions made by the AP  10 ( 1 ) during the training session. 
     Turning now to  FIG. 2 , an example of a block diagram of an AP, identified generically as AP  10 ( i ), is now described. The block diagram shown in  FIG. 2  is meant to be an example and representative of a block diagram of any of the APs  10 ( 1 )- 10 ( 4 ), each of which is configured to serve as an AP for which predistortion training is to be made and to serve as a participating or partner AP in a predistortion training session of itself or any other AP. 
     An AP  10 ( i ) comprises in a transmit signal path, a baseband transmit signal generator  100 , a digital predistortion (DPD) module  112 , an upconverter  114  and a power amplifier  116 . In a receive signal path, the AP  10 ( i ) comprises a downconverter  122  and a baseband receive signal processor  124 . A transmit/receive (Tx/Rx) switch  118  is provided that couples either the power amplifier  116  or the downconverter  122  to an antenna  120 , depending on whether the AP  10 ( i ) is in a transmit mode or receive mode. In the case where the AP  10 ( i ) is configured to transmit and receive via multiple antennas, then there are multiple instances of the upconverter  114  and power amplifier  116  in the transmit path, one instance for each antenna, and multiple instances of the downconverter  122  in the receive path, one instance for each antenna. 
     The baseband transmit signal generator  100  is configured to generate a baseband transmit signal for transmission via antenna  120 , and the baseband receive signal processor  124  is configured to process a baseband receive signal output by the downconverter  122  from a received signal at the antenna  122 . The baseband transmit signal generator  100  and the baseband receive signal processor  124  may be part of a single component, such as a modem, which may also include the digital predistortion module  112 . When the AP  10 ( i ) is configured to transmit and receive via multiple antennas, then there are multiple instances of both the baseband transmit signal generator  100  and baseband receive signal processor  124 , one for each antenna, or a single component, e.g., a modem, that handles the baseband transmit signal generation of baseband transmit signals for each antenna and baseband receive signal processing of baseband receive signals for each antenna. The digital predistortion module  112  may be included as a functional block of the modem. For a multi-antenna AP, the functions of the digital predistorter module  112  are replicated for each transmit path. A single component or module may be configured to perform the predistortion functions with respect to baseband transmit signals for each transmit path to accommodate a plurality of transmit paths, one for each antenna. 
     There is also an optional monitoring receiver  140  connected to an associated antenna  142 . The monitoring receiver  140  is configured to receive signals transmitted on a given channel in a frequency band and may be useful in connection with making measurements of signals in connection with a training session. A network interface device, e.g., Ethernet card,  144  is also provided that enables communication over the network  40  with the controller  20 , to receive commands from the controller in connection with a training session. 
     The baseband transmit signal generator  100 , digital predistorter module  112  and baseband receive signal processor  124  may be implemented in digital logic, in fixed or programmable form, and thus may be embodied by one or more application specific integrated circuits. 
     A processor  130  is provided, such as a microprocessor or microcontroller, that is configured to control various AP functions, including operations in connections with a predistortion training session, whether the AP is the device being trained or is serving as a participating device in the training session of itself or another AP. To this end, the processor  130  is configured to execute instructions stored in a memory  132 . The processor configures the digital predistortion module  112  with stored predistortion parameters shown at  136  in memory  132 . The predistortion parameters  136  may take the form of a predistortion matrix A or a scaling factors c, both of which are described further hereinafter. The memory  132  also contains DPD training participation process logic  200  and DPD training transmission process logic  300 . The DPD training participation process logic  200  is executed by the processor  130  when the AP  10 ( i ) is acting as a partner or participating AP in a DPD training session of itself or another AP, wherein the processor generates adjacent channel power and error vector magnitude measurement data with respect to reception of test transmissions by the AP undergoing predistortion training. The DPD training transmission process logic  300  is executed by the processor  130  when the AP  10 ( i ) is undergoing training for the predistortion parameters that are used by its digital predistortion module  112  to generate the test transmissions. The DPD training participation process logic  200  and the DPD training transmission process logic  300  are described hereinafter in connection with  FIGS. 7-10 . 
     The processor  130  may be a programmable processor or a fixed-logic processor. In the case of a programmable processor, the memory  136  is any type of tangible processor readable memory (e.g., random access, read-only, etc.) that is encoded with or stores instructions. For example, the processor  130  is a microprocessor or microcontroller. Alternatively, the processor  130  may a fixed-logic processing device, such as an application specific integrated circuit or digital signal processor, that is configured with firmware comprised of instructions that cause the processor  130  to perform the functions described herein. Thus, the process logic  300  may take any of a variety of forms, so as to be encoded in one or more tangible media for execution, such as with fixed logic or programmable logic (e.g., software/computer instructions executed by a processor) and the processor  130  may be a programmable processor, programmable digital logic (e.g., field programmable gate array) or an application specific integrated circuit (ASIC) that comprises fixed digital logic, or a combination thereof. In general, the process logic  200  and process logic  300  may be embodied in a processor readable medium that is encoded with instructions for execution by a processor (e.g., processor  130 ) that, when executed by the processor, are operable to cause the processor to perform the functions described herein in connection with process logic  200  and process logic  300 . 
     Turning now to  FIG. 3 , an example block diagram of the controller  20  is described. The controller  20  comprises a network interface  22  that is configured to perform communications with the APs via the wired network  40 , for example. A processor  24  is provided that is configured to control various functions of the controller  20 . The processor  24  executes instructions stored in memory  26  to enable the controller  20  to perform a DPD training session as described herein. To this end, the memory  26  stores instructions for cost function generator process logic  400  and instructions for training session and predistortion parameters computation process logic  500 . The cost function generator process logic  400  is described hereinafter in connection with  FIGS. 4 and 5 , and the training session and predistortion parameters computation process logic  500  is described hereinafter in connection with  FIGS. 6-9 . 
     The processor  24  may take on any of the forms described above in connection with the processor  130  in  FIG. 2 . 
     In the following description, a predistortion technique is used that involves memory polynomial digital predistortion. This is meant by way of example only as there are different techniques for digital predistortion, such as those based on a look-up table. 
     In a memory polynomial digital predistortion technique, a polynomial equation represents the digital predistortion applied to a signal. The coefficients represent a polynomial approximation of the inverse of the amplitude and phase response of the power amplifier. For example, when a single sample s(m) of signal s is subject to memory polynomial predistortion, the output predistorted signal S DPD  is: 
                 s   DPD     ⁡     (   m   )       =       ∑     q   =   0     Q     ⁢       ∑     n   =   1     N     ⁢       a     q   ,   n       ⁢     s   ⁡     (     m   -   q     )       ⁢            s   ⁡     (     m   -   q     )              n   -   1                   
where s(m) is the m th  sample of the signal s, and a q,n  is the n th -order and q th  memory coefficient of the memory polynomial, where q represents the memory length of the polynomial. An array of values for a q,n  make up the matrix A. The matrix A of coefficients has the form:
 
             A   =     [           a     1   ,   0             a     2   ,   0           …         a     n   ,   0                 a     1   ,   1             a     2   ,   1           …         a     n   ,   1               ⋮       ⋮       ⋱       ⋮             a     1   ,   q             a     1   ,   q           …         a     n   ,   q             ]           
As explained above, and in further detail hereinafter, training may involve selecting values for scaling factors c rather than values for a q,n , which is more time consuming and computationally intensive.
 
     The challenge in a digital predistortion scheme is selecting the a q,n  coefficient values to cancel out the distortion created by the power amplifier. Determining the appropriate values for the predistortion parameters involves indirect training using a cost function based on some measurement data and other criteria. For example, EVM and ACP measurement data are useful as measurement data to determine the predistortion parameters. Thus, during a training session, a baseband transmit signal is subjected to predistortion with several different predistortion parameter values (e.g., different coefficients a q,n ) and ACP and EVM measurements made from reception of the resulting transmitted signals are used to determine which set of predistortion parameter values satisfy, e.g., minimize the cost function. In general, ACP and EVM measurement data are analyzed for a different set of predistortion parameters (e.g., coefficients) for each power level of operation, frequency channel of operation and each power amplifier (each transmit path). The techniques described herein are applicable to determining the appropriate predistortion parameters both for factory calibration and “in the field” calibration after the device has been deployed. 
     Power amplifiers in a transmit path or chain of a wireless device experience some drift in operation over time. As a result, an open-loop predistortion scheme, with one-time predistortion coefficient training, will be subject to performance degradation as the amplifier ages and its characteristics change. A closed-loop system, on the other hand, is common in systems with very stringent ACP and EVM requirements. A compromise is an open-loop system with periodically-triggered (or on demand) predistortion maintenance. To this end, the controller  20  is configured to trigger a particular AP for predistortion training, using either a “quick-tuning” scheme whereby a scaling factor c is adjusted or a full training (retraining) scheme whereby the matrix A of coefficients is adjusted, as described herein. The controller may implement this training periodically or on-demand based on monitored AP downlink performance as a trigger. When in “quick-tuning” or full retraining, the AP undergoing the predistortion training is configured to transmit frames to a monitoring radio receiver that is at another AP, at a CD, or at the AP itself that is undergoing the predistortion training. 
     The effectiveness of a given set, e.g. matrix A, of predistortion coefficients or a scaling factor c (in quick or fast tuning) is evaluated quantitatively by a cost function. The training or quick tuning seeks the set of coefficients or scaling factor, respectively, that satisfies, e.g., minimizes, the cost function. Different cost functions lead to different ultimate operating points for the predistortion module. One cost function may weight EVM heavily, leading to good EVM performance. Another cost function may weight ACP heavy, leading to a minimization in ACP. In some situations, focusing purely on minimizing one variable may be desired. In other situations, satisfying conditions of multiple variables may be desired. 
     A primary purpose of DPD is to reduce the effects of non-linearities of power amplifiers. However, the goals of using DPD for that purpose can be many. In an IEEE 802.11 WLAN, one goal may be to improve performance of a wireless transmitter by improving EVM. Another goal may be to meet regulations of a regulatory body at an edge of a frequency band allocated for operation of the wireless network. Another goal may be to meet requirements imposed in a specification of a standards body. In reality, all of these goals can be constantly considered, but have varying weights within a cost function depending on the current operating point and the specifications and regulations to be met at that operating point. 
     Turning now to  FIGS. 4 and 5 , a description of the cost function analysis is provided that is performed at the controller  20  based on the ACP measurement data and EVM measurement data. The cost function is shown at reference numeral  405  and the cost function weights are shown at  410  in  FIG. 4 . The input to the cost function  405  comprises the ACP and EVM measurement data and the cost function weights shown at  410 . In addition, the polynomial order and memory length are considered in the cost function computations. The output of the cost function comprises the predistortion parameters, e.g., coefficients matrix A (if full training was performed) or scaling factor c (if quick-tuning was performed), that satisfies (minimizes) the cost function. 
     The cost function generator process logic  400  is now described with reference to  FIG. 5 . At  420 , upon predistortion training being initiated (full training or quick-tuning), the controller  20  retrieves stored operating information for the particular AP, including operating frequency channel, regulatory information, transmit power, target data rate, operating mode of the particular AP (wideband or normal), current operating point (actual EVM and ACP, if known), etc. At  430 , the controller  20  generates EVM and ACP targets for the cost function weights from the operating information. At  440 , using the information obtained at  420  and  430 , the cost function is generated for use in the training session. 
     EVM represents the average error-vector-magnitude for any frequency subcarrier that is not considered to be in a channel null. Subcarriers in channel nulls are identified during channel estimation and excluded from the EVM measurement, as described further hereinafter. ACP can be broken down into ACP R  and ACP L , which is the adjacent channel power of the transmitted signal to the right and left, respectively, of the operating frequency channel of the AP undergoing predistortion training. ACP R  and ACP L  can further be broken down into any number of subsegments. In the following description, ACP R  and ACP L  and their subsegments are referred to simply as ACP. 
     The cost function, C(EVM,ACP), consists of measured EVM and ACP values for a given frame (or multitude of frames) used to arrive at an accurate EVM and ACP value for a frame predistorted with a given set of coefficients or a scaling factor. Measured EVM and measured ACP are represented as EVM M  and ACP M . The cost function C(EVM,ACP) is defined as: 
               C   ⁡     (     EVM   ,   ACP     )       =         ∑     n   =   1       N   ACP       ⁢     [       α   n     ⁢     ACP   n       ]       +       α   EVM     ⁢   EVM                     α   n     =         γ   n     ⁢     β   n   ACP             ∑     n   =   1       N   ACP       ⁢       γ   k     ⁢     β   k   ACP         +     β   EVM                       α   EVM     =     1   -       ∑     n   =   1       N   ACP       ⁢     [       α   n     ⁢     ACP   n       ]                       β   EVM     =     max   ⁡     [     0   ,       (     EVM   -     EVM   Target       )     EVM       ]                     β   n   ACP     =     max   ⁡     [     0   ,       (       ACP   n     -     ACP     n   ,   Target         )       ACP   n         ]                   1   =       ∑     n   =   1       N   ACP       ⁢     γ   n             
where γ n  is the weighting put on a given ACP, measurement to weight the measurement within the group of all ACP measurements. γ n  can be set to equally weight such that,
 
               γ   n     =     1     N   ACP             
or it can be unequally weighted as set by the cost function generator. EVM Target  and ACP Target  are target values for EVM and ACP for a given AP. A further explanation of the cost function and the inputs to the cost function are described hereinafter.
 
     Reference is now made to  FIG. 6  for a description of the training session and predistortion parameters computation process logic  500 . At  505 , the controller determines that a particular AP requires DPD training. The determination at  505  may be based on a predetermined periodic schedule to train each AP in the field, or based on monitored downlink performance characteristics for a given AP. At  510 , the controller identifies (selects or designates) one or more APs in the field to serve as partner APs and participate in a training session. These partner APs are also referred to herein as participating APs. The particular AP undergoing the training may also serve as a participating AP insofar as it can simultaneously receive a transmission sent via one antenna on another antenna, in the case where that AP is a multi-antenna AP. In some other applications, the AP may have a separate radio receiver that is used solely for monitoring signals in the frequency band, as described above in connection with  FIG. 2 . The controller may select APs to be partner APs for a training session with respect to a particular AP based on their proximity (physical location or receive strength of signals from the particular AP). 
     For example, the controller may send a command to the particular AP to transmit a plurality of frames on one or more channels on which other APs are configured to receive. These other APs then report receive signal strength measurement data as well as coherence time estimates based on the frames sent by the particular AP to the controller  20 . The coherence time is a measure of the minimum time required for change of a predetermined magnitude of the conditions of a wireless channel to become uncorrelated from its previous value. The controller  20  can then prioritize those APs that are best suited to serve as a participating AP with respect to the particular AP undergoing training by coherence time estimates, where those APs that made longer coherence time estimates are given higher priority. The controller  20  then selects one or more participating APs accordingly. 
     At  515 , the controller retrieves or generates the cost function for training the particular AP. This corresponds to the process described above in connection with  FIGS. 4 and 5 . At  520 , the controller determines whether to try a quick-tuning training session or a full training session for the particular AP. In one form, quick tuning is used for a first attempt (out of factory calibration or since the last full retraining). The performance (EVM or ACP) is compared with the performance of other APs with similar/same cost functions. In other form, the controller determines whether the cost function analysis results for that AP is below threshold that necessitates performing a full retraining. In still another form, data rate statistics for the AP are used to determine whether to perform quick tuning or full retraining. For example, when the data rate is very low (below a threshold), a full retraining is performed if a quick tuning has already been attempted. In yet another form, the time duration between last full retraining is used to determination whether to perform a quick tuning or full retraining. For example, if this time duration is greater than a threshold, a full retraining is performed. When a full training session is to be performed, the process continues at  530  in  FIG. 7  and when a quick-tuning (fast training) session is to be performed, the process continues at  550  in  FIG. 8 . 
     At  530 , the controller  20  sends a transmission command to the particular AP configuring it to prepare to make test transmissions using a set of coefficients, that is, values for matrix A. When the full-training session first begins, the controller  20  sends the first or initial values for the matrix A. At  530 , the controller also sends reception ready commands to the one or more participating APs instructing them to prepare to receive the test transmissions from the particular AP and to make measurements. At  532 , the controller determines whether it has received confirmation from the participating APs that they are ready to receive and make measurements. When confirmation is received by the controller  20 , then at  534 , the controller sends a command to the particular AP to make the test transmissions and to the participating APs to receive and make ACP and EVM measurements from the received test transmissions. The controller  20  configures the particular AP to send the test transmissions, which may take the form of multiple frames or symbols within a frame or groups of symbols within the frame, where each frame (or symbol within the frame or groups of symbols within the frame) is transmitted by the particular AP with a different set of predistortion coefficients A. In other words, the particular AP is configured by the transmission command to transmit multiple symbols or multiple sets of symbols, each symbol or set of symbol with different predistortion parameters. 
     At  536 , the controller receives the ACP and EVM measurements made by the participating APs from reception of the test transmissions. The procedures for obtaining ACP measurement data are described hereinafter in connection with  FIG. 9  and the procedures for obtaining EVM measurement data are described hereinafter in connection with  FIG. 10 . 
     At  538 , the controller  20  determines whether it needs more measurements in order to ensure that the training can converge. When more measurements are needed, the controller repeats functions  530 ,  532 ,  534  and  536  on the basis of a next set of coefficients (matrix A). At  540 , the controller  20  determines whether there are any additional coefficients (values for matrix A) to test. If there are more coefficients to test, then the process repeats functions  530 ,  532 ,  534  and  536  with the next set of coefficients. Thus, once the EVM and ACP measurement data is received by the controller  20 , the controller  20  will either provide the particular AP with a new set of coefficients to use in a subsequent round of test transmissions or conclude that the full training session has converged. 
     At  542 , the controller  20  runs the cost function on the received ACP and EVM measurement data to compute and determine which set of coefficients (which version of matrix A) minimizes the cost function. During the full training procedure depicted in  FIG. 7 , several sets of coefficients are used for the test transmissions and the cost function associated with measurement data obtained for each set of coefficients is analyzed. The computations for the cost functions are provided above in connection with the description of  FIGS. 4 and 5 . 
     The controller  20  sends to the particular AP a message identifying or containing those coefficients for storage and use by the digital predistortion module in the particular AP when predistorting a baseband transmit signal for transmission during its normal operating mode. At the conclusion of the procedure shown in  FIG. 7 , the particular AP and the participating APs return to their normal operating mode. 
     Over time, heavy use and even operation temperature, the predistortion coefficients may not be effective. Instead of retraining the predistortion coefficients, which can be processor and time intensive and not practical in the field, a scaling factor to the signal input to the predistortion module can be provided, and adjusted as necessary. This is the purpose of the quick-tuning procedure. Thus, a scaling factor c k  is applied to the baseband signal s that is input to the predistortion module from the baseband transmit signal generator. The mathematical expression using the scaling factor is: 
                 s   DPD   k     ⁡     (   m   )       =     F   ⁡     (         c   k     ⁢     s   ⁡     (   m   )         ,   A     )                   A   =     [           a     1   ,   0             a     2   ,   0           …         a     n   ,   0                 a     1   ,   1             a     2   ,   1           …         a     n   ,   1               ⋮       ⋮       ⋱       ⋮             a     1   ,   q             a     1   ,   q           …         a     n   ,   q             ]               where               F   ⁡     (       s   ⁡     (   m   )       ,   A     )       =       ∑     q   =   0     Q     ⁢       ∑     n   =   1     N     ⁢       a     q   ,   n       ⁢     s   ⁡     (     m   -   q     )       ⁢            s   ⁡     (     m   -   q     )              n   -   1                   
s is the baseband transmit signal input to the predistortion module, c k  is the scaling factor for the kth frame, symbol or set of symbols, and s DPD   k  is the predistorted signal for the kth frame, symbol or set of symbols. The matrix A contains the predistortion coefficients and in the quick-tuning procedure, are the current set of predistortion coefficients used by the particular AP. They are not varied during the quick-tuning procedure.
 
     If the power amplifier in a transmit chain of the particular AP has undergone a drift in its operation, it is likely that a change in operating point has occurred and not a drastic migration of the coefficients. Therefore, the operating point of the predistortion module can be adjusted to match the change in operating point of the amplifier. Instead of retraining the coefficients in matrix A, which would require many iterations to converge on 2N elements (N complex coefficients), a low iteration and thus faster training can be done to converge one value, the scaling factor c. 
     Turning now to  FIG. 8 , the quick-tuning procedure is now described. At  550 , the controller sends a transmission command to the particular AP configuring it to prepare to make test transmissions using values for a set of scaling factors c. When the quick-tuning procedure first begins, the controller  20  sends the first or initial values for the scaling factor c. Also at  550 , the controller sends reception ready commands to the one or more participating APs instructing them to prepare to receive the test transmissions from the particular AP and to make measurements. At  552 , the controller  20  determines whether it has received confirmation from the participating APs that they are ready to receive and make measurements. When confirmation is received by the controller  20 , then at  554 , the controller sends a command to the particular AP to make the test transmissions and to the participating APs to receive and make ACP and EVM measurement from the received test transmissions. The controller  20  configures the particular AP to send the test transmissions such that each frame, each symbol or every N symbols are sent with a different scaling factor. At  556 , the controller  20  receives the ACP and EVM measurements made by the participating APs. Functions  558  and  560  are similar to functions  538  and  540  described above in connection with  FIG. 7 . At  562 , the controller runs the cost function on the ACP and EVM measurement data to determine which scaling factor minimizes the cost function. The controller  20  sends that scaling factor c to the particular AP for storage and use in the particular AP when making transmissions during its normal operating mode. At the conclusion of the procedure shown in  FIG. 8 , the particular AP and the participating APs return to their normal operating mode. 
     The quick-tuning and full training procedures are executed for each transmit train individually for an AP that has multiple antennas for transmit purposes and thus has multiple transmit chains. In this case, test transmission are sent to a partner AP via a single transmit path only (the one being trained) and not from multiple transmit paths simultaneously. 
     If the training procedures described above take place during factory calibration of APs, the calibration equipment is essentially a participating AP in terms of the procedures described above. Moreover, EVM and ACP can be measured simultaneously by the calibration equipment without consideration of the deployment environment. 
     Reference is now made to  FIG. 9  for a description of those aspects of the DPD training participating process logic  200  executed in an AP serving as a participating AP during a training session and of the DPD training transmission process logic  300  executed in the particular AP (the AP undergoing predistortion training) during a training session when ACP measurement data is obtained at participating APs. To this end, functions of the DPD training participating process logic  200  are identified by reference numerals in the  200 &#39;s and functions of the DPD training transmission process logic  300  are identified by reference numerals in the  300 &#39;s. 
     The same wireless channel conditions that affect the EVM measurements made at a participating AP will also affect the ACP measurement by causing ACP to be measured much lower than it should be for frequencies in a channel null. The procedure for making EVM measurements is described hereinafter in connection with  FIG. 10 . However, since the ACP measurements are taken “off-channel”, that is, on a frequency channel other than the one used by the particular AP for normal operation, an estimate of the over-the-air wireless channel conditions cannot be made during the ACP measurement. Therefore, the transmitting device will need to intermittently switch to the adjacent channel (if the adjacent channel is not in a restricted frequency band) to send a frame to a participating AP for channel estimation. Once the channel estimate is made, the frequency dependence in the channel can be removed from future ACP measurements. The switching frequency between on-channel transmission (in the operating frequency channel of the AP) and off-channel transmission is determined by the estimated coherence time. New channel estimates are made within the coherence time. 
     When the operating frequency channel of the particular AP is adjacent to a restricted frequency band, it cannot make intermittent transmissions in the restricted band. In this situation, participating APs with more than one receive antenna are given priority in order to minimize the effect of the over-the-air wireless channel conditions on the ACP measurement. Alternatively, the particular AP and the participating AP can enter into a special wideband (e.g., 40 MHz) mode comprising two adjacent channels (an upper channel and a lower channel) so that a first “channel estimation” portion (e.g., preamble portion) of the test transmission packet is transmitted in both the upper and lower channels, but a second portion (e.g., data portion) of the test transmission packet is only transmitted in the frequency channel, i.e., adjacent channel, under test. Thus, the adjacent channel would only have a portion of the packet transmitted in it, and the rest of the received power in the adjacent channel would be due to spectral regrowth from the in-band power of the channel under test. 
     At  310 , the particular AP determines that it is ready to send a test transmission for ACP measurement by participating APs. At  315 , the particular AP determines to perform the test transmissions for the ACP measurements using either a standard single channel or using two or more channels aggregated together (e.g., two 20 MHz WiFi channels) in a wideband mode. The latter wideband technique works when both the particular AP and the participating APs have the wideband operation mode capability. When it is determined that both the particular AP and the participating APs do not have wideband operation mode capability, then the process goes to the left branch of the flow chart shown in  FIG. 9 , and otherwise it goes to the right branch of the flow chart shown in  FIG. 9 . 
     In normal single channel mode, at  320 , the particular AP switches its transmission frequency to a channel of a participating AP and sends a packet, e.g., a request to send (RTS) FRAME as part of a RTS-clear to send (CTS) exchange with the participating AP. At  210 , the participating AP receives the packet, estimates the channel conditions and stores the channel estimation information. The term “channel” used herein in connection with the channel estimate refers to the over-the-air wireless channel between the antenna(s) of the particular AP and the antenna(s) of the participating AP. 
     At  322 , the particular AP returns to its normal operating transmission frequency channel and transmits test transmissions using the appropriate coefficients or scaling factor (depending on whether the training is a full training session or quick-tuning session). At  212 , the participating AP receives the frame sent by the participating AP on its normal operating frequency channel and measures ACP for the frame and adjusts the ACP measurement with the saved channel estimate information at  210 . At  214 , the participating AP determines whether the ACP measurement is corrupted by a frame on the ACP measurement channel. In other words, at  214 , a check is made to determine whether a frame “collided” with the off-channel frame measurement for the ACP. If a packet from client device is received while the partner AP is waiting to receive a training packet, the transmission of the training packet is repeated because the ACP measurement would contain the on-channel packet reception. Also, a packet could be sent off channel by an AP at the same time and could corrupt the measurement and thus the benefit of knowing when a packet was received on the partner AP channel would be lost. Therefore, if corruption is determined at  214 , the process repeats from  320  to measure the ACP as shown in  FIG. 9 . In one example, N plurality of training frames are automatically sent. When there is not a significant variation in the ACP measurement over some subset M of the N plurality of training frames, then it is determined that there is no off-channel corruption of the training packet over the M frames and an average of the measurements resulting from those M frames is used. 
     At  216 , the participating AP sends the ACP measurement data to the controller. 
     The intermittent transmission of test transmissions on the adjacent channel and on the normal operating channel is performed is performed to enable one or more participating APs to generate channel estimate information of the over-the-air channel to allow the participating device to adjust the ACP measurement data using the channel estimate information. 
     Obtaining ACP measurement data when the particular AP and the participating AP are capable of operating in a wideband mode is now described. At  330 , the AP transmits a first portion (e.g., preamble) of a test transmission packet in its operating frequency channel and in the adjacent channel, i.e., the particular APs ACP measurement channel. At  220 , the particular AP estimates channel conditions of the ACP measurement channel based on reception of the preamble in that channel. At  332 , the particular AP transmits the remaining portion of the test transmission packet (e.g., data portion) only in its normal operating channel. At  222 , the participating AP measures ACP for each symbol of the packet by synchronizing with the packet sent in the particular APs normal operating channel and using the channel estimation information obtained at  220  from reception of the preamble in the ACP measurement channel. At  216 , the participating AP sends the ACP measurement data to the controller. 
     The procedures depicted in  FIG. 9  are performed between the particular AP and each participating AP in order to separately obtain ACP measurement data from each participating AP. 
     Reference is now made to  FIG. 10  for a description of those aspects of the DPD training participating process logic  200  executed in an AP serving as a participating AP during a training session and of the DPD training transmission process logic  300  executed in the particular AP during a training session when EVM measurement data is obtained at participating APs. To this end, functions of the DPD training participating process logic  200  are identified by reference numerals in the  200 &#39;s and functions of the DPD training transmission process logic  300  are identified by reference numerals in the  300 &#39;s. 
     The channel between the transmitting AP and the participating AP device may have a frequency dependent null that weakens one or more subcarriers at the participating AP. This will affect the EVM measurement because those severely weakened subcarriers will contain a significant amount of noise. Therefore, during channel estimation using a long training field, the strength of each subcarrier is determined and used in the EVM measurement by excluding the weaker subcarriers. Any subcarrier that has a receive power that is X dB below that of the top Y percentile receive power of all subcarriers is excluded. If the device has more than one receive antenna, the channel response will have less impact as the receiver maximizes the receive signal-to-noise ratio for all subcarriers across multiple antennas. 
     At  340 , the particular AP transmits a frame to the participating AP. At  230 , the participating AP receives the frame and estimates the channel conditions. At  232 , the participating AP measures EVM of each symbol of the frame, excluding subcarriers considered to be in a channel null, using the technique described above, for example. At  236 , the participating AP sends the EVM measurement data to the controller. 
     Thus,  FIG. 9  illustrates two processes that are useful to measure ACP data and this is performed during a one phase of a training session.  FIG. 10  illustrates a process that is useful to measure EVM data and this process is performed during another phase of a training session. In other words, during a first phase, the controller sends commands to cause the particular AP to send the test transmissions on an operating channel of the particular AP for reception by the one or more participating APs and during a second phase, the controller  20  sends commands to cause the particular AP to send the test transmissions on a channel that is adjacent to the operating channel. The controller receives the EVM measurement data generated by the one or more participating wireless devices from reception of the test transmissions during the first phase and receives the ACP measurement data generated by the one or more participating APs from reception of the test transmissions during the second phase. The second phase, during which ACP measurement data is obtained, may involve the single channel approach or the wideband multichannel approach as depicted in  FIG. 9 . 
     When obtaining ACP measurements and EVM measurements, channel estimate information (e.g., as obtained at  210 ,  220  in  FIG. 9  and at  230  in  FIG. 10 ) is useful to remove the effect of strong channel fading connections. Removing the effects of the “linear” wireless channel fading conditions to train on the nonlinear power amplifier distortion allows for computing more accurate and reliable predistortion coefficients. 
     As explained above in connection with  FIGS. 4 and 5 , the cost function generator receives various inputs related to the operating conditions or parameters of the AP that undergoing training. In other words, the cost function is applied to the measurement data so as to weight the ACP measurement data and the EVM measurement data, respectively, depending on a distance of the ACP measurement data and the EVM measurement data to respective desired values and based on operating requirements of the particular AP. The current operating point of an AP may be represented by EVM and ACP for the AP. When this information is available, the cost function can be created more directly. If the EVM target is already met for the AP and the ACP target is not met, the ACP may be weighted more heavily subject to a limit to ensure that the EVM target is not lost. Conversely, if the ACP target is already met, and the EVM target is not, EVM is weighted more heavily subject to a limit to ensure that the target is not lost. If neither target is met, each weighting will depend on the distance to the target but a limit may be set on both EVM and ACP to ensure that neither drifts more than X EVM  or X ACP  from their respective targets during any updating of the predistortion coefficients. 
     The following information may be used to set EVM and ACP targets and limits during each iteration of the training sequence, and to set polynomial order and memory length of the predistorter. 
     Target Data Rate. 
     For example, the IEEE 802.11a/g/n specifications require different EVM performance for each data rate. Therefore, the controller  20  would select a certain EVM margin for each data rate. This could be used to relax the EVM target for certain data rates (that do not require low EVM) and focus the cost function on ACP reduction if required by regulatory requirements for that channel. Generally, ACP requirements do not vary between data rates. 
     Regulatory Requirements. 
     Regulatory bodies in a given jurisdiction (country) limit emissions in certain frequency bands. The proximity of these restricted bands to the operating channel of an AP can be used to weight ACP in the cost function. The closer the restricted band is to the operating channel of the device, the more heavily weighted ACP will be. 
     Operating Channel of the Device. 
     Regulations limit radio frequency (RF) emissions in certain frequency bands. The proximity of these restricted bands to the operating channel of the device can be used to weight ACP in the cost function. The closer the restricted band is to the operating channel of the device, the more heavily weighted ACP will be. If the AP&#39;s operating channel is adjacent to a restricted band edge, memory length can be added to the predistortion polynomial to minimize ACP. 
     Transmit Power. 
     Transmit power of the AP is useful when EVM and ACP cannot be estimated accurately, but relative values are used in predistortion training. The power amplifier of the AP will be well characterized with respect to EVM and ACP versus transmit power. There will be certain transmit power levels where the EVM goal is met, but the ACP goal is not or the ACP goal is met, but the EVM goal is not. 
     Operating Mode. 
     Operating mode (standard single channel or wideband) is only needed if EVM and ACP cannot be estimated accurately, but relative values are used in training. When the AP is transmitting in the wideband high-throughput mode, there will be more severe intermodulation products resulting in worse ACP due to the high correlation between the lower and upper band used for a transmission. A wideband high throughput mode may exhibit more spectral regrowth than a 20 MHz mode signal. The controller weights ACP higher in the cost function for this mode. 
     Non-Zero Memory Length Polynomial Predistorter to Minimize Spectral Regrowth to Target Side of the Band 
     The following is an example in which a non-zero memory length polynomial predistorter is used to minimize spectral regrowth to a target side of the frequency band. In polynomial predistortion, an approximation of the inverse of the amplitude and phase response of an amplifier is applied to the baseband transmit signal. This attempts to cancel out the non-linear distortion of the RF power amplifier in the transmit chain. The actual amplitude and phase response of the amplifier is typically not known. The approximation relies on indirect training of the polynomial coefficients by minimizing a cost function that performs a direct search or steepest descent algorithm to identify the target coefficients. 
     In most modes of operation, EVM is targeted for minimization. However, when a transmitting device is operating in a frequency location near a restricted band, ACP may be targeted for minimization so that the spectral regrowth of the transmitted signal does not breach the restricted band emissions. In nearly all cases, the restricted band edge is to one side of the transmitting device&#39;s (i.e., that AP&#39;s) operating frequency channel. Therefore, improving ACP is only important on that side. 
     Memory polynomials with a memory length greater than 0 have an interesting property that serves this band edge scenario well. When memory is added to the polynomial, the spectral regrowth of the transmitted signal can be asymmetrically shaped with predistortion. Therefore, a cost function that focuses on minimizing ACP to only the band edge side can lead to much greater reduction in spectral regrowth to the band edge side, while maintaining regrowth on the other side of the spectrum of the transmitted signal. 
     The memory polynomial for the band edge scenario needs to have a memory length greater than 0. The polynomial order is not important but an order greater than 3 is suitable. The EVM target is the target specified by the communication standard, e.g., IEEE 802.11, or based on an engineering design decision. The ACP to the band edge has a target based on the restricted band requirements. The ACP to the non-band edge side has an ACP target of the ACP to that side measured without predistortion if it is desired to maintain performance on the non-band edge side. Otherwise, if the non-band edge ACP is unimportant, that ACP measurement can be kept absent from the cost function by giving it a target ACP of infinity. 
     Translating between Power Levels for Predistortion 
     In a digital predistortion system that uses, for example, memory polynomial predistortion, coefficients are determined at all operational power levels. For example, if the transmit power is targeted at 20 dBm, the power level needs to be set at 20 dBm, and a training sequence needs to be performed to determine the polynomial coefficients that minimize the cost function, as explained above These coefficients only minimize the cost function when the AP is operating at 20 dBm. Using these coefficients at 18 dBm or at 22 dBm could result in worse performance than the AP would have without predistortion. However, it is possible to use coefficients determined for one power level at another power level by applying a scaling factor to the signal at the input of the predistorter. 
     The ability to translate coefficients from one power level to the next relies on the fact that each set of predistortion coefficients are related. The coefficients represent a polynomial approximation of the inverse of the amplitude and phase response of the power amplifier. For each power level, the approximation is accurate over only a certain range of input and output values. Outside that range, the approximation error widens considerably. Each set of coefficients shifts the range of input/output values for which the approximation is accurate in order to have the greatest impact on the cost function for a particular power level. Therefore, each set of coefficients contains an accurate approximation of some range of the curve. For many power levels, these accurate approximation ranges will overlap considerably. Therefore, power levels can share sets of coefficients provided that a scaling correction is applied to the input of the predistorter. This power translation scaling factor is required because the predistorter module is expecting to predistort a signal to be transmitted at one power level, but the signal is ultimately transmitted at another power level. 
     If a set of polynomial or look-up-table (LUT) coefficients A P1  were trained for power level P 1  (in dBm), that set of coefficients can be used at power level P 2 , provided that a significant range of overlap exists between their accurate approximation ranges. A power translation scaling factor scaling factor, c P1,P2  is applied to the signal input at the predistorter where c P1,P2 =10 (P2-P1)/20 . 
     The memory polynomial predistortion equation that takes into account the scaling factor to correct for a different power level is: 
               S   DPD     P   ⁢           ⁢   2       =     F   ⁡     (         c       P   ⁢           ⁢   1     ,     P   ⁢           ⁢   2         ⁢   S     ,     A     P   ⁢           ⁢   1         )                 where               F   ⁡     (     S   ,   A     )       =         a   1     ⁢   S     +       ∑     n   =   2     N     ⁢       a   n     ⁢   S   ⁢          S          n   -   1                   
S is the input to the predistorter and S DPD  is the output from the predistorter.
 
     Before translating coefficients to another power level, how well a set of coefficients translates to the target power level may be tested. One test is to see how much of the distribution of input amplitude values will fall within the accurate approximation range for the translated polynomial or LUT fit. 
     The following expression is useful for this determination: 
             ɛ   =         1       s   max     -     s   min         ⁢       ∫     s   =     s   min         s   max       ⁢       F     P   2       ⁡     (       c       P   ⁢           ⁢   1     ,     P   ⁢           ⁢   2         ⁢   s     )           -       F     P   2       ⁡     (   s   )                         F     P   n       ⁡     (   s   )       =       ∑     q   =   1     Q     ⁢       ∑     k   =   1     K     ⁢       a     q   ,   k       P   n       ⁢   s   ⁢          s          k   -   1                   
where a q,k   P     n    is the k th -order, q th  memory predistortion coefficient that was trained for an amplifier power output of P n . If ε&gt;=ε threshold , the inverse amplifier response does not overlap enough between the two power levels. If ε&gt;=ε threshold  the inverse amplifier responses overlap enough for translation to occur from either power level to any power level in between. The example above specifically deals with a predistortion function, F(s), that is memory polynomial predistortion. However, this can be expanded to any predistortion function, including LUT predistortion. If no power levels overlap enough to use the translation equation, translation between power levels can only be evaluated by trial and error.
 
     Reference is now made to  FIG. 11  for a description of a process  250  that is performed in the AP when applying predistortion to a baseband transmit signal. At  252 , the predistortion module receives the time domain baseband signal to be transmitted. At  254 , the transmit information is retrieved from memory or other control parameters, such as the transmit power level and the predistortion coefficients. An indication is stored in the AP as to the power level of the AP for which a given set of predistortion coefficients were generated. At  256 , the AP determines whether stored predistortion coefficients exist for the transmit power level to be used for the transmission (the so-called target power level). When predistortion coefficients exist for the target power level, then at  258 , those coefficients are retrieved and at  260 , the baseband transmit signal is predistorted with the predistortion module using those coefficients. 
     On the other hand, when no coefficients exist for the target power level, then at  262 , it is determined whether there are stored coefficients for a power level that is close (nearby) the target power level. For example, a predetermined range of power (dBm) may be used for the determination made at  262  as to whether there are stored coefficients for a power level that is sufficiently close to the target power level. When it is determined that there are stored coefficients for power level that is sufficiently close to the target power level, then the baseband signal is multiplied by an appropriate power translation scaling factor, as explained herein, and the coefficients for the nearby power level are used for predistorting the baseband signal after it is scaled by the scaling factor. If there are no stored coefficients for a sufficiently close power level, then predistortion is not applied to the baseband signal and the AP may send a notification to the controller  20  as indicated at  266 . 
     The techniques described herein may be embodied in various forms, where certain functions are performed in the controller and others in an AP. In terms of functions performed at the controller, a method is provided comprising: at a controller apparatus that is capable of communicating with a plurality of wireless devices, identifying a particular wireless device of the plurality of wireless devices that requires adjustment of predistortion parameters used by the particular wireless device when transmitting a signal; identifying one or more participating wireless devices to participate in a training session during which the particular wireless device makes test transmissions and the one or more participating wireless devices make measurements based on reception of the test transmissions sent by the particular wireless device; sending commands from the controller apparatus to the particular wireless device and to the one or more participating wireless devices to initiate the training session; at the controller apparatus, receiving measurement data from the one or more participating wireless devices based on reception of the test transmissions from the particular wireless device during the training session; and determining predistortion parameters for use by the particular wireless device based on the measurement data received from the one or more participating wireless devices. 
     In terms of the controller itself, an apparatus is provided comprising a network interface device configured to enable communications over a network to communicate with a plurality of wireless devices configured for wireless communication; and a processor, where the processor is configured to: identify a particular wireless device of the plurality of wireless devices that requires adjustment of predistortion parameters used by the particular wireless device when transmitting a signal; identify one or more participating wireless devices to participate in a training session during which the particular wireless device makes test transmissions and the one or more participating wireless devices make measurements based on reception of the test transmissions sent by the particular wireless device; send commands to the particular wireless device and to the one or more participating wireless devices to initiate the training session; receive measurement data from the one or more participating wireless devices based on reception of the test transmissions from the particular wireless device during the training session; and determine predistortion parameters for use by the particular wireless device based on the measurement data received from the one or more participating wireless devices. 
     These functions may also be embodied in a tangible processor readable memory medium that stores or is encoded with instructions that, when executed by a processor, cause the processor to perform the functions associated with each of the process logic  200  and  300  in a wireless access point network device  10 ( i ) and each of the process logic  400  and  500  in the controller apparatus  20 . 
     A system is likewise provided that comprises the controller referred to above, and the plurality of wireless devices, wherein each wireless device comprising a baseband signal generator that is configured to generate a baseband transmit signal, a digital predistorter module that is configured to predistort the baseband transmit signal according to the predistortion parameters to output a predistorted baseband transmit signal, an upconverter that is configured to upconvert the predistorted baseband transmit signal and a power amplifier that is configured to amplify the upconverted predistorted baseband transmit signal for transmission via an antenna, and a processor configured to process commands received from the apparatus so as to serve as the particular wireless device to be trained or a participating wireless device during the training session. 
     Further still, a wireless communication device is provided that is configured to support the predistortion training concepts described herein. The wireless communication device comprises a baseband signal generator that is configured to generate a baseband transmit signal; a digital predistorter module that is configured to predistort the baseband transmit signal according to the predistortion parameters to output a predistorted baseband transmit signal; an upconverter that is configured to upconvert the predistorted baseband transmit signal to produce an upconverted predistorted baseband transmit signal; a power amplifier that is configured to amplify the upconverted predistorted baseband transmit signal for transmission via an antenna; a network interface device configured to enable communications over a network; and a processor configured to process commands received via the network from a controller so as to train the predistortion parameters used by the digital predistortion module during a training session initiated by the controller or to participate and make measurements with respect to another wireless communication device during a training session. 
     The above description is by way of example only.