The present disclosure relates to a method and system that calculates the norms of a stream of vectors at a relatively high rate.
An envelope tracking system generates an envelope signal that is used as a reference input for a fast switched-mode power supply (Fast SMPS). In turn, the Fast SMPS uses the envelope signal to modulate a supply of a power amplifier for an increased efficiency. At present, an envelope signal generated by traditional methods is not fast or accurate enough for use with the long term evolution (LTE) standard wherein an envelope modulation bandwidth can be as high as 1.5 times a modulation bandwidth. In fact, a 20 MHz LTE bandwidth requires about 30 MHz envelope bandwidth, which further requires a digital sampling clock of 104 MHz for improved oversampling. As a result, there is a need for a method and system that generates fast digital envelope signals using in-phase (I) and quadrature (Q) signals that drive an RF modulator.
The present disclosure provides a coordinate rotation digital computer (CORDIC) for computing the norm of a vector having a first component and a second component. The CORDIC includes a first maximum value circuit for outputting a maximum operand that is a larger one of either an absolute value of the first component or an absolute value of the second component. A minimum value circuit outputs a minimum operand that is a smaller one of either an absolute value of the first component or an absolute value of the second component. The CORDIC has N rotator stages, each corresponding to a unique one of N predetermined vectors. Each of the N rotator stages has a first multiply circuit for multiplying the maximum operand by a cosine coefficient of a corresponding predetermined vector to output a first rotation component and a second multiply circuit for multiplying the minimum operand by a sine coefficient of the corresponding predetermined vector to output a second rotation component. Moreover, each of the N rotator stages include an adder circuit for adding the first rotation component to the second rotation component to output one of N results. The CORDIC also has a second maximum value circuit for outputting a maximum one of the N results.
Those skilled in the art will appreciate the scope of the disclosure and realize additional aspects thereof after reading the following detailed description in association with the accompanying drawings.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure, and together with the description serve to explain the principles of the disclosure.
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the embodiments and illustrate the best mode of practicing the embodiments. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
In particular, the system and method of the present disclosure provides an array of unit vectors Ū(i) that are used to effectively rotate the vector
As will be explained in greater detail further in the disclosure, the vector
norm≈(a(i)(|I|)+(b(i)(|Q|) (1)
The absolute values of the first component I and a second component Q are taken to ensure that the vector
A multiplication by one of the unit vectors Ū(i) yields a largest value. This largest value is the most accurate calculation of the norm for the vector
In the exemplary case shown in
In this exemplary case, the unit vector Ū(2) has the smallest angle with the vector
A first absolute value (ABS) circuit 16 outputs the absolute value of the first component I. A second ABS circuit 18 outputs the absolute value of the second component Q. In the particular case of the first embodiment CORDIC 10, the outputted values are d bits wide, wherein d=n−1.
A first maximum value (MAX) circuit 20 receives both the first component I and the second component Q and in turn outputs the larger value of the first component I and the second component Q. In contrast, a first minimum value (MIN) circuit 22 receives both the first component I and the second component Q and in turn outputs the smaller value of the first component I and the second component Q.
A first rotator stage 24, a second rotator stage 26 and an Nth rotator stage 28 simultaneously receive the larger value output from the first MAX circuit 20 and the smaller value output from the MIN circuit 22. One approximation of a norm for the vector
The first rotator stage 24, the second rotator stage 26, and the Nth rotator stage 28 each have a multiply circuit 34 for multiplying the larger value, which is a maximum operand, by corresponding cosine coefficients a(i), wherein i is a natural number that ranges from 0 to N−1. For example, the cosine coefficient a(0) is stored in a memory location 36 for use by the first rotator stage 24. The cosine coefficient c is stored in a memory location 38 for use by the second rotator stage 26, and a cosine coefficient a(N−1) is stored in a memory location 40 for use by the Nth rotator stage 28. The memory location 36, the memory location 38, and the memory location 40 are each c bits wide. An equation for calculating the cosine coefficients is given by the following equation (2).
The CorrectionFactor is a dimensionless correction factor that is usable for reducing the mean error over a plurality of calculations and is given by the following equation (3).
Similarly, the first rotator stage 24, the second rotator stage 26, and the Nth rotator stage 28 each have a multiply circuit 42 for multiplying the smaller value, which is a minimum operand, by corresponding cosine coefficients b(i), wherein i is a natural number that ranges from 0 to N−1. A sine coefficient b(0) is stored in a memory location 44 for use by the first rotator stage 24. A sine coefficient b(1) is stored in a memory location 46 for use by the second rotator stage 26, and a sine coefficient b(N−1) is stored in a memory location 48 for use by the Nth rotator stage 28. The memory location 44, the memory location 46, and the memory location 48 are each c bits wide. An equation for calculating the sine coefficients is given by the following equation (4).
The CorrectionFactor is usable for reducing the mean error over a plurality of calculations and is given by the equation (3) above.
The first rotator stage 24, the second rotator stage 26, and the Nth rotator stage 28 each have an adder circuit 50 that receive m bit wide outputs from corresponding multiply circuits 34 and 42. Each adder circuit 50 outputs an bit wide norm approximation to the second MAX circuit 30. Moreover, each adder circuit includes a results register 52 that is m bits wide plus an overflow bit 54 that controls a results multiplexer 56 that outputs either the addition results or a predetermined maximum value (MAXVAL) held in a memory location 58. In this particular embodiment the output of the multiplexer 56 will be addition results if the overflow bit is set to 0. In contrast, the output of the adder circuit will be the constant MAXVAL if the overflow bit is set to 1. A round and right shift (RS) circuit 60 rounds the addition results and then right shifts the results until only an bit wide result remains.
Table 3 below lists word size configurations for an exemplary CORDIC having five rotator stages and another exemplary CORDIC having six rotator stages. Table 3 also lists the maximum error for a least significant byte (LSB) and the mean error LSB. The probability for an error greater than or equal to 0.5 LSB is 11.3% for a CORDIC with five rotator stages and 7.4% for a CORDIC having 7.4%.
Table 4 lists digital values for the coefficients of the first components a(i), and the second components b(i) of the unit vectors Ū(i) used by the first rotator stage 24, the second rotator stage 26, and the Nth rotator stage 28.
Referring back to Table 3, the five rotator stage example is configured for coefficients that are 9 bits in size. As a result, the maximum value for the coefficients of the five rotator stage example is 512. The six rotator stage example is configured for coefficients that are 10 bits in size. Therefore, the maximum value for the coefficients of the six rotator stage example is 1,024. Dividing the coefficients of the first components a(i), and the second components b(i) by the maximum values 512 and 1024 for the five rotator stage example and the six rotator stage example yields decimal values listed in Table 5 below. Notice that the coefficients of the first components a(i), and the second components b(i) of the five rotator stage example in Table 5 are close to the first components a(i), and the second components b(i) of Table 1 multiplied by a CorrectionFactor of 1.001 that is calculated using equation (3).
The mode circuitry further includes an input subtractor circuit 70 that subtracts the second component Q of the vector
An additional round and RS circuit 76 can be implemented if the width d of the output of the first MAX circuit 20 is less than the width n−1 of the I input 12. Likewise, another additional round and RS circuit 78 can be implemented if the width d of the output of the first MIN circuit 22 is less than the width n−1 of the Q input 14. In operation, the round and RS circuit 76 and the round and RS circuit 78 round their respective n bit wide contents before right shifting their n bit wide contents to drop lower bits until only d bits remain.
The TX section 82 includes an ETS generator 104 that drives the fast SMPS converter 98 to produce the ETS (
The TX section 82 also includes a digital modulator 106 that separates a transmit signal TX into a digital in-phase (I) signal and a digital quadrature (Q) signal. A timing block 108 provides timing advances and delays for the digital I signal and the digital Q signal in response to base station requests. The timing block 108 also provides interpolation for achieving higher clock frequencies.
A digital gain control 110 provides gain to the digital I signal and the digital Q signal in cooperation with the GainControl_dB signal. The cooperation ensures that the amplitude of the ETS (
A first mixer 120 mixes the analog I signal with an RF signal generated by an RF oscillator 122. A second mixer 124 mixes the analog Q signal with the RF signal. Mixed outputs from the first mixer 120 and the second mixer 124 combine to produce the modulated RFC shown in
The ETS generator 104 includes a multiplier circuit 128 that multiplies GainControl_dB with the stream of norm values output from the CORDIC 10. A look-up-table (LUT) 130 provides pre-distortion to the stream of norms to match distortion produced by the power amplifier stages 86. A programmable delay 132 is usable to finely tune synchronization between the stream of norm values and the RFC (
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.
This application claims the benefit of provisional patent application Ser. No. 61/414,085, filed Nov. 16, 2010, the disclosure of which is hereby incorporated herein by reference in its entirety. This application is also related to a concurrently filed utility application entitled DIGITAL FAST DB TO GAIN MULTIPLIER FOR ENVELOPE TRACKING SYSTEMS, the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61414085 | Nov 2010 | US |