Abstract:
A CORDIC angle calculator for a baseband IC receiver incorporates a CORDIC algorithm calculating processor with an input scaling means receiving input data, scaling the input data and providing it to the CORDIC processor. An output scaling means receives output data from the CORDIC processor and rescales the output data to provide a calculated angle. In an exemplary embodiment, the input scaling means includes means for shifting the input data for bit reduction and providing a shift signal corresponding to the input data shift and wherein the output scaling means is responsive to the shift signal.

Description:
REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application relies on the priority of U.S. Provisional Application Ser. No. 60/648,762 filed on Jan. 31, 2005 having the same title as the present application.  
       FIELD OF THE INVENTION  
       [0002]     This invention relates generally to the field of frequency offset correction in signal demodulation and, more particularly, to an improved coordinate rotation digital computer (CORDIC) for rotation angle calculation.  
       BACKGROUND OF THE INVENTION  
       [0003]     Legacy communications systems such as the Personal Handy-phone System (PHS) are configured to be simple and low cost. Differential demodulation has been adopted based on the technological constraints present at the time of designing these systems for baseband demodulation and therefore does not have the capability to combat inter-symbol-interference typically introduced by multi-path fading.  
         [0004]     It is therefore desirable to provide a modernized baseband design compatible with or to retrofit these legacy systems. It is further desirable to employ advanced DSP algorithms and introduce adaptive equalization to realize coherent demodulation. It is further desirable to provide enhanced frequency offset determination capability and improved rotation angle calculation.  
         [0005]     To enhance the speed and simplicity of hardware implementation of the rotation angle calculation, it is desirable to use shift and add operations, eliminating multiplication operations.  
       SUMMARY OF THE INVENTION  
       [0006]     A CORDIC angle calculator for a baseband IC receiver provides a CORDIC algorithm calculating processor. An input scaling means receives input data, scales the input data and provides it to the CORDIC processor. An output scaling means receives output data from the CORDIC processor and rescales the output data to provide a calculated angle. In an exemplary embodiment, the input scaling means includes means for shifting the input data for bit reduction and providing a shift signal corresponding to the input data shift and wherein the output scaling means is responsive to the shift signal.  
         [0007]     In the exemplary embodiment, the CORDIC angle calculator incorporates an input initialization function and an Angle Accumulation Initialization function for acting on angle data larger than π/2. A 16 bit adder receives a 12 bit input X 0  from the input initialization function and prior increment data stored in a first register. A shift register receives Y 0  input from the input initialization function and right shifts the data n bits where n=0, 1 . . . 11 with a sign set based on a SIGN output. A second 16 bit adder receives a 12 bit input Y 0  from the input initialization function and prior increment data from a second register. A second shift register receives X 0  from the input initialization function and right shifts n bits for input to the second adder with its sign set based on the SIGN output. The output of the second adder is the sign output, and the sign for the first shift register output is (−1) sign  and the sign for the second shift register output is −(−1) sign . A third shift register rescales an output of the first adder using the shift bits output from the input scaling. An angle accumulator receives input from the Angle Accumulation Initialization function and a prior sample from a second prior sample register and a new input from a CORDIC Lookup table which is unsigned. The sign of the table input to the angle accumulator is determined based on the SIGN output from the second adder with the sign determined as −(−1) sign . Rounding and saturating of the output from the angle accumulator is accomplished and provides an output as a correction angle for use in carrier recovery and initial signal rotation. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]     These and other features and advantages of the present invention will be better understood by reference to the following detailed description when considered in connection with the accompanying drawings wherein:  
         [0009]      FIG. 1  is a block diagram of a the elements in a communications system demodulation data path employing the current invention;  
         [0010]      FIG. 2  is a block diagram of the elements of the carrier recovery section of  FIG. 1 ;  
         [0011]      FIG. 3  is a block diagram of the elements of a CORDIC angle calculator incorporating the present invention;  
         [0012]      FIG. 4  is a flow chart of the angle accumulator initialization in the angle calculator;  
         [0013]      FIG. 5  is a flow chart of the rotator operation;  
         [0014]      FIG. 6  is a block diagram of the elements of the rotator; and,  
         [0015]      FIG. 7  is a flow chart of the angle accumulator initialization in the rotator. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0016]     The present invention is defined for an exemplary embodiment employed with a PHS communication system and standard (a 2G legacy mobile system). A complete description of the exemplary system is provided in copending patent application Ser. No. 60/693,457, attorney docket no. U001 100150P filed on Jun. 22, 2005 and entitled FAST CONVERGENCE ADAPTIVE EQUALIZATION IN PHS BASEBAND DEMODULATION, the disclosure of which is incorporated by reference as though fully set forth herein.  
         [0017]     As shown in  FIG. 1 , a communications demodulator data path employing the present invention incorporates an analog front-end (AFE) section  10  including an analog to digital converter  12  to convert the signal from analog to digital. To improve receiver performance, the AFE includes an analog down mixer in combination with the power amplifier and analog to digital converter to improve the accuracy of phase detection.  
         [0018]     The converted digital signal is passed to a hardware accelerator  14  and further filtered and decimated 16 to 3× symbol rate, e.g. 576 kHz. This signal first passes a Carrier Recovery block  18  and then a Rotator block  20  and then to a storage register  22  which for the embodiment disclosed herein is a dual or A/B register. The function of Carrier Recovery block is to detect the burst and estimate carrier frequency offset between received and transmitted signals. This allows the following Rotator block to compensate the carrier offset. This rotated signal is then passed to a DSP  24  with an Equalizer  26 . An adaptive decision-directed equalizer is applied where the training sequence is the unique word (UW) in the burst. Therefore an accurate position of UW is required. This information is acquired via a correlation block  28 . The input data is correlated with UW and therefore, after the peak of the correlation result is detected, the UW location in the burst data can be determined. This process, typically known as conventional coherent detection, is employed in the present invention even though the base-band modulation is DQPSK. Theoretically this kind of coherent detection can have 3 dB better performance than differential detection.  
         [0019]     As for every coherent demodulator, the recovery of the carrier is most crucial. Its quality impacts the performance of the function blocks at later stages. The most widely used carrier frequency recovery scheme is automatic frequency control (AFC). However in the PHS system, the data is transmitted in burst mode, therefore the response time for AFC to be stable is relatively short, normally within a few to tens of symbols. Therefore open-loop carrier frequency estimation is employed in the present invention. Slow tracking circuitry is then applied to follow the slow varying carrier characteristics.  
         [0020]     In the coherent demodulation of PSK signals, carrier frequency offset due to either limited oscillator precision or the Doppler effect caused by moving vehicles, can cause a significant loss in performance. In the PHS system, the system base station or cell station (CS) may have offset of up-to ±2 ppm and mobile or personal station (PS) may have offset of up-to ±5 ppm. Correcting the frequency offset in such demodulation will help improve receiver performance and relieve the stringent accuracy requirements on an oscillator and therefore reduce cost.  
         [0021]     The Carrier Recovery block of the PHS employing the present invention has two basic functions, one is to detect a TDD (time division duplex) burst and the other is to estimate the carrier frequency offset between the received and the transmitted signal. This estimated carrier offset is employed either to drive a rotator to compensate the offset in received signal or to drive an AFC to correct frequency of the local carrier generator.  
         [0022]     For a TDD system like PHS, the synchronization between PS and CS is extremely important as the first step in building the communication link. When the system is powered on for the first time, there is no timing information whatsoever. It is the PS&#39;s task to seek the timing information from the received air signal. Therefore for PS to acquire the timing information from CS, it needs to search for the proper indication. In PHS, the preamble signal (PR) in the control slot has appropriate characteristics to be used to detect such a burst (or slot).  
         [0023]     As shown in  FIG. 2 , Carrier Recovery block  18  consists of a Burst Detector (BD)  30  and a Carrier Offset Calculator (COC)  32 . The burst detect flag from BD will trigger the signals from the delay buffer  34  to pass to COC to derive the carrier offset frequency. The resulting offset is transformed to a rotation angle to pass to Rotator  20  so that the frequency offset can be compensated in the received signals. The carrier recovery block is controlled by carrier recovery control registers and can be bypassed by setting the proper register bit. A disclosure of an embodiment for the control registers is provided in copending application Ser. No. 60/766591, attorney docket no. U001 100146P entitled TDMA Controller filed Jan. 30, 2006, the disclosure of which is incorporated herein by reference as though fully set forth.  
         [0024]     The present invention is incorporated in a CORDIC (coordinate rotation digital computer) algorithm for angle calculation in the demodulation system of the embodiment disclosed. CORDIC is an iterative solution for a wide range of functions, such as sine, cosine, tangent, arctangent, vector magnitude, etc. It is best known for its hardware implementation efficiency since it only uses shifts and adds instead of multiplications.  
         [0025]     The CORDIC algorithm is derived from the general rotation transform,
 
 x′=x  cos(θ)− y  sin(θ)=cos(θ)·( x−y ·tan(θ))
 
 y′=x  sin(θ)+ y  cos(θ)=cos(θ)·( y+x ·tan(θ))
 
         [0026]     If θ is defined as θ=arctan(1/2 i ), then the multiplication of tan(θ) can be reduced to a shift. An arbitrary angle rotation can be achieved by performing a series of elementary rotations. Each rotation direction is decided by d i , where d i =±1. The equations of a series rotations are
 
 x   i+1   =k   i ·( x   i   −d   i   ·y   i ·2 −i ),
 
 y   i+1   =k   i ·( y   i   +d   i   ·x   i ·2 −i ),
 
where  k   i   =1/√{square root over (1+2     −2i     )} and    d   i =±1.
 
         [0027]     The accuracy of CORDIC algorithm depends on both the bit precision of the input data and the iteration times. In general, the CORDIC algorithm can produce one additional bit of accuracy if the iteration times or input bit precision are increased by one.  
         [0028]     An angle calculator arctan(I/Q) can be realized using the following iterative equations,
 
 x   i+1   =x   i   −d   i   ·y   i ·2 −i ,
 
 y   i+1   =y   i   +d   i   ·x   i ·2 −i ,
 
and  z   i+1   =z   i   −d   i ·arctan(2 −i ), where  d   i =1 if  y   i &gt;0 , d   i =−1 otherwise.
 
         [0029]     The initial value of the equations are x 0 =I, y 0 =Q and z 0 =0. Then after n iterative times, we have x n =A n √{square root over (I 2 =Q 2 )}, y n =0, z n =arctan(I/Q), where  
         A   n     =       ∏   n     ⁢           ⁢         1   +     2       -   2     ⁢   i           .           
 
         [0030]     For the embodiment of the invention disclosed herein, the number of iterations is chosen as n=12 and the arctangent table employed is 12×16. The form of the table is shown in Table 1 where π can be represented as 0×10000.  
                                             TABLE 1                       Arctangent           Values Represented       Table (Q.16)   Bit Range   Value (unsigned)   (per π)                                [0]   [15:0]   16384   Atan(1) = ¼ * π       [1]   [15:0]   9672   Atan(½)       [2]   [15:0]   5110   Atan(¼)       [3]   [15:0]   2594   Atan(⅛)       [4]   [15:0]   1302   Atan( 1/16)       [5]   [15:0]   652   Atan( 1/32)       [6]   [15:0]   326   Atan( 1/64)       [7]   [15:0]   163   Atan( 1/128)       [8]   [15:0]   81   Atan( 1/256)       [9]   [15:0]   41   Atan( 1/512)       [10]    [15:0]   20   Atan( 1/1024)       [11]    [15:0]   10   Atan( 1/2048)                  
 
         [0031]     An exemplary CORDIC Angle Calculator  36  employed in the present embodiment of the invention is shown in  FIG. 3 . To maximize accuracy of the CORDIC  37 , a scaling function  38  for the input data scales input data to its full scale of 12 bits.  
         [0032]     The CORDIC angle calculator receives the I and Q data from the decimation filter and incorporates the scaling function for the input. The scaling function incorporates a shift register  40  to shift the I and Q data and provides a shift bits output  42  which is employed in re-scaling the amplitude output, as will be described subsequently.  
         [0033]     An input initialization function  44  and companion Angle Accumulation Initialization function  46  are employed for acting on angle data larger than π/2. The initialization function is accomplished as shown in  FIG. 4 . The input I and Q are evaluated and if I is not less than 0, block  100 , the provided output is shown in block  102  as Z 0 =0, X 0 =1 and Y 0 =Q. If I is less than 0, the value of Q is determined, block  104 , and if Q is 0 or less, the provided output is shown in block  106  as Z 0  is item 0  defined as π/2, or equal 2*[ 0 ] of Table 1, left shifted one bit, X 0 =−Q and Y 0 =1. If Q is greater than 0, the provided output is shown in block  108  with Z 0  equal to −(item 0 ) left shifted one bit, X 0 =Q and Y 0 =−1.  
         [0034]     A physical embodiment of the CORDIC Angle Calculator  36  incorporates a 16 bit adder  48  receiving the 12 bit input X 0  and prior increment data stored in register  50 . A shift register  52  receives the Y 0  input and right shifts the data n bits where n=0, 1 . . . 11 with a sign set based on the sign output  54 . Similarly, a second 16 bit adder  56  receives the 12 bit input Y 0  and prior increment data from register  58 . A second shift register  60  receives X 0  and right shifts n bits for input to the second adder, again with its sign set based on the SIGN output. The output of the second adder, sign, determines the sign for the first shift register output as (−1) sign  and the sign for the second shift register output as −(−1) sign . The output of the first adder is rescaled in shift register  62  using the shift bits output from the input scaling. The rescaled data is then employed for calculation of the signal amplitude for further use in carrier recovery as will be described subsequently.  
         [0035]     Actual angle calculation is achieved based on the Angle accumulator initialization as previously described which is input to the angle accumulator  64  with the prior sample stored in register  66  and the new input from the CORDIC Lookup table  68  which is unsigned. The sign of the table input to the Angle accumulator is determined based on the SIGN ouput from the second adder, previously described, with the sign determined as −(−1) sign . The output from the Angle accumulator is then operated on to round and saturate  70  and output as the correction angle  72  for use in carrier recovery and initial signal rotation.  
         [0036]     The burst detector  30  is employed to detect a TDD burst. In PHS, the PR signal in the control slot provides a suitable signature for detection. For a received in-band signal, s r (t)=A(t) cos(Δω c t+θ′(t)+φ)+n(t), where  
           A   ⁢           ⁢     (   t   )       =       ∑   k     ⁢     g   ⁢           ⁢     (     t   -   kT     )           ,       
 
 g(t) is a raised-cosine pulse, Δω c  is the carrier offset, θ′(t) is the receiver modulation phase and φ is the fixed phase offset between transmitter and receiver, n(t) is white Gaussian noise. The phase signal of S r (t) is simply phz(t)=2πΔft+θ(t)+φ if the difference between the transmitter modulation phase and receiver modulation phase is ignored. 
 
         [0037]     After a single differentiator, the phase difference becomes  
         [0038]     phzDiff1(t)=phz(t)−phz(t−T)=2πΔfT+θ(t)−θ(t−T). The single differentiated signal is a periodic signal centered at 1/4 π+2πΔfT with period of 2T, and the phase value is within  
         [       -     π   4       ,       3   ⁢   π     4       ]     .       
 
         [0039]     After a double differentiator, the phase becomes phzDiff2(t)=phzDiff1(t)−phzDiff1(t−T)=θ(t)+θ(t−2T)−2θ(t−T). The double differentiated signal is a periodic signal centered at  0  and with period of 2T. The value of the signal is within [−π,π].  
         [0040]     The burst detect algorithm is derived by taking advantage of this characteristic of PR. Let  
           sumPhase   =       ∑     m   =   0       M   -   1       ⁢     abs   ⁢           ⁢     (       phzDiff   ⁢           ⁢   2   ⁢           ⁢     (     t   -   mT     )       +     phzDiff   ⁢           ⁢   2   ⁢           ⁢     (     t   -   mT   -   T     )         )           ,     ⁢               
 
 where M is the window length. M=16 for the embodiment described herein. The above equation can be simplified  
             sumPhase   =       ⁢       ∑     m   =   0       M   -   1       ⁢     abs   ⁢           ⁢     (       θ   ⁢           ⁢     (     t   -   mT     )       -     θ   ⁢           ⁢     (     t   -   mT   -   T     )       -   θ                             ⁢       (     t   -   mT   -     2   ⁢   T       )     +     θ   ⁢           ⁢     (     t   -   mT   -     3   ⁢   T       )         )     ⁢           ⁢   as               =       ⁢       ∑     m   =   0       M   -   1       ⁢     abs   ⁢           ⁢     (       phzDiff   ⁢           ⁢   1   ⁢           ⁢     (     t   -   mT     )       -     phzDiff   ⁢           ⁢   1   ⁢           ⁢     (     t   -   mT   -     2   ⁢   T       )         )                   
 
         [0041]     If sumPhase is less than a burst detect threshold ThB then a burst is detected. For exemplary embodiments, ThB=3*π.  
         [0042]     The burst detector of  FIG. 2 , receives the angle θ in 16 bit format from the angle detector. A moving average is then employed for burst detection.  
         [0043]     The average detector  74  of  FIG. 2  employs the amplitude output, A=√{square root over (I 2 +Q 2 )}, from the CORDIC angle calculator to provide an average signal value to set a programmable gain amplifier (PGA) in the AFE so that the signals entering ADC  12  (of  FIG. 1 ) can be in the proper range, i.e., neither too small resulting in lost precision nor too large which might potentially be clipped. Setting of the PGA gain is delicate especially in a wireless environment.  
         [0044]     Derived amplitude from the CORDIC angle calculator is used to perform average detection. The calculated instant amplitude value is smoothed through an alpha filter E{A} n =(1−α)E{A} n−1 +α·A n , where α is a register. After about 20-30 symbols (60-90 samples), the average value is a good prediction of true average signal. The block diagram of an embodiment of the average detector is shown in  FIG. 6 .  
         [0045]     This average detection is reset at each burst. The input to the average detector is provided by the amplitude output  76  of the CORDIC angle calculator.  
         [0046]     Since the instant amplitude is calculated as a by-product of angle calculation, the input to the average detector is continuous during the PR searching stage. However it does not produce meaningful value since the burst boundary is not clear. Therefore the average detector is disabled during burst search. When carrier recovery enters BCCH searching mode, the burst boundary is somewhat clearer. During this period, the average detector is triggered to begin processing for a time period during every burst, and the resulting value is sent to the DSP with the burst data indicating the respective CS transmitted signal strength. The average detector is enabled and reset at beginning of every burst. After one CS is selected, the respective average value can be used to set PGA gain.  
         [0047]     The carrier offset calculator  32  of  FIG. 2  employs the open-loop carrier offset estimation algorithm used in PHS for carrier recovery. The algorithm makes use of the characteristics of the PR signal in the PHS system and directly estimates the carrier offset introduced by the oscillator and Doppler shift.  
         [0048]     After modulation, the transmitting signal is represented as  
           s   ⁢           ⁢     (   t   )       =       ∑   k     ⁢         g   r     ⁡     (     t   -   kT     )       ⁢           ⁢   cos   ⁢           ⁢     (         ω   c     ⁢   t     +     θ   ⁢           ⁢     (   t   )         )           ,       
 
         [0049]     where g r (t) is the root-square raised cosine shaping filter, and ω c  is the carrier frequency in radius and T is the symbol time period. θ(t) is the modulation phase. For π/4-shift DQPSK modulation in PHS, θ(t)=θ(t−T)+Δθ(t), and the relation between transmit symbol (a k , b k ) and Δθ(k) is listed in Table 2 
                           TABLE 2                                   (a k , b k )   Δθ(k)                           (0, 0)   π/4           (0, 1)   3π/4           (1, 1)   −3π/4           (1, 0)   −π/4                      
 
         [0050]     On the receiver side, a root-square raised cosine matched filter is applied and hence the base-band demodulated signal can be represented as
 
 s   r ( t )=A( t )cos(Δω c   t +θ′( t )+φ)+ n (t)
 
         [0051]     where  
           A   ⁢           ⁢     (   t   )       =       ∑   k     ⁢     g   ⁢           ⁢     (     t   -   kT     )           ,       
 
 g(t) is raised-cosine pulse, Δω c =2πθf c  is the carrier offset, θ′(t) is the receiver modulation phase and φ is the fixed phase offset between transmitter and receiver, and n(t) is white Gaussian noise. 
 
         [0052]     Let x(t)=E{s r (t)s r *(t−2T)}, where S r *(t) is the conjugate of s r (t), resulting in
 
 x ( t )=σ A   e   j[2Δωt+θ(t)−θ(t−2T)]   +N ( t ), where σ A   =E{A ( t ) 2 }, and
 
 N(t)=E{s r (t)n*(t−2T)}+E{n(t)s r *(t−2T)}+E{n(t)n*(t−2T)} is the noise term and is ignored without loss of generality. 
 
         [0053]     In PHS, PR is a periodic signal with a bit stream pattern of “1001”, resulting in θ(t)−θ(t−2T)=−π/2. Let x 1 (t)=E{A 2 (t)}sin(2Δω c T) and x Q (t)=E{A 2 (t)}cos(2Δω c T), where x 1 (t), X Q (t) are the in-phase and quadrature part of x(t), respectively.  
         [0054]     If x 1 (t) and X Q (t) is being accumulated for N symbols, where N is the searching window,  
           Acq   i     ⁡     (   k   )       =       ∑     n   =   0       N   -   1       ⁢         x   l     ⁡     (       t   0     +     kT   s     +   nT     )       ⁢           ⁢   and           
             Acq   q     ⁡     (   k   )       =       ∑     n   =   0       N   -   1       ⁢         x   Q     ⁡     (       t   0     +     kT   s     +   nT     )       .         ⁢               
 
 The amplitude is defined as Amp(k)=Acq i   2 (k)+Acq q   2 (k), where k=0, 1, . . . m−1 and 0≦t 0 ≦T is the sampling time. T 1  is the sampling period where T=mT s  and m is the number of the sample points within a symbol period. 
 
         [0055]     After a burst is detected, the carrier offset Δf c  can be estimated by finding max{Amp(k)} for each k=0, 1, . . . m−1, over a window length N. Let Amp(k 0 )=max{Amp(k)} correspondent to each k, where A 0 =A 2 (t 0 +k 0 T s +nT), n=0, . . . N−1, then the carrier offset can be calculated as  
         Δ   ⁢           ⁢     f   c       =           Δω   c     /   2     ⁢   π     =       1     4   ⁢           ⁢   π   ⁢           ⁢   T       ⁢         tan     -   1       ⁡     (         Acq   i     ⁡     (     k   0     )           Acq   q     ⁡     (     k   0     )         )       .             
 
         [0056]     The Carrier offset calculator is triggered by the burst detection flag  78 . I/Q data is entered into a delay buffer. For use in the present embodiment of the invention, the delay buffer employs a sliding window summing arrangement for more efficient storage. Further disclosure of the delay buffer is provided in copending patent application Ser. No. 11/306986, Attorney docket no. U001 100148, entitled Storage Efficient Sliding Window Sum, filed Jan. 18, 2006 which is incorporated by reference as though fully set forth herein.  
         [0057]     This module can be bypassed by setting the control register. Another flag to control carrier offset calculator is an enable flag. During TCH, the carrier offset calculator is no longer working, therefore the enable flag can be set to disable to save power. The data will then merely flow through the delay buffer into the rotator.  
         [0058]     Having now described the carrier recovery elements and returning to  FIG. 1 , the Rotator  20  cancels the effect of carrier frequency offset after the carrier is recovered. When Carrier Recovery module detects a burst and derives the correspondent angle due to frequency offset, the Rotator module will be activated and start rotating the input signals according to the register values.  
         [0059]     For a complex represented input signal x=x 1 +jx Q , if the rotation angle is θ, then the output of the rotator is y=y 1 +jy Q , where y 1 =x 1  cos(θ)−X Q  sin(θ) and y Q =X 1  sin(θ)+X Q  cos(θ). Direct operation on the rotation involves 4 multiplications and 2 additions for each sample. Moreover, there is a calculation of sin( ) and cos( ) functions.  
         [0060]     The CORDIC algorithm is again employed in the present invention to realize vector rotation, which reduces cost by using only shifts and adds instead of multiplications. Iteration is again selected at  12  and the size of the CORDIC table is 16×12 allowing common table use with the CORDIC angle calculator in the Carrier Recovery system.  
         [0061]     Basic operation of the rotator is again described with respect to  FIG. 5  wherein the enable flag is read from the control register  200  and, if enabled  202 , reads the angle from the rotation angle register  204  and sets the initial angle  206 , as will be described in greater detail subsequently. If the last sample is not finished  208 , the input vector is scaled  210  and the vector rotation is accomplished using the CORDIC  212 . The angle is accumulated  214  in basic bit form and as modulo 2π from −π to π and the next angle table address is generated  216  and the next sample processed  218 . For an exemplary embodiment, the phase is signed 17 bit data and the accumulator is 18 bits in width. The operation which occurs is  
                                                                 Phacc += phase_in   //accumulator           Phacc = phacc &amp; 0x1ffff   //select 17 bits                If (phacc &gt; π) {Phacc = ((−1)&lt;&lt;17) | phacc //mode}                      
 
         [0062]     12 cycles are required for one data rotation in the current embodiment based on the input signal 12 bit width.  
         [0063]     A physical implementation of the CORDIC is shown in  FIG. 6 . I and Q input are again provided to an input scaling function  80  with a ShftBits output to for subsequent rescaling. A 16 bit adder  82  receiving the 12 bit input X 0  and prior increment data stored in register  84 . A shift register  86  receives the Y 0  input and right shifts the data n bits where n=0, 1 . . . 11 with a sign set based on the SIGN output  88 . Similarly, a second 16 bit adder  90  receives the 12 bit input Y 0  and prior increment data from register  92 . A second shift register  96  receives X 0  and right shifts n bits for input to the second adder, again with its sign set based on the SIGN output. SIGN determines the sign for the first shift register output as −(−1) sign  and the sign for the second shift register output as (−1) sign . The outputs of the first adder and second adder are rescaled in shift register  98  using the ShftBits output from the input scaling. A FLAG  99  based on the angle accumulator initialization, described previously, is output from the Angle Accumulation Initialization function. FLAG is 1 when the input angle &gt;pi/2, FLAG is −1 when the input angle &lt;−pi/2, otherwise, FLAG is 0. The rescaled data is then the output I and Q for data communication.  
         [0064]     SIGN calculation is achieved based on input θ from the Rotation Angle Register with an angle accumulator initialization  97 , described in detail subsequently, which is input to angle accumulator  95  with the prior sample stored in register  93  and the new input from the CORDIC Lookup table  91  which is unsigned. The sign of the table input to the angle accumulator is determined based on the SIGN ouput from angle accumulator, with the sign determined as −(−1) sign . The output from the angle accumulator also provides the SIGN for operation in the first and second adder as previously described.  
         [0065]     The Angle Accumulator Initialization for the CORDIC Rotator is shown in  FIG. 7 . The rotation angle, θ, is input  300  and if the angle is greater than item 0  shifted left one bit  302 , the resulting Z 0  input  304  is the input angle, θ, minus item 0  left shifted one bit and FLAG is set to one. If the input angle is less than −item 0  left shifted one bit  306 , the resulting Z 0  input  308  is the input angle plus item 0  left shifted one bit and FLAG is set to −1. Otherwise, Z 0  is set equal to the input angle, θ, and FLAG is set to 0 310.  
         [0066]     For each TDD burst, the initial phase is unknown and therefore the initial phase, PR and UW are unknown due to π/4−DQPSK modulation. Let r(t)=a(t)e j2πΔft+φ(t)+θ     0     +θ     n     (t)  be received complex signal, where α(t) is the envelope, φ(t) is the symbol phase provided the initial phase is 0. And θ 0  is the initial phase, θ n (t) is the noise phase.  
         [0067]     After the first rotator, the initial phase θ 0  and estimated frequency offset phase 2πΔft are removed, provided that θ 0  can be derived which will be described subsequently, we have r1(t)=r(t)*e −j(θ     0     +2πΔ{circumflex over (f)}t) =α(t)e j(φ(t)+2πΔf     E     t+θ     n     (t)) , where Δf E  is the uncorrected residue offset.  
         [0068]     r2(t) is the signal after the information-bearing phase θ(t) is removed, r2(t)=r1(t)*e −φ(t) =α(t)e j(2πΔf     e     t+θ     n     (t)) .  
         [0069]     The quadrature part of r2(t) is therefore r2q(t)=α(t) sin(2πΔf E t+θ n (t)). Properly choosing an average window can smooth out the noise phase. A smoothing window of 6 symbols is employed in the embodiment of the invention disclosed herein. Therefore we have  
         sumq   ⁢           ⁢     (   t   )       =       ∑     n   =   0     5     ⁢     r   ⁢           ⁢   2   ⁢   q   ⁢           ⁢       (     t   +   nT     )     .             
 
 The frequency offset adjustment is done according to the differential of sumq(t). 
 
         [0070]     θ 0  can be derived based on UW which is detected by correlation. corr(t)=r(t)*e −jφ     uw     (t) =α(t)e j(2πΔft+φ     uw     (t)+θ     0     +θ     n     (t)) * e −jφ(t) =α(t)e j(2πΔft+θ     0     +θ     n     (t)) .  
         [0071]     If Δf is small enough to be ignored, then we have,  
         E   ⁡     [     corr   ⁡     (   t   )       ]       =         ∑     n   =   0     N     ⁢     corr   ⁡     (     t   +     n   ⁢           ⁢   T       )         =     N   *     a   ⁡     (   t   )       ⁢       ⅇ     jθ   0       .             
 
         [0072]     A slow tracker is implemented in the present embodiment described as shown in  FIG. 2 . The slow tracking frequency offset is provided to the rotation angle register as θ during the communication phase.  
         [0073]     Having now described the invention in detail as required by the patent statutes, those skilled in the art will recognize modifications and substitutions to the specific embodiments disclosed herein. Such modifications are within the scope and intent of the present invention as defined in the following claims.