# Patent

## Title
Method and apparatus for estimation of orthogonal frequency division multiplexing symbol timing and carrier frequency offset

## Abstract

A system and method estimates symbol timing of long training symbols and coarse carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network. The system and method estimates the symbol timing and coarse carrier frequency offset during short training symbols of a preamble of a data packet. Fine carrier frequency offset is estimated during long training symbols. Channel estimates during a data portion of the data packet are adapted.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 60/273,487, filed Mar. 5, 2001, which is hereby incorporated by reference.


FIELD OF THE INVENTION
The present invention relates to receivers, and more particularly to receivers that measure carrier frequency offset, symbol timing and/or phase noise of an orthogonal frequency division multiplexing signal.
BACKGROUND OF THE INVENTION
A wireless local area network (WLAN) uses radio frequency (RF) signals to transmit and receive data between electronic devices. WLANs provide all of the features and benefits of traditional hard-wired LANs without requiring cable connections between the devices. In WLANs, transmitters and receivers (often implemented as wireless network interface cards) provide a wireless interface between a client and a wireless access point to create a transparent connection between the client and the network. Alternately, the WLAN provides a wireless interface directly between two devices.
The access point is the wireless equivalent of a hub. The access point is typically connected to the WLAN backbone through a standard Ethernet cable and communicates with the wireless devices using an antenna. The wireless access point maintains the connections to clients that are located in a coverage area of the access point. The wireless access point also typically handles security by granting or denying access.
IEEE section 802.11(a), which is hereby incorporated by reference, standardized WLANs that operate at approximately 5 GHz with data speeds up to 54 Mbps. A low band operates at frequencies from 5.15 to 5.25 GHz with a maximum power output of 50 mW. A middle band operates at frequencies from 5.25 to 5.35 GHz with a maximum power output of 250 mW. A high band operates at frequencies from 5.75 to 5.85 GHz with a maximum power output of 1000 mW.
Because of the high power output, wireless devices operating in the high band will tend to include building-to-building and outdoor applications. The low and middle bands are more suitable for in-building applications. IEEE section 802.11(a) employs orthogonal frequency division multiplexing (OFDM) instead of direct sequence spread spectrum (DSSS) that is employed by IEEE section 802.11(b). OFDM provides higher data rates and reduces transmission echo and distortion that are caused by multipath propagation and radio frequency interference (RFI).
Referring now to FIG. 1, data packets include a preamble 10 that is specified by IEEE section 802.11(a). The preamble 10 includes a plurality of short training symbols 12 (S0, . . . , S9). The short training symbols 12 are followed by a guard interval 14 (Guard) and two long training symbols 16-1 and 16-2 (L0, L1). The duration of the short training symbol 12 is Tshort, the duration of the guard interval 14 is TG12, the duration of the long training symbols 16 is Tlong, the duration of the guard interval 15 for data symbols is TG1, and the duration of data symbols 18 is Tdata. Guard intervals 15 and data symbols 18 alternate after the long training symbols 16. According to IEEE section 802.11(a), Tshort=0.8 μs, TG1=0.8 μs, TG12=1.6 μs, Tlong=3.2 μs, and Tdata=4 μs.
One important task of the OFDM receiver is the estimation of symbol timing and carrier frequency offset. Symbol timing is needed to determine the samples of each OFDM symbol that correspond to the guard interval and the samples that are used for fast Fourier transform (FFT) processing. Compensation of the carrier frequency offset is also needed to maximize signal amplitude and minimize inter-carrier interference (ICI).
Conventional symbol timing circuits correlate two halves of a single OFDM training symbol whose duration is equal to the duration of the data symbols. For example, see the symbol timing circuit disclosed in T. Schmidl and D.C. Cox, “Robust Frequency and Timing Synchronization for OFDM”, IEEE Trans. Commun., vol. 45, no. 12, (December 1999), pp. 1613–1621, which is hereby incorporated by reference. The conventional symbol timing circuit exhibits a plateau when there is no intersymbol interference (ISI). The duration of the plateau is the duration of the guard interval that is not affected by ISI. The plateau in the conventional symbol timing circuit corresponds to the range of acceptable times for the start of the frame. For example, the center of the plateau is a desirable estimate of the symbol timing. Since only one training symbol is employed, the conventional symbol timing circuit does not allow time for possible switching of antennas and corresponding AGC settling during packet detection.
SUMMARY OF THE INVENTION
A system and method according to the invention estimates carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network. Short training symbols of a preamble of a data packet are sampled to generate a received signal. Sign bits of real and imaginary components of the received signal are quantized.
In other features, the sign bits of at least two adjacent short training symbols are used to generate a correlation signal. A filtered sum of an absolute value of a real component of the correlation signal and an absolute value of an imaginary component of the correlation signal are generated.
In still other features, a local maximum value of the filtered sum is identified during the short training symbols. The local maximum value is identified by updating and storing the filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.
In still other features, the local maximum value of the filtered sum is multiplied by a threshold value to identify a right edge of a plateau. A right time index value corresponding to the right edge is identified. Symbol timing of long training symbols is calculated from the right time index value.
In still other features, a maximum value of the filtered sum is identified during the short training symbols. The maximum value is identified by updating and storing the filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum. A time index value corresponding to the maximum value is identified. A correlation signal value corresponding to the time index value is identified. An imaginary component of the correlation signal value corresponding to the time index value is calculated. A real component of the correlation signal value corresponding to the time index value is calculated. The imaginary component is divided by the real component to generate a quotient. An arctangent of the quotient is calculated to generate a coarse carrier frequency offset estimate.
In other features of the invention, a system and method estimates fine carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network. A symbol timing estimate is generated that identifies a start time of first and second long training symbols of a preamble of a data packet. The first and second long training symbols of the preamble are used to generate a received signal. The first and second long training symbols are correlated to generate a correlation signal. A fine carrier frequency offset is calculated from the correlation signal.
In yet other features, the step of calculating includes calculating imaginary and real components of the correlation signal. The imaginary component is divided by the real component to generate a quotient. An arctangent of the quotient is calculated to generate the fine carrier frequency offset estimate.
In other features of the invention, a system and method updates channel estimates in an orthogonal frequency division multiplexing receiver of a wireless local area network. The channel estimates are generated for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values. A complex number is generated by summing a product of frequency domain signals and the channel estimates for each of the subcarrier index values and dividing the sum by a sum of a squared absolute value of the channel estimate for each of the subcarrier index values. The complex number is multiplied by the channel estimates to generate said updated channel estimates.
In still other features of the invention, a system and method adapt a carrier frequency offset estimate in an orthogonal frequency division multiplexing receiver of a wireless local area network. Channel estimates are generated for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values. A complex number is generated by summing a product of frequency domain signals and the channel estimates for each of the subcarrier index values. The sum is divided by a sum of a squared absolute value of the channel estimate for each of the subcarrier index values. An imaginary component of the complex number is calculated.
In yet other features, the imaginary component is multiplied by an adaptation parameter to generate a product. The product is added to a carrier frequency offset estimate to produce an adapted carrier frequency offset estimate.
Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:
FIG. 1 illustrates a preamble of a packet transmitted by an orthogonal frequency division multiplexing receiver according to the prior art;
FIG. 2 is a functional block diagram of an OFDM transmitter according to the present invention;
FIG. 3 is a functional block diagram of an OFDM receiver according to the present invention;
FIG. 4 is a simplified functional block diagram of the OFDM receiver of FIG. 3;
FIG. 5 is a graph illustrating Mn as a function of a time interval n;
FIG. 6 is an exemplary functional block diagram for calculating Mn and Pn;
FIG. 7 is a flowchart illustrating steps for calculating symbol timing, carrier frequency offset and phase noise;
FIG. 8 is an exemplary functional block diagram for calculating updated channel estimates and an adapted carrier frequency estimate;
FIG. 9 is a flowchart illustrating steps for calculating the updated channel estimates; and
FIG. 10 is a flowchart illustrating steps for calculating the adapted carrier frequency estimate.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses.
Referring now to FIG. 2, an OFDM transmitter 30 is shown. The OFDM transmitter 30 includes a data scrambler 32 that receives input bits and scrambles the bits to prevent long strings of 1's and 0's. An output of the data scrambler 32 is input to a convolutional encoder 34 that adds redundant bits. For example, for each input bit the convolutional encoder 34 may generate two output bits in a rate 1⁄2 convolutional coder. Skilled artisans can appreciate that other code rates may be employed. An output of the convolutional encoder 34 is input to an interleaver and symbol mapper 36.
An output of the interleaver and symbol mapper 36 is input to a serial to parallel (S/P) converter 38. Outputs of the S/P converter 38 are input to an inverse fast Fourier transform (FFT) circuit 40. Outputs of the inverse FFT circuit 40 are input to a parallel to serial (P/S) converter 42. An output of the P/S converter 42 is input to a cyclic prefix adder 44 that adds guard interval bits. An output of the cyclic prefix adder 44 is input to a waveform shaper 46. An output of the waveform shaper 46 is input to a digital to analog (D/A) converter 48. An output of the D/A converter 48 is input to a radio frequency (R/F) amplifier 50 that is connected to an antenna 52. In a preferred embodiment, the OFDM transmitter 30 complies with IEEE section 802.11(a).
Referring now to FIG. 3, an OFDM receiver 60 receives the RF signals that are generated by the OFDM transmitter 30. The receiver 60 includes antennas 62-1 and 62-2. A switch 64 selects one of the antennas 62 based upon the strength of the RF signal detected by the antenna 62. An amplifier 66 is connected to an output of the switch 64. An analog to digital (A/D) converter 68 is connected to an output of the amplifier 66. An automatic gain control (AGC), antenna diversity and packet detection circuit 70 is connected to an output of the A/D converter 68. When the gain of the AGC decreases, a packet is detected. A symbol timing and carrier frequency offset circuit 74 according to the present invention is connected to an output of the circuit 70. The symbol timing and carrier frequency offset circuit 74 identifies a carrier frequency offset ωΔ, a starting time ng of a guard interval, and phase noise as will be described more fully below. The circuit 74 typically multiples the samples by e−jωΔn where n is a sample time index.
A cyclic prefix remover 76 is connected to an output of the symbol timing and carrier frequency offset circuit 74. A S/P converter 78 is connected to an output of the cyclic prefix remover 76. A FFT circuit 80 is connected to an output of the S/P converter 78. A P/S converter 82 is connected to an output of the FFT circuit 80. A demap and deinterleave circuit 84 is connected to an output of the P/S converter 82.
A channel estimator 86 that estimates multipath is connected to an output of the symbol timing and carrier frequency offset circuit 74. A frequency equalizer (FEQ) 90 is connected to an output of the channel estimator 86. An output of the FEQ 90 is input to the demap and deinterleave circuit 82. An output of the demap and deinterleave circuit 82 is input to a sample recovery clock 94 and to a Viterbi decoder 96. An output of the sample recovery clock 94 is input to the A/D converter 62. An output of the Viterbi decoder 96 is input to a descrambler 98.
Referring now to FIG. 4, a simplified functional block diagram of FIG. 3 is shown and includes a radio frequency (RF) amplifier 100 that amplifies the received RF signal. An output of the amplifier 100 is input to a multiplier 102 having another input connected to a local oscillator (LO) 104. An output of the multiplier 102 is filtered by a filter 108 and input to an analog to digital (A/D) converter 110 having a sampling rate of 1/Ts. The A/D converter 110 generates samples rn. A typical value for 1/Ts is 20 MHz, although other sampling frequencies may be used. During the initial periods of the short training symbol 12, the circuit 70 brings the signal within a dynamic range of the OFDM receiver 60. Antenna selection for receive diversity is also performed.
After packet detection and AGC settling, the following quantities are computed for estimation of OFDM symbol timing:

qn=sgn[(rn)]+jsgn[I(rn)]





  
    P
    
      n
      ⁢
      
        
      
    
  
  =
  
    
      ∑
      
        m
        =
        1
      
      L
    
    ⁢
    
      
    
    ⁢
    
      
        q
        
          n
          +
          m
          -
          
            2
            ⁢
            L
          
        
        *
      
      ⁢
      
        q
        
          n
          +
          m
          -
          L
        
      
    
  




Mn=αsMn−1+(1−αs)(|(Pn)|+|I(Pn)|)

Where L=Tshort/Ts is the number of samples in one short training symbol,  is a real component of an argument, and I is an imaginary component of the argument. A typical value for L is L=16, although other values may be used. qn contains sign bits of real and imaginary components of the received signal rn. Quantization simplifies the hardware processing for symbol timing acquisition. Pn represents a correlation between two adjacent short training symbols of qn. Mn represents a filtered version of |(Pn)|+|I(Pn)|. The filter is preferably a single pole filter with a pole αs. A typical value of αs is αs=1−3/32, although other values may be used.
Referring now to FIG. 5, a plot of Mn for a multipath channel having a delay spread of 50 ns is shown. Mn has a plateau at 120 that results from the periodicity of the channel output due to the repetition of the short training symbols. The duration of the plateau depends on the number of periods of the short training symbol that remain after antenna selection and AGC settling. Therefore, a center of the plateau is not the best symbol timing estimate. A falling edge of the plateau indicates that no more short training symbols are present and that Mn includes samples from the guard interval 14 that precedes the long training symbols 16. Therefore, the falling edge of the plateau provides an estimate of the symbol timing.
After AGC settling, Pn and Mn are calculated. A left edge n1 of the plateau 120 is defined by Mn>τ1A. Typical values for τ1 and A are τ1=0.7 and A=32/(Ts▪20 MHz). A maximum value of Mn is updated and stored as Mn,max as time progresses. The complex number Pn corresponding to Mn,max is denoted by Pn,max, which is also updated and stored as time progresses. A local maximum value Mn,localmax, is set equal to Mn−1 if the following conditions are met: Mn−1≧Mn−2 and Mn−1>Mn. The local maximum value Mn,localmax is updated and stored as time progresses.
A time index ng is set to n−1 if the following conditions are met: Mn<τ2 Mn,localmax and Mn−1≧τ2 Mn,localmax. The index ng is used to determine the symbol timing. A typical value for τ2 is τ2=0.9. To determine a right edge nr of the plateau 120, Mn must stay below τ1Mn,max for at least B consecutive samples. A typical value for B is B=8/(Ts▪20 MHz). Once nr is determined, the coarse frequency offset ωΔ is determined by:

ωΔ=tan−1[I(Pn,max)/(Pn,max)]/(L)

A coarse frequency correction e−jωΔn is applied to the received signal. The symbol timing is then estimated by ng′=ng−nΔ. A typical value for nΔ is nΔ=32.

Referring now to FIGS. 6 and 7, an exemplary implementation of the coarse frequency and symbol timing circuit 70 is shown. Typical parameter values include L=32, τ1=0.7, A=64, τ2=0.7, B=15, nΔ=25, Ts=40 MHz, and αs=1−3/32. A low pass filter (LPF) 150 is connected to a sign-bit quantizer 152. The sign-bit quantizer 152 is connected to a buffer 154 and a multiplier 156. An L-1 output of the buffer 154 is connected to a conjugator 158 and a multiplier 160. A 2L-1 output of the buffer 154 is connected to a conjugator 162, which has an output connected to the multiplier 160. An output of the multiplier 160 is connected to an inverting input of an adder 164. An output of the multiplier 156 is connected to a non-inverting input of the adder 164. An output of the adder 164 is input to an adder 170. An output of the adder 170 is equal to Pn and is connected to a delay element 172 that is fed back to an input of the adder 170. The output of the adder 174 is also input to a metric calculator 174.
An output of the metric calculator 174 is connected to a multiplier 176. Another input of the multiplier is connected to a signal equal to 1−αs. An output of the multiplier is input to an adder 180. An output of the adder 180 is equal to Mn and is connected to a delay element 182, which has an output that is connected to a multiplier 184. The multiplier 184 has another input connected to αs. An output of the multiplier 184 is connected to an input of the adder 180.
Referring now to FIG. 7, steps performed by the coarse frequency circuit and symbol timing circuit 74 is shown generally at 200. Control begins in step 202. In step 204, Mnmax, Mnlocalmax, n1, nr, ns, ng, nmax, and ctr are initialized. In step 204, control determines whether n1=0 and Mn>τ1A. If true, control sets n1=n in step 208 and continues with step 210. If false, control determines whether Mn>Mnmax. If true, control continues with step 212 where control sets Mnmax=Mn and nmax=n and then continues with step 214. If false, control continues with step 214 where control determines whether both Mn−1>Mn−2 and Mn−1>Mn.
If true, control sets Mnlocalmax=Mn−1 and then continues with step 218. If false, control determines whether Mn<τ2Mnlocalmax and Mn−1≧τ2 Mnlocalmax in step 218. If true, control sets ng=n−1 in step 220 and continues with step 224. If false, control determines whether n1>0 and Mn−1>τ1Mnmax in step 224. If true, control sets ctr=0 in step 226 and continues with step 230. If false, control determines whether n1>0 in step 232. If true, control sets ctr=ctr+1 in step 234 and continues with step 230. In step 230, control determines whether ctr=B or n=10L-1. If false, control sets n=n+1 in step 234 and returns to step 206. If true, control sets nr=n−B in step 238. In step 240, control calculates ωΔ=tan−1[Im(Pnmax)/Re(Pnmax)]/(L) and ρ=(1−ωΔ/ωcarrier). In step 242, control estimates a start of long training symbol using ng′=ng−nΔ.
IEEE section 802.11(a) specifies that the transmit carrier frequency and sampling clock frequency are derived from the same reference oscillator. The normalized carrier frequency offset and the sampling frequency offset are approximately equal. Since carrier frequency acquisition is usually easier than sampling period acquisition, sampling clock recovery is achieved using the estimate of the carrier frequency offset ωΔ.
The coarse frequency estimate ωΔ is used to correct all subsequent received samples. The coarse frequency estimate ωΔ is refined during the long training symbols specified in IEEE section 802.11(a). r0,n, and r1,n (n=0, . . . , N−1) are the received samples that are associated with the long training symbols 16-1 and 16-2 (or L0 and L1), respectively. The value N is the number of samples contained within each long training symbol 16. A typical value for N is N=64 (for 1/Ts=20 MHz) (where L=16 and nΔ=32). The estimate of fine frequency offset ωΔ,fine is obtained by:

ωΔ,fine=tan−1[I(CL)/(CL)]

where





  
    C
    L
  
  =
  
    
      ∑
      
        n
        =
        1
      
      
        N
        -
        1
      
    
    ⁢
    
      
    
    ⁢
    
      
        r
        
          0
          ,
          n
        
        *
      
      ⁢
      
        r
        
          1
          ,
          n
        
      
    
  




The sampling clock is also updated accordingly.

The residual frequency offset and phase noise are tracked during the data portion of the OFDM packet. Ĥk are channel estimates for the OFDM subcarriers as a function of the subcarrier index k. The channel estimates Ĥk are multiplied by a complex number ĈML to compensate for common amplitude and phase error due to the residual frequency offsets and phase noise. Pk, kεK, are received frequency domain signals on the pilot tones after the known BPSK modulation is removed, where K={−21, −7, 7, 21}. The pilot tones are used to derive a maximum likelihood estimate of ĈML:




  
    
      C
      ^
    
    
      M
      ⁢
      
        
      
      ⁢
      L
    
  
  =
  
    
      
        ∑
        
          k
          ⁢
          
            
          
          ⁢
          ε
          ⁢
          
            
          
          ⁢
          K
        
      
      ⁢
      
        
      
      ⁢
      
        
          
            H
            ^
          
          k
          *
        
        ⁢
        
          P
          k
        
      
    
    
      
        ∑
        
          k
          ⁢
          
            
          
          ⁢
          ε
          ⁢
          
            
          
          ⁢
          K
        
      
      ⁢
      
        
      
      ⁢
      
        
          
          
            
              H
              ^
            
            k
          
          
        
        2
      
    
  




The new channel estimates are then {tilde over (H)}k=ĈMLĤk. These updated channel estimates are used in the frequency equalizer (FEQ) for data detection.

The carrier frequency estimate ωΔ is adapted by:

ωΔl=ωΔl-1+βI(ĈML)

where β is an adaptation parameter and the subscript 1 represents values during the 1-th OPDM data symbol. A typical value of β is β=1/1024. The sampling clock frequency is also adapted accordingly.

Since the guard interval 14 of an OFDM data symbol is longer than the channel impulse response, an additional tolerance factor is provided in the symbol timing estimate. In order to obtain a symbol timing estimate within an acceptable range, a modified symbol timing estimate ng′ is generated. The modified symbol timing estimate ng′ is equal to ng−nΔ where nΔ. A typical value for nΔ is nΔ=32 when L=16.
Referring now to FIG. 8, an exemplary circuit 250 for calculating the updated channel estimates and the adapted carrier frequency estimate ωΔ is shown. The circuit includes multipliers 256-1, 256-2, . . . , 256-n that multiply Ĥ*k and Pk, for kεK. Absolute value circuits 260-1, 260-2, . . . 260-n calculate an absolute value of Ĥk. Outputs of the absolute value circuit 260 are squared by multipliers 264-1, 264-2, . . . , 264-n. Outputs of the multipliers 256 are input to an adder 266. Outputs of the multipliers 264 are input to an adder 270. An output of the adder 266 is input to a numerator input of a divider 272. An output of the adder 270 is input to a denominator input of the divider 272. An output of the divider 272 ĈML is input to a multiplier 274. Another input of the multiplier 274 is connected to Ĥk. An output of the multiplier 274 generates {tilde over (H)}k.
An output of the divider 272 is input to an imaginary component circuit 280 that outputs an imaginary component of ĈML. An output of the imaginary component circuit 280 is input to a multiplier 284. Another input of the multiplier is connected to the adaptation parameter β. An output of the multiplier 284 is input to an adder 286. Another input of the adder is connected to ωΔl-1. An output of the adder 286 generates ωΔl which is the adapted carrier frequency estimate.
Referring now to FIG. 9, steps for calculating new channel estimates are shown generally at 300. In step 302, control begins. In step 304, channel estimates Ĥk are obtained. In step 306, frequency domain signals Pk on the pilot tones are obtained after BPSK modulation is removed. In step 308, the conjugates of the channel estimates Ĥk are multiplied by the frequency domain signals Pk and summed for each value of K. In step 310, ĈML is computed by dividing the summed product generated in step 308 and divided by the sum for each value of k of the squared absolute values of Ĥk. In step 312, the channel estimates Ĥk are multiplied by ĈML to obtain new channel estimates {tilde over (H)}k. Control ends in step 314.
Referring now to FIG. 10, steps for generating the adapted carrier frequency estimate are shown generally at 320. Control begins in step 322. In step 324, the imaginary component of ĈML is generated. In step 326, the imaginary component of ĈML is multiplied by the adaptation parameter β. In step 328, the product of step 326 is added to ωΔl-1 (the l-1th carrier frequency offset estimate) to generate ωΔl. Control ends in step 330.
In an alternate method for calculating coarse frequency according to the present invention, after packet detection and AGC settling, the following quantities are computed for estimation of OFDM symbol timing:




  
    
      P
      n
    
    =
    
      
        ∑
        
          m
          =
          1
        
        L
      
      ⁢
      
        
          r
          
            n
            +
            m
            -
            
              2
              ⁢
              L
            
          
          *
        
        ⁢
        
          r
          
            n
            +
            m
            -
            L
          
        
      
    
  
  ⁢
  
    
  








  
    
      R
      n
    
    =
    
      
        ∑
        
          m
          =
          1
        
        L
      
      ⁢
      
        
          
          
            r
            
              n
              +
              m
              -
              L
            
          
          
        
        2
      
    
  
  ⁢
  
    
  




Mn=|Pn|2/Rn2 

Where L=Tshort/Ts is the number of samples in one short training symbol. A typical value for L=16, although other values may be used. Pn represents a correlation between two adjacent short training symbols. Rn represents an average received power in a short training symbol. Mn represents a normalized correlation between two adjacent short training symbols.
Mn exhibits the plateau at 120 due to the repetition of the short training symbol. In other words, Mn is a maximum value as a sample window moves across the short training symbols 12 after packet detection and AGC settling. Pn correlates received signals for two adjacent short training samples. Preferably, the sampling window has a duration of 2L, although other durations are contemplated.
The duration of the plateau 120 depends upon the number of periods of the short training symbol that remain after antenna selection and AGC settling is complete. Therefore, the center of the plateau 120 of Mn is not usually the best symbol timing estimate. The right edge of the plateau 120 indicates that no more short training symbols are present. Samples that occur after the right edge of the plateau include samples from the guard interval 14 that precedes the long training symbols 16. Therefore, the right edge of the plateau 120 provides a good estimate of the symbol timing.
After packet detection and AGC settling, Mn is computed. Mmax is the maximum of Mn and nmax corresponds to a time index at which Mmax occurs. Points n1 and nr are left and right edges of the plateau 120, respectively. The points n1 and nr are identified such that Mn1≈Mnr≈τ1Mmax and n1<nmax<nr. In other words, n1 and nr are the points preceding and following the maximum of Mn that are equal to a threshold τ1 multiplied by Mmax. A typical value for τ1 is 0.7. The center of the plateau 120 is estimated by the midpoints nc=(nr+n1)/2.
The carrier frequency offset Δf is estimated by:

α=tan−1[I(Pnc)/(Pnc)]

Δf=α/(2πTshort) which is valid if |Δf|<1/(2Tshort).

For example, |Δf|<1/(2Tshort)=625 kHz for Tshort=0.8 μs. The estimate of the carrier frequency offset Δf may be refined using a correlation of the two long training symbols after the sample timing is determined as will be described below.

In order to detect the falling edge of the plateau of Mn, the mean absolute difference of Mn near the center of the plateau is computed:




  
    D
    K
  
  =
  
    
      (
      
        1
        /
        K
      
      )
    
    ⁢
    
      
        ∑
        
          n
          =
          
            
              n
              c
            
            -
            
              (
              
                K
                /
                2
              
              )
            
            +
            1
          
        
        
          
            n
            c
          
          +
          
            (
            
              K
              /
              2
            
            )
          
        
      
      ⁢
      
        
      
      ⁢
      
        
        
          
            M
            n
          
          -
          
            M
            
              n
              -
              1
            
          
        
        
      
    
  




Where K is the number of terms in the estimate of the mean absolute difference. A typical value for K is (nr−n1)/2. The sample index ng at the beginning of the guard interval 14 preceding the long training symbols 16 is estimated by detecting the right or following edge of the plateau of Mn. In other words, ng satisfies the following conditions:

ng>nc 

Mng<Mng−1 

|Mng−Mng−1|>τ2DK 

ng′=ng−nΔ

A typical value for τ2 is 10.

Since the guard interval 14 of an OFDM data symbol is longer than the channel impulse response, an additional tolerance factor is provided in the symbol timing estimate. In order to obtain a symbol timing estimate within an acceptable range, a modified symbol timing estimate ng′ is generated. The modified symbol timing estimate ng′ is equal to ng−nΔ where nΔ is a small number that is less than the number of samples in the guard interval for a data symbol. For IEEE 802.11(a), the number of samples in the guard interval for a data symbol is L, which is the number of samples in a short training symbol. For example, a typical value for nΔ is L/4.
The identification of the precise time that Mn decreases from the plateau 120 (e.g. when the short training symbols 12 end) may vary somewhat. To accommodate the possible variation, the modified symbol timing estimate ng′ provides additional tolerance. With the modified symbol timing estimate ng′, a sampling window begins earlier in the guard interval 14.
IEEE section 802.11(a) specifies that the transmit frequency and sample clock frequency are derived from the same reference oscillator. Therefore, the normalized carrier frequency offset and sampling period offset are approximately equal. Since carrier frequency acquisition is more simple than sampling period acquisition, sampling clock recovery is achieved using the estimate of the carrier frequency offset.
The initial carrier frequency offset estimate Δf0 is obtained during the short timing symbols 12 in the preamble 10 of each packet as previously described above. Each complex output sample of the A/D converter 68 is adjusted using a current carrier frequency offset estimate Δf. If the original sampling period (before acquisition) is equal to Torig, the first update of the sampling period is:

T0=Torgi(1−(Δf0/fnominal)).

Where fnominal is the nominal carrier frequency. The estimate of the carrier frequency offset during the long training symbols 16 is used to obtain Δf1=Δf0+ε1. The corresponding update of the sampling period is:

T1=T0(1−(ε1/fnominal))

During the OFDM data symbols that occur after the long training symbols 16, four subcarriers are used for pilot tones. After removing the known binary phase shift key (BPSK) modulation of the pilot tones, the main phase of the 4 pilots is determined to estimate a residual carrier frequency offset, εn, where n is the index of the OFDM symbol. For each OFDM symbol, the update of the carrier frequency offset and the sampling period is given by:

Δfn=Δfn−1+βεn 

Tn=Tn−1(1−(βεn/fnominal))

Where β is a loop parameter. This method is currently being used with a zero order hold after IFFT in the transmitter 30 (to model D/A).

Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims.

## Claims

1. A method for estimating carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
receiving a preamble including at least two adjacent short training symbols;
sampling said at least two adjacent short training symbols of said preamble at a first rate; and
correlating said at least two adjacent short training symbols to generate a correlation signal.

2. The method of claim 1 further comprising normalizing said correlation signal to generate a normalized correlation signal.

3. The method of claim 2 wherein said normalizing step further comprises dividing said correlation signal by an energy of at least one of said adjacent short training symbols.

4. The method of claim 2 further comprising:
repeating said sampling, correlating and normalizing steps for all of said short training symbols; and
identifying a maximum value of said normalized correlation signal during said short training symbols.

5. The method of claim 4 further comprising multiplying said maximum value of said normalized correlation signal by a threshold value to identify left and right edges of a plateau defined by said normalized correlation signal.

6. The method of claim 5 wherein said threshold value is greater than zero and less than one.

7. The method of claim 5 further comprising identifying left and right time index values corresponding to said left and right edges.

8. The method of claim 7 further comprising identifying a center time index value using said left and right time index values.

9. The method of claim 8 further comprising using said center time index value and a correlation value corresponding to said center time index value to calculate said carrier frequency offset.

10. The method of claim 9 further comprising:
calculating a first value by dividing an imaginary component of said correlation value at said center time index value by a real component of said correlation value at said center time index value; and
calculating an arctangent of said first value.

11. The method of claim 1 wherein said method is a software method.

12. The method of claim 10 further comprising calculating said carrier frequency offset by dividing said arctangent by 2πTshort wherein Tshort is the period of said short training symbols.

13. The method of claim 1 wherein said preamble forms part of an orthogonal frequency division multiplex (OFDM) packet.

14. A method for estimating carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
receiving a preamble including a plurality of short training symbols;
sampling said short training symbols of said preamble using a sampling window; and
correlating samples from the short training symbols in a first half of said sampling window with samples from the short training symbols in a second half of said sampling window to generate a correlation signal.

15. The method of claim 14 wherein said sampling window has a period that is equal to a duration of two short training symbols.

16. The method of claim 14 further comprising normalizing said correlation signal to generate a normalized correlation signal.

17. The method of claim 14 wherein said method is a software method.

18. The method of claim 14 wherein said preamble forms part of an orthogonal frequency division multiplex (OFDM) packet.

19. A method for estimating carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
receiving a preamble including a plurality of short training symbols;
sampling said short training symbols of said preamble using a sampling window;
correlating a first half of said sampling window with a second half of said sampling window to generate a correlation signal;
normalizing said correlation signal to generate a normalized correlation signal; and
wherein said normalizing step further comprises dividing said correlation signal by an energy of at least one of said first and second halves of said sampling window.

20. The method of claim 19 further comprising repeating said sampling, correlating and normalizing steps for all of said short training symbols.

21. The method of claim 20 further comprising identifying a maximum value of said normalized correlation signal during said short training symbols.

22. The method of claim 21 further comprising multiplying said maximum value of said normalized correlation signal by a threshold value to identify left and right edges of a plateau defined by said normalized correlation signal.

23. The method of claim 22 wherein said threshold value is greater than zero and less than one.

24. The method of claim 22 further comprising identifying left and right time index values corresponding to said left and right edges.

25. The method of claim 24 further comprising identifying a center time index value using said left and right time index values.

26. The method of claim 25 further comprising using said center time index value and a correlation value corresponding to said center time index value to calculate said carrier frequency offset.

27. The method of claim 26 further comprising calculating a first value by dividing an imaginary component of said correlation value at said center time index value by a real component of said correlation value at said center time index value and calculating an arctangent of said first value.

28. The method of claim 27 further comprising calculating said carrier frequency offset by dividing said arctangent by 2πTshort wherein Tshort is the period of said short training symbols.

29. A method for estimating carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
sampling at least two adjacent short training symbols of a preamble of a data packet to generate a received signal;
quantizing sign bits of real and imaginary components of said received signal; and
correlating said quantized sign bits to generate a correlation signal.

30. The method of claim 29 further comprising generating a filtered sum of an absolute value of a real component of said correlation signal and an absolute value of an imaginary component of said correlation signal.

31. The method of claim 30 wherein said filtered sum is generated by a single pole filter.

32. The method of claim 30 further comprising identifying a local maximum value of said filtered sum during said short training symbols.

33. The method of claim 32 wherein said local maximum value is identified by updating and storing said filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.

34. The method of claim 29 wherein said method is a software method.

35. The method of claim 30 further comprising identifying a maximum value of said filtered sum during said short training symbols.

36. The method of claim 35 further comprising identifying said maximum value by updating and storing said filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.

37. The method of claim 36 further comprising:
identifying a time index value corresponding to said maximum value; and
identifying a correlation signal value corresponding to said time index value.

38. The method of claim 37 further comprising:
calculating an imaginary component of said correlation signal value corresponding to said time index value;
calculating a real component of said correlation signal value corresponding to said time index value;
dividing said imaginary component by said real component to generate a quotient; and
calculating an arctangent of said quotient to generate a coarse carrier frequency offset estimate.

39. The method of claim 38 further comprising:
multiplying said received signal by e−jnωΔ where ωΔ is said coarse carrier frequency offset estimate and n is a time index.

40. A method for estimating carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
sampling short training symbols of a preamble of a data packet to generate a received signal;
quantizing sign bits of real and imaginary components of said received signal;
generating a filtered sum of an absolute value of a real component of said correlation signal and an absolute value of an imaginary component of said correlation signal;
identifying a local maximum value of said filtered sum during said short training symbols; and
multiplying said local maximum value of said filtered sum by a threshold value to identify a right edge of a plateau wherein said threshold value is greater than zero and less than one.

41. The method of claim 40 further comprising:
identifying a right time index value corresponding to said right edge; and
calculating symbol timing from said right time index value.

42. A method for estimating carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
sampling short and long training symbols of a preamble of a data packet to generate a received signal;
quantizing sign bits of real and imaginary components of said received signal;
correlating said quantized sign bits of at least two adjacent short training symbols to generate a first correlation signal;
generating a symbol timing estimate that is based on said first correlation signal and identifies a start time of first and second ones of said long training symbols correlating said first and second long training symbols to generate a second correlation signal; and
calculating a fine carrier frequency offset from said second correlation signal.

43. The method of claim 42 wherein said step of calculating further comprises:
calculating an imaginary component of said correlation signal;
calculating a real component of said correlation signal;
dividing said imaginary component by said real component to generate a quotient; and
calculating an arctangent of said quotient to generate said fine carrier frequency offset estimate.

44. The method of claim 43 further comprising updating a sampling clock with said fine carrier frequency offset estimate.

45. A method for adapting a carrier frequency offset estimate in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
generating channel estimates for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values during a data portion of an orthogonal frequency division multiplexing packet;
generating a complex number by summing a product of frequency domain signals and said channel estimates for each of said subcarrier index values and dividing said sum by a sum of a squared absolute value of said channel estimate for each of said subcarrier index values;
calculating an imaginary component of said complex number; and
adapting the carrier frequency offset estimate based on said imaginary component.

46. A method for adapting a carrier frequency offset estimate in an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
generating channel estimates for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values;
generating a complex number by summing a product of frequency domain signals and said channel estimates for each of said subcarrier index values and dividing said sum by a sum of a squared absolute value of said channel estimate for each of said subcarrier index values;
calculating an imaginary component of said complex number;
multiplying said imaginary component by an adaptation parameter to generate a product; and
adding said product to a prior carrier frequency offset estimate to produce an adapted carrier frequency offset estimate.

47. A carrier frequency offset estimator for an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
sampling means for sampling at least two adjacent short training symbols of a preamble of a data packet to generate a received signal;
quantizing means for quantizing sign bits of real and imaginary components of said received signal; and
correlating means for correlating said quantized sign bits of at least two adjacent short training symbols to generate a correlation signal.

48. The carrier frequency offset estimator of claim 47 further comprising filtered sum generating means for generating a filtered sum of an absolute value of a real component of said correlation signal and an absolute value of an imaginary component of said correlation signal.

49. The carrier frequency offset estimator of claim 48 wherein said filtered sum is generated by a single pole filter.

50. The carrier frequency offset estimator of claim 48 further comprising first identifying means for identifying a local maximum value of said filtered sum during said short training symbols.

51. The carrier frequency offset estimator of claim 50 wherein said local maximum value is identified by updating and storing said filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.

52. The carrier frequency offset estimator of claim 50 further comprising first multiplying means for multiplying said local maximum value of said filtered sum by a threshold value to identify a right edge of a plateau.

53. The carrier frequency offset estimator of claim 52 wherein said threshold value is greater than zero and less than one.

54. The carrier frequency offset estimator of claim 52 further comprising:
second identifying means for identifying a right time index value corresponding to said right edge; and
first calculating means for calculating symbol timing from said right time index value.

55. The carrier frequency offset estimator of claim 48 further comprising third identifying means for identifying a maximum value of said filtered sum during said short training symbols.

56. The carrier frequency offset estimator of claim 55 further comprising fourth identifying means for identifying said maximum value by updating and storing said filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.

57. The carrier frequency offset estimator of claim 56 further comprising:
fifth identifying means for identifying a time index value corresponding to said maximum value; and
sixth identifying means for identifying a correlation signal value corresponding to said time index value.

58. The carrier frequency offset estimator of claim 57 further comprising:
second calculating means for calculating an imaginary component of said correlation signal value corresponding to said time index value;
third calculating means for calculating a real component of said correlation signal value corresponding to said time index value;
dividing means for dividing said imaginary component by said real component to generate a quotient; and
fourth calculating means for calculating an arctangent of said quotient to generate a coarse carrier frequency offset estimate.

59. The carrier frequency offset estimator of claim 58 further comprising:
second multiplying means for multiplying said received signal by e−jnωΔ where ωΔ is said coarse carrier frequency offset estimate and n is a time index.

60. A carrier frequency offset estimator for an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
sampling means for sampling short and long training symbols of a preamble of a data packet to generate a received signal;
quantizing means for quantizing sign bits of real and imaginary components of said received signal;
first correlating means for correlating said quantized sign bits of at least two adjacent short training symbols to generate a first correlation signal;
symbol timing generating means for generating a symbol timing estimate that is based on said first correlation signal and identifies a start time of first and second ones of said long training correlating means for correlating said first and second long training symbols to generate a second correlation signal; and
first calculating means for calculating a fine carrier frequency offset from said second correlation signal.

61. The carrier frequency offset estimator of claim 60 wherein said first calculating means calculates an imaginary component of said correlation signal, calculates a real component of said correlation signal, divides said imaginary component by said real component to generate a quotient, and calculates an arctangent of said quotient to generate said fine carrier frequency offset estimate.

62. The carrier frequency offset estimator of claim 61 further comprising updating means for updating a sampling clock with said fine carrier frequency offset estimate.

63. A carrier frequency offset estimate adaptor for an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
channel estimate generating means for generating channel estimates for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values during a data portion of an orthogonal frequency division multiplexing packet;
complex number generating means for generating a complex number by summing a product of frequency domain signals and said channel estimates for each of said subcarrier index values and dividing said sum by a sum of a squared absolute value of said channel estimate for each of said subcarrier index values;
first calculating means for calculating an imaginary component of said complex number;
adapting means for adapting the carrier frequency offset estimate based on said imaginary component.

64. A carrier frequency offset estimate adaptor for an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
channel estimate generating means for generating channel estimates for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values;
complex number generating means for generating a complex number by summing a product of frequency domain signals and said channel estimates for each of said subcarrier index values and dividing said sum by a sum of a squared absolute value of said channel estimate for each of said subcarrier index values;
first calculating means for calculating an imaginary component of said complex number; and
first multiplying means for multiplying said imaginary component by an adaptation parameter to generate a product.

65. The carrier frequency offset estimate adaptor of claim 64 further comprising first adding means for adding said product to a prior carrier frequency offset estimate to produce an adapted carrier frequency offset estimate.

66. A carrier frequency offset estimator for an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
a sampler that samples at least two adjacent short training symbols of a preamble of a data packet to generate a received signal;
a quantizer that quantizes sign bits of real and imaginary components of said received signal; and
a correlator that correlates said quantized sign bits to generate a correlation signal.

67. The carrier frequency offset estimator of claim 66 further a filtered sum generator that generates a filtered sum of an absolute value of a real component of said correlation signal and an absolute value of an imaginary component of said correlation signal.

68. The carrier frequency offset estimator of claim 67 wherein said filtered sum is generated by a single pole filter.

69. The carrier frequency offset estimator of claim 67 further comprising a first identifier circuit that identifies a local maximum value of said filtered sum during said short training symbols.

70. The carrier frequency offset estimator of claim 69 wherein said local maximum value is identified by updating and storing said filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.

71. The carrier frequency offset estimator of claim 69 further comprising a first multiplier circuit that multiplies said local maximum value of said filtered sum by a threshold value to identify a right edge of a plateau.

72. The carrier frequency offset estimator of claim 71 wherein said threshold value is greater than zero and less than one.

73. The carrier frequency offset estimator of claim 71 further comprising:
second identifier circuit that identifies a right time index value corresponding to said right edge; and
a first calculator that calculates symbol timing from said right time index value.

74. The carrier frequency offset estimator of claim 67 further comprising a third identifier that identifies a maximum value of said filtered sum during said short training symbols.

75. The carrier frequency offset estimator of claim 74 further comprising fourth identifying means for identifying said maximum value by updating and storing said filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.

76. The carrier frequency offset estimator of claim 75 further comprising:
a fifth identifier that identifies a time index value corresponding to said maximum value; and
a sixth identifier that identifies a correlation signal value corresponding to said time index value.

77. The carrier frequency offset estimator of claim 76 further comprising:
a second calculator that calculates an imaginary component of said correlation signal value corresponding to said time index value;
a third calculator that calculates a real component of said correlation signal value corresponding to said time index value;
a divider that divides said imaginary component by said real component to generate a quotient; and
a fourth calculator that calculates an arctangent of said quotient to generate a coarse carrier frequency offset estimate.

78. The carrier frequency offset estimator of claim 77 further comprising:
a second multiplier that multiplies said received signal by e−jnωΔ where ωΔ is said coarse carrier frequency offset estimate and n is a time index.

79. A carrier frequency offset estimator for an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
a sampler that samples short and long training symbols of a preamble of a data packet and generates a received signal;
a quantizer that quantizes sign bits of real and imaginary components of said received signal;
a first correlator that correlates said quantized sign bits of at least two adjacent short training symbols to generate a first correlation signal;
a symbol timing generator that produces a symbol timing estimate that is based on said first correlation signal and identifies a start time of first and second ones of said long training symbols;
a second correlator that correlates said first and second long training symbols to generate a second correlation signal; and
a first calculator that calculates a fine carrier frequency offset from said second correlation signal.

80. The carrier frequency offset estimator of claim 79 wherein said first calculator calculates an imaginary component of said correlation signal, calculates a real component of said correlation signal, divides said imaginary component by said real component to generate a quotient, and calculates an arctangent of said quotient to generate said fine carrier frequency offset estimate.

81. The carrier frequency offset estimator of claim 80 further comprising a sampling clock updater that updates a sampling clock with said fine carrier frequency offset estimate.

82. A carrier frequency offset estimate adaptor for an orthogonal frequency division multiplexing receiver of a wireless local area network, comprising:
a channel estimator that generates channel estimates for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values during a data portion of an orthogonal frequency division multiplexing packet;
a complex number generator that generates a complex number by summing a product of frequency domain signals and said channel estimates for each of said subcarrier index values and dividing said sum by a sum of a squared absolute value of said channel estimate for each of said subcarrier index values;
a first calculator that calculates an imaginary component of said complex number; and
an adaptor that adapts the carrier frequency offset estimate based on said imaginary component.

83. The carrier frequency offset estimate adaptor of claim 82 further comprising a first multiplier that multiplies said imaginary component by an adaptation parameter to generate a product.

84. The carrier frequency offset estimate adaptor of claim 83 further comprising a first adder that adds said product to a prior carrier frequency offset estimate to produce an adapted carrier frequency offset estimate.