Abstract:
Although DC offset reduction schemes can be applied in the analog domain, the residual static DCO in baseband is still present, significantly influencing the performance of high-level modulation schemes employed by recent high-data-rate wireless communications standards. In order to achieve satisfactory performance, DCO compensation algorithms are required in the digital domain. One such algorithm was developed which is based on joint estimation of the Channel Impulse Response (CIR) and the static DCO and ensures satisfactory performance of EDGE modem with direct conversion radio architectures. A further modification of the joint estimation algorithm, the so-called “perturbed joint L”, results in further improvement in the performance of the EDGE equalizer in critical fading channels.

Description:
BACKGROUND OF THE INVENTION 
   The invention relates to the field of data receivers, and, in particular, to systems and methods for reducing DC offsets in wireless receivers. 
   The basic challenge in detection of transmitted data comes from distortion caused by the channel. Typically, channel refers to a combination of all non-ideal effects that adversely affect the ability to correctly detect the transmitted data sequence at the receiver. Such effects include, but are not limited to, effects of propagation (e.g. cable, radio channel etc.), non-linearities, or effects of transmit (TX) and receive (RX) filters. Current state-of-the-art detection techniques rely on the knowledge of the channel, which, therefore, must be estimated. 
   The background of the invention will be described in the wireless communication scenario, although invention can be used in any communication system. As is known in the art, in wireless communications received radio frequency signals are converted to baseband using various receivers. With a homodyne receiver, the received radio frequency signal is mixed with the local oscillator whose frequency is equal to carrier frequency of the received radio frequency signal to translate the carrier frequency to DC and thereby provide “direct conversion” of the modulation on the received radio frequency signal to a modulation at DC. Hence, a homodyne receiver is sometimes referred to as a direct conversion receiver. 
   While such direct conversion receivers offer the advantage of flexible architecture and educed cost, DC offset associated with such receivers is affecting the receiver performance. The level of the DC offset in direct conversion receiver may range from being significantly larger than the desired signal, i.e., modulation, to be demodulated to being comparable in level with desired signal. Thus, DC offset compensation techniques are typically required. To insure flexibility for different operating conditions, DC offset compensation can be part of the digital baseband portion of the receiver, preferably a part of the digital signal processing (DSP) firmware. One application of direct conversion receivers is in mobile or cellular communication systems. In such systems, the radio channels received signals also suffer from intersymbol interference (ISI) caused by multipath radio propagation and transmitter and/or receiver filtering. We further explain the underlying principle using the specific format of Time Division Multiple Access (TDMA) system as represented by GSM/GPRS/EDGE cellular standard. 
   The original GSM system, of which GPRS and EDGE are extensions, is a TDMA system, which means that a particular channel is active only during specified time periods. In this case, each channel is divided into eight time slots, with user being active at only every eight slots for voice transmission, or utilizing multiple slots for data transmission per standard specification. 
   GSM (including GPRS and EDGE) uses the midamble training sequence (a training sequence placed in the middle of the burst of data that occurs in a given slot) in every burst. The system parameters are chosen so that the change in Channel Impulse Response (CIR) is fairly small during one burst so that adaptive CIR estimation is not needed. The midamble training sequence minimizes the distance (in time) between the known portion of the burst (the training sequence) and the ends of the burst, thereby also minimizing CIR change with respect to the CIR estimate obtained from the training sequence. 
   In EDGE system, the combined channel response usually consists of the linear TX Gaussian shaping filter (CO), actual physical channel, and TX/RX filters (analog and/or digital filters). A set of channel models is used for performance evaluation and covers a wide range of typical physical propagation channels that are likely to be encountered in practice as specified by the standardization bodies (ETSI, 3GPP). These channels are denoted by:
         static (no ISI or fading)   TU3 (typical urban, velocity of the mobile station (MS) 3 km/h, moderate multipath, low fading)   TU50 (typical urban, velocity of the MS 50 km/h, moderate multipath and fading)   RA250 (rural area, MS velocity 250 km/h, no multipath, severe fading) HT100 (hilly terrain, MS velocity 100 km/h, severe multipath, significant fading).       

   GSM training sequences (shared by GPRS and EDGE) have good autocorrelation properties. GSM/GPRS systems use GMSK modulation format, while EDGE introduces the new 8-PSK modulation format. In EDGE, training sequences for GMSK and 8-PSK modulation are identical, binary, and differ only due to different additional rotation applied to the signal in two modulation schemes. GMSK effectively rotates a signal 90 degrees every symbol, while EDGE 8-PSK uses the rotation of 3π/8 for every symbol. Properties of the training sequences are used to simplify CIR estimation. For example, due to good autocorrelation properties of training sequences, simple cross-correlation can be used for CIR estimation. 
   In a typical data receiver realization in GSM/GPRS/EDGE system, the whole received burst is stored and the all-digital techniques may be applied to signal processing, including DC offset compensation. Thus, referring to  FIG. 1 , the data receiver stores the burst of data, r(k), where k=1 . . . N and N is the number of samples in the burst. Each burst includes a mid-amble having a known sequence of bits disposed between data, (i.e., information bits) as shown. Such known sequence of bits is used to aid in equalization and more particularly for enabling channel estimation, which includes timing information, length of the CIR, calculation of CIR taps as well as the alignment of the CIR estimate with respect to the largest magnitude CIR tap, and DC offset estimation. As shown in  FIG. 1 , an estimate of the DC offset, Â, is calculated. The estimated DC offset, Â, is subtracted from the received burst. The result, r(k)−Â, where k=1 . . . N, is processed to find an estimate of the h. The CIR estimate, ĥ, can be obtained by a variety of methods including cross-correlating [r(k)−Â] with the known mid-amble bit sequence, using Least Square (LS) estimation as well as other advanced techniques. 
   The simplest method for channel estimation in GSM is cross-correlation. In cross-correlation CIR estimation, the inner 16 symbols of the training sequence are correlated with the received symbol. The received symbol at time k is given by: 
             y   n     =         ∑     i   =   0       L   -   1       ⁢       h   i     ⁢     t     n   -   i           +     z   n             
where y k  is the received signal, h k  are CIR taps, t k  is the known training sequence (or data), while z k  is AWGN with variance σ 2 . The following notation is used to differentiate between the (known) training sequence and (generally unknown) data. Training sequence symbols are denoted by t 0  to t 25 . Data for the left data burst are denoted d 0  to d 57 , while those for the right data burst are denoted d 58  to d 115 . By cross-correlation with the inner  16  training sequence symbols:
 
                     h   ^     k     =       1   16     ⁢       ∑     j   =   5     20     ⁢       y     k   +   j       ⁢     t   j                       =       1   16     ⁢       ∑     j   =   5     20     ⁢       t   j     ⁡     (         ∑     i   =   0       L   -   1       ⁢       h   i     ⁢     t     j   -   i   +   k           +     z     j   +   k         )                       =         1   16     ⁢       ∑     i   =   0       L   -   1       ⁢       h   i     ⁢       ∑     j   =   5     20     ⁢       t   j     ⁢     t     j   -   i   +   k                 +       1   16     ⁢       ∑     j   =   5     20     ⁢       t   j     ⁢       z     j   +   k       .                         
Due to autocorrelation properties of the training sequences,
 
                 ∑     j   =   5     20     ⁢       t   j     ⁢     t     j   -   i   +   k           =   0     ,         
unless i=k (provided |k−i|&lt;5),
 
                     h   ^     k     =       1   16     ⁢       ∑     j   =   5     20     ⁢       y     k   +   j       ⁢     t   j                       =       h   k     +       1   16     ⁢       ∑     j   =   5     20     ⁢       t   j     ⁢     z     j   +   k                           =       h   k     +     Δ   ⁢           ⁢       h   k     .                     
Δh k  denotes CIR tap estimation error due to noise. The main limitation of cross-correlation CIR estimation is that it can only provide accurate estimates of up to 6 CIR taps. If CIR is longer than 6, and HT100 channel profiles span seven symbols when convolved with Gaussian pulse CO (3 symbols span), cross-correlation CIR estimation produces inaccurate estimates for all but six initial taps.
 
   For example, for CIR length of 6, in matrix notation, ĥ is given by: 
   
     
       
         
           
             h 
             ^ 
           
           = 
           
             
               C 
               ⁡ 
               
                 ( 
                 
                   Th 
                   + 
                   z 
                 
                 ) 
               
             
             ⁢ 
             
                 
             
             ⁢ 
             where 
           
         
       
     
     
       
         
           C 
           = 
           
             [ 
             
               
                 
                   
                     t 
                     5 
                   
                 
                 
                   
                     t 
                     6 
                   
                 
                 
                   ⋯ 
                 
                 
                   
                     t 
                     20 
                   
                 
                 
                   0 
                 
                 
                   ⋯ 
                 
                 
                   ⋯ 
                 
                 
                   0 
                 
               
               
                 
                   0 
                 
                 
                   
                     t 
                     5 
                   
                 
                 
                   ⋯ 
                 
                 
                   ⋯ 
                 
                 
                   
                     t 
                     20 
                   
                 
                 
                   0 
                 
                 
                   ⋯ 
                 
                 
                   0 
                 
               
               
                 
                   ⋮ 
                 
                 
                   ⋰ 
                 
                 
                   ⋰ 
                 
                 
                   
                       
                   
                 
                 
                   
                       
                   
                 
                 
                   ⋰ 
                 
                 
                   ⋰ 
                 
                 
                   ⋮ 
                 
               
               
                 
                   ⋮ 
                 
                 
                   
                       
                   
                 
                 
                   ⋰ 
                 
                 
                   ⋰ 
                 
                 
                   
                       
                   
                 
                 
                   
                       
                   
                 
                 
                   ⋰ 
                 
                 
                   0 
                 
               
               
                 
                   0 
                 
                 
                   ⋯ 
                 
                 
                   ⋯ 
                 
                 
                   0 
                 
                 
                   
                     t 
                     5 
                   
                 
                 
                   ⋯ 
                 
                 
                   ⋯ 
                 
                 
                   
                     t 
                     20 
                   
                 
               
             
             ] 
           
         
       
     
     
       
         
           T 
           = 
           
             [ 
             
               
                 
                   
                     t 
                     5 
                   
                 
                 
                   
                     t 
                     4 
                   
                 
                 
                   ⋯ 
                 
                 
                   
                     t 
                     0 
                   
                 
               
               
                 
                   
                     t 
                     6 
                   
                 
                 
                   
                     t 
                     5 
                   
                 
                 
                   ⋯ 
                 
                 
                   
                     t 
                     1 
                   
                 
               
               
                 
                   ⋮ 
                 
                 
                   
                       
                   
                 
                 
                   
                       
                   
                 
                 
                   ⋮ 
                 
               
               
                 
                   
                     t 
                     25 
                   
                 
                 
                   ⋯ 
                 
                 
                   ⋯ 
                 
                 
                   
                     t 
                     20 
                   
                 
               
             
             ] 
           
         
       
     
   
   In general, matrix T is equal to 
           T   =     [           t     L   -   1             t     L   -   2           ⋯         t   0               t   L           t     L   -   1           ⋯         t   1             ⋮                               ⋮             t   25         ⋯       ⋯         t     25   -   L   +   1             ]           
and matrices C and T are of dimensions (16+L−1×L) and (26−L+1×L), respectively. This form of matrix T assumes perfect synchronization (i.e., exact knowledge of the length of the channel and position of the training sequence). It should be noted that matrix T will consist only of training sequence symbols as long as 26−L+1&gt;=16+L−1, which implies that L&lt;=6. In the case L&gt;6, matrix T must include some data samples in addition to training sequence symbols. For example,
 
           T   =     [           t   5           t   4         ⋯         t   0           d   57               t   6           t   5         ⋯         t   1           t   0             ⋮       ⋮                   ⋮       ⋮             t   25           t   24         ⋯         t   20           t   19               d   58           t   25         ⋯         t   21           t   20           ]           
Thus, estimates for CIR taps 0 and 6, in this case, become:
 
               h   ^     0     =       h   0     +       1   16     ⁢     (         t   5     ⁢     d   57       +       ∑     j   =   6     20     ⁢       t   j     ⁢     t     j   -   6             )     ⁢     h   6       +     f   ⁡     (   z   )                         h   ^     6     =       h   6     +       1   16     ⁢     (         t   20     ⁢     d   58       +       ∑     j   =   6     19     ⁢       t   j     ⁢     t     j   +   6             )     ⁢     h   0       +       f   ⁡     (   z   )       .             
It can be seen that both the first and last CIR tap estimates will be distorted. This is much more significant in the case of the last tap, h 6 , as the first tap can, in some cases, be very large.
 
   In matrix notation, cross-correlation CIR estimates are given by 
   
     
       
         
           
             h 
             ^ 
           
           = 
           
             
               
                 1 
                 16 
               
               ⁢ 
               Cr 
             
             = 
             
               
                 
                   1 
                   16 
                 
                 ⁢ 
                 
                   C 
                   ⁡ 
                   
                     ( 
                     
                       Th 
                       + 
                       z 
                     
                     ) 
                   
                 
               
               = 
               
                 
                   h 
                   + 
                   
                     
                       1 
                       16 
                     
                     ⁢ 
                     Cz 
                   
                 
                 = 
                 
                   h 
                   + 
                   
                     Δ 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     h 
                   
                 
               
             
           
         
       
     
   
   A CIR error covariance matrix is given by 
             E   ⁡     [     Δ   ⁢           ⁢   h   ⁢           ⁢   Δ   ⁢           ⁢     h   H       ]       =         1     16   2       ⁢     E   ⁡     [       Czz   H     ⁢     C   H       ]         =         σ   2       16   2       ⁢     CC   H               
where (for L&lt;=5, and perfect synchronization) CC H  is approximately equal to 16 I (I is identity matrix). If L&gt;=7, or in case of imperfect synchronization, the estimation error covariance matrix becomes a function of CIR and data in addition to the error caused by AWGN. In general, CIR estimation error covariance is roughly equal to a σ 2 /16 for all taps with cross-correlation CIR estimation.
 
   In order to start CIR estimation, the position of the training sequence needs to be identified. The first synchronization step takes place on a once-per-symbol sampled received signal. Synchronization is performed by correlating the entire training sequence with the received signal. The result is given by 
                         a   k     ⁢       =       ∑     j   =   0     25     ⁢           ⁢       y     k   +   j       ⁢     t   j                         ⁢     =       ∑     j   =   0     25     ⁢           ⁢       t   j     ⁡     (         ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢     t     j   -   i   +   k           +     z     j   +   k         )                           ⁢     =         ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢       ∑     j   =   0     25     ⁢           ⁢       t   j     ⁢     t     j   -   i   +   k               +       ∑     j   =   0     25     ⁢           ⁢       t   j     ⁢     z     j   +   k                                         a   k     =         ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢       ∑     j   =   0     25     ⁢           ⁢       t   j     ⁢     t     j   -   i   +   k               +       ∑     j   =   0     25     ⁢           ⁢       t   j     ⁢     z     j   +   k                                 ⁢     =         h   k     ⁢     T   ⁡     (   0   )         +       ∑       i   ≠   k       i   =   0         L   -   1       ⁢           ⁢       h   i     ⁢     T   ⁡     (     k   -   i     )           +     f   ⁡     (     t   ,   z     )                             
where T(0) is the auto-correlation of the training sequence at delay of 0 (equal to 26) while T(k−i) are auto-correlations of the training sequence at different delays combined with cross-correlation with data symbols. In this case, T(k−i) are typically significantly smaller than T(0) so that a k  is roughly equal to h k T(0). Consequently, the index of the largest magnitude a k  corresponds to the position of the training sequence start, shifted by the position of the largest magnitude CIR tap with respect to the first CIR tap (tap 0).
 
   After finding the approximate position of the largest magnitude CIR tap, the CIR span and the actual start of the training sequence (and therefore the whole burst) need to be established. The received burst can be envisioned as a superimposition of several copies of the original data—echoes—due to different CIR taps. As the largest magnitude CIR tap is not necessarily the first tap in the CIR, the echo corresponding to this tap does not necessarily correspond to the real start of the training sequence. Thus, a solution is needed to identify how many taps are present in the CIR and where the CIR starts (i.e. how many taps exist in front of the largest magnitude tap). 
   Usually, the length of the CIR is determined in advance and is supposed to be sufficient to cover the span in the worst-case scenario. In EDGE that is the HT100 channel, with about 7 taps. The extent of the CIR is determined as follows: after finding the location of the largest magnitude taps, rough estimates are obtained of another ten taps on both sides of the largest magnitude tap using cross-correlation CIR estimation. These ten taps are selected based on the properties of the training sequence. Since the largest magnitude tap is a part of the CIR, the remaining taps that can be correctly estimated using cross-correlation must be on either side or both sides of the largest magnitude tap. Thus, these extra ten taps are estimated, with the knowledge that at least five of them are correct. These are usually the largest magnitude taps out of the estimated eleven. Thus, the next step is usually to apply the so-called maximum energy algorithm. The magnitudes of all tentatively estimated taps are computed. Then, the CIR energy is computed given that CIR should have L taps by adding the magnitudes of L taps for different valid delays. The maximum energy delay is taken as the correct CIR span. If the index of the largest magnitude tap is given by max_idx, and the shift of the maximum energy CIR span with respect to max_idx is tap_shift, then the start of the burst is given by max_idx-tap_shift- 61 . 
   In Least Squares CIR estimation, a matrix representation model for the channel is given by r=Th+z, where 
   
     
       
         
           
             
               
                 T 
                 = 
                 
                   [ 
                   
                     
                       
                         
                           t 
                           
                             L 
                             - 
                             1 
                           
                         
                       
                       
                         
                           t 
                           
                             L 
                             - 
                             2 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           t 
                           0 
                         
                       
                     
                     
                       
                         
                           t 
                           L 
                         
                       
                       
                         
                           t 
                           
                             L 
                             - 
                             1 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           t 
                           1 
                         
                       
                     
                     
                       
                         ⋮ 
                       
                       
                         
                             
                         
                       
                       
                         
                             
                         
                       
                       
                         ⋮ 
                       
                     
                     
                       
                         
                           t 
                           25 
                         
                       
                       
                         ⋯ 
                       
                       
                         ⋯ 
                       
                       
                         
                           t 
                           
                             25 
                             - 
                             L 
                             + 
                             1 
                           
                         
                       
                     
                   
                   ] 
                 
               
             
           
           
             
               
                 
                   h 
                   = 
                   
                     
                       [ 
                       
                         
                           h 
                           0 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           h 
                           1 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         … 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           h 
                           
                             L 
                             - 
                             1 
                           
                         
                       
                       ] 
                     
                     T 
                   
                 
                 , 
                 
                   r 
                   = 
                   
                     
                       [ 
                       
                         
                           r 
                           
                             L 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           r 
                           L 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           r 
                           
                             L 
                             + 
                             1 
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         … 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           r 
                           25 
                         
                       
                       ] 
                     
                     T 
                   
                 
                 , 
               
             
           
           
             
               
                 
                   and 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   z 
                 
                 = 
                 
                   
                     
                       [ 
                       
                         
                           z 
                           
                             L 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           z 
                           L 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           z 
                           
                             L 
                             + 
                             1 
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         … 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           z 
                           25 
                         
                       
                       ] 
                     
                     T 
                   
                   . 
                 
               
             
           
         
       
     
   
   Then, the LS CIR estimate is given by
 
 ĥ =( T   H   T ) −1   T   H   r =( T   H   T ) −   T   H ( Th+z )= h +( T   H   T ) −1   T   H   z=h+Δh  
 
   Unlike the cross-correlation CIR estimation, the LS CIR estimation is a coupled problem. In a LS CIR estimate, every estimated CIR tap depends on other estimated CIR taps. Thus, the value of the estimated taps in the LS CIR estimate depends on the time alignment of the estimator with respect to the largest magnitude tap, inasmuch as the contribution of every omitted significant CIR tap is distributed between the remaining taps in the LS CIR estimation. Consequently, while the initial synchronization step remains unchanged with respect to cross-correlation CIR estimation, the optimal CIR alignment step is significantly different. 
   To find the optimal CIR span and alignment with respect to the largest magnitude CIR tap, all CIR estimates need to be identified with particular L that include the largest magnitude CIR tap and then pick the one that is the best fit in some sense (for example, model fitting error). 
   Unfortunately, this procedure is very complex—about three to six times more complex than cross-correlation CIR estimation. Furthermore, the simplest way to reduce the complexity of the CIR alignment step, by obtaining a rough LS CIR estimate consisting of 11 CIR taps, as with cross-correlation CIR estimation, results in a CIR estimation error that is far inferior to that achievable with cross-correlation CIR estimation. 
   Consequently, if the optimal CIR alignment procedure is too complex, the cross-correlation CIR estimate can be used as a rough CIR estimate and thus obtain the parameters required to find a better CIR estimate, CIR length L, and the alignment of the CIR estimate with respect to the largest magnitude CIR tap. The procedure for obtaining these parameters is the same as for cross-correlation CIR estimation (described above). 
   For LS CIR estimation, an estimation error is given by Δh=(T H T) −1 T H z, while estimation error covariance matrix is given by:
 
 E[ΔhΔh   H   ]=E [( T   H   T ) −1 T H   zz   H   T ( T   H   T ) −1 ]=σ 2 ( T   H   T ) −1  
 
Error covariance for individual taps is given by diagonal elements of the estimation error covariance matrix and is roughly equal to σ 2 /(26−L+1) for LS CIR estimation. As off-diagonal elements of (T H T) −1  are in general not equal to zero (although small), LS CIR estimation errors are correlated, but only slightly.
 
   Parameters obtained by channel estimation, including DC offset and CIR estimates, are further sent to data receiver and are used to enable the demodulation process (e.g. prefilter calculation, equalization algorithm selection, calculation of the path metric of trellis based equalizers, etc.) 
   SUMMARY OF THE INVENTION 
   The present invention provides for a method for reducing DC offset associated with a receiver comprising the steps of: (a) receiving the received bust r(n); (b) storing the received burst samples, r(n), in a memory; (c) averaging said stored burst samples, r(n), and calculating an initial DC offset, A 0 , from the stored burst samples; (d) removing DC offset value from stored burst as follows: r(n)−A 0 ; (e) identifying a rough timing estimate defining a position of largest channel impulse response (CIR) tap via cross-correlating stored burst data with a training sequence; (f) performing fine CIR synchronization to identify taps to be added to said identified largest CIR tap; (g) estimating an updated DC offset, A 1 , and a CIR, ĥ, via a perturbed LS CIR estimation where the received burst r(n) is modeled as follows: 
             r   j     =         ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢     t     j   -   i           +       f   j     ⁢   m     +     z   j             
where h i  are CIR taps, t j  are known training sequence symbols, f j  is a generic function of j, m is static DC offset; and z j  is additive white Gaussian noise, and removing updated DC offset from stored burst as follows: r(n)−A 0 −A 1 . Perturbed LS CIR estimation can be carried in one step using the model stated above, or in two steps where first step consists of joint DC offset and CIR estimation and the second step is based on the model stated above.
 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  illustrates a block diagram of a data receiver in accordance with the prior art. 
       FIG. 2  illustrates an overview of the present invention&#39;s method for reducing DC offsets at the receiver. 
       FIG. 3  illustrates an overview of the present invention&#39;s “perturbed” joint DC offset and CIR estimation algorithm. 
       FIG. 4  illustrates an overview of a system implemented in the receiver incorporating the methods of  FIGS. 2 and 3 . 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   Although the present invention has been shown and described with respect to several preferred embodiments thereof, various changes, omissions, and additions to the form and detail thereof may be made therein without departing from the spirit and scope of the invention. 
   In Direct Conversion receivers DC offset is created by the self-mixing of either the received signal or the Local Oscillator (LO) signal. In case of the received signal, signal leakage causes self-coupling via the LO path. In case of the LO signal, leakage and reflection from the antenna allow a portion of the LO signal to couple via the signal path, resulting in self-mixing. Both mechanisms produce two components: one at DC and the other one at 2 times the carrier frequency. While the second component is removed by LP filtering, the DC component introduces DC offset, which, in some cases, can be very large. In general, the signal to DC offset ratio (expressed in dB) can be negative. LO-produced DC offset is usually constant over the received burst, changing slowly depending on IC temperature, IC layout, and design and other environmental factors. DC offset in Direct Conversion receivers must be somehow corrected in the baseband to maintain reliable reception. While with GMSK modulation simple DC offset compensation schemes such as simple averaging or circle center estimation are sufficient, 8-PSK modulation that is used in some of EDGE modes requires a more sophisticated DC offset compensation scheme. 
     FIG. 2  illustrates an overview of the present invention&#39;s method  200  for reducing DC offsets at the receiver. In step  202  burst samples, r(n), are received and stored locally at the receiver. Next, in step  204 , the stored burst samples, r(n), are averaged and an initial DC offset, A 0 , is identified. In step  206 , the DC offset value is removed from the stored burst as follows: r(n)−A 0 . In step  208 , a rough timing estimate of the position of largest a channel impulse response (CIR) is obtained by cross-correlating received data with a training sequence. Next, in step  210 , the maximum energy algorithm for fine CIR synchronization is used to find which taps should be added to the maximum CIR tap. Further, in step  212 , an updated DC offset, A 1 , and CIR, ĥ, are estimated via a perturbed LS CIR estimation representation modeling received burst r(n) as follows: 
             r   j     =         ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢     t     j   -   i           +       f   j     ⁢   m     +     z   j             
where h i  are CIR taps, t j  are known training sequence symbols, f j  is a generic function of j, m is static DC offset; and z j  is additive white Gaussian noise. The updated DC offset is then removed from stored burst as follows: r(n)−A 0 −A 1 .
 
     FIG. 3  provides a general overview of the present invention&#39;s “perturbed” joint DC offset and CIR estimation algorithm  300 . In step  302 , a joint least squares (LS) CIR DC offset (DCO) algorithm is used to obtain initial CIR and DCO estimates. It is important to note that LS is one of the possible approaches in joint CIR DC offset estimation as outlined in Zvonar&#39;s U.S. Pat. No. 6,504,884. It is used in the description as specific computational method, though it can be replaced by other methods such as iterative computation, MMSE, etc. 
   Next, in step  304 , the calculated DCO estimate is subtracted from the received signal burst, r(n). It should be noted that steps  302  and  304  are optional, depending on the required quality of the estimate. Further, in step  306 , a “perturbed” joint LS CIR DCO estimation matrix is computed based upon the training sequence used. In step  308 , the LS CIR DCO estimation is repeated using the above-mentioned “perturbed” estimation matrix. Next, in step  310 , the newly calculated DCO estimate is subtracted from the received signal burst, r(n). 
     FIG. 4  illustrates an overview of a system  400  implemented in the receiver incorporating the methods of  FIGS. 2 and 3 . The received signal is stored in burst storage  402 . Next, burst signal, r(k), stored in  402  is input into block  404 , which performs a joint estimation of DC offset and CIR. DCO A 0  estimated in block  404  is forwarded to block  406 , which then removes the DC offset as follows: r(k)−A 0 . Next, the residual DC offset is estimated, in block  408 , via a joint estimation of DC offset and CIR using a “perturbed” estimation matrix, and block  410  removes the calculated residual DC offset as follows: r(k)−A 0 −A 1 . Further, the estimated channel impulse response, h 0 , is forwarded to equalizer  412 . A detailed description of the steps of  FIGS. 2 and 3  are now presented. 
   Averaging 
   Averaging typically removes existing DC offset. Unfortunately, however, it also introduces a DC offset that is a function of the data and channel response. If the averaging is confined to the training sequence, then the data portion of this introduced DC offset is known. The drawback of limiting averaging to the training sequence only is that the DC noise term will be larger than if the averaging is conducted over the entire burst. Considering a received signal corresponding to the training sequence, 
             r   n     =     m   +       ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢     t     n   -   i           +     z   n             
where r n  is the received signal, m is the fixed DC offset, h i  is the channel taps, to is the training sequence, and z n  is the AWG noise. By averaging the signal over the training sequence, {circumflex over (m)} is given by:
 
             m   ^     =         1   M     ⁢       ∑     j   =   0       M   -   1       ⁢           ⁢     y   j         =     m   +       1   M     ⁢       ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢       ∑     j   =   0       M   -   1       ⁢           ⁢     t     j   -   1               +       1   M     ⁢       ∑     j   =   0       M   -   1       ⁢           ⁢     z   j                   
After subtracting the DC offset estimate from r n ,
 
   
     
       
         
           
             
               r 
               ^ 
             
             n 
           
           = 
           
             
               
                 r 
                 n 
               
               - 
               
                 m 
                 ^ 
               
             
             = 
             
               
                 
                   ∑ 
                   
                     i 
                     = 
                     0 
                   
                   
                     L 
                     - 
                     1 
                   
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     h 
                     i 
                   
                   ⁡ 
                   
                     ( 
                     
                       
                         t 
                         
                           n 
                           - 
                           i 
                         
                       
                       - 
                       
                         
                           1 
                           M 
                         
                         ⁢ 
                         
                           
                             ∑ 
                             
                               j 
                               = 
                               0 
                             
                             
                               M 
                               - 
                               1 
                             
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             t 
                             
                               j 
                               - 
                               1 
                             
                           
                         
                       
                     
                     ) 
                   
                 
               
               + 
               
                 z 
                 n 
               
               - 
               
                 
                   1 
                   M 
                 
                 ⁢ 
                 
                   
                     ∑ 
                     
                       j 
                       = 
                       0 
                     
                     
                       M 
                       - 
                       1 
                     
                   
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     z 
                     j 
                   
                 
               
             
           
         
       
     
   
   It should be noted that if channel estimation uses the received signal samples corrected by the average burst amplitude term, the DC offset estimation always works on the same type of problem (residual DCO which is a function of data and noise) and the algorithm can be fine-tuned. 
   Joint LS DC Offset and CIR Estimation 
   A simple modification of the CIR model allows the joint estimation of CIR and DC offset. The general framework of joint CIR and DC offset estimation has been presented in the Zvonar&#39;s U.S. Pat. No. 6,504,884. For the purposes of this discussion, specific focus is directed towards a specific case of joint estimation using LS estimation. The received signal is rewritten as 
             r   j     =         ∑     i   =   0       L   -   1       ⁢           ⁢       h   i     ⁢     t     j   -   i           +   m   +     z   j             
where m is the DC offset. In matrix form, the above equation is rewritten as r=Th+z, where T becomes
 
           T   =     [           t     L   -   1             t     L   -   2           ⋯         t   0         1             t   L           t     L   -   1           ⋯         t   1         1           ⋮                               ⋮       1             t   25         ⋯       ⋯         t     25   -   L   +   1           1         ]           
h=[h 0  h 1  . . . h L−1  m] T , while r and z are unchanged. The LS CIR estimator remains unchanged, except that now a different matrix T is used to estimate L+1 taps. After estimation, the DC offset estimate is subtracted from the received signal.
 
   Synchronization, CIR Alignment and CIR Length 
   In the presence of DC Offset, performance of all steps prior to actual CIR (plus DCO) estimation deteriorates. Some of the steps, such as initial synchronization, are robust and fairly immune to DCO, while others, such as rough cross-correlation CIR estimation, deteriorate more. 
   Initial synchronization is obtained by cross-correlating the whole training sequence with a received signal buffer. The delay that produces the largest magnitude cross-correlation is taken for the index of the largest CIR tap and the start of the training sequence realization corresponding to that tap. 
   The optimal fine CIR synchronization procedure with LS type estimates consists of repeating LS CIR DCO estimation for different CIR offsets, including the largest magnitude tap and picking the CIR+DCO realization with maximum energy. However, this procedure would require eleven repetitions of the LS CIR DCO estimation for different delays and is excessively complex. Instead, a suboptimal fine synchronization procedure can be used wherein the cross-correlation CIR estimate is used as a rough CIR estimate. 
   CIR Estimation Error 
   It is interesting to consider the relationship between the LS CIR estimation and the joint LS CIR DCO estimation. The LS problem to be solved is given by T H Th=T H r. In case of joint LS CIR DCO estimation, T H T is given by 
               T   H     ⁢   T     =     [             ∑     j   =     L   -   1       25     ⁢           ⁢            t   j          2               ∑     j   =     L   -   1       25     ⁢       t   j   H     ⁢     t     j   -   1               ⋯           ∑     j   =     L   -   1       25     ⁢       t   j   H     ⁢     t     j   -   L   +   1                   ∑     j   =     L   -   1       25     ⁢     t   j   H                   ∑     j   =     L   -   1       25     ⁢       t   j     ⁢     t     j   -   1     H                 ∑     j   =     L   -   1       25     ⁢           ⁢            t     j   -   1            2           ⋯           ∑     j   =     L   -   1       25     ⁢       t     j   -   1     H     ⁢     t     j   -   L   +   1                   ∑     j   =     L   -   1       25     ⁢     t     j   -   1     H               ⋮       ⋮                   ⋮       ⋮               ∑     j   =     L   -   1       25     ⁢       t   j     ⁢     t     j   -   L   +   1     H                 ∑     j   =     L   -   1       25     ⁢       t     j   -   1       ⁢     t     j   -   L   +   1     H             ⋯           ∑     j   =     L   -   1       25     ⁢           ⁢            t     j   -   L   +   1            2               ∑     j   =     L   -   1       25     ⁢     t     j   -   L   +   1     H                   ∑     j   =     L   -   1       25     ⁢     t   j               ∑     j   =     L   -   1       25     ⁢     t     j   -   1             ⋯           ∑     j   =     L   -   1       25     ⁢     t     j   -   L   +   1               26   -   L   +   1           ]           
while T H r is given by
 
               T   H     ⁢   r     =     [             ∑     j   =     L   -   1       25     ⁢       t   j   H     ⁢     r   j                     ∑     j   =     L   -   1       25     ⁢       t     j   -   1     H     ⁢     r   j                 ⋮               ∑     j   =     L   -   1       25     ⁢       t     j   -   L   +   1     H     ⁢     r   j                     ∑     j   =     L   -   1       25     ⁢     r   j             ]           
The last row of the equation gives an expression for DCO estimation:
 
             m   ^     =       1     26   -   L   +   1       ⁢     (       ∑     j   =     L   -   1       25     ⁢     (       r   j     -       ∑     i   =   0       L   -   1       ⁢         h   ^     i     ⁢     t     j   -   i             )       )             
Parameter m can be eliminated from the above equation, thus obtaining the expression for the estimation of CIR only:
   ĥ =( T   H ( T−ΔT )) −1   T   H ( r−  r   ) 
where T is now of reduced dimension (L×26−L+1), ΔT is a (L×26−L+1) matrix given by
 
             Δ   ⁢           ⁢   T     =       1     26   -   L   +   1       ⁡     [             ∑     j   =     L   -   1       25     ⁢     t   j               ∑     j   =     L   -   1       25     ⁢     t     j   -   1             ⋯           ∑     j   =     L   -   1       25     ⁢     t     j   -   L   +   1                 ⋮       ⋮                   ⋮           ⋮       ⋮                   ⋮               ∑     j   =     L   -   1       25     ⁢     t   j               ∑     j   =     L   -   1       25     ⁢     t     j   -   1             ⋯           ∑     j   =     L   -   1       25     ⁢     t     j   -   L   +   1               ]                 while               r   _     =       1     26   -   L   +   1       ⁡     [             ∑     j   =     L   -   1       25     ⁢     r   j               ⋮           ⋮               ∑     j   =     L   -   1       25     ⁢     r   j             ]             
is a (L×1) vector.
 
   Note that it can be shown that the following relations are valid:
 
 T   H   ΔT=ΔT   H   T=ΔT   H   ×T  
 
Δ T   H   r=ΔT   H   {circumflex over (r)} 
 
Consequently,
 
 ĥ =( T   H ( T−ΔT )) −1   T   H ( r−  r   )=(( T−ΔT ) H ( T−ΔT ) −1 ( T−ΔT ) H ( r−{circumflex over (r)} 
 
and, since
 
             r   _     =         m   ⁢           ⁢   U     +     Δ   ⁢           ⁢   Th     +       z   _     ⁢           ⁢   U   ⁢           ⁢     (     ⁢   where   ⁢           ⁢     z   _         =       1     26   -   L   +   1       ⁢     ∑     z   j                 
and U is the column vector with elements equal to 1), the CIR estimate becomes
   ĥ =(( T−ΔT ) H ( T−ΔT )) −1 ( T−ΔT ) H ( r−  r   )=( {tilde over (T)}   H   {tilde over (T)}   H ( r−  r   ) 
while
   r−  r =mU+Th+z−mU−ΔTh−  z U =( T−ΔT ) h+z−  z U={tilde over (T)}h+z−  z U.    
Hence,
   ĥ =( {tilde over (T)}   H   {tilde over (T)} ) −1   {tilde over (T)}   H ( r−  r   )=( {tilde over (T)}   H   {tilde over (T)})   −1   {tilde over (T)}   H ( {tilde over (T)}h+z−  z U )= h +( {tilde over (T)}   H   {tilde over (T)} ) −1   {tilde over (T)}   H ( z−  z     U )= h+Δh    
The joint LS CIR DCO estimation error covariance matrix for CIR taps therefore becomes
   E[ΔhΔh   H ]=( {tilde over (T)}   H   {tilde over (T)} ) −1   {tilde over (T)}   H   E [( z−  z U )( z−  z U ) H   ]{tilde over (T)} ( {tilde over (T)}   H   {tilde over (T)} ) −1 =σ 2 ( {tilde over (T)}   H   {tilde over (T)} ) −1    
In other words, the effect of a joint LS CIR DCO estimation on CIR estimation error is that the CIR estimation error covariance matrix, (T H T) −1 , is perturbed by the matrix T H ΔT. If the elements of matrix T H ΔT were small, the CIR estimation error would not be strongly affected. Unfortunately, in most EDGE training sequences (sequences number 2 to 7) the elements of matrix T H ΔT are quite large and contribute to the significant worsening of CIR estimation error. For example, for L=7 and training sequence TSC=5, the CIR estimation error is reduced from roughly σ 2 /20 (20=26−7+1) to roughly σ 2 /13, which is even worse than what is ideally expected from the cross-correlation CIR estimation error.
 
   As shown earlier, the DCO estimate in the joint LS CIR DCO estimation is given by 
             m   ^     =       1     26   -   L   +   1       ⁢       (       ∑     j   =     L   -   1       25     ⁢     (       r   j     -       ∑     i   =   0       L   -   1       ⁢         h   ^     i     ⁢     t     j   -   i             )       )     .     
     ⁢   Since                     r   j     =     m   +       ∑     i   =   0       L   -   1       ⁢       h   i     ⁢     t     j   -   i           +     z   j             
the DCO estimation error is equal to
 
             Δ   ⁢           ⁢   m     =         m   ^     -   m     =         1     26   -   L   +   1       ⁢       ∑     j   =     L   -   1       25     ⁢       ∑     i   =   0       L   -   1       ⁢     Δ   ⁢           ⁢     h   i     ⁢     t     j   -   i               +       1     26   -   L   +   1       ⁢       ∑     j   =     L   -   1       25     ⁢     z   j                   
or in matrix notation,
 ΔmU=ΔTΔh+  z U. 
   The DCO tap estimation error covariance is given by 
             E   ⁡     [     Δ   ⁢           ⁢   m   ⁢           ⁢   Δ   ⁢           ⁢     m   H       ]       =         trace   ⁡     (     Δ   ⁢           ⁢     TE   ⁡     [     Δ   ⁢           ⁢   h   ⁢           ⁢   Δ   ⁢           ⁢     h   H       ]       ⁢   Δ   ⁢           ⁢     T   H       )       ⁢     1     26   -   L   +   1         +       σ   2       26   -   L   +   1               
where trace( ) denotes the sum of diagonal elements of a matrix. It is seen that the DCO tap estimation error variance is proportional to the sum of CIR taps estimation error variances and must therefore be several times larger. Indeed, with L=7 and training sequence TSC=5, while CIR tap estimation error variance is roughly σ2/13, DCO tap estimation variance is roughly σ 2 /4.5.
 
   Perturbed Joint LS CIR DCO Estimation 
   As shown previously, the reason joint LS CIR DCO estimation produces significantly worse performance with some training sequences is that most of EDGE training sequences were not created with joint LS CIR DCO estimation in mind. While all of them have good auto- and cross-correlation properties, means of different portions of most training sequences do not tend to zero and are actually quite large. It should be clear from the previous discussion that the performance of the joint LS CIR DCO estimation would approach that of the LS CIR estimation provided elements of matrix ΔT could be made to approach zero. 
   Consider, for example, that instead of the model 
               r   j     =         ∑     i   =   0       L   -   1       ⁢       h   i     ⁢     t     j   -   i           +   m   +     z   j         ,         
the model
 
             r   j     =         ∑     i   =   0       L   -   1       ⁢       h   i     ⁢     t     j   -   i           +       f   j     ⁢   m     +     z   j             
is used, where f j  is a generic function of j, for example
 
             f   j     =       ∑   p     ⁢     ⅇ     ⅈ2πj     k   p                 
where p is the number of factors for the function and k p  is an integer selected by designer. It should be noted that both the joint LS CIR DCO estimation and LS CIR estimation are special cases of this model. In the former, f j =1, while in the latter, f j =0.
 
   With the new model, our estimation problem becomes T(f) H T(f)h=T(f) H r, while T(f) H T(f) is given by: 
                       T   ⁡     (   f   )       H     ⁢     T   ⁡     (   f   )         =     
     ⁢     [             ∑     j   =     L   -   1       25     ⁢            t   j          2               ∑     j   =     L   -   1       25     ⁢       t   j   H     ⁢     t     j   -   1               ⋯           ∑     j   =     L   -   1       25     ⁢       t   j   H     ⁢     t     j   -   L   +   1                   ∑     j   =     L   -   1       25     ⁢       f   j     ⁢     t   j   H                     ∑     j   =     L   -   1       25     ⁢       t   j     ⁢     t     j   -   1     H                 ∑     j   =     L   -   1       25     ⁢            t     j   -   1            2           ⋯           ∑     j   =     L   -   1       25     ⁢       t     j   -   1     H     ⁢     t     j   -   L   +   1                   ∑     j   =     L   -   1       25     ⁢       f   j     ⁢     t     j   -   1     H                 ⋮       ⋮       ⋯       ⋮       ⋮               ∑     j   =     L   -   1       25     ⁢       t   j     ⁢     t     j   -   L   +   1     H                 ∑     j   =     L   -   1       25     ⁢       t     j   -   1       ⁢     t     j   -   L   +   1     H             ⋯           ∑     j   =     L   -   1       25     ⁢            t     j   -   L   +   1            2               ∑     j   =     L   -   1       25     ⁢       f   j     ⁢     t     j   -   L   +   1     H                     ∑     j   =     L   -   1       25     ⁢       t   j     ⁢     f   j   H                 ∑     j   =     L   -   1       25     ⁢       t     j   -   1       ⁢     f   j   H             ⋯           ∑     j   =     L   -   1       25     ⁢       t     j   -   L   +   1       ⁢     f   j   H                 ∑     j   =     L   -   1       25     ⁢            f   j          2             ]                             
and T(f) H r is given by
 
                 T   ⁡     (   f   )       H     ⁢   r     =     [             ∑     j   =     L   -   1       25     ⁢       t   j   H     ⁢     r   j                     ∑     j   =     L   -   1       25     ⁢       t     j   -   1     H     ⁢     r   j                 ⋮               ∑     j   =     L   -   1       25     ⁢       t     j   -   L   +   1     H     ⁢     r   j                     ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     r   j               ]           
The last row of the equation gives a modified expression for DCO estimation:
 
             m   ^     =       1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁢     (       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁡     (       r   j     -       ∑     i   =   0       L   -   1       ⁢         h   ^     i     ⁢     t     j   -   i             )         )             
As above, parameter m can be eliminated from the above equation, thus obtaining the same expression for estimation of the CIR only:
   ĥ =( T   H ( T−ΔT ( f ))) −1   T   H ( r−  r   ( f )) 
where T is now of reduced dimension (L×26−L+1), unchanged from before since it is not a function of f j , while ΔT(f) is a (L×26−L+1) matrix, given by
 
             Δ   ⁢           ⁢     T   ⁡     (   f   )         =       1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁢           ⁢     
     [             f     L   -   1       ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     t   j                   f     L   -   1       ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     t     j   -   1                 ⋯           f     L   -   1       ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     t     j   -   L   +   1                     ⋮       ⋮                   ⋮           ⋮       ⋮                   ⋮               f   25     ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     t   j                   f   25     ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     t     j   -   1                 ⋯           f   25     ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     t     j   -   L   +   1                   ]               and               r   ⁡     (   f   )       =       1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁢           [             f     L   -   1       ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     r   j                   ⋮           ⋮               f   25     ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     r   j                 ]           
is a (L×1) vector.
 
   Note that, as for f j 1, the following relations are still valid:
 
 T   H   ΔT ( f )=Δ T ( f ) H   T=ΔT ( f ) H   ΔT ( f )
 
Δ T ( f ) H   r=ΔT ( f ) H     r   ( f )
 
Consequently,
 
 ĥ =( T   H ( T−ΔT ( f ))) −1   T   H ( r−  r   ( f ))=(( T−ΔT ( f )) H ( T−ΔT ( f ))) −1 ( T−ΔT ( f )) H ( r−  r   ( f ))
 
and, since  r (f)=mF+ΔT(f)h+  z (f), where
 
               z   _     ⁡     (   f   )       =       1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢       z   j     ⁡     [           f     L   -   1                 f   L             ⋮             f   25           ]                       and               F   =           ∑     j   =     L   -   1       25     ⁢     f   j   H           ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁡     [           f     L   -   1                 f   L             ⋮             f   25           ]         ,         
the CIR estimate becomes
   ĥ =(( T−ΔT ( f )) H ( T−ΔT ( f ))) −1 ( T−ΔT ( f )) H ( r−  r   ( f ))=( {tilde over (T)} ( f ) H   {tilde over (T)} ( f )) −1   {tilde over (T)} ( f ) H ( r−  r   ( f )) while   r−  r   ( f )= mU+Th+z−mF−ΔT ( f ) h−  z (   f )=( T−ΔT ( f )) h+m ( U−F )+ z−  z   ( f ) Hence,   ĥ =( {tilde over (T)} ( f ) H   {tilde over (T)} ( f )) −1   {tilde over (T)} ( f ) H ( r−  r   ( f ))=( {tilde over (T)} ( f ) H   {tilde over (T)} ( f )) −1   {tilde over (T)} ( f ) H ( {tilde over (T)} ( f ) h+m ( U−F )+ z−  z   ( f ))   ĥ=h +( {tilde over (T)} ( f ) H   {tilde over (T)} ( f )) −1   {tilde over (T)}(   f ) H ( z−  z   ( f )+ m ( U−F ))= h+Δh    
The CIR estimation error consists of two parts, one of which is due to noise while the other is due to model mismatch (i.e., assumption that f j  is not equal to 1). Joint LS CIR DCO estimation error covariance matrix for CIR taps therefore becomes
   E[ΔhΔh   H ]=σ 2 ( {tilde over (T)} ( f ) H   {tilde over (T)} ( f )) −1   +|m|   2 ( {tilde over (T)} ( f ) H   {tilde over (T)} ( f )) −1   {tilde over (T)} ( f ) H ( U−F )( U−F ) H   {tilde over (T)} ( f )( {tilde over (T)} ( f ) H   {tilde over (T)} ( f )) −1      E[ΔhΔh   H ]=σ 2 ( T   H ( T−ΔT ( f ))) −1   +|m|   2 ( T   H ( T−ΔT ( f ))) −1   T   H ( U−F )( U−F ) H   T ( T   H ( T−ΔT ( f ))) −1    
The CIR estimation error covariance matrix consists of two parts, one stochastic due to AWGN, and the other deterministic, due to DCO.
 
   Furthermore, DCO estimate is obtained by 
             m   ^     =       1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁢     (       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁡     (       r   j     -       ∑     i   =   0       L   -   1       ⁢         h   ^     i     ⁢     t     j   -   i             )         )                 Since               r   j     =     m   +       ∑     i   =   0       L   -   1       ⁢       h   i     ⁢     t     j   -   i           +     z   j             
the DCO estimation error is equal to
 
                   Δ   ⁢           ⁢   m     =         m   ^     -   m     =       ⁢       m   ⁢     (           ∑     j   =     L   -   1       25     ⁢     f   j   H           ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           -   1     )       +                       ⁢         1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁢       ∑     i   =   0       L   -   1       ⁢     Δ   ⁢           ⁢     h   i     ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     t     j   -   i                 +                     ⁢       1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           ⁢       ∑     j   =     L   -   1       25     ⁢       f   j   H     ⁢     z   j                       
or, in matrix notation,
 
             Δ   ⁢           ⁢   m     =       m   ⁡     (         f   H     ⁢     U   /     (       f   H     ⁢   f     )         -   1     )       +       U   H     ⁢         Δ   ⁢           ⁢     T   ⁡     (   f   )       ⁢   Δ   ⁢           ⁢   h     +       z   _     ⁡     (   f   )             U   H     ⁢   f                 
where U is a vector with all elements equal to 1, and f=[f L−1  f L  . . . f 25 ] T .
 
   As in the case of CIR estimation error, the DCO tap estimation error also includes two parts, one due to AWGN, and the other due to model mismatch and proportional to the DCO value. 
   The expressions for CIR estimation error and DCO estimation error provide guidance with regard to which conditions function f j  must fulfill to reduce the estimation error. 
   The first condition, leading to reduction of CIR estimation error due to AWGN, is that the elements of ΔT(f) should be close to zero (or equal to zero): 
   
     
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   
                     L 
                     - 
                     1 
                   
                 
                 25 
               
               ⁢ 
               
                 
                   f 
                   j 
                   H 
                 
                 ⁢ 
                 
                   t 
                   
                     j 
                     - 
                     k 
                   
                 
               
             
             → 
             0 
           
           , 
           
             
               ∀ 
               k 
             
             = 
             
               ( 
               
                 0 
                 , 
                 1 
                 , 
                 … 
                 ⁢ 
                 
                     
                 
                 , 
                 
                   L 
                   - 
                   1 
                 
               
               ) 
             
           
         
       
     
   
   If that condition is valid, the CIR estimation error covariance matrix becomes:
 
 E[ΔhΔh   H ]=σ 2 ( T   H   T ) −   +|m|   2 ( T   H   T ) −1   T   H ( U−F )( U−F ) H   T ( T   H   T ) −1  
 
Estimation error due to AWGN is now the same as in the LS CIR estimation. However, the error due to model mismatch remains and is proportional to
 
             26   -   L   +   1     =       |       ∑     j   =     L   -   1       25     ⁢     f   j       ⁢     |   2           ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2                 
so that the second condition is to make the above relation also approach zero. If function f j  fulfills both of the above conditions, then the CIR estimation error for joint LS CIR DCO estimation would be the same as the CIR estimation error for LS CIR estimation.
 
   Additionally, f j  must fulfill the following conditions to reduce the DCO estimation error. 
                   ∑     j   =     L   -   1       25     ⁢     f   j   H           ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           -   1     →   0         
This condition would eliminate error due to model mismatch. Furthermore, if ΔT(f)=0, the coupling of the CIR estimation error to the DCO estimation error would also be eliminated, so the DCO estimation error would become a function of AWGN only.
 
   
     
       
         
           
             Δ 
             ⁢ 
             
                 
             
             ⁢ 
             m 
           
           = 
           
             
               1 
               
                 
                   ∑ 
                   
                     j 
                     = 
                     
                       L 
                       - 
                       1 
                     
                   
                   25 
                 
                 ⁢ 
                 
                   | 
                   
                     f 
                     j 
                   
                   ⁢ 
                   
                     | 
                     2 
                   
                 
               
             
             ⁢ 
             
               
                 ∑ 
                 
                   j 
                   = 
                   
                     L 
                     - 
                     1 
                   
                 
                 25 
               
               ⁢ 
               
                 
                   
                     f 
                     j 
                   
                   H 
                 
                 ⁢ 
                 
                   z 
                   j 
                 
               
             
           
         
       
     
   
   In that case, DCO estimation error variance would be equal to: 
             E   ⁡     [     Δ   ⁢           ⁢   m   ⁢           ⁢   Δ   ⁢           ⁢     m   H       ]       =       σ   2     ⁢     1       ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2                   
which is the last condition for optimality and should ideally be equal to σ 2 /(26−L+1), which is the Cramer-Rao bound for LS CIR DCO estimation.
 
   Thus, provided a function f j  can be identified that can fulfill all of the above conditions, the optimal estimation error can be found regardless of the training sequence. 
   Unfortunately, some of listed conditions are contradictory (i.e., cannot be simultaneously fulfilled), indicating that Cramer-Rao bound cannot be reached with perturbed joint LS CIR DCO estimation. 
   The paper of Hui entitled, “Using a direct conversion receiver in EDGE terminals-a new DC offset compensation algorithm,” proposes a different approach in the elimination of error caused by DC offset. The proposed method modifies the receiver in such a way that the received signal can be modeled as 
             r   j     =       m   ⁢           ⁢     ⅇ     ⅈ   ⁢           ⁢   δ   ⁢           ⁢   j         +       ∑     k   =   0       L   -   1       ⁢       h   k     ⁢     t     j   -   k           +     z   j             
where i=(−1) 0.5  and δ is a pre-selected angle, a function of the training sequence. Thus, their proposal can be interpreted as a special case using function f j =e iθj . This function is well suited for minimizing ΔT(f) and can therefore provide estimation error close to LS CIR estimation error. Hui proposes that the DCO be “rotated” in the following manner: frequency of LO which is part of radio section is to be deliberately offset by δ before the DC offset is introduced in the signal chain. When this rotation is corrected in the baseband, the DCO is effectively rotated by the same angle, since it was added to the received signal in the meantime. The improvement of the estimation error will depend on the accuracy with which the LO frequency can be controlled and the receiver requires a control path between baseband receiver (where the received data are decoded and the receiver discovers which training sequence it is supposed to receive) and the LO. Also, proposed correction will require that there is known relationship between the number of TS and introduced frequency offset, i.e. function f depends on the training sequence. Hui&#39;s method requires interactions between radio and baseband portions of receiver, and has training sequence dependant frequency offset.
 
   Conditions needed for the reduction of estimation error as derived by the inventors to the Cramer-Rao bound cannot all be fulfilled at the same time and problem can be approached with several suboptimal techniques. 
   In general, suboptimal approaches would try to find functions that fulfill some, instead of all, the above-listed conditions for optimality and modify the estimation procedure in such a way that would maximally exploit the characteristics of the perturbed joint LS estimator. Secondly, when searching for an optimal function f j , one is faced with the difficulty of finding a closed form solution that would fulfill all conditions for optimality. However, one may opt to find closed form solutions for functions that fulfill at least some of the conditions for optimality. Alternatively, a parametric form for the function f j  can be specified, and then a search can be performed for identifying parameters that minimize some metric related to the overall estimation error. 
   Another approach dispenses with the seeking of a function f j  that fully eliminates errors due to mismatch and non-zero ΔT elements. Instead, a function f j  is identified that improves is CIR estimation error by reducing ΔT elements while minimally increasing estimation error due to mismatch. Good solutions are found by minimizing an error-related metric with respect to parameters of some parametric function. A good candidate for such a function is obviously one or a combination of several complex sinusoids, e iδj . 
   One possibility is to seek a parameter δ that minimizes the metric
 
( T   H ( T−ΔT ( f ))) −1   +w ( T   H ( T−ΔT ( f ))) −1   T   H ( U−F )( U−F ) H   T ( T   H ( T−ΔT ( f ))) −1  
 
where f j =1−e iδj , and w is a weight proportional to the ratio of DCO magnitude and AWGN variance. The idea is to find the function f j  that reduces CIR estimation error. Then, given that DCO estimation error is proportional to CIR estimation error, DCO is estimated as if f j =1,
 
   
     
       
         
           
             m 
             ^ 
           
           = 
           
             
               1 
               
                 26 
                 - 
                 L 
                 + 
                 1 
               
             
             ⁢ 
             
               ( 
               
                 
                   ∑ 
                   
                     j 
                     = 
                     
                       L 
                       - 
                       1 
                     
                   
                   25 
                 
                 ⁢ 
                 
                   ( 
                   
                     
                       r 
                       j 
                     
                     - 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           0 
                         
                         
                           L 
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         
                           
                             h 
                             ^ 
                           
                           i 
                         
                         ⁢ 
                         
                           t 
                           
                             j 
                             - 
                             1 
                           
                         
                       
                     
                   
                   ) 
                 
               
               ) 
             
           
         
       
     
   
   Another possible approach is based on the observation that as long as the DCO estimation error in perturbed LS solution can be reduced below the level of the DCO estimation error with f j =1, iterative joint perturbed LS CIR DCO estimation (as presented in  FIG. 3 ) is bound to reduce the overall estimation error. It turns out that for TSC=5, function f j =0.5(1−e iδj ), where δ=−2π/(26−L+2), is a good choice for such a function. Interestingly, this function fulfils the condition that 
                   ∑     j   =     L   -   1       25     ⁢     f   j   H           ∑     j   =     L   -   1       25     ⁢     |     f   j     ⁢     |   2           -   1     →   0         
while also significantly reducing the elements of ΔT matrix. With this approach, an “ordinary” joint LS CIR DCO estimate is first obtained, then, as a second step, the DCO estimate is subtracted. Then, the estimation is repeated, but this time using perturbed joint LS CIR DCO estimation. The final DCO estimate is the sum of the initial and improved DCO estimates, while the CIR estimate is the second, perturbed LS CIR estimate. This method works best at high Eb/NO, giving an improvement of 2.0 dB in a MCS7 HT100 channel, with TSC=5, for example.
 
   Furthermore, the present invention includes a computer program code based product, which is a storage medium having program code stored therein which can be used to instruct a computer to perform any of the methods associated with the present invention. The computer storage medium includes any of, but not limited to, the following: CD-ROM, DVD, magnetic tape, optical disc, hard drive, floppy disk, ferroelectric memory, flash memory, ferromagnetic memory, optical storage, charge coupled devices, magnetic or optical cards, smart cards, EEPROM, EPROM, RAM, ROM, DRAM, SRAM, SDRAM, and/or any other appropriate static or dynamic memory or data storage devices. 
   Implemented in computer program code based products are software modules for: (a) receiving a signal bust r(n); (b) storing received burst samples, r(n), in memory; (c) averaging the stored burst samples, r(n), and calculating an initial DC offset, A 0 , from the stored burst samples; (d) removing DC offset value from stored burst as follows: r(n)−A 0 ; (e) estimating an updated DC offset, A 1 , and a channel impulse response (CIR), ĥ, via a perturbed LS CIR estimation representation modeling received burst r(n) as follows: 
             r   j     =         ∑     i   =   0       L   -   1       ⁢       h   i     ⁢     t     j   -   i           +       f   j     ⁢   m     +     z   j             
where h i  are CIR taps, t j  are known training sequence symbols, f j  is a generic function of j, m is static DC offset; and z j  is additive white Gaussian noise, and removing updated DC offset from stored burst as follows: r(n)−A 0 −A 1 .