# Patent

## Title
System and methods for digitally correcting a non-linear element using a digital filter for predistortion

## Abstract

System and methods for a digital linearization of a non linear element. Digital predistortion methods and circuitry for linearizing a non-linear element that address long or “memory” effects and shorter duration effects, these two predistortion functions are operated together in an adaptive fashion with the non-linear element to provide a highly linear system. A short duration predistortion block comprises an Nth order polynomial filter coupled to a programmable linear equalizer. The Nth order filter includes programmable non-linearities and variable delay taps. The Nth order filter may be configured to implement a non-sequential or a sequential ordered polynomial. The equalizer may, in a preferred embodiment, include circuitry for equalizing imbalances between real and complex signal values. The Nth order filter may implement a compound Volterra filter. The combined system of the predistortion circuitry and a non-linear element has a linear input-output signal response. Methods for initializing, parameterizing and adapting the system are disclosed.

## Background
This application is a continuation-in-part of U.S. patent application Ser. No. 11/607,797, filed Dec. 1, 2006, now U.S. Pat. No. 7,729,446 entitled “System and Method for Digitally Correcting a Non-Linear Element Using a Multiply Partitioned Architecture for Predistortion,” U.S. patent application Ser. No. 11/607,450, filed Dec. 1, 2006, entitled “System and Method for Digitally Correcting a Non-Linear Element” and U.S. patent application Ser. No. 11/635,903, filed Dec. 8, 2006, entitled “System and Method for Computing Parameters for a Digital Predistorter,” which applications are incorporated herein by reference.


CROSS-REFERENCE TO RELATED APPLICATIONS
This application relates to the following co-pending and commonly assigned patent applications: U.S. application Ser. No. 11/513,735, filed Aug. 31, 2006, entitled “System and Method for Preprocessing a Signal for Translation by a Power Amplifier” and U.S. application Ser. No. 11/388,356, filed Mar. 24, 2006, entitled “Apparatus and Method Providing Additional Response for an Error Correcting Device,” which applications are incorporated herein by reference.
TECHNICAL FIELD
The present invention relates generally to a system and methods for digitally linearizing non-linear elements. The system and methods are particularly applicable to high power amplifiers, and more particularly system and methods are disclosed for linearizing the response of a power amplifier for a communications system, for example, for use in a base station in a cellular telephone system.
BACKGROUND
Generally, power amplifiers as are used in the communication art exhibit non-linear output characteristics, particularly as the transmit power level is increased in response to the input signal. Non-linear behavior results in distortion in the output signal that is undesirable, and may cause the communications system to fail to meet the required performance metrics as set by standards organizations or the governing regulatory agencies. However, as is well known, any power transistor driving a load will act in a non-linear fashion when operating in the transistor saturation region, that is, the linear relationship of the voltage input-voltage output characteristic is only maintained in the linear operation region of the transistor. As the input signal power is increased to and beyond the saturation point of the driving transistors in the power amplifier, the response of the transistor(s) does not change linearly and the power output characteristic therefore inherently becomes non-linear.
An important application for non-linear elements, for example, these power amplifiers, in the current art are in the area of wideband cellular communications. A typical application for a power amplifier is a forward or transmitter function for a cellular telephone base station (of course, the base station also receives, however the receiver function is not addressed here). Communication is accomplished using several well known standard protocols for voice and/or data transmission, for example WiMax, WiBro (OFBM-A), CDMA, WCDMA, TDMA, GSM, EDGE, 3G and the like. These applications require and will continue to require increasing amounts of data to be transmitted over the cellular system. Further the communications units may be devices other than cell phones, including wireless portable email terminals, computers both fixed and portable such as laptops and palm computers, fixed location, handheld, and vehicle mounted telephone equipment, personal internet browsing devices, even video equipment and other communications or data receiver or transmitter applications. In these applications and other applications, RF transmit power is used and applied to a power amplifier with significant power consumption, so that distortion may occur when the input signal and the power applied take the power amplifier into operating regions where the output signal is not a linear function of the input signal.
FIG. 1 depicts a simplified schematic of the RF transmit portion (sometimes called the “analog” portion) for such a prior art base station application. (Only a single RF transmit function and one antenna is shown, however, many may be used). In FIG. 1, digital baseband transmit data VFF is input to a digital to analog converter (DAC) 3, which outputs analog data for transmission to a frequency converter 5 that is clocked by a local oscillator 15. The frequency converted analog signal is next presented to a power amplifier 11 using a signal attenuator 2, and the resulting analog amplified output signal Vout is presented to an antenna 14 for transmission. A feedback path then returns an observed version of the analog transmitted signal Vout, labeled VFB, for observation through a coupler 13. This is accomplished, for example, by coupling the antenna signal to a second frequency converter 17 through another attenuator 4. Frequency converter 17 is analogous to frequency converter 5 and is likewise clocked by local oscillator 15 (alternatively more than one oscillator could be used), the converted analog observation signal is then processed by analog-to-digital converter 19 and digital signals VFB are made available for observation, and for use in compensation of the transmit signal using feedback techniques. (Note that the voltage VFB is not the voltage received from other transmitters at the antenna, these are sent along a different path to an RF receiver, which is not addressed here).
During operation of such an RF transmit function, it is known that as for any power amplifier where a power transistor drives a load based on an input signal, if the output signal to be generated is such that the transistor enters its saturation region, the output becomes non-linear; that is the output no longer varies linearly with the input signal. This effect is described as non-linear distortion in the output signal.
One prior art approach to reducing the amount of “backoff” required is to modify the input signal prior to applying it to the power amplifier by applying “crest factor reduction” or CFR. When CFR or peak amplitude reduction is applied to a signal, large amplitude peaks are identified in the input signal, a compensating signal with an opposing crest is created and then this inverted signal is combined with the input signal so as to remove only the largest peaks in the input signal, and so reduce the crest factor, i.e. reduce the PAR, prior to presenting the signal to the power amplifier for transmission. Processors specifically designed to provide the CFR function are commercially available, for example Texas Instruments, Inc. supplies integrated circuits designated as part no. GC1115 particularly directed to implementing CFR in communications systems. The GC1115 is a crest factor reduction preprocessor that receives digital upconverted input signals as I (in phase) and Q (quadrature phase) form digital signals, for example, and outputs a modified I,Q, signal with the peaks removed for transmission with reduced PAR.
Other known approaches are to “linearize” the power amplifier by placing a preprocessing element between the input signal and the power amplifier. Prior art analog linearization approaches include the use of a non-linear, inverting amplifier in a feed forward architecture which is designed to produce a signal output that has distortion. This signal has distortion that is in direct opposition to the distortion observed in the power amplifier for a given input signal, the inverting distortion is amplified by a second amplifier, and the output is subtractively combined with the output of the power amplifier prior to presenting the signal to the antenna. In this manner, the overall response of the amplifier system as observed at the transmit antenna remains linear. Implementing such a system can be costly, and in fact it may not be possible to build a practical amplifier to achieve the desired performance goals.
As an alternative approach to linearizing power amplifiers, digital predistortion circuits (“DPD”) are also known in the prior art and are increasingly used. An off the shelf predistortion circuit for use in linearizing an amplifier is sold by Intersil Corporation, designated Intersil part number ISL 5239. The digital predistorters of the prior art typically attempt to create an inverse distortion to that distortion expected or known in the power amplifier, and this inverse distortion is applied on the input signal prior to presenting the signal to the power amplifier. Thus the two amplifier gain stages are operated in a cascade, and the predistorter amplifier provides an “inverse” function to compensate for the distortion expected in the power amplifier. The predistorter and the amplifier are coupled in cascade to attempt to compensate the overall signal characteristic, and to cause it to be linear over the operating range of the power amplifier.
One disadvantage of the digital predistortion approaches of the prior art is that many current approaches assume the power amplifier is a “memoryless” non-linear amplifier. A memoryless approach begins with the premise that the output of the power amplifier at a given time depends solely on the input signal at that given time, and not on other effects. This may be considered a “0th” order polynomial representation filter. The prior art approach assumes the non-linear element distortion is simple, that is AM-AM (amplitude) and AM-PM (phase) distortion. However, in practice it is known that a power amplifier has significant “memory effect” performance characteristics. Frequency “memory effects” are due to variations in the frequency spacing of the input signals and may be characterized by shorter time constants. The temperature of the amplifier at an instant in time may in fact be partly determined by a thermal effect sometimes referred to as “self heating” that occurs during periods of peak power transmission, the temperature also depends on the environment which may include climate effects. The previous signal transmissions and the ambient operating environment therefore create various short and long term memory effects; thus an effective amplifier linearizing method and system must address these long term or memory effects, in addition to the memoryless effects.
FIG. 2 depicts one typical prior art approach to predistortion for a power amplifier. In FIG. 2, power amplifier 25 is depicted as a circuit element, the digital to analog converter, driving transistors, and in the feedback path, the required analog to digital converter, as are shown in FIG. 1 are not depicted in full in FIG. 2, but are included in the box enumerated 25 including the power amplifier denoted “PA”.
Digital predistorter 21 modifies the input signal VIN before it is presented to the power amplifier 25 in a manner intended to invert the distortion that will occur in the power amplifier, and therefore, linearize the output of the overall system. An input signal sequence x(k) is received and is coupled to magnitude squared detecting unit 27 and a random access memory block 33 labeled RAM1. An adaptive device 29 is a programmable nonlinearity that receives the output of the magnitude detecting device 27. Adaptive device 29 may be implemented as a look up table (LUT) or alternatively, a more complex polynomial expression unit (POLY) or other method may be used.
The adaptive device 29 provides a predistortion signal to the multiplier 31. The node 31 uses input signal x (k) and the predistortion signal to present a corrected signal VFF to the power amplifier PA, which presents signal VOUT to the antenna or other output device. Note that in this predistortion scheme, it is observed that the predistorter can be made rotationally invariant, thus the adaptive circuit 29 only needs to receive the magnitude squared data of the input signal to affect the signals in the desired manner.
A feedback path provides a feedback form of output signal VOUT (appropriately frequency converted and following analog to digital conversion as shown in FIG. 2,) VFB, to a second random access memory device 35 labeled RAM2. Memory storage devices RAM1, RAM2 are coupled with a processing unit 37 labeled SP which may be, for example, a commercially available digital signal processor (DSP). Other processors such as fixed and floating point processors, reduced instruction set (RISC) machines, multiprocessor devices, and programmable microprocessors may be provided. Signal processor 37 uses information relating to the input signal VIN from the memory device RAM1 and correction information relating to the output signal VOUT from the memory device RAM2, and based on difference determined between the two captured stored signals, provides a correction signal to adaptive circuit 29. The correction signal relates to differences between the observed output signal VOUT and input signal VIN, and is based upon the assumption that ideally, the signals VOUT and VIN should be substantially equal except for scaling (the scaling being the desired gain provided by the power amplifier PA) and other intended differences. Undesired differences detected in the comparison between the input signal and the observed output signals are assumed to have been introduced by the predistorting device 21 or the PA 25; these are then sought to be cancelled by the correcting signal.
FIG. 3 is a graphical depiction of the VOUT-VIN curves of the prior art circuits of FIG. 2. The ideal or linear response is represented by the line labeled IDEAL in FIG. 3, the dashed line. The response for a typical power amplifier PA is the solid curved line labeled PA. The possible digital predistortion curve for a predistorting signal is the solid line labeled DPD. The combined response curve that can be expected is the line labeled DPD+PA in FIG. 3.
In FIG. 3, it can be seen that when the output voltage VOUT (vertical or Y axis) exceeds the voltage where the power amplifier transistors are saturated (VSAT) the response will become increasingly non-linear. However, even at voltages below that level, the operation of the power amplifier alone is non-ideal as can be seen from the curves, the response moves away from the linear, IDEAL line at lower operating voltages. However, in the area of the graph labeled “Feasible Operation” it is possible to linearize the amplifier (in a simple case, such as illustrated here) using a digital predistortion function that predistorts the signal, this is seen by comparing the curve labeled DPD+PA with the IDEAL curve, in the “Feasible Operation” region it is the same as the line labeled IDEAL, or in effect, the amplifier is linearized. In the area labeled “Infeasible Operation”, it is not possible to correct the distortion. Thus the use of CFR techniques along with a digital predistortion scheme may be important in order to fully linearize a non-linear element in a particular application, otherwise even with a predistortion function, the system may operate in a non-linear region.
The design approach of a system incorporating a prior art predistortion circuit can be best understood by considering the system as two cascaded gain stages. This arrangement is depicted simply as two blocks in FIG. 4. Here the voltage characteristic of the digital predistorter 21 is depicted having a first voltage transfer characteristic, and the voltage characteristic of power amplifier 25 is depicted having a second voltage transfer characteristic exhibiting the typical non-linear characteristic of a power amplifier.
The design goal of a digital predistortion system is to create a combined linear input-output gain of G for the system, so that the gain F of the predistorter satisfies the function of:

F(H(VIN))=G(VIN)=VOUT 

where H is the gain of the power amplifier, F is the gain of the predistorter, and G is the ideal linear gain of the cascaded system. Most of the digital predistortion effort expended is to increase the efficiency of the high power amplifier, and reduce the required size of the power amplifier. By linearizing the response, the predistortion approach allows the power amplifier to operate at higher power levels (reduces the need for backoff) and increases the efficiency, while lowering the size of the power amplifier required. Both of these effects (higher efficiency and lowered size) reduce cost.

With reference now to FIG. 5, there is shown an exemplary basestation system 50 as is known in the prior art for the forward transmission path for existing cellular systems. The power amplifiers in such a system are known to be non-linear elements.
In FIG. 5, network switch 51 is depicted which receives information from a networked system, for example, a typical network fabric in a conventional wired or land line telephony system. A plurality of base band processors 55 are coupled in a parallel fashion to receive and transmit information to and from the network switch 51. Element 57 is a baseband switch distribution block which combines (depicted only in the forward transmit direction, although received signals are also processed) baseband data for the individual communications channels for each baseband processor 55. Radio Card/RFM module 61 includes a formatter, forward transmit processor, data converter for transmission TX RF, and on the receiver side, data converter for received signals RX RF, a digital down converter which may be implemented, as shown here, with Texas Instruments part no. GC5016 programmable up/down converter or an equivalent, and a control processor 59.
Radio Card/RFM 61 includes processing circuitry for processing the baseband signals and in the prior art may incorporate digital predistortion circuitry. Power amplifier 41, as shown in FIG. 1, is a transmit power amplifier which is the amplification element to be linearized. Duplexer 65 will pass the signals to be transmitted to the antenna 71 and separates the received signals and passes those to tower mounted amplifier (TMA) modulator 67, which is coupled to the receive input of RFM 61. Radio Card/RFM 61 is shown as a single instantiation in FIG. 5; however in a practical system there may be many such cards. Power amplifier 41 is simplified for illustration and includes the amplifier and RF transmit and receive circuitry of FIG. 1 for the transmission of analog signals output at antenna 71. Duplexer TX/RX filter 65 combines and separates the transmitted and received signals. TMA block 67 is a tower mounted amplifier that performs the function of amplifying the received signals from the antenna 71. It is recognized that many other elements such as noise filters, bandpass filters, upconverters and downconverters, may be used as is known in the art.
Downconverter GC5016 is a commercially available digital integrated circuit available from Texas Instruments, Inc. and other similar circuits are available from other vendors. This integrated circuit receives digital data from the analog to digital converter in the power amplifier and provides a conversion to a lower frequency, and decimation of the signal required to use the received signal in the baseband processors.
In operation, the system of FIG. 5 receives signals from the Net Switch 51, these are individually processed by the baseband processors 55 as channels, these are then combined for transmit messages, (or separated for receive messages), by the baseband switch/distributor 57, and the signals are provided to one of the radio cards/RFM 61. The signals for forward transmission are then provided to the transmit processor in digital form, predistortion and linearizing steps are performed, the data is converted to analog format, up converted and once in the appropriate form, provided to the power amplifier 41 and driven out as a transmission signal on antenna 71. Received signals at the antenna are separated from the transmit signals in block 65, the duplexer, attenuated at TMA block 67 and provided to the analog to digital data converter RX RF, the digital data signals are then down converted by GC5016 integrated circuit or another similar downconverter, and provided through the BP IF/format block to the baseband switch 57, and then separated into channels for processing by the base band processors 55, and the resulting data is placed back in the switched network via switch 51.
Thus, there is a continuing need in the art for a system and method that provides efficient adaptive linearization of a non-linear element, such as a power amplifier for RF transmission. The system and methods should be realizable using commercially available technology. Embodiments and methods of the present invention described below address this need.
SUMMARY OF THE INVENTION
These and other problems are generally solved or circumvented, and technical advantages are generally achieved, by preferred embodiments and methods of the present invention. Preferred embodiments of the present invention implement digital predistortion circuitry including a memoryless or short duration memory digital predistortion circuit or SDPD, a feedback observation function which captures a version of the output signal from a non-linear element such as a power amplifier, an additional adaptive digital predistortion circuit or long DPD that addresses memory or longer duration effects, and preferably including a QR decomposition or QRD function which synthesizes a compensating error signal in response to an input signal, and in preferred embodiments, the system of the invention combines these signals into a predistorted digital signal which is then presented to the non-linear power amplifier for transmission. By combining these various predistortion and compensation functions to predistort the signal, the system achieves effective linearization of the power amplifier.
By approaching the design solution using sequential blocks as the partitions or steps, the combination of the non-linear element, for example the power amplifier and the short memory digital predistortion function may be treated as a “black box” forming a second non-linear element, which may then be further linearized by an additional, adaptive predistorter function that is directed to longer term or memory effects, and by the QR decomposition function, preferred embodiments of the invention advantageously partition the various processing steps down into multiple, real time executable steps that may be implemented in current integrated circuit technology and is implemented using commercially available programmable signal processors for control.
The methods of the present invention advantageously recognize that in real time operating environments, it may be impossible and infeasible to construct an accurate “inverse” model of the system for use in a predistortion scheme that can operate at real time, such as used by prior art systems and methods. In contrast, the approach of the preferred embodiments of the present invention is to model the various pieces of the system in software and to adapt the models to accurately synthesize the error expected from various points in the system, and to use the accurate synthesized error to precondition the signal prior to amplification by the non-linear element. This approach eliminates the distortion in the output. In contrast to the prior art “system inverse” approach of the prior predistortion schemes, a “system identification” approach is used. The use of the software models to initialize and then adapt the various predistortion blocks during operations allows the on-going adaptation to occur “offline”, while the system concurrently continues to operate, therefore avoiding interruption of service for recalibration or adaptation, as in certain prior art schemes.
In accordance with preferred methods of the invention, the system uses a QRD function to synthesize the expected error for a given input state, this is a hardware adaptation useful for compensating for very long duration effects; this is then combined with the output of an adaptive long memory digital predistortion or long DPD block for other long effects. In one non-limiting example preferred implementation, these long or memory effects are of duration of greater than 100 nanoseconds and up to about one microsecond. This combined signal is then preferably applied to another adaptive short DPD block which adapts for distortion effects of less duration than the longer or memory effects. In one non-limiting example implementation, these shorter duration effects are of less than 100 nanoseconds in duration. Finally this adaptively modified and predistorted signal is presented to the non-linear power amplifier for transmission. The system of the invention is a closed system, that is, feedback observation of the output of the non-linear element is utilized to adapt the system. A delayed version of the input is compared to the actual amplifier output as a means of generating the actual error, however in contrast to the prior art where an inverted power amplifier model was created, the method of the invention models the error and adaptively updates the model, this error is then synthesized and applied to the signal in advance to the short digital predistortion. Each of the several predistortion functions of the invention is therefore broken into pieces that may be practically implemented, and real time calculations may be performed, either in dedicated hardware, or in software running on a commercial processor.
The novel predistortion functions and methods disclosed may also be each applied as an independent digital predistortion approach, in alternative preferred embodiments of the invention, and these embodiments also have advantages over the predistortion approaches of the prior art. The longer duration predistortion block described may be used alone to linearize a non-linear element, alternatively the shorter duration predistortion block of another preferred embodiment may be used independently to linearize a non-linear element. In the most preferred embodiments, these blocks are combined together in a preferred predistortion system or circuit. In yet another preferred embodiment these blocks are formed in a single integrated circuit to perform predistortion for linearizing a non-linear element, such as, in one example, a power amplifier.
Software models of the non-linear element, the short memory digital predistortion block, and the long digital predistortion block are developed and methods to synthesize the expected error is used to adaptively modify the signal through predistortion before amplification, and so to linearize the overall response. The use of the software models advantageously allows “offline” updating of the system, that is, the models may be periodically updated and adaptive coefficients generated for the various adaptive predistortion blocks, even while the system continues concurrently to operate in real time.
In accordance with a preferred embodiment of the present invention, a system and method for linearizing a power amplifier for a transmit function is to provide an additional configurable predistortion filter to address the long duration or memory distortion effects, in addition to the use of a novel short duration digital predistorter function to address the short term distortion effects. Preferably, the filters of the invention implements filters in the form of FIR filters using FFT, IFFT, DFT or DCT transform computation techniques. Alternatively, filters in the form of Kautz or Laguerre filters may be used. These embodiments are FIR/IIR filters where the taps are weighted and summed to yield desired outputs.
In accordance with another preferred embodiment of the present invention, a system for linearizing a power amplifier comprises first receiving baseband signals to be transmitted, these are input into a short duration digital predistortion function; the output of this first predistortion function (which may be dedicated circuitry, software for execution on a programmable signal processor, or a combination of these) is combined with a delayed version of the input signal, and an error signal is developed. Simultaneously, the input signals are processed and provided to an adaptive predistortion function that compensates for longer term or “memory” effects, which may also be implemented as dedicated circuitry, programmable circuitry executing software, or a combination of these, this longer function also receives as a feedback input a signal representing the error at the output of the power amplifier which is used to provide real time correction for an adaptive filtering function.
In another preferred embodiment, a predistortion circuit for linearizing the response of a non-linear element by compensating for memory effects causing distortion is provided, comprising a magnitude squared block for receiving baseband input signals to be transmitted to the non-linear element, the magnitude squared block outputting a magnitude squared value; a plurality of parallel coupled memory blocks each further comprising a programmable nonlinearity, programmable delay elements, digital filters, signal multipliers and summers with multiplexers for configuring each of the blocks responsive to one or more control signals coupled to the multiplexers; a first summer for combining the outputs of the parallel coupled memory blocks; and, a second summer for combining the output of the first summer with the baseband input signal having an output for transmitting the predistorted signals to the non-linear element.
In another preferred embodiment for the predistortion circuit described above, the plurality of parallel coupled memory blocks is each arranged so that a programmable nonlinearity receives the output of the magnitude squared data, the output of the programmable nonlinearity is coupled to a digital filter, and the output of the digital filter is coupled to the multiplexers for configuring the respective parallel coupled memory block. In a further preferred embodiment, each of the plurality of parallel coupled memory blocks further comprises a second programmable nonlinearity coupled to a delay element that receives the magnitude squared data, and the second programmable nonlinearity has an output coupled to a signal multiplier that is further coupled to a multiplexer.
In an alternative preferred embodiment, the predistortion circuit is coupled to form a filter having a nonlinearity coupled to the baseband input signal and having a linearity coupled to the nonlinearity in any order, and outputting data from the filter for transmittal to the non-linear element. In a further preferred embodiment the predistortion circuit forms a Hammerstein filter.
In an additional preferred embodiment, for the predistortion circuit, pairs of the parallel coupled memory blocks are configured together in a parallel cascade arrangement to form a compound Volterra filter. In another preferred embodiment, the parallel memory blocks are coupled to form a predistortion circuit that performs a fast Fourier transform; a convolution of the transformed outputs, parallel inverse fast Fourier transforms of the convolution results and an output signal is formed by summing the outputs of the inverse fast Fourier transform blocks together with the baseband input signals. This output is a preprocessed or predistorted version of the baseband input signals for transmission to the non-linear element.
In another preferred embodiment, an integrated circuit for preprocessing signals for transmission by a non-linear element to linearize the response is provided, comprising a predistortion circuit coupled to receive baseband signals and generating output signals for transmission to the non-linear element to compensate for memory effects that are known to cause distortion in the non-linear element, the predistortion circuit comprising a magnitude squared circuit for outputting a magnitude squared output, a plurality of parallel memory blocks coupled to receive the magnitude squared output and each comprising a programmable nonlinearity, variable delay elements, a digital filter, at least one signal combiner and at least one multiplexer responsive to a control signal to configure the parallel blocks, and a summer coupled to sum the outputs of the parallel memory blocks and to generate the output. A feedback path having an input to receive data from the output of the non-linear element is provided coupled to a first capture buffer to capture data from the feedback path and a second capture buffer is coupled to capture the baseband signals. Inputs for coupling to a signal processor operable for providing parameters adapting the programmable nonlinearities and the variable delay elements within the parallel coupled memory blocks are provided. The integrated circuit is controlled by the signal processor to linearize the output response of the combination of the non-linear element and the predistortion integrated circuit, the signal processor analyzing the stored data in the first and second capture buffers.
In an additional preferred embodiment, the integrated circuit has the parallel memory blocks coupled to perform a parallel fast Fourier transform on the received baseband data, perform a convolution on the transformed data, and perform an inverse fast Fourier transform in parallel, and sums the outputs of the parallel coupled memory blocks with the input baseband signals to adaptively predistort the baseband signals, responsive to parameterization data received from the signal processor.
Yet another preferred embodiment of the invention is a circuit for predistortion of a signal to be transmitted to the non-linear element, comprising an input for receiving baseband signals to be transmitted to the non-linear element, a digital predistorter adaptively modifying the baseband signals to compensate for distortion in the non-linear element and generating an output, the digital predistorter comprising an Nth order digital filter coupled to a linear equalizer, wherein N is greater than 0; a feedback path input for receiving an output of the non-linear element as feedback signals; a first capture buffer coupled to the feedback path input operable to capture and store feedback signal samples for observation; a second capture buffer coupled to capture and store delayed signal samples collected from the input for observation; and an input for receiving parametric values to be stored within the digital predistorter by an external signal processor in response to analysis of captured signals stored within the first and second capture buffers.
In a preferred alternative embodiment, the digital predistorter of the circuit described in the previous embodiment further comprises a magnitude squared circuit that generates a magnitude squared output; m parallel coupled programmable nonlinearities coupled in series with m variable delay elements that delay the magnitude squared data; tapped variable delays coupled to the input; multipliers receiving the output of the m parallel programmable nonlinearities and the output of the tapped variable delays, outputting M multiplier outputs; a summer receiving the M multiplier outputs and outputting the sum of the multiplier outputs; and an equalizer comprising a programmable multiple tap FIR filter with adaptive coefficients coupled to the summer and generating the output of the digital predistorter.
In yet another preferred embodiment, the predistorter circuit in the previous embodiments further each uses, for the programmable nonlinearities, an interpolating look up table that stores non-linear programmable table entries determined by the magnitude squared data and that further stores programmable interpolation values, and outputting a programmable interpolated value between table entries finally determined by the least significant bits of the input.
In yet another preferred embodiment of the invention, the equalizer of the prior embodiments comprises four parallel FIR filter stages coupled to receive real and complex signal inputs; a pair of summers each coupled to combine the outputs of two of the four parallel filter stages; the summers each combining cross terms of the real and complex filter stages and the equalizer having programmable weights to equalize imbalances in the real and complex signals. In yet another preferred embodiment, the predistortion circuit further includes an embodiment where the Nth order FIR filter has variable delay taps. The taps may be non-sequential or sequential.
In an alternative preferred embodiment, an integrated circuit for predistorting signals for transmission by a non-linear element is provided comprising an input for receiving baseband signals to be transmitted; a predistortion circuit coupled to the input and generating output signals operable to compensate for short term effects, for example effects of less than about 100 nanoseconds, that are known to cause distortion in the non-linear element, the predistortion block comprising an Nth order digital filter coupled to a linear equalizer, wherein N is greater than 0; a feedback path input to receive feedback signals from the output of the non-linear element; a first capture buffer coupled to capture and store signals from the feedback path input; a second capture buffer coupled to capture and store baseband signals from a delayed path coupled to the input; and inputs for coupling to an external signal processor that is operable for providing parameters adapting the predistortion circuit, responsive to analysis of stored signals in the first and second capture buffers. The effects that are compensated for may include “memory effects” up to the maximum tolerable latency limits for a given industry standard.
In another preferred embodiment, the integrated circuit includes the predistortion circuit comprising a magnitude squared circuit coupled to the input and outputting a magnitude squared output; M parallel programmable nonlinearities coupled in series with variable delay elements receiving the magnitude squared output; a plurality of variable delay taps coupled to the input; M multipliers receiving the output of the M parallel programmable nonlinearities and the output of the variable delay taps, outputting M multiplier outputs; a summer receiving the multiplier outputs and outputting the sum of the multiplier outputs; and an equalizer comprising a programmable multiple tap FIR filter with adaptive or fixed coefficients coupled to the output of the summer, generating the output signals of the digital predistortion block for transmission to the non-linear element.
In yet another preferred embodiment, a system for predistorting a signal for transmission to a non-linear element to linearize the response of the non-linear element is provided, comprising a first digital predistortion block coupled to the input and generating an output for adaptively modifying the received baseband signals to compensate for distortion effects of a first duration in the non-linear element, the first digital predistortion block comprising a plurality of parallel coupled memory blocks, each of the parallel coupled memory blocks comprising at least one programmable nonlinearity, at least one signal multiplier and at least one summer; a second digital predistortion block coupled to the first digital predistortion block and generating an output for transmission to the non-linear element, for further adaptively compensating for distortion effects in the non-linear element of a second duration shorter than the first duration, the second digital predistortion block comprising a generalized Nth order digital filter coupled to a linear equalizer, wherein N is greater than 0; a feedback path is provided as an input for receiving an output of the non-linear element as feedback signals; a first capture buffer is coupled to the feedback path and operable to capture and store signal samples collected from the feedback path input for observation; and inputs are provided for receiving parametric values to be stored in the first predistortion block and the second predistortion block by an external processor responsive to analysis of signals stored in the first capture buffer.
In yet another preferred embodiment, an integrated circuit for linearizing a non-linear element by predistortion of a signal is provided, comprising an input for receiving baseband signals, a first digital predistortion circuit coupled to the input and generating an output for adaptively modifying received baseband signals to compensate for distortion effects of a first duration, the first digital predistortion block comprising a plurality of parallel coupled memory blocks, each of the parallel coupled memory blocks comprising at least one programmable nonlinearity, at least one signal multiplier and at least one summer; and comprising a second digital predistortion circuit coupled to the first digital predistortion circuit and generating an output for transmission to the non-linear element, for further adaptively compensating for distortion effects in the non-linear element of a second duration shorter than the first duration, the second digital predistortion block comprising a generalized Nth order digital filter coupled to a linear equalizer, wherein N is greater than 0; and a QRD circuit coupled to the input and operable to output an adaptive signal to be combined with the output of the first predistortion block, the QRD function compensating for distortion in the non-linear element of a third duration, the third duration being greater than the first duration. A feedback path input for receiving an output of the non-linear element as feedback signals is provided, a first capture buffer is coupled to the feedback path to capture and store signal samples collected from the feedback path; and inputs are provided for receiving parametric values to be stored in the first predistortion block and the second predistortion block by an external processor, responsive to analysis of signals stored in the first capture buffer.
Although certain preferred embodiments are described as implemented in a digital circuit such as an integrated circuit, with certain programmable features being implemented in software running on a control processor such as a RISC or DSP processor, alternative approaches for implementation are contemplated including dedicated hardware such as dedicated RF circuitry, analog hardware, and dedicated hardware in place of programmable processors, to implement the novel functions described.
An advantage of preferred embodiments of the present invention is that the functions are partitioned into pieces that operate in an independent fashion, such that real time execution of the adaptive filtering, long duration or memory digital predistortion, QRD, short term or “memoryless” predistortion, and combining functions is possible using existing semiconductor integrated circuits for real time execution of the algorithms.
Methods for providing software models used for initializing and adapting the parameters of an adaptive digital predistortion system controlled by an external signal processor are provided. A preferred method for adapting a predistortion processor is providing the predistortion processor comprising a first digital predistortion block coupled to an input receiving baseband signals for adaptively modifying the received baseband signals to compensate for distortion effects of a first duration in the non-linear element, the first digital predistortion block comprising a plurality of parallel coupled memory blocks, each of the plurality of parallel coupled memory blocks comprising at least one programmable nonlinearity, at least one digital filter, at least one signal multiplier and at least one summer; and providing a second digital predistortion block coupled to the first digital predistortion block and generating an output for transmission to the non-linear element, for further adaptively compensating for distortion effects in the non-linear element of a second duration shorter than the first duration, the second digital predistortion block comprising a generalized Nth order digital filter having programmable parameters coupled to a linear equalizer, wherein N is greater than 0; and providing a feedback path input for receiving an output of the non-linear element as feedback signals.
This preferred method continues by coupling the feedback signals to a first capture buffer operable to capture and store signal samples collected from the feedback path input for observation; then observing the stored feedback signals from the predistortion processor and the baseband input signals; then defining a first software model for the non-linear element having parameters, and adapting the parameters within the first software model until an error between the first software model and the non-linear element is minimized; defining a second software model of the second digital predistortion block having parameters and adapting the parameters of the second software model until an error between the second software model and the second digital predistortion block is minimized; defining a third software model of the first digital predistortion block having parameters and adapting the parameters of the third software model until an error between the third software model and the first digital predistortion block is minimized; transferring the adapted parameters for the third software model of the first digital predistortion block to the programmable nonlinearities within the first digital predistortion block; transferring the adapted parameters within the second software model of the second digital predistortion block to the programmable parameters within the second predistortion block. The preferred method continues by processing baseband signals input to the predistortion processor for transmission to the non-linear element by performing signal predistortion using the parameterized first digital predistortion block and using signal predistortion in the parameterized second predistortion block to further modify the signals prior to transmission of the signals to the non-linear element.
In an another preferred method, the method above continues, by periodically again adapting the parameters of the first software model, the second software model, and the third software model, to minimize an error determined by comparing and observing the response of the software models to signals and observing the response of the first predistortion block, the second predistortion block and the non-linear element to the same signals; and by updating the parameters within the first predistortion block and the second predistortion block.
Preferred methods for developing the software models include modeling the blocks as a nonlinearity coupled with a linearity, estimating an initial linearity, estimating an initial nonlinearity, calculating a minimum error solution to the model linearity and nonlinearity, and initializing the parameters for the software models so obtained. In another preferred method, the modeling of the nonlinearities uses an extended Kalman filter to solve the models. In yet another preferred method, the use of an unscented Kalman filter for solving the nonlinearities in the models is described.
A further advantage of a preferred embodiment of the present invention is that it may be combined with additional known signal conditioning approaches such as crest factor reduction, Farrow, and other known approaches to reduce the PAR or otherwise condition the input signal, prior to inputting the signals to the transmit digital predistortion circuitry.
Another advantage of a preferred embodiment of the present invention is that existing basestation or other non-linear systems such as power amplifiers may incorporate the additional adaptive digital predistortion functionality allowing upgrades to be made to existing equipment to add the advantageous benefits of the use of the invention by replacing the existing “transmit processors” with the system and software of the invention.
Other advantages and benefits will be described in the detailed description that follows.



BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
FIG. 1 depicts a prior art RF transmit function incorporating a power amplifier and an antenna;
FIG. 2 illustrates in block diagram form the functions of a prior art predistortion circuit used with a power amplifier;
FIG. 3 depicts voltage input voltage output characteristics for the prior art predistorter and the non-linear element in a typical application;
FIG. 4 is a diagram illustrating the effect of predistortion in a typical system incorporating a digital predistortion processor;
FIG. 5 is a block diagram illustrating the major functional blocks used in a prior art transmit and receive system for a baseband cellular station;
FIG. 6 is a block diagram of a preferred embodiment of the invention, an exemplary novel transmit processor function useful in systems such as depicted in FIG. 5;
FIG. 7 is a block diagram depicting the functions of the short memory DPD block of a preferred embodiment of the transmit processor of FIG. 6;
FIG. 8 is a block diagram of a preferred embodiment of an equalizer that may preferably be incorporated into the novel transmit processor of FIG. 6, and in particular into the short DPD block of FIG. 7;
FIG. 9 is a block diagram depicting the long memory DPD functions of a preferred embodiment of the transmit processor of FIG. 6;
FIG. 10 is a block diagram of a preferred embodiment of the combined mode memory block, several of which are used together in the long memory DPD block of FIG. 9;
FIG. 11 depicts a block diagram illustrating the combined mode memory block of FIG. 10 and depicts a table showing control input values for different possible modes of operation;
FIG. 12 is a graphical representation of the combined mode memory block used in the long DPD block of FIG. 9 when configured in a first preferred mode, the normal mode;
FIG. 13 is a graphical representation of the combined mode memory block used in the long DPD block of FIG. 9 when configured in another preferred mode, the parallel mode;
FIG. 14 is a graphical representation of the combined mode memory block used in the long DPD block of FIG. 9 when used in yet another preferred mode, the compound Volterra mode;
FIG. 15 is a block diagram illustrating an exemplary implementation of a programmable nonlinearity based on a look up table as used in the various preferred embodiments of the invention;
FIG. 16 is a graph illustrating an example of the operation of a programmable nonlinearity implemented as an interpolating look up table as depicted in FIG. 15, with interpolation between two look up table entries along a non-linear curve depicted;
FIG. 17 is a block diagram illustrating an exemplary preferred implementation of the long memory block function of FIGS. 6 and 9 using a plurality of the combined memory blocks of FIG. 10 configured in a preferred manner;
FIG. 18 depicts in block diagram form the hardware and software blocks used in a preferred method of the invention to develop, initialize and adapt the high power amplifier software model;
FIG. 19 depicts in block diagram form the hardware and software blocks configured and used in a preferred method of the invention to initialize and adapt the short DPD block function software model;
FIG. 20 depicts in block diagram form the hardware and software blocks configured and used in a preferred method of the invention to adapt the short DPD block function software model while the system of the invention is in operation;
FIG. 21 depicts in block diagram form the hardware and software blocks configured and used in a preferred method of the invention to adapt the long DPD block function software model; and
FIG. 22 details the implementation of a preferred embodiment for the capture buffers of FIG. 6.



DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
The making and using of the presently preferred embodiments are discussed in detail below. It should be appreciated, however, that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the invention, and do not limit the scope of the invention.
The present invention will be described with respect to preferred embodiments in a non-limiting, exemplary context, namely for use with a transmitter including a power amplifier, for use in a basestation in a cellular communications system which is an RF transmitter. The system and methods and preferred embodiments of the invention may also be applied, however, to other power amplifiers where linearizing the input-output transfer characteristic is desirable, for example power amplifiers for wireless LAN applications, radar, military applications, satellite connections and the like. Any non-linear element where distortion is expected and thus predistortion and linearization is desirable may benefit from application of embodiments of the invention. The system, methods and preferred embodiments of the invention may also be applied to linearizing non-linear elements in other applications than signal transmission.
The transmit processor circuit illustrated in block diagram fashion in FIG. 6, a preferred embodiment of the invention that is planned for commercial use and preliminarily designated the Texas Instruments' GC5322 baseband transmit processor, incorporates many of the features of the present invention and will be described in detail below. The present invention may be embodied in other arrangements and using alternative embodiments as well, additional preferred embodiments will be described. The present invention may be incorporated into an integrated circuit implementing an entire function or incorporating the required digital signal processing circuitry, or other useful functions as is known in the art. The blocks shown may be repartitioned and the functions of two or more blocks combined or the functions of a single block split into multiple blocks or into multiple circuits, or even multiple integrated circuits, while still remaining within the scope of the invention and the appended claims, repartitioning of the system is contemplated as is known in the art.
Before beginning the detailed discussion of the preferred embodiments, the general approach of preferred methods of the present invention is to treat the linearization problem differently than the prior art approaches. Instead of attempting to create an inverse model of the non-linear element (so-called system inverse) which is then applied as predistortion to the incoming signals prior to transmitting them to the non-linear element, the approach of the invention is to provide various elements that track the system by accurately outputting the very small error that is expected in the system, and to use this synthesized error to compensate the signal prior to presenting the signal to the non-linear element, this is considered a “system identification” approach. It has been advantageously discovered that this “error tracking” approach leads to practical solutions to system predistortion. These solutions can be implemented in real time using existing semiconductor and integrated circuit technology and software.
For an explanatory example, consider the power amplifier in a transmitter application. The amplifier and the predistorter function can be considered as a function:
F(x) where x is the amplifier excitation.
By observing that the power amplifier is inherently causal, and that the system is rotationally invariant, the expression for F may be rewritten:

F(x)=[ejfΘ|x|fr(|x|2)]x or

F(x)=G(|x|)*x 

In short, the predistortion function and the amplifier together are a complex gain function. The approach of the preferred method and system embodiments of the invention is to implement the predistortion function as a series of blocks, first a short duration memory or “memoryless” digital predistortion (SDPD) block is coupled to the non-linear amplifier, and then these two blocks in cascade together are treated as a single non-linear element which requires additional predistortion compensation, next an additional long or “memory” digital predistortion function (long DPD) for compensating for longer duration or “memory” distortion effects is provided, and preferably a QRD block is also provided that acts as a hardware compensation function. The QRD block is a real time hardware block that synthesizes an adaptive signal based on the present inputs, which may be considered a “synthesized error”, this expected synthesized error is removed from the signal stream as part of the compensation scheme, and this compensated signal is finally provided to the non-linear element for amplification and transmission.
FIG. 6 depicts, in block diagram form and in an illustrative manner, the major functional blocks in a first preferred embodiment of a transmit processor incorporating the predistortion functions of the invention. This novel transmit processor is preferably implemented as a single integrated circuit as represented by the dashed outline, coupled to a control processor 73. There are two timing sections, the Digital Baseband (Digital BB) Processing section 60, and the digital predistortion processing (DPD Processing) section 64. Alternative embodiments would be to place each of these timing sections in separate integrated circuits' although this approach is less preferred. Digital baseband data VBB is input to the section 60 which is clocked at a Chip Rate Clock. Digital up converter (DUC) 76, which may be as an example, a block operating similar to the functions provided by the GC5016 device sold as a stand alone integrated circuit by Texas Instruments, Inc., receives the input signal. Other up converter functions as are known in the art may be used. Crest Factor Reduction (CFR) 65 receives the output of the digital up converter DUC 76 and applies crest factor reduction such as is described in the background section. Farrow 66 is clocked by the digital PLL or numerically controlled oscillator (NCO) timing function 68 and provides Farrow re-sampling and interpolation to the signal. Timing function 68 which may be implemented using a digital phase locked loop or DPLL, a numerically controlled oscillator or NCO, or other clock or oscillator circuitry as is known in the art. The output of Farrow block 66 is then provided to the digital predistortion function which is enumerated as 64. Farrow block 66 retimes the signal for use by the digital predistortion (DPD) processing side 64, which is clocked at the data converter clock rate. Thus the Farrow block 66 provides synchronization or timing boundary function between the baseband functions, clocked at a chip rate, and the data converter functions, clocked at a data converter rate. The process timing for the two sections, Chip Rate Clock and Data Converter Clock timing sections, may be a simple multiple relationship, that is, the two rates may be simple ratios or one another or a simple multiple of one another, and not exactly the Chip Rate and the Data Converter clock rate, as illustrated for simplicity.
In the digital predistortion block 64, long memory DPD function 74 provides predistortion for effects of longer duration, e.g. long or “memory” effects, and will be described in greater detail below. The QRD block 95 provides hardware QR matrix decomposition and is described in detail in co-pending and related U.S. patent application Ser. No. 11/388,356, filed Mar. 24, 2006, entitled “Apparatus and Method Providing Additional Response for an Error Correcting Device”, which is incorporated herein by reference in its entirety. Delay element 93 provides a delayed reference signal to compare the input response (delayed) to an observed output feedback response from the antenna. This is done because ideally, the output of the long memory DPD 74 processing section is proportionally equal (accounting for desired gain) to the output at the antenna, if the system is operating to fully linearize the power amplifier output. In that case, which is the expected case when all of the elements are parameterized and operating normally, the error is virtually zero.
The output of this comparison labeled “error” (the output of summer 91 with an inverting input) is the error between the observed signal from the feedback path VFB and the reference signal (which is a delayed and scaled version of the input signal) is coupled as an input to the QRD block 95. The output of that QRD block 95 is coupled to a summer 89 and combined with the output of the long memory DPD block 74. The output of the summer 89 is then coupled to a short memory DPD block 85 which applies predistortion to the signal to address the short duration, or almost “memoryless” linear and non-linear distortion effects, in one embodiment this block may be implemented using hardware similar in operation to the predistortion functions of the prior art, however in a preferred embodiment described below, a novel implementation of the short digital memory DPD 85 function uses a higher order polynomial filter, including some memory compensation, is preferably used in the processor of FIG. 6. The output of this short memory predistortion block 85 is then applied to an equalization function 79 and to an output upconverter 77 which applies interpolation and formatting to produce the final digital form output.
Collectively the short memory DPD block 85, the equalizer 79, and the output upconverter 77 are referred to as block 46. The output signal VFF is then applied to the digital to analog converter, and the power amplifier, and finally transmitted to an antenna, using RF transmit circuitry such as shown in FIG. 1 as element 41 and described above. The feedback or observation path VFB comes from an analog to digital converter as shown in FIG. 1, for example, and is coupled into the input path decimation and formatting block 75, where the signal is decimated and formatted, an equalizer function 81 is applied to the signal which operates analogously to equalizer 79 in the transmit path. Non-linear block 83 is then applied and this observed signal is input to the summer/comparator 91 as described above. These functions, input decimation/format 75, equalizer 81, and non-linearizer 83 are collectively referred to as the feedback path 40. Feedback path 40 also provides an input decimation format function 75, an equalizer 81, and a non-linear function 83; these blocks correct any distortions in the feedback path so that the signal VPA is a representation of the output signal of the non-linear element. This signal will be used by Control Processor 73 and the capture buffers to model and parameterize the long DPD and short DPD blocks 74 and 85, and to model the power amplifier in executable software models, as is described below with respect to FIG. 20.
There are two data capture buffer blocks labeled Cap Buffer A 97 and Cap Buffer B 96. These capture and storage memories are used to observe the desired response signals (A) and the observed response signals from the feedback path (B) and to store these signals so that comparisons, adaptation, and computations may be performed. Control processor 73 can use these stored samples to perform “off line” calculations and generate weighting parameters in order to adapt the response of the short and long memory blocks, shown above, as will be further described below. A preferred detailed implementation is shown in FIG. 22 and discussed in detail below. An input multiplexer is provided as part of each capture buffer 97 and 96 and selects different points in the system for capturing observation data, so that the data can be used in calculations and analysis by the processor 73. In additional preferred embodiments, known debugging methods and hardware such as checksums, triggers, start and stop trace breakpoints, endpoints, and the like may be implemented as part of the capture buffers A, B. User specified trigger levels can be used. These functions are preferably used to collect data following a specific system event being detected, and although not shown in detail, these cap buffers 97 and 96 may include various additional data ports for parallel or serial access. These added ports may be used by an off chip processor or computer acting as a debugger, running emulation tools for software development, and the like.
Some significant features of the transmit system incorporating the various functions of the invention are evident from the block diagram of FIG. 6. In operation, the cascade combination of the short memory DPD block 85 and the power amplifier (not shown but coupled to the VFF output of the FIG. 6) may advantageously be treated together as a “black box” amplifier requiring further linearization. The added blocks QRD (95) and the long memory DPD function (74) provide additional novel digital linearization to address the long term, or “memory” effects that the short effect digital predistortion block 85 cannot address. In contrast to the prior art approaches, the approach of the present invention advantageously utilized by the embodiments does not require an “inverse system” function that exactly mimics the power amplifier and transmit system to be linearized using predistortion. Instead, a “system identification” approach is used, the expected error signal is modeled, and predictive filtering is used to cause the system to behave so as to eliminate the expected error. The models provide an accurate representation of the error in different parts of the system, so that the system is adapted based on the error expected for a particular set of inputs, in combination with the distortion error of memory effects that are known to occur due to prior signal transmissions, temperature dependent effects, noise effects including observation noise, and the like.
In a preferred embodiment, a synthesized linear error may also be predicted and synthesized by the QRD block 95 in front of the power amplifier and then subtractively combined with the input signals. This is done so as to predistort the input signal to eliminate the error at the output. The preferred embodiments and methods of the present invention thus provide a novel adaptive amplifier linearization system that may be practically implemented in a manner that allows real time adaptive compensation, far beyond what was possible in the predistortion approaches of the prior art.
Implementation details of selected blocks of the transmit processor of FIG. 6 will now be presented. FIG. 7 depicts in block form a preferred embodiment for the detailed implementation of the short DPD block 46 and the equalizer of FIG. 6. It should be understood that although the Nth order polynomial filter block 207 and FIR equalizer 203 illustrated in FIG. 7 is a preferred embodiment of the short DPD function to be used, the transmit processor system of the present invention could also be implemented using a more conventional “0th order” or “memoryless” DPD block, and due to the unique architecture and the modeling methods and design approach of the present invention, significant advantages would still be achieved. However it is preferred to use the short DPD block 46 as shown in FIG. 7.
In FIG. 7, the short DPD block 46 comprises a polynomial filter block 85 coupled to the input, which is coupled to three or more paths up to n paths in parallel, each path comprises a variable delay element 210 having a programmable delay coupled to a magnitude squared block 211, which in each path then is coupled to a programmable nonlinearity, the programmable nonlinearities 208 are preferably implemented as a look up table or LUT, other possible implementations include polynomial functions. The three programmable nonlinearities 208 (more or less than 3 can be used, as shown by the replicator dots in FIG. 7) then feed in parallel fashion into a programmable filter which is a variable delay finite impulse response filter (FIR). In one preferred embodiment, it was determined that a useful implementation of this function is a 3 tap FIR, although many other embodiments are also possible for a given application. The output of the programmable filter is then input into the FIR equalizer 79. The output of the FIR equalizer 79 is then coupled on to the output upconverter 77 in FIG. 6.
The delay elements 206, multipliers 202 and summer 204 form an Nth order general FIR filter. In an alternative embodiment the variable delays 210 can be placed after the programmable nonlinearities 208 and before the multipliers 202. In the preferred embodiment shown in FIG. 7, those skilled in the art will recognize that the preferred embodiment of the block 85 provides a Volterra filter coupled to an equalizer 79, the equalizer may be for example a 16 tap processor programmed FIR with adaptive or fixed coefficients. The FIR equalizer 79 provides elimination of linear distortion, and the polynomial filter block 85 eliminates non-linear, short term, distortion.
Volterra filters are used in the art for modeling and analysis of non-linear systems. The use of Volterra series expansions to address polynomial non-linear systems is described in further detail in the book “Polynomial Signal Processing”, by V. John Mathews and Giovanni L. Sicuranza, Copyright 2000, John Wiley and Sons, and in particular Chapter 2, entitled “Volterra Series Expansions”, pages 19-63.
In a preferred embodiment for the example of a base station transmit processor as in FIG. 6, the short DPD block 46 is preferably comprised of a non-linear Volterra filter 85, in cascade with a linear FIR filter equalizer 79. In this manner the short block 46 addresses both linear and certain non-linear distortion effects expected in the power amplifier. In one known preferred embodiment, the delays in the Volterra filter 207 are such that the short DPD block 46 addresses effects of less than, for example, 100 nanoseconds in duration. These effects can be frequency dependent non-linear distortion, and/or temperature dependent, input signal dependent, and other linear and non-linear distortions which could not be addressed by the memoryless DPD functions of the prior art.
The prior art “memoryless” predistortion blocks implement what may be described as a “0th order” filter. That is, in prior art predistortion approaches, the output depends only on the present inputs. In contrast, it has now been advantageously discovered that a fully adaptive correction that allows non-sequential ordering of the polynomial taps or delays, and that allows higher order polynomials, is beneficial. The use of such filters in linearizing amplifiers using a predistortion approach is described in a thesis paper authored by Roland Sperlich, one of the inventors of the present invention, “Adaptive Power Amplifier Linearization by Digital Pre-Distortion with Narrowband Feedback using Genetic Algorithms”, presented August 2005, to the Georgia Institute of Technology School of Electrical and Computer Engineering. The paper applies genetic algorithm approaches to determining the polynomials for a DPD function to address memory effects that is an Nth order polynomial.
To optimize the polynomial selected for the short DPD block for a particular application, the non-linear representation chosen may be determined by simulation and modeling, and by using alternate inputs in the feedback methodologies. Examples include using the slope of the input signal, temperature of the system, etc. The use of an Nth order derivative of the signal could also be considered in determining the non-linear representation which is implemented in the short DPD. Because the short DPD block of the present invention, as depicted in FIG. 7, has variable delays 210 between the filter taps, it can be configured to implement polynomials of various orders. It has been determined that the use of nonsequential, odd ordered polynomials is beneficial. In one example the 1st, 3rd and 5th orders were used to implement the short DPD filter 85. In operation in one preferred embodiment, the Volterra function 85 may for example address distortion effects that are of durations of less than tens or hundreds of nanoseconds, in an amplifier system.
FIG. 8 depicts a detailed block diagram of a preferred embodiment of the FIR equalizer 79. In this preferred embodiment, four parallel filter stages 253 are used to implement an equalizer that can account for imbalances in the real (I) and complex (Q) signals and because the summer blocks 255 and 261 receive the “cross” terms from the complex (summer 255) and real (summer 261) signals, the summers have weights stored in registers 251, the equalizer can address these imbalances and can address frequency dependent imbalances in the gains for the two signal streams. This equalizer thus provides advantages not found in the equalizers of the prior art. Although other known equalizers could be used in the system of FIG. 6, this equalizer is a preferred embodiment.
Block 46 of FIG. 7 receives an input signal conditioned by the summer 89 of FIG. 6, which applies the output of the QRD block 95 to the output of the “long memory” block. After the additional application of the Nth order polynomial 85 of FIG. 7, the short DPD function 85 then applies equalization to the signal, the signal is interpolated and formatted for presentation to the non-linear analog RF circuit and amplifier, the output signal VFF is then output to the amplifier and associated analog circuitry, such as RF transmit circuitry 41 in FIG. 1.
The QRD block 95 tracks non-linear distortion effects of longer duration, for example, greater than 1 microsecond. The QRD block 95 fills in and tracks effects between adaptive updates, for example in a particular application the control processor 73 of FIG. 6 is a DSP that updates the parameters approximately every 100 milliseconds, the QRD block 95 is designed to track the non-linear distortion in the power amplifier between these updates.
FIG. 9 depicts a detailed view of the long memory DPD block 74 of FIG. 7. In FIG. 9, an input I, Q form signal is coupled to the parallel cascade arranged memory blocks 105, which are described in further detail, below. The input is simultaneously coupled to the magnitude squared function (|X|2) 101, which in this example embodiment outputs the complex magnitude as a result. In the illustrative embodiment of FIG. 13, the long DPD block 74 has arranged memory blocks 105 coupled in parallel and further coupled to one another simpler stage 107.
The memoryless non-linearity block 107 is just a simpler form of the arranged memory blocks 105; in an exemplary embodiment this block provides only a delay. The output signals from these eight functional blocks 105 and 107 are coupled to a summer or combiner function 103. The output of this summer block is then applied by signal combiner 111 to the input baseband data. The resulting weighted signal is then appropriately scaled and clipped to provide an output which is coupled to the summer 89 in FIG. 6, where it is combined with the output of the QRD block 95 in FIG. 6.
Thus, in the preferred embodiment of FIG. 9, the present invention provides a configurable “long memory” block that may implement a variety of filter functions depending on how the memory blocks 105 and 107 are configured. The long memory block implements a Hammerstein model filter, which as is known in the art models nonlinearities followed by a linearity. The implementation used in the preferred embodiment in FIG. 9 is a parallel form Hammerstein filter, each memory block 105 is identical and the parallel operation of these blocks forms the overall function, the outputs are then summed together by summer block 103. In operation in a non limiting example, a known system for predistortion to linearize a power amplifier, the long memory block addresses non-linear distortions that are of duration of between hundreds of nanoseconds and one microsecond.
FIG. 10 depicts a preferred embodiment for an implementation of each instance of the arranged memory block 105 of FIG. 9. In FIG. 10, the output of the magnitude squared function 101 in FIG. 9 (labeled Mag Data) is input to a programmable nonlinearity 121, and to delay element 122. The baseband data (labeled BB data) is input to a second delay 123. The output of the programmable nonlinearity 121 is coupled to digital filter 125, which in one example is an FIR (finite impulse response) filter implemented in a manner known in the art. The delayed magnitude squared data 101 is input into a second programmable nonlinearity, in some preferred embodiments this is implemented as a programmable look up table or LUT 208. The delayed baseband data is optimally also input into another digital filter 127, in a preferred embodiment of the invention this is also a finite impulse response (FIR) filter. Signal combiner 129 is then used to combine certain of these outputs. The arranged memory blocks 105 includes three multiplexers 131, 133 and 135, each of which can select between inputs based on control signals A, B and C. Multiplexer 133 receives a control input ‘A’ and an input from another adjacent memory block 105 positioned adjacent the one illustrated (not visible), an input from the digital filter 127, and an input from the combiner 129. Multiplexer 131 selects, based on the control signal B, between the output of digital filter 125, and an input from an adjacent memory block 105 shown located adjacent the one illustrated (not visible). The output of digital filter 125 is also made available as an output of the memory block 105. Signal combiner 137 combines the outputs of the two multiplexers 131, 133. The output of the signal combiner 137 is provided as one output of the memory block 105 and to one of the inputs of multiplexer 135, which is controlled by control signal C. The other inputs of multiplexer 135 are the output of signal combiner 129, and the output of summer 136. The output of the multiplexer 135 is selected based on the control signal C and the output of the multiplexer 135 is then the output of the memory block 105.
By selecting different inputs for each of the multiplexers 131, 133 and 135, different forms of memory block 105 may be programmably created within the long block memory parallel function 74 of FIG. 6. These different forms provide different filter forms for the long DPD or “memory” blocks 105. The present invention thus provides a memory or long digital predistortion block that can, with software changes to provide the required control signals A, B and C from the control processor, implement different functions without the need for hardware modifications. Thus the functionality of the long digital predistortion feature can be modified by use of the control signals.
As exemplary preferred embodiments, FIG. 11 depicts the arranged memory block 105 of FIG. 10 using the same reference numerals and illustrates in a table form the use of the control signals A, B and C to form three different selected forms of the combined mode long memory block 105, these blocks may then form filters that may be selectively used in a preferred embodiment. Each form of the “long memory” shown in FIG. 10 may be selected by programming the control processor to provide appropriate selection signals A, B and C to the combined mode memory block and coupling the adjacent blocks together. In a given application, certain instances of the memory block 105 that are used may or may not use all of the available input and output ports, as will be obvious from examining the block diagrams in FIGS. 12-15. For example, the uppermost or lowermost memory block 105 in a parallel grouping may not use these ports.
FIG. 12 illustrates the configurable memory block 105 of FIG. 10 when configured in a first mode of operation for use as a long term or “memory” predistortion function, for example in the application depicted in FIG. 9. In FIG. 12, the memory block 105 is configured with each stage having the multiplexers 131, 133 and 135 and the control signals A, B and C are set such that the resulting block is arranged as shown, with magnitude squared data is input to a programmable nonlinearity block 121, and delay element 123, the baseband input data is directly input to a delay element 123, these blocks are coupled to a digital filter preferably implemented as a multiple stage digital filter 125, a second programmable nonlinearity and a second digital filter 127 which in one preferred example is implementing a 3 tap FIR the outputs of these blocks are then combined and the final data output is presented as I and Q digital outputs.
FIG. 13 depicts, similarly, the result of the settings of the control signals A, B and C to the multiplexer 131, 133 and 135 to combine the outputs of signal combiner 129 and 137 so as to configure the memory block 105 of FIG. 10 to create the “parallel” mode arrangement shown. Here the magnitude squared data is input to the programmable nonlinearity block 121, a delay element, and baseband data is input to delay element 123, these are then output in parallel to the digital filter 125, which is preferably a multiple stage FIR filter, a second programmable nonlinearity block, and the applied and the outputs summed at summer 130, and the block output is I and Q form digital data.
FIG. 14 depicts the use of two of the memory blocks 105 of FIG. 10 arranged together and with the multiplexer controls set so as to form a long DPD block 74 that is a compound Volterra mode filter cell. The use of two cells communicating to form the Volterra mode filter is an application of the principles of “parallel cascade” form; it is known that for certain filters the stages may be arranged as a “parallel cascade” form in pairs of stages. In applying this form to the combined mode memory block 105, the blocks are configured using the input port of the multiplexer 131 in FIG. 11 (not shown in FIG. 14) to couple the top cell to the bottom cell so that together they are arranged to form a filter block that operates in a compound Volterra mode. The “parallel cascade” form is further described, for example, in the book “Polynomial Signal Processing”, pp. 97-98, which is hereby incorporated by reference. Other arrangements are possible using the configurable memory block 105 and the control signals A, B, C to form the individual filter blocks of FIG. 10.
Additional blocks of FIG. 6 are required to implement the remaining functions of the transmit processor implement functionality. For completeness a short description of possible implementations of certain of these blocks is presented here,
FIG. 15 illustrates one preferred embodiment of a magnitude squared block and a corresponding interpolating programmable look up table (“LUT”) 208. These functional blocks are used to implement the programmable nonlinearities or LUT's described above in various blocks. The input data for example VIN is received in I,Q form. To detect the magnitude squared, the data is multiplied by itself in multiplier 231, and then the output data is accumulated and rounded to the appropriate number of bits in accumulator 235. The magnitude data is then used to address the look up tables 223. In a preferred embodiment the look up tables or LUTs 223 are implemented using interpolation techniques. The most significant bits (msb's) are used to determine a first table entry point. The least significant bits (lsb's) are then again used to address the table to obtain a slope between entry points. This output is combined with the lsb's to determine distance along the non-linear slope between entries that is to be calculated, this value is added to the discrete table entry, and this data is output as the programmable nonlinearity. When the various blocks are parameterized by the control processor 73 in FIG. 6, or when the blocks are adaptively updated during operation of the system, these values may be changed to change the behavior of the blocks. In one preferred implementation, for this LUT 223 function, the input is for example a 17 bit wide digital signal, the 7 most significant bits (msb's) are used to address the entries in the table, and the 10 least significant bits (lsb's) are used to interpolate for values that lie between the table entries, in one illustrative example the table has 128 words which are 16 bits wide, these are combined with the interpolation function of the multiplier 227 and the summer 225 to provide a 16 bit output. This is done for both I and Q input signals and the outputs are I and Q form signals.
FIG. 16 illustrates, for a simple example, how the interpolation of the look up tables illustrated in the preferred embodiment of FIG. 15 operates. In this example, the table entry located by the most significant bits would be “1, 1”, and the slope and magnitude indicated by the remaining look up and the combination of the slope and the lsb's would locate a point along the non-linear curve between table entries 1, 1 and 2, 2, summer 225 of FIG. 15 adds to the distance and slope to locate the final point indicated by that particular input.
FIG. 17 depicts a detailed view of an exemplary long block implementation using several of the combined mode memory blocks 105 of FIG. 10 coupled together and redrawn without showing the unused multiplexers or ports. This exemplary parallel Hammerstein filter embodiment implements a frequency domain convolution using FFT and IFFT transforms to perform the convolution in the frequency domain, and then return the results to the time domain, as is known in the art. The block shown FIG. 17 thus provides a complex FFT and convolution in 1⁄2 the real space. The various blocks are numbered referencing the sub blocks used in the combined memory block functions 105 to form the long block function of FIG. 17. In FIG. 17, the exemplary embodiment of a magnitude detection block may be used, for example, to implement the |x|2 functions and the rounding functions, as shown in the previous figures; multiplier block 231 and accumulator 235 of FIG. 15 are preferably used. The look up table or LUT blocks of FIG. 17 represent the use of the blocks 121, or 130, of the combined mode memory blocks which are programmable nonlinearities configured as look up tables such as shown in FIG. 15. The signal combiner 129 and summer 136 are those parts of respective ones of the combined mode memory blocks. Summer 103 is the same as the one depicted in the general case long DPD block 74 of FIG. 9. By coupling several of the combined mode memory blocks together and using the various functions of those blocks, a real x real FIR filter is configured as shown in FIG. 17, with FFT and inverse FFT transforms being performed to enable a convolution as is known in the art.
In addition to these blocks, the preferred transmit processor embodiment of the present invention illustrated in FIG. 6 also requires QRD block 95. The QRD block provides a hardware predistortion function that operates in real time, and this block outputs a synthesized error based on the feedback error and the current inputs, to address certain distortion effects that are of longer time duration. Because the feedback loop through the feedback path 40 in FIG. 7 is long, the QRD block 95 addresses distortion effects that are approximately 1 microsecond or greater in duration. The output of this block is an expected error that is subtracted from the output of the long DPD block 74 as shown in FIG. 6.
FIG. 22 depicts a first preferred embodiment of the detailed implementation of capture buffers 96 and 97 shown in the preferred embodiment of FIG. 6. In addition to the capture buffers, delay elements, control and trigger elements are provided. In FIG. 22, multiplexers 140 (Cap A Mux) and 146 (Cap B Mux) select from three possible input sources shown in FIG. 6, delayed signal Vdel, error signal Verror, and the signal formed from the feedback Vfb path after it is processed to represent the output of the power amplifier, VPA. Multiplexers 142 (Trig A Mux) and 144(Trig B Mux) select data for the trigger monitors 150 (Trigger Monitor A) and 152 (Trigger Monitor B) respectively. Control registers 148 (Trigger Control A) and 154 (Trigger Control B) determine what values the trigger monitor functions are looking for. All of these functions are controlled by trigger state machine 160, a finite state machine as is known in the art. In preferred embodiments, the capture buffers and the input multiplexers are utilized, with the trigger monitors A and B, to observe the data present at a selected one of the three input points following some triggering event for a time sufficient to capture samples of the data and store it for observation. Outputs A and B to the processor allow the external processor to retrieve data. Control from the processor to the Trigger State Machine supports many high level breakpointing, data watch and trigger functions such as edge and level triggered matchpoints, start/stop breakpointing, match flags, bus traces after an event, and the like as are known in the art. The trigger control A and B blocks 148, 154 may be implemented as registers, memories such as FIFOs, and other data stores. The Trigger Monitor A and B blocks may be controllers or simple comparators, and may support masking and data ranging such as less than, greater than, or threshold compares as well as simple compares. Different embodiments can be used while still remaining within the scope of the invention. The Control A and Control B select lines can be sourced by the external processor or an internal controller for the transmit processor shown in FIG. 6.
The use of the present invention provides an improved digital predistortion function that may be used to adaptively linearizing a non-linear element, for one non limiting example, a power amplifier, for transmission of signals. The invention provides advantages by breaking the predistortion functions into several functional blocks, a long memory effect block, coupled to input baseband data, and a short memory effects block that receives the output of the long block combined with a QRD block, and receives feedback input from a prior non-linear element output. The approach of the invention is to model the error for each of the long or memory DPD and short DPD blocks. In a preferred method, the short DPD block and the non-linear amplifier are cascaded together and treated as another non-linear element, thus the approach to modeling and initializing the long DPD block of the invention treats the short digital predistortion function and power amplifier as a single non-linear element that may be linearized. The preferred embodiment of the short DPD is a polynomial of greater than 0th order, preferably having Nth order and the order may be non-sequential, and thus addresses short term or “memory” distortion effects, while the long DPD predistortion block addresses longer term or “memory” effects as well. Thus the system and methods of the invention advantageously provides a transmit processor and amplifier that is linearized including memory effects, such as thermal memory and the effects of prior input signals transmitted by the power amplifier, these are distortion effects that the prior art predistortion solutions cannot address.
The methods of the present invention include the use of software models to allow for “offline” parameterization of the system and ongoing adaptation of the parameters, for example the programmable nonlinearities used in the various predistortion blocks must be initialized and parameterized, and these parameters must be periodically updated, to maintain proper operation.
Initially when the system is powered up or the pre-distortion processor is enabled, nothing is known about the amplifier (or for that matter the analog RF chain). Before beginning the DPD modeling and adaptation it is assumed that enough is either learned or programmed based on prior knowledge that the RF path gains and feedback compensation and reference gain (or target signal in the digital domain) has been set. If this is not the case an additional HPA characterization step must be done first. From this point the amplifier is learned with sufficient accuracy that the SDPD can adapt normally. At every step some basic checks need to be made to avoid setting inappropriate values into the long or short DPD bocks and degrading the system performance. Also the monitor points ((average power/peak power/clip counts) monitors in the DPD chain) need to be checked as not to exceed system limits. In this discussion the method is first described as to how the initial power amplifier model is parameterized so that the SDPD can be adapted appropriately.
In one preferred method the sequence of steps is:

    
    
        1) Assuming that the basic operating parameters (primarily gains and bulk delays) have been set using prior characterization information or a characterization procedure before this routine is used (what is primarily needed are the gain settings in the digital and analog chains) as discussed above:
        
            a. Parameters initialization: The critical parameters set the HPA peak power using the analog attenuators and digital gains. After these parameters have been set, the short DPD is set to the identity function with a delay (nominal equalizer delay) and estimated complex gain setting. In the preferred embodiment for the short DPD, the nonlinear Volterra filter is also set with the unselected taps equal to 0 and the selected look up table LUT contents set to a constant, for all of the entries.
            b. Acquire Data: The non-linear element or HPA is then driven from some data source. This data source can either be one of the capture buffers Cap A or Cap B, or other supplied data, with the only restriction that this data must drive the HPA close to the desired peak power level. When driving the HPA the input to the short DPD is captured, as well as the HPA output which is observed from the feedback compensation circuit. For this discussion it is assumed that this compensation network has been initialized or calibrated from either preprogrammed parameters or was provided by a prior characterization step. Preferably, the capture buffers should be time aligned so that the HPA model developed from this data will include any digital hardware pipeline delay, including HPA and other delays, to simplify the adaptation procedure.
        
        
        2) HPA Model Initialization: Determine the HPA complex gain and delay to the nearest DPD rate sample interval, and use this to initialize H (z) in the HPA model, which is preferably a Weiner model or other model. Next, generate an estimate of the non-linear model function F(x) using the H (z) estimate, by using a standard least squares estimator; or an extended or unscented Kalman Filter.
        3) Refinement of the HPA model: The software model of the non-linear element is then refined using the Gauss-Newton algorithm. After setting up the problem, the standard general least squares solver may be used. A few iterations should converge to a good approximation. A regularization method may be used here.
        
            a. The problem is ‘set up’ by computing the required gradients or Jacobians as outlined below;
            b. The problem is then solved minimizing the cost function;
            c. The correction to the current estimate is made and validated. The refinement is repeated until the termination criterion is met;
            d. The data is validated and saved to be used in the next step and other routines where a HPA model is required.
        
        
        4) Using the HPA model, its inverse is approximately found and this is used for the initial SDPD parameters settings.
        
            a. Inversion of H(z) from the HPA model;
            b. Inversion of F(x) from the HPA model;
            c. The parameterization data is for the short DPD model is validated and saved;
            d. The model may need to be further refined if the initial validated model is not sufficiently accurate.
        
        
        5) From the initial estimate of the SDPD parameters, the estimated parameters are then refined using a linearized Kalman filter as in the HPA model.
        
            a. The problem is ‘set up’ by computing the required gradients/Jacobian as outlined below;
            b. The problem is then solved using a Kalman filter;
            c. The correction to the current estimate is made and validated. The refinement is repeated until the termination criterion is met;
            d. The data is validated and saved to be used in the next step and other routines where a HPA model is required.
        
        
        6) The complete short DPD model is validated. If the validation fails an error condition is flagged and stopped for user help.
        7) After the completion of these steps validation of the parameters are made and written to the hardware blocks in the transmit processor. From this point on, the SDPD parameters and HPA model are assumed to be close enough to the desired parameter setting so that they can be updated assuming parameters space is nearly linear in the from the current settings.
        8) These steps are repeated for the long DPD block model. In modeling the long DPD block, the non-linear element or HPA models and the short DPD models are first combined and treated as a single non-linear element requiring linearization. The data capture and observation steps are repeated, a model is developed and refined, just as for the short DPD block. The model is validated and the data is saved.
        9) Once the models for the HPA, the short DPD and the long DPD are completed, updates or adaptation during ongoing system operations can be performed offline using the models and adapting the parameterization vectors for various observed data, and then, uploading these parameters to the hardware to adapt the system parameters. A simple method is to repeat steps 4b-8 above sequentially. Other more complex methods may be used to better allocate processor resources.
    
    


FIG. 18 illustrates a graphical representation of a preferred approach to the development of the model for the power amplifier or software PA model. The models assume that there is little known about the amplifier initially, however, it is assumed that the power amplifier (or other non-linear systems) can be effectively modeled by, but not limited to, a Wiener model, that is as is known in the art, a linearity in cascade with a nonlinearity. In FIG. 18 the software model for the power amplifier 41 is illustrated, for simplicity, as a functional block numbered 411. In order to adapt the model, the capture buffers CAP A 97 and CAP B 96 are utilized to collect data, (preferably using multiplexers as in FIG. 22 to select the inputs) to allow a comparison of the data VFF placed at the input to the power amplifier 41 and a form of the feedback data VFB observed by the system. These data points are used to optimize the model so that the output w(k) from the model 411 is exactly adapted to match the sampled data p(k) observed by the capture buffer B, in other words, the model is adapted to minimize the error signal e(k).
In operation, this block must first be modeled, then initialized at an estimated starting state, and the parameters calibrated, the parameters must be determined, and then the parameters are adapted during operation of the high power amplifier to validate the model. The discussion that follows details each of these steps for a preferred method of the modeling operation; however the order of the steps may be varied as is obvious to one skilled in the art.
The first stage in a preferred method is to model the high power amplifier HPA in software. Before the software modeling is done, the initial gain levels must be set up so that the overall system gain is compatible with any crest factor reduction (CFR) circuitry that is used ahead of the digital predistortion blocks of the present invention. The saturation of the high power amplifier is assumed to be above the CFR peak output so that the amplifier and DPD processor can operate in the Feasible region of FIG. 3.
The goal is to model the power amplifier using a least squares objective function. The power amplifier is initially unknown but is assumed to be well represented with a Weiner model, which is a linear filter followed by a memoryless nonlinearity. The linear filter can be considered as H(z) and the memoryless nonlinearity as F(v), so the model is, starting with the input u(k) as baseband digital data, the output of the linear filter is given by:

v(k)=H(u(k),θ1).

This sequence drives the nonlinearity so that

w(k)=F(v(k),θ2).

Thus the combined cascade function for the Wiener model is then:

w(k,θ)=F(H(u(k),θ1),θ2).

where





  
    Θ
    ⁡
    
      (
      k
      )
    
  
  =
  
    [
    
      
        
          
            
              Θ
              1
            
            ⁡
            
              (
              k
              )
            
          
        
      
      
        
          
            
              Θ
              2
            
            ⁡
            
              (
              k
              )
            
          
        
      
    
    ]
  




and is a slowly varying, unknown, parameter.

The model is illustrated graphically in FIG. 18 as block 411 shown in parallel with the actual power amplifier PA. The characterization process is to compare the actual power amplifier (including observation error) as captured by the memory block Cap B (96) to the software model and the difference, or error e (k) is then to be minimized. Adaptation process 98 then updates the parameters. That is, the goal is to correctly model the power amplifier so that for any input u (k) the model output w (k) is equal to the power amplifier observed output p (k).
From FIG. 18 it can be seen that the cost function objective of the modeling process is to minimize the mean squared error (determine the MMSE) between the model and the output of the actual power amplifier, for the same stimulus u (k). The cost function C can be



  
    
      
        
          
            C
            ⁡
            
              (
              θ
              )
            
          
          =
          
            ∑
            
              
                
                
                  
                    p
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                  -
                  
                    w
                    ⁡
                    
                      (
                      
                        k
                        ,
                        θ
                      
                      )
                    
                  
                
                
              
              2
            
          
        
      
    
    
      
        
          =
          
            ∑
            
              
                
                
                  
                    p
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                  -
                  
                    F
                    ⁡
                    
                      (
                      
                        
                          H
                          ⁡
                          
                            (
                            
                              
                                u
                                ⁡
                                
                                  (
                                  k
                                  )
                                
                              
                              ,
                              
                                θ
                                1
                              
                            
                            )
                          
                        
                        ,
                        
                          θ
                          2
                        
                      
                      )
                    
                  
                
                
              
              2
            
          
        
      
    
  




  Where




  
    θ
    =
    
      [
      
        
          
            
              θ
              1
            
          
        
        
          
            
              θ
              2
            
          
        
      
      ]
    
  




  
    or
    ,
    
      

    
    ⁢
    
      
        e
        ⁡
        
          (
          
            k
            ,
            θ
          
          )
        
      
      =
      
        
          p
          ⁡
          
            (
            
              k
              ,
              θ
            
            )
          
        
        -
        
          w
          ⁡
          
            (
            
              k
              ,
              θ
            
            )
          
        
      
    
  




  
    expressed
    ⁢
    
      
    
    ⁢
    as
    ⁢
    
      :
    
  




  
    
      E
      ⁡
      
        (
        
          k
          ,
          θ
        
        )
      
    
    =
    
      
        [
        
          
            e
            ⁡
            
              (
              
                k
                ,
                θ
              
              )
            
          
          ⁢
          
            e
            ⁡
            
              (
              
                
                  k
                  +
                  1
                
                ,
                θ
              
              )
            
          
          ⁢
          
            e
            ⁡
            
              (
              
                
                  k
                  +
                  2
                
                ,
                θ
              
              )
            
          
          ⁢
          ...
        
        ]
      
      T
    
  




  
    
      U
      ⁡
      
        (
        k
        )
      
    
    =
    
      
        [
        
          
            u
            ⁡
            
              (
              k
              )
            
          
          ⁢
          
            u
            ⁡
            
              (
              
                k
                +
                1
              
              )
            
          
          ⁢
          
            u
            ⁡
            
              (
              
                k
                +
                2
              
              )
            
          
          ⁢
          ...
        
        ]
      
      T
    
  




  
    
      V
      ⁡
      
        (
        k
        )
      
    
    =
    
      
        [
        
          
            v
            ⁡
            
              (
              k
              )
            
          
          ⁢
          
            v
            ⁡
            
              (
              
                k
                +
                1
              
              )
            
          
          ⁢
          
            v
            ⁡
            
              (
              
                k
                +
                2
              
              )
            
          
          ⁢
          ...
        
        ]
      
      T
    
  




  
    
      W
      ⁡
      
        (
        k
        )
      
    
    =
    
      
        [
        
          
            w
            ⁡
            
              (
              k
              )
            
          
          ⁢
          
            w
            ⁡
            
              (
              
                k
                +
                1
              
              )
            
          
          ⁢
          
            w
            ⁡
            
              (
              
                k
                +
                2
              
              )
            
          
          ⁢
          ...
        
        ]
      
      T
    
  




  
    
      C
      ⁡
      
        (
        θ
        )
      
    
    =
    
      
        
          
          
            E
            ⁡
            
              (
              θ
              )
            
          
          
        
        2
      
      =
      
        
          
            E
            H
          
          ⁡
          
            (
            θ
            )
          
        
        ⁢
        
          E
          ⁡
          
            (
            θ
            )
          
        
      
    
  




  
    
      θ
      ^
    
    =
    
      
        min
        θ
      
      ⁢
      
        C
        ⁡
        
          (
          θ
          )
        
      
    
  



In these equations, the modeling error is e(k, θ), the output of the power amplifier including observation errors is p(k, θ), and the output of the software model is w(k,θ). The parameter value of this minimization algorithm is the equivalent to computing the maximum likelihood estimate of the parameters. The optimization criterion used is the least squares or LS criterion. One skilled in the art will recognize that there are many other possible objectives (other than LS) that one could choose as acceptable estimates, including mean squared error, RLS, Kalman, maximum a priori, random particle or others.
In order to solve the cost function problem, it is first recognized that the problem is primarily a non-linear least squares minimization problem. While there are many known methods for solving for the LS solution to non-linear problems, in one embodiment a preferred method is to use the Gauss Newton method, due to its simplicity and ease of implementation.
In the formation of the problem a cost function C (θ) was defined.
Newton's method for non-linear equations is based on the linear approximation (for smooth functions or analytic) where:



  
    
      C
      ⁡
      
        (
        θ
        )
      
    
    =
    
      
        
          E
          H
        
        ⁡
        
          (
          θ
          )
        
      
      ·
      
        E
        ⁡
        
          (
          θ
          )
        
      
    
  




  Approximate




  
    
      E
      ⁡
      
        (
        
          θ
          +
          δ
        
        )
      
    
    ⁢
    
      
    
    ⁢
    using
    ⁢
    
      
    
    ⁢
    the
    ⁢
    
      
    
    ⁢
    first
    ⁢
    
      
    
    ⁢
    Taylor
    ⁢
    
      
    
    ⁢
    series
    ⁢
    
      
    
    ⁢
    term
  




  
    
      E
      ⁡
      
        (
        
          θ
          +
          δ
        
        )
      
    
    =
    
      
        E
        ⁡
        
          (
          θ
          )
        
      
      +
      
        
          J
          ⁡
          
            (
            
              E
              ⁡
              
                (
                θ
                )
              
            
            )
          
        
        ·
        δ
      
      +
      
        O
        ⁡
        
          (
          
            
              
              δ
              
            
            2
          
          )
        
      
    
  




  
    
      θ
      ^
    
    =
    
      
        min
        θ
      
      ⁢
      
        C
        ⁡
        
          (
          θ
          )
        
      
    
  




  
    where
    ⁢
    
      
    
    ⁢
    the
    ⁢
    
      
    
    ⁢
    Jacobian
    ⁢
    
      
    
    ⁢
    is
    ⁢
    
      
    
    ⁢
    the
    ⁢
    
      
    
    ⁢
    matrix
  




  
    
      
        (
      
      ⁢
      
        
          J
          ⁡
          
            (
            
              E
              ⁡
              
                (
                
                  θ
                  ⁢
                  
                    )
                  
                
                )
              
            
            )
          
        
        ij
      
    
    =
    
      
        
          ∂
          
            E
            i
          
        
        
          ∂
          
            θ
            j
          
        
      
      ⁢
      
        (
        θ
        )
      
    
  




  
    
      J
      ⁡
      
        (
        
          E
          ⁡
          
            (
            θ
            )
          
        
        )
      
    
    =
    
      [
      
        
          
            
              
                ∂
                
                  e
                  0
                
              
              
                ∂
                
                  θ
                  1
                
              
            
          
          
            
              
                ∂
                
                  e
                  0
                
              
              
                ∂
                
                  θ
                  2
                
              
            
          
          
            ⋯
          
          
            
              
                ∂
                
                  e
                  0
                
              
              
                ∂
                
                  θ
                  M
                
              
            
          
        
        
          
            
              
                ∂
                
                  e
                  1
                
              
              
                ∂
                
                  θ
                  1
                
              
            
          
          
            
              
                ∂
                
                  e
                  1
                
              
              
                ∂
                
                  θ
                  2
                
              
            
          
          
            ⋯
          
          
            
              
                ∂
                
                  e
                  1
                
              
              
                ∂
                
                  θ
                  M
                
              
            
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            
              
            
          
          
            ⋮
          
        
        
          
            
              
                ∂
                
                  e
                  N
                
              
              
                ∂
                
                  θ
                  1
                
              
            
          
          
            
              
                ∂
                
                  e
                  N
                
              
              
                ∂
                
                  θ
                  2
                
              
            
          
          
            ⋯
          
          
            
              
                ∂
                
                  e
                  N
                
              
              
                ∂
                
                  θ
                  M
                
              
            
          
        
      
      ]
    
  



The above can be repeated for an iterative solution and yield.

The Gauss-Newton algorithm can be summarized as:




  
    Let
    ,
    
      

    
    ⁢
    
      
        δ
        k
      
      =
      
        
          θ
          
            (
            
              k
              +
              1
            
            )
          
        
        -
        
          θ
          
            (
            k
            )
          
        
      
    
  




  
    
      initialize
      ⁢
      
        
      
      ⁢
      
        θ
        0
      
    
    ,
    
      

    
    ⁢
    
      
        for
        ⁢
        
          
        
        ⁢
        k
      
      =
      0
    
    ,
    ...
  




  
    
      Compute
      ⁢
      
        
      
      ⁢
      
        J
        ⁡
        
          (
          
            E
            ⁡
            
              (
              
                θ
                k
              
              )
            
          
          )
        
      
    
    ,
    
      E
      ⁡
      
        (
        
          θ
          k
        
        )
      
    
  




  
    Solve
    ⁢
    
      
    
    ⁢
    
      
        min
        δ
      
      ⁢
      
        
          
          
            
              
                J
                ⁡
                
                  (
                  
                    E
                    ⁡
                    
                      (
                      
                        θ
                        k
                      
                      )
                    
                  
                  )
                
              
              ⁢
              
                δ
                k
              
            
            -
            
              E
              ⁡
              
                (
                
                  θ
                  k
                
                )
              
            
          
          
        
        2
      
    
  




  
    
      θ
      
        k
        +
        1
      
    
    =
    
      
        θ
        k
      
      +
      
        δ
        k
      
    
  




  
    next
    ⁢
    
      
    
    ⁢
    k
  




  
    return
    ⁢
    
      
    
    ⁢
    θ
  



In the Gauss-Newton algorithm a standard LS solver can be used for




  [
  
    Solve
    ⁢
    
      
    
    ⁢
    
      
        min
        δ
      
      ⁢
      
        
          
          
            
              
                J
                ⁡
                
                  (
                  
                    E
                    ⁡
                    
                      (
                      
                        θ
                        k
                      
                      )
                    
                  
                  )
                
              
              ⁢
              
                δ
                k
              
            
            -
            
              E
              ⁡
              
                (
                
                  θ
                  k
                
                )
              
            
          
          
        
        2
      
    
  
  ]




which is the majority of the computation. These iterations improve the estimate as long as

|E(θk+1)|<|E(θk)| holds.
For a discussion of these operations see Matrix Computation, Gene D. Golub, Charles F. Vanhom, published by Johns Hopkins University, 1996, for discussion of the linear least squared methods and consideration.
Whether a Gauss-Newton or the extended Kalman filter (EKF) approach is used, the Jacobian of the model is required. In general determining this Jacobian can require many calculations, and is dependent on the model in ways that prevent changing the model easily. The computations have to be repeated entirely for any change in the model. A preferred method has been found using the simplex method for the Jacobian that allows the construction of the model in software and no corresponding Jacobian model/function was required. The use of this preferred approach allows a user definition of an appropriate model for the Kalman filter (which may be an extended, unscented, or square root Kalman form filter).
Let F(x) be a function of the vector x. Then using the definition of a derivative




  
    
      ∂
      F
    
    
      ∂
      
        x
        i
      
    
  
  =
  
    
      lim
      
        Δ
        ⁢
        
          
        
        →
        0
      
    
    ⁢
    
      
        
          F
          ⁡
          
            (
            x
            )
          
        
        -
        
          F
          ⁡
          
            (
            
              x
              +
              Δ
            
            )
          
        
      
      Δ
    
  




If delta (Δ) is sufficiently small, and, the function F is a bounded variation the limit exists and the derivative is defined. Using the derivative equation above, N+1 evaluations of F are required. To reduce the error in this computation, the evaluations should be centered around the value for x for which the Jacobian is found. This then results in an alternate definition:




  
    
      ∂
      F
    
    
      ∂
      
        x
        i
      
    
  
  =
  
    
      lim
      
        Δ
        ⁢
        
          
        
        →
        0
      
    
    ⁢
    
      
        
          
            F
            ⁡
            
              (
              
                x
                -
                Δ
              
              )
            
          
          -
          
            F
            ⁡
            
              (
              
                x
                +
                Δ
              
              )
            
          
        
        
          2
          ⁢
          Δ
        
      
      .
    
  




This approach avoids the non-central computation of the derivatives, reducing the estimation errors, but now requires 2N function evaluations, thus increasing the computational requirements.
To define a plane in N space requires N+1 points. This represents one vector constant and N slopes. This N space establishes the lower bound that can be used in an estimation of the Jacobian. The result is the same as the first approach, except that the defining points are not centered about the desired point where the Jacobian is to be estimated. It is desired to place the defining points uniformly around the center point x. The method is most easily understood when stated as an algorithm.
Let each vector v be v(i) of length N. Let the matrix V=[v(0) v(1) . . . ]. If V represents a set of vertices of a regular simplex with the vertices of distance I from the origin, then:













For i = 1 to N+1,
//first evaluate the function F at N+1 different offsets







 from the centroid x








f(i) = F(x + v(i))
//evaluate f at each point, save each value (may be a


 vector)


end


J = pinv(V) * f
//compute the pseudo inverse of the matrix V,



multiply by the matrix f









In the algorithm F(x) must be computed for N+2 evaluations total. The extra point can be used to determine the fit for the linear model to the function F around the centroid x.

In the Kalman filter, the covariance of the state estimation variable is available. Let P be the Cholesky factor of this covariance. This factor is exploited to place scale the sigma point distances from the origin so that the region covered is equal to the uncertainty in the state to be estimated. In this manner the best tradeoff accuracy over the region of interest may be minimized.
The modified algorithm is now:













For i = 1 to N+1
//evaluate F at N+1 different offsets from the



centroid x


f(i) = F(x + P*(v(i))
//evaluate f for each point and save the value



(may be a vector)


end


J = pinv(P*V) *f
//compute the pseudoinverse of the matrix P*V and



multiply by the matrix f









The matrix V has many degrees of freedom and may be manipulated using matrix transformations as is known in the art to ease or reduce the computations.

If the unscented transform used in the unscented Kalman filter is examined, it can be shown that using the Jacobian J as described above in an extended Kalman filter (EKE) is equivalent to using the unscented Kalman filter. This is the preferred method of using the Kalman filter for the present invention. In addition, it is known that the square root Kalman is more robust than the standard covariance Kalman. The most preferred method is to extend the methods above using the square root form of the Kalman. The square root form of the Kalman is discussed in Linear Estimation, Thomas Kailath, Aviti Sayed, Babik Habibi, Prentice Hall Information and System Sciences Series, Prentice Hall, March 2000, pp. 437-440.
Now that the basic framework has been outlined for how to find the model parameters iteratively two elements are required to implement the algorithm. An initial starting point θ(0) is required. If this initial starting point is too far away from the desired solution the linear approximation used does not hold with sufficient accuracy to converge. The second issue is the need to compute the Jacobian of the error E.
The first step in the generation of the PA software model is to estimate the best least squared error as a function of phase, gain and delay that matches the PA. This is done by capturing data at the input to the PA and the output using the capture buffers CAP A 97 and CAP B 96 of FIG. 18. Alternatively, only a single capture buffer can be used for the feedback signals, the signals into the non-linear power amplifier could be captured in another resource such as by an external computer. Assuming that the complex representation of the power amplifier is the vector x and its output is the vector y, the cross correlation is between the vectors is computed. The point where the maximum magnitude is used to find the PA and associate hardware delay. After the delay has been normalized the complex gain at that delay is found. A fractional sample delay is computed using a curve fit of the largest correlation magnitude and its neighbors.
The model has a non-linear and a linear block in cascade. The first step in initializing the model is to initialize the linear block. This is performed by setting the non-linear block to a “pass through” and then the linear filter is determined in a typical linear system identification method. The traditional LS solver can be used. Using the Matlab tools as are known in the art, the output of the power amplifier 41 of FIG. 18 may be represented:
Function [gain, delay]=HPA_init(x,y)z=corr(x,y);
ind=find(max(abs(z))==abs(z));
delay=ind(1)−length(x);
gain=z(ind(1))/(x*x);
return
From these values the coefficients of H (u) in FIG. 18 are set. After the initial guess of a coarse model for the power amplifier, the required nonlinearity F (v) is found. The input to the model nonlinearity is found by convolving the power amplifier input data by the linear model H (u) just computed, (V=U*H). From this convolution, an estimate of F (v) is generated. Preferably a least fit, similar to the polyfit in Matlab, may be used.
Next the non-linear portion of the high power amplifier is initialized. The cost function C (θ) to be minimized can be stated as



  
    
      
        
          Let
          ,
          
            

          
          ⁢
          
            P
            =
            
              
                [
                
                  
                    p
                    ⁡
                    
                      (
                      0
                      )
                    
                  
                  ,
                  
                    p
                    ⁡
                    
                      (
                      1
                      )
                    
                  
                  ,
                  ...
                
                ]
              
              T
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            T
            1
          
          =
        
      
       
    
    ⁢
    
       
      
        [
        
          
            
              
                
                  v
                  ⁡
                  
                    (
                    0
                    )
                  
                
                ⁢
                
                  
                    B
                    0
                  
                  ⁡
                  
                    (
                    
                      
                        
                        
                          v
                          ⁡
                          
                            (
                            0
                            )
                          
                        
                        
                      
                      2
                    
                    )
                  
                
              
            
            
              
                
                  v
                  ⁡
                  
                    (
                    0
                    )
                  
                
                ⁢
                
                  
                    B
                    1
                  
                  ⁡
                  
                    (
                    
                      
                        
                        
                          v
                          ⁡
                          
                            (
                            0
                            )
                          
                        
                        
                      
                      2
                    
                    )
                  
                
              
            
            
              
                
                  v
                  ⁡
                  
                    (
                    0
                    )
                  
                
                ⁢
                
                  
                    B
                    
                      M
                      -
                      1
                    
                  
                  ⁡
                  
                    (
                    
                      
                        
                        
                          v
                          ⁡
                          
                            (
                            0
                            )
                          
                        
                        
                      
                      2
                    
                    )
                  
                
              
            
          
          
            
              
                
                  v
                  ⁡
                  
                    (
                    1
                    )
                  
                
                ⁢
                
                  
                    B
                    0
                  
                  ⁡
                  
                    (
                    
                      
                        
                        
                          v
                          ⁡
                          
                            (
                            1
                            )
                          
                        
                        
                      
                      2
                    
                    )
                  
                
              
            
            
              
                
                  v
                  ⁡
                  
                    (
                    1
                    )
                  
                
                ⁢
                
                  
                    B
                    1
                  
                  ⁡
                  
                    (
                    
                      
                        
                        
                          v
                          ⁡
                          
                            (
                            1
                            )
                          
                        
                        
                      
                      2
                    
                    )
                  
                
              
            
            
              
                
              
            
          
          
            
              
                
              
            
            
              
                
              
            
            
              
                
              
            
          
          
            
              
                
                  v
                  ⁡
                  
                    (
                    
                      N
                      -
                      1
                    
                    )
                  
                
                ⁢
                
                  
                    B
                    0
                  
                  ⁡
                  
                    (
                    
                      
                        
                        
                          v
                          ⁡
                          
                            (
                            0
                            )
                          
                        
                        
                      
                      2
                    
                    )
                  
                
              
            
            
              
                
              
            
            
              
                
                  v
                  ⁡
                  
                    (
                    
                      N
                      -
                      1
                    
                    )
                  
                
                ⁢
                
                  
                    B
                    
                      M
                      -
                      1
                    
                  
                  ⁡
                  
                    (
                    
                      
                        
                        
                          v
                          ⁡
                          
                            (
                            
                              N
                              -
                              1
                            
                            )
                          
                        
                        
                      
                      2
                    
                    )
                  
                
              
            
          
        
         
      
      ]
    
  




  
    
      E
      ⁡
      
        (
        
          θ
          2
        
        )
      
    
    =
    
      
        T
        1
      
      ⁢
      
        θ
        2
      
    
  




  
    E
    =
    
      P
      -
      
        
          T
          1
        
        ⁢
        θ
      
    
  



Where P is the PA output vector; and the polynomials Bi are a non-linear basis set, for example the Zernike polynomials are used in one preferred method, alternatives include the Kaukunen-Loe've and others known in the art. It should be noted that the valid size of the vector v is less than the capture buffer size due to end effects on the convolution V=U*H. At this point the coefficients of H only have 1 non-zero value.

The next step is to compute the vector E (θ) and the Jacobian E′ (θ). The vector E (θ) is easily computed using the Weiner model and the parameters vector θ and is not discussed further. A critical step needed above is how to best compute the Jacobian required.
The Jacobian is also required for F (v), the nonlinearity. The nonlinearity F(x) selected is slightly more difficult to differentiate with respect to the input as needed for




  
    
      ∂
      
        E
        ⁡
        
          (
          
            
              θ
              1
            
            ,
            
              θ
              2
            
          
          )
        
      
    
    
      ∂
      
        θ
        1
      
    
  
  ⁢
  
    
  
  ⁢
  from
  ⁢
  
    
  
  ⁢
  
    
      ∂
      
        F
        ⁡
        
          (
          v
          )
        
      
    
    
      ∂
      v
    
  




The function E(Θ) is not strictly differentiable in the complex domain as required. This problem is solved by decomposing the function into a vector

Re(F(Re(Θ))Im(F(Re(Θ))Re(F(Im(Θ))ImF(Im(Θ)).

The Jacobian of this decomposed function is then found using the simplex method as described above. This approach increases the dimensionality of the problem but by having only real inputs and real outputs, the computation is the same for most of the required adaptation steps.
The Jacobian computation can be resolved by splitting the real and imaginary parts of the matrix. In this case, the matrix T becomes twice as large in both dimensions:




  
    [
    
      
        
          R
        
        
          I
        
      
      
        
          
            -
            I
          
        
        
          R
        
      
    
    ]
  
   




The Jacobian is preferably found using the simplex approach described above.
Once the initial ‘guess’ for the power amplifier software model parameters 411 of FIG. 18 have been made, the Kaplan filter is preferably employed, alternatively the Gauss-Newton method can be employed to refine the parameters.
A method of tracking of the models is needed. There is a tradeoff between adaptation speed and forgetting helpful information in the DPD process. A validation process is used to validate the models; this is done by providing data to the system and observing the results using the capture buffers.
In the initialization of the HPA model higher order models can be used to reduce the error. However including these added terms leads to more computation and may be result in little or no improvement in performance. In this case some of the regressors are nearly collinear and a reduced subset of parameters can be used for nearly the same performance at reduced complexity. There are many techniques to achieve this goal and the penalized least squares (PLS) algorithm is probably the most widely used.
After the model is initialized, it must be refined and validated. It is known to use a Kalman filter as a method to compute an unknown system. A paper entitled “An Introduction to the Kalman Filter”, by Greg Welch and Gary Bishop, TR95-041, Department of Computer Science, University of North Carolina at Chapel Hill, Jul. 24, 2006, describes the general Kalman filter, the discrete Kalman filter and the extended Kalman filter which is used for non-linear systems. In a preferred method, an extended Kalman filter is used to estimate the least squares solution of θ, as opposed to an approach that requires finding the value for θ that minimizes the magnitude ∥E(θ)∥2. Further the use of an unscented Kalman filter is also known to be advantageous as the unscented Kalman filter is even better suited to solving for nonlinearities. Kalman filters are used for modeling unknown systems that are basically linear, the extended Kalman filter was created to address non-linear systems, but it essentially approximates the system as linear to a first order of approximation, so the unscented Kalman filter is known in the art for advantageous use with non-linear systems. Further the use of a square root Kalman is known to be advantageous as it is more stable and robust than the covariance Kalman. The square root Kalman, although initially directed to linear systems, can also be extended to non-linear systems.
In a preferred method, the Kalman filter is used to determine the parameter values.
The Kalman filter assumes a model expressed as:

Θk+1=AΘk+wk 

yk=C(uk)Θk+vk 

Where θk is the state to be estimated, yk is the observation, wk is the process noise, vk is the observation noise, uk is the system driving signal, A is the state transition matrix and C is the observation function.
This is not the most general case but is found to be useful for this application. The observation yk is a weighted sum (weighted by θk) of non-linear functions in uk and the Gaussian observation noise vk. The state vector θk is modeled as a simple first order Markov sequence. This Kalman filter model is used in the modeling of the non-linear element (HPA) and the adaptation of the short DPD, and the long DPD.
Importantly, the computations used in the Kalman filter and the adaptation use a modified approach that greatly reduces the numerical complexity required by the standard approach. FIG. 18 illustrates graphically the approach.
In a preferred approach, a linear approximation to y at the operating point is used:

yk(uk,Θk+δk)≈y(ukΘk)+J(C)*δk 

Therefore the error is approximated:

e(k,Θ)≈J(C)*(Θk−{circumflex over (Θ)}k)

Where {circumflex over (Θ)}k is the current state estimate.

The Jacobian J(C) is determined as described above, or using another method.

The Kalman filter update equation is then:

Θk+1=A{circumflex over (Θ)}k+K(e(k,Θk)

Where K is the computed Kalman gain.

After the model for the non-linear element is generated, the short DPD model is also initialized and adapted. The process for performing these steps is very similar to the steps described above for modeling the power amplifier. An approximate parameter solution must be found to initialize the non-linear optimization procedure.
FIG. 19 illustrates graphically a preferred methodology for modeling the short DPD block. In FIG. 19, the capture buffers Cap A 97 and Cap B 96 are again used to observe certain points in the system. The hardware portion of FIG. 19 captures the baseband data b (k) into the short DPD hardware portion 46, and, the capture buffer B is now configured to observe the output of summer 91 in FIG. 6. This output is the actual error observed. The goal is to create a software model and initialize the SDPD block so that the actual error is minimized, and, the error between the model and the hardware is eliminated.
The method preferred is to minimize a cost function exploiting a software PA model for the linear and non-linear blocks, and, to map them to the SDPD hardware structure as an initial estimate. In FIG. 20, the short DPD hardware block 46 is depicted as a cascade arrangement of a Volterra function E and an equalizer G. The output of the SDPD hardware is then fed into the actual PA. If the hardware is the ideal inverse of the PA model, then the error (if it exists)  ̃e (k) will be zero.
The hardware for the SDPD block as depicted in FIG. 7 is two blocks. In the non-linearity example of FIG. 7, these are the equalizer as shown, a linear FIR filter with 16 taps, and a three term Volterra filter. Other arrangments could be used with different numbers of taps, and, different numbers of turns.
The equalizer can be modeled as:



  
    
      u
      ⁡
      
        (
        
          k
          ,
          
            θ
            3
          
        
        )
      
    
    =
    
      
        ∑
        
          i
          =
          0
        
        
          N
          -
          1
        
      
      ⁢
      
        
          
            θ
            3
          
          ⁡
          
            (
            i
            )
          
        
        ⁢
        
          c
          ⁡
          
            (
            
              k
              -
              i
            
            )
          
        
      
    
  




  or




  
    
      G
      ⁡
      
        (
        
          z
          ,
          
            θ
            3
          
        
        )
      
    
    =
    
      
        ∑
        
          i
          =
          0
        
        
          N
          -
          1
        
      
      ⁢
      
        
          
            θ
            3
          
          ⁡
          
            (
            i
            )
          
        
        ⁢
        
          z
          
            -
            i
          
        
      
    
  



The Volterra filter may be described as:





  
    c
    ⁡
    
      (
      
        b
        ,
        
          θ
          4
        
      
      )
    
  
  =
  
    
      F
      ⁡
      
        (
        
          
            b
            ⁡
            
              (
              k
              )
            
          
          ,
          
            θ
            4
          
        
        )
      
    
    =
    
      
        v
        ⁡
        
          (
          k
          )
        
      
      ·
      
        
          ∑
          
            j
            =
            0
          
          2
        
        ⁢
        
          
            ∑
            
              i
              =
              0
            
            
              N
              -
              1
            
          
          ⁢
          
            
              
                θ
                4
              
              ⁡
              
                (
                
                  i
                  ,
                  j
                
                )
              
            
            ⁢
            
              
                B
                i
              
              ⁡
              
                (
                
                  
                    
                    
                      b
                      ⁡
                      
                        (
                        
                          k
                          -
                          
                            d
                            ⁡
                            
                              (
                              j
                              )
                            
                          
                        
                        )
                      
                    
                    
                  
                  2
                
                )
              
            
          
        
      
    
  




The parameters for the Volterra filter are two dimensional as normally used in Volterra filtering notation. The variable d(j) is the delay used in into the jth look up table (LUT) driving the three tap FIR filter in the digital hardware. In the implementation shown, only the diagonal terms of θ4(i,j) are used,
Again the initial state of the SDPD hardware blocks must be estimated so that the Gauss-Newton method iterations used, or a linearized Kalman filter are used, to determine the parameters will converge. It is preferred to break the initialization into two steps, first, the Linear (equalizer) portion is initialized, and then second the Nonlinear (Volterra) portion is initialized. These initializations are performed by approximately inverting the software PA model 411.
FIG. 19 is representative of the process of determining the SDPD hardware parameters for the block 46. Since the software PA model (shown as 411) has an FIR filter defined as H(z), the first step is to invert this function with another FIR filter to be used in the SDPD and denoted as G(z). The initial estimate for the parameters of the non-linear portion of the SDPD is the inverse of the function F(x) obtained in determining the software model for the power amplifier above and applied to the center look up table (LUT), while the others are set to zero. In one approach this is determined simply by evaluation of the function F(x) over approximately n points from zero to the peak level observed/n, where n was set to approximately 256 for a reasonable sampling of the curve and given practical computation time. Then, if y-F(x) over this range, the inversion is obtained by solving the least squared problem with the basis set chosen (preferably the Zernike polynomials) with the inputs and outputs swapped.
Once the initial SDPD parameters are set, these parameters are further refined using the Gauss Newton method or Kalman filter as before.
Following the initialization and refinement of the parameters, the SDPD must be adapted using an iterative tracking process. The tracking algorithm, which will run in a loop in the digital signal processor or microprocessor that controls the DPD blocks, will periodically update the parameters to adapt the functional blocks.
FIG. 19 depicts an illustrative representation of the short DPD hardware block 46 functionality with the tracking algorithm software shown running the control processor 73 which outputs the adaptive changes δ3, δ4 in parameters to the differential parameter set shown in block 461 for the short DPD block 46 functions, the Volterra function E and the equalizer function G. Thus once the short DPD block 46 is initially parameterized, a looping approach is used to periodically update the parametric values for the Volterra function and the equalizer that comprise the short DPD block. The delta block 461 represents the change in parameters for the SDPD hardware block 46. Control processor 73 executes an algorithm to perform the short DPD tracking function to adapt the parameters during the operation of thee power amplifier.
FIG. 20 depicts graphically the ongoing adaptation of the short DPD using the software models 461 and 411 of the short DPD block 46 and the power amplifier 41. In operation the processor 73 may collect data in capture buffers A and B using the logic circuitry and control signals as shown in FIG. 20, and may adapt the parameters for the short DPD function “offline” even while the transmit processor of FIG. 6 continues to operate in real time. This allows the system to operate without “calibration” or other down-time while still being continuously adapted.
Finally, the long DPD block 74 of FIG. 6 must likewise be modeled and initialized. This process again involves modeling the long block in software, developing the model, initializing the model, and adapting the parameters of the model. The approximation used only works if the path of the DPD and the nonlinear element is sufficiently linear. In most cases known, this will be true after the initialization of the short DPD, unless the power amplifier is driven into saturation. This condition should be set up as a trap condition and the long DPD block should not be adapted under this condition.
FIG. 21 depicts the approach of a preferred method of the present invention, which is to treat the cascaded functions of the short DPD block, and the actual PA, as a simple non-linear element which requires linearization. This is represented in FIG. 21 by the expression:

{tilde over (S)}(b(k))≈b(k−d)+T(b(k−d)).

Where T is the nonlinear component of the path shown.

Thus the combined cascade is again treated as an element to be linearized. The same techniques are then applied as before, the goal is to find a model 741 for the long DPD block 74 that tracks the actual hardware and to parameterize the model and the block, initially, so that the error term is minimized and so that the model error is minimized. This will occur when the inequality
| T|2<<| b|2 shown in FIG. 21 is satisfied. The error is minimized when the gradient function shown in FIG. 21, {tilde over (e)}≈R*∂5 
is determined, where R is a nonlinear function of inputs to the long block.
In operation, the availability of the accurate software models for each of the blocks long DPD, short DPD, and the actual power amplifier PA, makes real-time and offline adaptation of the long and short predistortion blocks possible. By using the capture buffers to capture data in different places in the system, the control processor 73 of FIG. 20 or other external computing resources can be used to adaptively update the parameters for the short DPD and long DPD blocks on a periodic basis, without interrupting the ongoing operation of the system. This method advantageously allows real time adaptation and refinement of the models used while the system continues to be available for operation.
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. For example, many of the features and functions discussed above can be implemented in software, hardware, or firmware, or a combination thereof.
Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed, that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.

## Claims

1. A circuit for linearizing a non-linear element comprising:
input circuitry that provides an input signal;
a digital predistorter (DPD) that is coupled to the input circuitry to compensate for distortion in the non-linear element, wherein the DPD includes:
a magnitude squared circuit that is coupled to the input circuitry;
a plurality of variable delay elements that are each coupled to the magnitude squared circuit;
a plurality of programmable nonlinearities, wherein each programmable nonlinearity is coupled in series with at least one of the variable delay elements;
a first digital filter that is coupled to each of the input circuitry and that is coupled to each of the programmable nonlinearities, wherein the programmable nonlinearities supply filter coefficients for the digital filter; and
a second digital filter that is coupled to first digital filter, wherein the second digital filter generates an output for the digital predistorter; and

a feedback path that receives a feedback signal from the non-linear element and that is coupled to the input circuitry.

2. The circuit of claim 1, wherein the first digital filter further comprises:
a plurality of delays that are each coupled to coupled to the input circuitry;
a plurality of multipliers, wherein each multiplier is coupled to at least one of the programmable nonlinearities so as to receive at least one of the filter coefficients, and wherein each of the delays is coupled to at least one of the multipliers;
a summer that is coupled to each of the multipliers.

3. The circuit of claim 2 wherein the programmable nonlinearities each further comprise an interpolating look up table that stores non-linear programmable table entries determined by the magnitude squared data and that stores programmable interpolation values, and outputting a programmable interpolated value between table entries determined by the least significant bits of the input.

4. The circuit of claim 2, wherein the second digital filter further comprises an equalizer having a programmable multiple tap FIR filter with adaptive coefficients that is coupled to the summer.

5. The circuit of claim 4 wherein the equalizer further comprises:
four parallel finite impulse response (FIR) filter stages that are coupled to receive real and complex signal inputs; and
a pair of summers that are each coupled to combine the outputs of two of the four parallel filter stages and that each combine cross terms of the real and complex filter stages and each have programmable weights to equalize imbalances in the real and complex signals.

6. The circuit of claim 1, wherein the non-linear element is a power amplifier.

7. The circuit of claim 1, wherein the circuit further comprises:
a first capture buffer that is coupled to the feedback path to capture and store samples of the feedback signal; and
a second capture buffer that is coupled to the input circuitry to capture and store samples of the input signal; and
a control processor that is coupled to each of the first and second capture buffers, wherein the control processor analyzes the captured signals stored within the first and second capture buffers, and wherein the control processor updates DPD in response to the analysis of captured signals stored within the first and second capture buffers.

8. The circuit of claim 1, wherein the input circuitry further comprises a digital baseband processing circuit.

9. The circuit of claim 8, wherein the DPD further comprises a short memory DPD, and wherein the input circuitry further comprises a long memory DPD that is coupled between the digital baseband processing circuit and the short memory DPD.

10. A circuit for linearizing a non-linear element comprising:
a digital baseband processing circuit that receives a baseband signal;
a long memory DPD that is coupled to the digital baseband processing circuit;
a QRD block that is coupled to the digital baseband processing circuitry;
a first summer that is coupled to the long memory DPD and the QRD block;
a short memory DPD that is coupled to the first summer, wherein the short memory DPD includes:
a magnitude squared circuit that is coupled to the input circuitry;
a plurality of variable delay elements that are each coupled to the magnitude squared circuit;
a plurality of programmable nonlinearities, wherein each programmable nonlinearity is coupled in series with at least one of the variable delay elements;
a first digital filter that is coupled to each of the input circuitry and that is coupled to each of the programmable nonlinearities, wherein the programmable nonlinearities supply filter coefficients for the digital filter; and
a second digital filter that is coupled to first digital filter;

a feedback path that receives a feedback signal from the non-linear element and that is coupled to the input circuitry; and
a second summer that is coupled between the feedback path and the digital baseband processing circuit.

11. The circuit of claim 10, wherein the first digital filter further comprises:
a plurality of delays that are each coupled to coupled to the input circuitry;
a plurality of multipliers, wherein each multiplier is coupled to at least one of the programmable nonlinearities so as to receive at least one of the filter coefficients, and wherein each of the delays is coupled to at least one of the multipliers;
a third summer that is coupled to each of the multipliers.

12. The circuit of claim 10 wherein the programmable nonlinearities each further comprise an interpolating look up table that stores non-linear programmable table entries determined by the magnitude squared data and that stores programmable interpolation values, and outputting a programmable interpolated value between table entries determined by the least significant bits of the input.

13. The circuit of claim 10, wherein the non-linear element is a power amplifier.

14. The circuit of claim 10, wherein the circuit further comprises:
a first capture buffer that is coupled to the feedback path to capture and store samples of the feedback signal; and
a second capture buffer that is coupled to the input circuitry to capture and store samples of the input signal; and
a control processor that is coupled to each of the first and second capture buffers, wherein the control processor analyzes the captured signals stored within the first and second capture buffers, and wherein the control processor updates at least one of the long memory DPD and the short memory DPD in response to the analysis of captured signals stored within the first and second capture buffers.

15. A method for linearizing a non-linear element comprising:
generating an input signal from a baseband signal with input circuitry;
digitally predistoring the input signal by:
squaring the magnitude of the input signal to generate a squared signal;
receiving the squared signal by a plurality of variable delay elements;
generating a plurality of delayed signals;
receiving at least one of the delayed signals by a plurality of programmable nonlinearities;
digitally filtering the squared signal to generate a digitally filtered signal, wherein the programmable nonlinearities supply filter coefficients for the step if digitally filtering; and
equalizing the digitally filtered signal with a multiple tap FIR filter with adaptive coefficients; and

providing a feedback signal from the non-linear element to the to the input circuitry.

16. The method of claim 15, wherein the step of digitally filtering further comprises:
receiving the input signal by a plurality of delays;
multiplying an output from each of the delays with at least one of the filter coefficients from the programmable nonlinearities with a plurality of multipliers; and
adding outputs from each of the multipliers together to generate the digitally filtered signal.

17. The method of claim 16, wherein the step of digitally predistoring further comprises applying a non-linear Volterra filter.

18. The circuit of claim 17, wherein the circuit further comprises:
capturing and storing samples of the feedback signal by a first capture buffer;
capturing and storing samples of the input signal a second capture buffer;
analyzing the captured signals stored within the first and second capture buffers;
updating the non-linear Volterra filter in response to the step of analyzing.