# Patent

## Title
Reduced complexity viterbi decoding method and apparatus

## Abstract

Joint equalization and decoding techniques to eliminate the division operations in the Frequency domain Equalizer (FEQ) of an Orthogonal Frequency Division Modulation (OFDM) receiver by incorporating the magnitude of the channel impulse response estimates into the decision metrics in the decoder. This includes methods for both hard-decision symbol-by-symbol detection and soft-decision decoding using the Viterbi algorithm. Further, Channel State Information (CSI) is incorporated to improve the performance of the receiver. The disclosure also introduces a computationally efficient bit-by-bit piecewise approximation technique incorporating CSI to implement decoder decision metrics. Finally, an efficient implementation technique for multiple receiver antennae using Maximum Ratio Combining (MRC) and Viterbi decoding with CSI is disclosed.

## Background
RELATED APPLICATIONS
This application claims priority benefit under 35 U.S.C. § 119(e) to U.S. Provisional Application No. 60/357,317, filed on Feb. 15, 2002, entitled “ON DIVISION-FREE FREQUENCY DOMAIN EQUALIZATION AND VITERBI DECODING USING CHANNEL STATION INFORMATION”, which is incorporated herein fully by reference.


TECHNICAL FIELD 
The invention generally relates to symbol modulated communication techniques, and more particularly, to a reduced complexity viterbi decoding method and apparatus.
BACKGROUND 
The past few years has witnessed the ever-increasing availability of relatively cheap, low power wireless data communication services, networks and devices, promising near wire speed transmission and reliability. One technology is particular, described in the IEEE Standard 802.11a (1999) and Draft IEEE Standard 802.11g (2002) High Rate PHY Supplements to the ANSI/IEEE Standard 802.11, 1999 edition, collectively incorporated herein fully by reference, has recently been commercialized with the promise of 54 Mbps effective bandwidth, making it a strong competitor to traditional wired Ethernet and the more ubiquitous “802.11b” or “WiFi” 11 Mbps mobile wireless transmission standard.
IEEE 802.11a and 802.11g or “802.11a/g” compliant transmission systems achieve their high data transmission rates using Orthogonal Frequency Division Modulation or OFDM encoded symbols mapped up to 64 QAM multicarrier constellation. Before final power amplification and transmission, the multicarrier OFDM symbol encoded symbols are converted into the time domain using Inverse Fast Fourier Transform techniques resulting in a relatively high-speed time domain signal with a large peak-to-average ratio (PAR). OFDM is also used in fixed broadband wireless access systems such as proposed in IEEE Standard 802.16a: Air Interface for Fixed Broadband Wireless Access Systems Part A: Systems between 2 and 1 GHz, Draft working document, February 2002, (“802.16a”) which is incorporated herein fully by reference.
The receiver portion of a wireless communications systems compliant with the aforementioned 802.11a/802.11g and 802.16a standards generally includes an RF receiving unit to handle RF downconversion and filtering of received signals in one or more stages and a baseband processing unit to demodulate OFDM encoded symbols bearing the data of interest. FIG. 2 illustrates a known receiver baseband processing unit 200, a channel model 201 and a corresponding encoding transmitter baseband processor 260 to conceptually illustrate the relationship between a received OFDM symbol Yn in relation to its originally transmitted counterpart OFDM symbol Xn and the pre FEC version {tilde over (X)}n, taking into account the channel impulse response h(t) and intervening noise v(t) (Additive White Gaussian Noise or AWGN in particular), assuming that the channel impulse response h(t) is shorter than the guard interval (using e.g. cyclic prefix). To ease understanding, conventional RF upconversion transmission, and downconversion interposing the baseband processing units 200 and 260, are omitted from FIG. 2. More specifically, the channel model 201 illustrates the following relationship:

Yk,n=gnHk,n·Xk,n+gnvk,n   (0)

where Xk,n is the transmitted symbol of the kth sub-carrier during the nth OFDM symbol, Hk,n is the channel response corresponding to the kth subcarrier during the nth OFDM symbol, and vk,n is the AWGN in the kth sub-carrier during the nth OFDM symbol. Here, gn represents the gain compensation for the baseband signal conveying the symbol Yn provided by an automatic gain control unit (not shown) to maximize the dynamic range and performance of analog to digital conversion. Here, assume gn=1 since, in the single receive path case, gn is common to all subcarriers and will not therefore affect viterbi decoder performance.

The digital form of each Yn OFDM symbol presented in the frequency domain is recovered after conventional analog-digital conversion and fast fourier transformation by the ADC 205 and the FFT unit 208 respectively of the received time domain analog baseband signal. Thereafter, demodulation (phase rotation) and Frequency domain EQualization (FEQ) through a FEQ unit 220 is performed on the Fast Fourier Transform (FFT) output to compute X (Equation 1 below) before sending it to the viterbi decoder 230 to estimate the most likely transmitted symbol {circumflex over (X)}n at the transmitter. That is, the FEQ 220 computes:




  
    
      
        
          
            X
            _
          
          
            k
            ,
            n
          
        
        =
        
          
            
              Y
              
                k
                ,
                n
              
            
            
              
                H
                _
              
              
                k
                ,
                n
              
            
          
          =
          
            
              
                
                  H
                  _
                
                
                  k
                  ,
                  n
                
                *
              
              ·
              
                Y
                
                  k
                  ,
                  n
                
              
            
            
              
                
                
                  
                    H
                    _
                  
                  
                    k
                    ,
                    n
                  
                
                
              
              2
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




where: 1) Xk,n is the demodulated symbol of the kth sub-carrier during the nth OFDM symbol; 2) Yk,n is the received noisy symbol of the kth subcarrier during the nth OFDM symbol; and 3) Hk,n is the channel estimate corresponding to the kth subcarrier during the nth OFDM symbol.

In the receiver of an 802.11a/g OFDM system, for example, this operation has to be performed for each of the 52 subcarriers of the OFDM symbol Yn. In a straightforward implementation, the computation requires  ̃2 complex multiplications and one real division per sub-carrier. This is computationally more intensive than implementing the FFT that requires 96 complex multiplications per 52 carriers. In particular, the implementation of a division operation can be at least 3-5 times more complex than that of a multiplication operation. Thus, it is desirable to eliminate the division or scaling operations required in the FEQ unit 220.
As shown in FIG. 2, the output of the FEQ unit 220 is typically sent to a Viterbi decoder 230 to recover or estimate, based on historical analysis of the traffic in the channels, the most likely transmitted sequence of data symbols or bits. Hard symbol by symbol decisions (via slicer 225) on the output of the FEQ can also be fed back to the channel estimator 210 to improve the channel estimates Hn.
In a conventional FEQ implementation such as shown in FIG. 2, the received symbol for each carrier, Yk,n is divided by its corresponding channel estimate, Hk,n that can vary from sub-carrier to sub-carrier in a frequency selective fading environment. Thus, the expected signal to noise ratio per symbol may be varying from sub-carrier to sub-carrier and may deviate significantly from the average. This can reduce the performance of a conventional Viterbi decoder (such as decoder 230) that derives its optimal branch metrics assuming that all the symbols have the same expected Additive White Gaussian Noise (AWGN) noise power. Thus, it is desirable to incorporate the so called Channel State Information (CSI) derived from the channel estimates into the Viterbi decoder metrics to minimize this effect.
It would also be desirable to simplify the configuration of the viterbi decoder and branch metric computation in particular without increasing complexity over conventional designs while retaining these CSI performance benefits.
Any OFDM systems operating in fading channels, including 802.11a/g and 802.16a communications systems, are susceptible to wireless channel fading and multipath interference, particularly in mobile deployments where intervening terrain and building block or alter line-of-sight reception. To combat this, known receiver designs may employ plural geographically dispersed antennae in the hopes that at least one of the antennae can avoid the characteristic multipath and fading. One common type of plural antennae receiver is called a selection diversity receiver or simply a diversity receiver, and includes logic to ascertain which one of the RF receive pathways is receiving a “best” version of an incident signal (based on e.g. Received Signal Strength Indication (RSSI) analysis), and will select this “best” signal for downconversion and demodulation decoding while disregarding the remaining received signals. Typically, this involves switching the RF receive pathway or channel bearing this “best signal” into communication with the RF downconversion and baseband processing units while isolating the remaining pathways. Performance gains here remain dependent on individual antennae configuration and placement, but is invariably improved over conventional single channel designs.
Another form of the plural antennae receiver offering significant SNR benefit is the Maximum Ratio Combining (MRC) receiver, in which all the plural received signals are utilized. In particular, the received symbols within the plural signals borne by the RF receive pathways are co-phased to provide coherent voltage addition and are individually weighted to provide optimal SNR. See e.g. T. S. Rappaport, Wireless Communications, Prentice Hall, Upper Saddle River, N.J. 1996, pages 326-332 which is incorporated herein fully by reference. As such, the baseband processing unit, especially the FEQ and Viterbi decoder of an MRC receiver is viewed as being especially complex, and so any reduction in such complexity, especially where performance is not affected or even is improved, is desirable.
SUMMARY OF THE INVENTION
To address these and related desires, the present invention is directed in part to methods and apparatus involving reduced complexity Viterbi decoder decision metrics which leverage channel state information (CSI) processing gain benefits. In accordance with one or more disclosed embodiments branch metric computation within the Viterbi decoder of a receiver baseband processing unit may involve the use of piecewise linear approximations. Such approximations may be used in isolation or in conjunction with joint equalization and decoding aspects to simplify overall decoder complexity. The joint equalization and decoding aspects of the present invention are applicable to both hard and soft-decision decoding implementations to eliminate the division operations heretofore believed required by an equalizer.
A further aspect of the present invention is directed to improved Viterbi decoding in an MRC receiver through utilizing CSI. Complexity in this type of Viterbi decoder can be likewise reduced by using the aforementioned joint equalization and decoding and piecewise approximation techniques.
Additional aspect features and advantages of this invention will become apparent from the following detailed description of embodiments thereof, which proceeds with reference to the accompanying drawings, in which like reference numerals indicate like parts or features.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a simplified block diagram of a transceiver capable of implementing one or more features of the present invention.
FIG. 2 is a block diagram of a known receiver baseband processing unit.
FIG. 3 is a block diagram of a receiver baseband processing unit according to an embodiment of the invention.
FIG. 4 is a block diagram of a receiver baseband processing unit according to an alternative embodiment of the invention.
FIG. 5 illustrates branch metric approximation according to an embodiment of the present invention.
FIG. 6 depicts decision-making of the slicer shown in FIGS. 4 and 5 consistent with the disclosed embodiments of the invention.
FIG. 7 is a block diagram of a hard-decision slicer capable of undertaking the decision-making illustrated in FIG. 6.
FIG. 8 is a simplified block diagram of a known receiver baseband processing unit incorporating MRC.
FIG. 9 is a simplified block diagram of a MRC receiver baseband processing unit including AGC adjustment according to an embodiment of the invention.
FIG. 10 is a simplified block diagram of a MRC receiver baseband processing unit according to another embodiment of the invention.
FIG. 11 is a simplified block diagram of a diversity reception compatible transceiver capable of implementing one or more features of the present invention.



DETAILED DESCRIPTION OF THE EMBODIMENTS
The first section below describes joint equalization and Viterbi decoding consistent with several disclosed embodiments of the invention, including those incorporating CSI and hard-decision decoding features. Section 2 describes complexity reduction techniques for computing the branch metrics in a Viterbi decoder with CSI. Finally, Section 3 describes Viterbi decoder complexity reduction in an MRC plural receive antennae environment.
Section 1—Joint Equalization and Decoding
We propose eliminating the division operations in Equation (1) discussed above and demodulate the received symbols using Method I, in rectangular form:

Zk,n= Hk,n*·Yk,n,   (2)

or, Method II, in polar form:

Pk,n=e−jΦk,n·Yk,n,   (3)

where

 Hk,n=| Hk,n|ejΦk,n,   (4)

The in-phase and quadrature demodulated symbols are the real and imaginary parts of Xk,n (i.e. Re { Xk,n} and Im{ Xk,n}) respectively. The following discusses the changes required in the conventional soft decision Viterbi decoder (such as decoder 230 shown in FIG. 2) as well as the hard-decision symbol-by-symbol (such as the slicer 225 shown in FIG. 2).
Given the proposed demodulation schemes given above, the decision or branch metrics in the Viterbi decoder have to be modified accordingly. We again note that at the receiver, the received symbol, Yk,n, can be defined in terms of a channel model (such as the channel model 201 depicted in FIG. 2) such that

Yk,n=Hk,n·Xk,n+vk,n,   (5)

where Xk,n is the transmitted symbol of the kth sub-carrier during the nth OFDM symbol, Hk,n is the channel response corresponding to the kth subcarrier during the nth OFDM symbol, and vk,n is the AWGN in the kth sub-carrier during the nth OFDM symbol. As noted above, gain compensation need not be considered in the single carrier case with respect to Viterbi decoding, and is thus omitted in this version of Equation 0.

In the following, we derive the corresponding branch metrics for the two demodulation methods proposed above in relation to Equations (2) and (3). To simplify the notations used, we assume that the channel estimate is perfect (though shown in the FIGs. otherwise). That is,

 Hk,n=Hk,n   (6)

and we denote the real and imaginary parts of a complex quantity as

{Hk,n}≡Kk,n,0, {Hk,n}≡Kk,n,1.   (7)

We turn first to the Viterbi decoder branch metric computation for demodulation Method I using rectangular form. Substituting Equations 5 and 6 into Equation 2, we arrive at

Zk,n=Hk,n*·Yk,n=|Hk,n|2Xk,n+Hk,n*vk,n   (8)

and the demodulated in-phase and quadrature symbols,

{Zk,n}≡Zk,n,0=|Hk,n|2Xk,n,0+Hk,n,0·vk,n,0+Hk,n,1·vk,n,1   (9)

{Zk,n}≡Zk,n,1=|Hk,n|2Xk,n,1+Hk,n,0·vk,n,1+Hk,n,1·vk,n,0   (10)

In a Viterbi decoder, the decision metrics used to determine the most likely transmitted code sequence or symbol are the path metrics that are the accumulated branch metrics corresponding to the state transistions in the paths. The branch metric for each transition, derived for an Additive White Gaussian Noise (AWGN) channel, is defined as the minimum Euclidean distance between the received signal and the codeword associated with the corresponding transition. That is, the branch metrics corresponding to the Equations 9 and 10, BMk,n,i,

BMk,n,i=(Zk,n,i−|Hk,n|2·X)2=Zk,n,12−2Zk,n,i·|Hk,n|2·X+(|Xk,n|2·X)2,   (11)

where iε{0,1}, and Xε{±1} for QPSK, Xε{±1, ±3} for 16-QAM, and Xε{±1, ±3, ±5, ±7} for 64-QAM constellations. Since the term (Zk,n,i2) is common to all the branch metrics at each stage of the Viterbi decoding process, this term can be subtracted from all the path metrics without changing the MLSE (described below) comparison results. Thus,

BMk,n,i=2Zk,n,i·|Hk,n|2·X+(|Hk,n|2·X)2   (12)

For QPSK, Xε{±1}, and the term (|Hk,n|2·X)2·X)2=|Hk,n|4 is common to all the branch metrics at each decoding stage. Thus, the term can be subtracted from all the path metrics of all the states without changing the comparison results. The scaling factor (2) can also be removed. Thus,

BMk,n,i=−Zk,n,i·|Hk,n|2·X for QPSK.   (13)

We note that in a fading environment, the channel response Hk,n,i can change from sub-carrier to sub-carrier, and by using the above-derived demodulation methods, the AWGN noise in each sub-carrier symbol may no longer have the same expected power, even if E(v2k,n,i) values are the same. To properly normalize the noise power from sub-carrier to sub-carrier, phase demodulation should be performed relative to the magnitude of the channel response Hk,n. Namely, we define the relationship Wk,n,i=Zk,n,i/|Hk,n|, which, through substituting Equations (9) and (10) for Zk,n,0 and Zk,n,1 respectively, we obtain:




  
    
      
        
          
                        ⁢
            
              {
              
                W
                
                  k
                  ,
                  n
                
              
              }
            
          
          ≡
          
            W
            
              k
              ,
              n
              ,
              0
            
          
        
        =
        
          
            
              
              
                H
                
                  k
                  ,
                  n
                
              
              
            
            ·
            
              X
              
                k
                ,
                n
                ,
                0
              
            
          
          +
          
            
              (
              
                
                  
                    H
                    
                      k
                      ,
                      n
                      ,
                      0
                    
                  
                  ·
                  
                    v
                    
                      k
                      ,
                      n
                      ,
                      0
                    
                  
                
                +
                
                  
                    H
                    
                      k
                      ,
                      n
                      ,
                      1
                    
                  
                  ·
                  
                    v
                    
                      k
                      ,
                      n
                      ,
                      1
                    
                  
                
              
              )
            
            
              
              
                H
                
                  k
                  ,
                  n
                
              
              
            
          
        
      
    
    
      
        (
        14
        )
      
    
  




and





  
    
      
        
          
                        ⁢
            
              {
              
                W
                
                  k
                  ,
                  n
                
              
              }
            
          
          ≡
          
            W
            
              k
              ,
              n
              ,
              1
            
          
        
        =
        
          
            
              
              
                H
                
                  k
                  ,
                  n
                
              
              
            
            ·
            
              X
              
                k
                ,
                n
                ,
                1
              
            
          
          +
          
            
              (
              
                
                  
                    H
                    
                      k
                      ,
                      n
                      ,
                      0
                    
                  
                  ·
                  
                    v
                    
                      k
                      ,
                      n
                      ,
                      1
                    
                  
                
                -
                
                  
                    H
                    
                      k
                      ,
                      n
                      ,
                      1
                    
                  
                  ·
                  
                    v
                    
                      k
                      ,
                      n
                      ,
                      0
                    
                  
                
              
              )
            
            
              
              
                H
                
                  k
                  ,
                  n
                
              
              
            
          
        
      
    
    
      
        (
        15
        )
      
    
  




From which, the Viterbi decoder branch metrics, BMk,n,i, can be derived as follows:

BMk,n,i=(Wk,n,i−|Kk,n|·X)2=Wk,n,i2−2Wk,n,i·|Hk,n|·X+(|Xk,n|·X)2,   (16)

where iε{0,1}, and Xε{±1} for QPSK, Xε{±1, ±3} for 16-QAM, and Xε{±1, ±3, ±5, ±7} for 64-QAM constellations. As before, the branch metric can be simplified to

BMk,n,i=−2Wk,n,i·|Hk,n|·X+(|Hk,n|·X)2 (with CSI),   (17)

and

BMk,n,i=−Wk,n,i·|Hk,n·X for QPSK (with CSI).   (18)

Given that Wk,n,i=Zk,n,i/|Hk,n|, the branch metric incorporating CSI demodulation method I using rectangular form,

BMk,n,i=−2Zk,n,i·X+(|Hk,n|·X)2 (with CSI).   (19)

Again, for QPSK, Xε{±1}, and

BMk,n,i=−Zk,n,i·X for QPSK (with CSI).   (20)

We note that no approximation was assumed above. The division operations required by the FEQ are eliminated and the channel response estimates are incorporated into the Viterbi decoder decision metrics (in particular, the branch metrics) instead. However, we describe in Section 2 that by using a bit-by-bit piecewise branch metric approximation and incorporating CSI, the decoder complexity can be reduced significantly with very little practical performance loss.
However, first consider Viterbi decoder branch metric computation for demodulation Method II (using polar form). Substituting Equations 5 and 6 into Equation 3, we arrive at

Pk,n=e−jΦk,n·Yk,n=|Hk,n|·Xk,n+e−jΦk,n·vk,n   (21)

In this case, the expected noise power in each sub-carrier is the same. Thus, as will be appreciated by those ordinarily skilled in the art, no normalization of the noise component with the channel estimates is required. Similar to demodulation method I described above, the branch metrics, BMk,n,i, can be expressed as:

BMk,n,i=−2Pk,n,i·|Hk,n|⇄X+(|Hk,n)·X)2 (with CSI),   (22)

where iε{0,1}, and Xε{±1} for QPSK, Xε{±1, ±3} for 16-QAM, and Xε{±1, ±3, ±5, ±7} for 64-QAM constellations, and thus

BMk,n,i=−Pk,n,i|Hk,n|·X for QPSK (with CSI).   (23)

We note that the derivation given above is exact and therefore will not compromise Viterbi decoder performance compared to that of a conventional receiver.
Turn now to the receiver baseband processing unit 300 according to an embodiment of the invention shown in FIG. 3 which incorporates joint equalization and decoding as noted above. Here, unlike the conventional receiver baseband processing unit 200 shown in FIG. 2, the division dependent FEQ unit 220 is eliminated, and equalization and decoding functions based in part on the channel estimates Hk,n,i are performed directly by the Viterbi decoder 330. A phase demodulator 360 issued to derive Zn and/or Pn as noted above in Equations 2 and 3. The branch metric computation unit 332 of the Viterbi decoder calculates the real (i=0) and imaginary (i=1) branch metric components (or BMi) for each subcarrier k of the nth received OFDM symbol, Yn, recovered by the FFT 208 using Equation 13 for QPSK rate symbol modulation or Equation 12 for higher rate symbol modulation (e.g. 16-QAM or 64-QAM) where reliance on CSI is not desired. The CSI decoding improvements are desired, the branch metric computation unit calculates the BMi for each subcarrier k of the nth received OFDM symbol, Yn, using Equation 20 for QPSK rate symbol modulation, or Equation 19 for higher rate symbol modulation. Note that each dimension I and Q is handled separately as a consequence of the phase rotation provided by the phase demodulator 360.
Once each BMi is calculated by the branch metric computation unit 332 for the current symbol Yn, they are transferred to the Maximum Likelihood Sequence Estimation unit 334 (“or “MLSE”), which performs conventional survivor path and path metric updating, as well as most likely path trace back to recover {circumflex over (X)}n. For more information regarding MLSE 334 operation and functions, see e.g. Lou, Hui-Ling “Implementing the Viterbi Algorithm”, IEEE Signal Processing Magazine, September 1995, pages 42-52 which is incorporated herein fully by reference.
The MLSE unit 334 estimates {circumflex over (X)}n representing the most likely symbol transmitted ({tilde over (X)}n). In view of known limitations of the Viterbi algorithm {circumflex over (X)}n may or may not be the same as {tilde over (X)}n. As shown in FIG. 3, Zn or Pn may also be fed to a hard-decision slicer 350 that, based on slicing rules detailed below with reference to FIGS. 6 and 7, will generate dec { Xn} which is turn sent to the channel estimator 310 to improve the channel estimates Hn+1. More detail on the functions and interactions of the dynamic slicer 350 will be discussed below with reference to FIGS. 6 and 7.
In practical implementation of the Viterbi decoder 330, the branch metrics may be quantized and the number of quantization bits minimized to minimize the complexity in the decoder. With the joint equalization and decoding scheme proposed above, the branch metrics become necessarily a function of the channel estimates Hk,n. Thus, the quantization noise of the branch metrics are affected by the quantization noise of the channel estimates. Furthermore, since the channel estimates change dynamically, these quantization levels should be determined dynamically in order to maintain or improve receiver performance.
To minimize the quantization noise for these channel estimates Hk,n, the maximum or average value of the channel estimates should be determined and normalized before subjecting to quantization. That is, comparison operations are needed in such case to find the maximum or average value, and division operations are required to implement the normalization prior to quantization. Furthermore, if the convolutional coder 262 encodes over the duration of a packet, all the channel estimates corresponding to the same packet duration should be subjected to the same normalization factor. This can significantly introduce delay in the decoder as the proper normalization factor can only be determined after the whole packet is received.
However, we note that in 802.11a/g or 802.16a compliant communications systems, the channels are quasi static so that we can approximate our search for the maximum or average by looking at the first transmitted OFDM. That is, we assume

Hk,0≈Hk,1≈Hk,2 . . . ,   (24)

and for the 802.11a system, we determine the normalization factor using the channel estimates for the 52 tones of the first transmitted OFDM symbols of the encoder block, {H0,0, H1,0, . . . , H51,0}.

Consistent with our desire to reduce decoder complexity, instead of comparing and dividing to find the normalization value and performing normalization, we propose a simplified normalization method instead. To illustrate our proposed technique, we assume that the desired normalization factor is the maximum value of the squared magnitude of the channel estimates. We note that this value is bounded by a power of 2. Thus, we compute max |Hk,0|2 over all the subcarriers in the first OFDM symbol, where k={0, 1, 2, . . . , 51}, at least in the 802.11a case. To illustrate our approach to search, normalize and quantize, we assume |Hk,0|2 are 10-bit in unsigned notation:

|Kk,0|2={bk,0,0, bk,0,1, . . . , bk,0,9},   (25)

where bk,0,0 is the Most Significant Bit (MSB). We further assume that the resultant |Hk,0|2 are to be quantized to 6 bits. Denoting ‘^’ a logical OR operation and ‘&’ a logical AND operation, we propose the following pseudocode to arrive at |Hk,0|2:

    
    
        if (b0,0,0{circumflex over ( )}b1,0,0{circumflex over ( )}b2,0,0{circumflex over ( )} . . . {circumflex over ( )}b51,0,0=1)
        
            |Hk,0|2=|Hk,0|2&1111110000
            exit
        
        
        else
        if (b0,0,1{circumflex over ( )}b1,0,1{circumflex over ( )}b2,0,1{circumflex over ( )} . . . {circumflex over ( )}b51,0,1=1)
        
            |Hk,0|2=|Hk,0|2&0111111000
            exit
        
        
        else
        if (b0,0,2{circumflex over ( )}b1,0,2{circumflex over ( )}b2,0,2{circumflex over ( )} . . . {circumflex over ( )}b51,0,2=1)
        
            |Hk,0|2=|Hk,0|2&0011111100
            exit
        
        
        else
        if (b0,0,3{circumflex over ( )}b1,0,3{circumflex over ( )}b2,0,3{circumflex over ( )} . . . {circumflex over ( )}b51,0,3=1)
        
            |Hk,0|2=|Hk,0|2&00011111110
            exit
        
        
        else
        
            |Hk,0|2=|Hk,0|2&0000111111
        
        
        endif
    
    


As mentioned previously, in many practical receiver designs, hard-decision decoding is performed on the output symbols of the FEQ to find their closest constellation points in order to perform decision-directed equalization or channel estimation. To determine the hard decision, we denote Dec{ Xk,n} as the closest QAM constellation point to Xk,n, using hard decision decoding, and Xk,n is computed using Equation 1,




  
    
      
        X
        _
      
      
        k
        ,
        n
      
    
    =
    
      
        
          Y
          
            k
            ,
            n
          
        
        
          
            H
            _
          
          
            k
            ,
            n
          
        
      
      =
      
        
          X
          
            k
            ,
            n
          
        
        +
        
          
            v
            
              k
              ,
              n
            
          
          
            
              H
              _
            
            
              k
              ,
              n
            
          
        
      
    
  
  ,




where Xk,n,iε{±1} for QPSK, Xk,n,iε{±1, ±3} for 16-QAM, and Xk,n,iε{±1, ±3, ±5, ±7} for 64-QAM constellations, and iε{0,1} represents the in-phase (I) and quadrature (Q) components of Xk,n. In this case, the hard-decision decoded symbol, Dec{ Xk,n}, can be computed by rounding Xk,n,i to its corresponding nearest constellation point, Xk,n,i, in each dimension.

However, by using the division-free demodulation techniques in Equations 2 and 3, and from Equation 8 and 21 where,

Zk,n=| IIk,n|2· Xk,n=|Hk,n|2·Xk,n+Hk,n*·vk,n,   (28)

and

Pk,n=| Hk,n|2· Xk,n=|Hk,n|2·Xk,n+e−jΦk,n·vk,n,   (29)

the hard-decision symbol, Dec{ Xk,n} needs to be computed given Zk,n or Pk,n, and both terms contain the instantaneous channel estimate | Hk,n|. Thus, a dynamic slicer (e.g. slicer 350) based on the current values of | Hk,n| should be used to determine Dec{ Xk,n}.

By using the proposed demodulation technique given in Equation 2, the following slicing rules presented below in pseudocode form can be used to make a hard decision on the in-phase and quadrature components to the nearest constellation point in a QPSK, 16-QAM or 64-QAM constellation.
Slicer rule for QPSK:
If (Zk,n,i≧0), Dec{ Xk,n,i}=1,
otherwise, Dec{ Xk,n,i}=−1.
Slicer rule for 16-QAM:
If ((|Zk,n,i|−2| Hk,n2)≦0), Dec{ Xk,n,i}=±1,
otherwise Dec{ Xk,n,i}=±3.
The sign is dependent on the sign of Zk,n,i (see e.g. FIG. 6). A straightforward implementation of the slicer 350 is shown in FIG. 7 to illustrate that this slicer 350 can be implemented by a combination of multiplexers 710, 730 and an adder 720.
Pseudocode for the 64-QAM rate is provided below:
Slicer rule for 64-QAM:
if ((|Zk,n,i|−2| Hk,n|2)≦0), Dec{ Xk,n,i}=±1, exit;
if ((|Zk,n,i|−3| Hk,n|2)≦0), Dec{ Xk,n,i}=±3, exit;
if ((|Zk,n,i|−6| Hk,n|2)≦0), Dec{ Xk,n,i}=±5, exit;
Dec{ Xk,n,i}=±7.
exit;
The sign is dependent on the sign of Zk,n,i.
By using the proposed demodulation technique given in Equation 3, similar slicing rules can be derived for QPSK, 16-QAM and 64-QAM constellations to compute Dec{ Xk,n}).
Slicer rule for QPSK:
if (Pk,n,i≧0), Dec{ Xk,n,i}=1,
otherwise Dec{ Xk,n,i}=−1.
Slicer rule for 16-QAM:
if ((|Pk,n,i|−2| Hk,n|)≦0), Dec{ Xk,n,i}=±1,
otherwise Dec{ Xk,n,i}=±3.
The sign is dependent on the sign of Pk,n,i:
Slicer rule for 64-QAM:
if ((|Pk,n,i|−2| Hk,n|)≦0), Dec{ Xk,n,i}=±1, exit;
if ((|Pk,n,i|−4| Hk,n|)≦0), Dec{ Xk,n,i}=±3, exit;
if ((|Pk,n,i|−6| Hk,n|)≦0), Dec{ Xk,n,i}=±5, exit;
Dec{ Xk,n,i}=±7.
exit;
The sign is dependent on the sign of Pk,n,i.
Section 2—Reduced Complexity Viterbi Decoder Decision Metrics with Channel State Information
This section introduces an approximation method to compute the Viterbi decoder branch metrics that can significantly reduce the computation required over known systems, and can be used in isolation or in combination with the joint equalization and decoding techniques described herein. This method is particularly beneficial to systems where interleaving is performed between the convolutional encoder output and the QAM symbol mapper, as with the case in 802.11a, 802.11g and 806.16a compliant communications.
To summarize the novel bit-by-bit linear piecewise approximation approach, we represent the I and Q demodulated symbol, Xk,n,0 or Xk,n,1 in bits. That is, if Xk,n is a demodulated symbol of a 16-QAM constellation, we can represent the real-part of Xk,n by,

 Xk,n,0={b0, b1},   (30)

and determine the corresponding branch metrics for b0 and b1 in the Viterbi decoder. The expression to compute the branch metric depends on the piecewise region the demodulated I or Q symbol is in, and the position of bit, b0 or b1, for which the branch metric is to be computed. However, all the expressions take the form:

BMk,n,i=−( Xk,n,i−m)·sign(bi),   (31)

where m=0 for QPSK, mε{0,2} for 16-QAM and mε{0,2,4} for 64-QAM constellations, and biε{±1}.

To improve the Viterbi decoder performance, CSI may be incorporated to normalize the expected noise power appropriately as described above in Section 1. If Wk,n is demodulated using From Equation 18, the piecewise branch metric should be (±Wk,n,i·|Hk,n|). That is, the slope of the branch metrics will be ±|Hk,m|, depending on whether the sign of bi is −1 or 1. Furthermore, the piecewise decision regions are separated by m·|Hk,n| (see Equations 14 and 15), where m=0 for QPSK, mε{0,2} for 16-QAM and mε{0,24} for 64-QAM constellations. In short, the branch metrics will be of the form,

BMk,n,i=−|Hk,n|(|Wk,n|−|Hk,n|·m)·sign(bi) (with CSI), (32)

If the conventional demodulation method (Equation 1) is used,




  
    
      
        
          
            X
            _
          
          
            k
            ,
            n
          
        
        =
        
          
            
              W
              
                k
                ,
                n
              
            
            
              
              
                H
                
                  k
                  ,
                  n
                
              
              
            
          
          .
        
      
    
    
      
        (
        33
        )
      
    
  




Thus, the equations to compute the branch metrics have the form,

BMk,n,i=−|Hk,n|2(| Xk,n,i|−m)·sign(bi) (with CSI)   (34)

FIG. 4 depicts a receiver baseband processing unit 400 in which unlike the embodiment shown in FIG. 3, still includes a separate demod/FEQ 220 and Viterbi decoder 430. However, the Viterbi decoder 430 differs from the conventional Viterbi decoder 230 shown in FIG. 2 in that it includes a branch metric computation unit 432 that generates BMi for each subcarrier of a given OFDM symbol Y using the relationship defined in Equation 34. Similarly, it can be shown that by using the reduced-complexity joint equalization and decoding approach described above, and depending on the demodulation method chosen (Equations 2 or 3), the bit-by-bit piecewise approximation branch metrics have the form:

BMk,n,i=−(|Zk,n,i|−|Kk,n|2·m)·sign(bi),   (35)

or

BMk,n,i=−|Hk,n|(|Pk,n,i|−|Hk,n|·m)·sign(bi),   (36)

where m=0 for QPSK, mε{0,2} for 16-QAM and mε{0,2,4} for 64-QAM constellations, and biε{±1}.

FIG. 5 illustrates the branch metric approximation for a 16-QAM constellation where the demodulated symbol is Zk,n,i. As mentioned previously, though not required, the branch metric approximations noted in Equations 35 and 36 may be conveniently implemented by the branch metric computation unit 332 shown in FIG. 3, which in simulation produced an 8 dB SNR performance gain.
Section 3—Multiple Receive Antenna Equalization And Decoding
The previous two sections assume a single receive antenna is used. This section addresses the MRC multiple receive antennae case. A simplified conceptual block diagram of a D-path receive diversity system is shown in FIG. 8 for a single subcarrier k(channel mode 801). In this example, Xk,n was received through D independent pathways and the D received symbols Yk,n(0), Yk,n(1), . . . Yk,n(D−1) are to be demodulated and decoded. In Maximum Ratio Combining (MRC), the received symbols are co-phased to provide coherent voltage addition and are individually weighted to provide optimal SNR. Assuming that perfect channel knowledge is available at the receiver, each receiver chain has the same average noise power σ2, and the channel is flat-fading, the optimal MRC output generated by the MRC combine FEQ and demodulation unit 810, is given by




  
    
      
        
          
            X
            _
          
          
            k
            ,
            n
          
        
        =
        
          
            
              
                ∑
                
                  d
                  =
                  0
                
                
                  D
                  -
                  1
                
              
              ⁢
              
                
              
              ⁢
              
                
                  H
                  
                    k
                    ,
                    n
                  
                  
                    
                      (
                      d
                      )
                    
                    *
                  
                
                ⁢
                
                  Y
                  
                    k
                    ,
                    n
                  
                  
                    (
                    d
                    )
                  
                
              
            
            
              
                ∑
                
                  d
                  =
                  0
                
                
                  D
                  -
                  1
                
              
              ⁢
              
                
                  
                  
                    H
                    
                      k
                      ,
                      n
                    
                    
                      (
                      d
                      )
                    
                  
                  
                
                2
              
            
          
          .
        
      
    
    
      
        (
        37
        )
      
    
  




Yk,n(d)=Hk,n(d)·Xk,n+vk,n(d), Equation (37) may be rewritten as





  
    
      
        
          
            X
            _
          
          
            k
            ,
            n
          
        
        =
        
          
            X
            
              k
              ,
              n
            
          
          +
          
            
              
                ∑
                
                  d
                  =
                  0
                
                
                  D
                  -
                  1
                
              
              ⁢
              
                
              
              ⁢
              
                
                  H
                  
                    k
                    ,
                    n
                  
                  
                    
                      (
                      d
                      )
                    
                    *
                  
                
                ⁢
                
                  v
                  
                    k
                    ,
                    n
                  
                  
                    (
                    d
                    )
                  
                
              
            
            
              
                ∑
                
                  d
                  =
                  0
                
                
                  D
                  -
                  1
                
              
              ⁢
              
                
                  
                  
                    H
                    
                      k
                      ,
                      n
                    
                    
                      (
                      d
                      )
                    
                  
                  
                
                2
              
            
          
        
      
    
    
      
        (
        39
        )
      
    
  




This signal is demodulated, and the I and Q components, Re{ Xk,n} and Im{ Xk,n}, are sent to the Viterbi decoder 830.

Similar to the one receive antenna case, after MRC, the expected noise power of the symbols sent to the Viterbi decoder will no longer be the same. To optimize the Viterbi decoder performance consistent with the present invention, CSI should be incorporated appropriately to normalize the noise power from symbol to symbol so that their expected noise power equal to σ2. Referring to the derivation in the one receiver antenna case (Equations 14 and 15), one can derive that for the MRC case, taking into consideration of CSI for Viterbi decoding is,




  
    
      
        
          
            X
            _
          
          
            k
            ,
            n
          
          CSI
        
        =
        
          
            
              
                ∑
                
                  d
                  =
                  0
                
                
                  D
                  -
                  1
                
              
              ⁢
              
                
              
              ⁢
              
                
                  H
                  
                    k
                    ,
                    n
                  
                  
                    
                      (
                      d
                      )
                    
                    *
                  
                
                ⁢
                
                  Y
                  
                    k
                    ,
                    n
                  
                  
                    (
                    d
                    )
                  
                
              
            
            
              
                
                  ∑
                  
                    d
                    =
                    0
                  
                  
                    D
                    -
                    1
                  
                
                ⁢
                
                  
                    
                    
                      H
                      
                        k
                        ,
                        n
                      
                      
                        (
                        d
                        )
                      
                    
                    
                  
                  2
                
              
            
          
          .
        
      
    
    
      
        (
        40
        )
      
    
  




Denoting





  
    
      
        
          
            
              H
              ⋒
            
            
              k
              ,
              n
            
          
          =
          
            
              
                ∑
                
                  d
                  =
                  0
                
                
                  D
                  -
                  1
                
              
              ⁢
              
                
              
              ⁢
              
                
                  
                  
                    H
                    
                      k
                      ,
                      n
                    
                    
                      (
                      d
                      )
                    
                  
                  
                
                2
              
            
          
        
        ,
      
    
    
      
        (
        41
        )
      
    
  




and similar to the one receive antenna case, the branch metric computation handled by the branch metric computation unit 1032 of the Viterbi decoder 1030 can be expressed as:

BMk,n,i=−2 Xk,n,iCSI· Hk,n·X+( Hk,n·X)2 (MRC with CSI),   (42)

where iε{0,1}, and Xε{±1} for QPSK, Xε{35 1, ±3} for 16-QAM, and Xε{±1, ±3, ±5, ±7} for 64-QAM constellations. For QPSK, the relationship simplifies to

BMk,n,i=− Xk,n,iCSI·Ĥk,n·X (MRC with CSI).   (43)

In accordance with the joint equalization and decoding techniques described above with reference to Section 1, to reduce the receiver complexity, the division operations in the demodulator can be eliminated by first co-phasing the received signals from the different antennae before adding their contributions together.

Zk,n=Σd=0D−1Hk,n(d)*·Yk,n(d)   (44)

and computing the branch metrics using,

BMk,n,i=−2Zk,n,i·X+Ĥk,n4·X2 (MRC with CSI),   (45)

where iε{0,1}, and Xε{±1} for QPSK, Xε{±1, ±3} for 16-QAM, and Xε{±1, ±3, ±5, ±7} for 64-QAM constellations. For QPSK, the branch metrics simplify to

BMk,n,i=−Zk,n,i·X for QPSK (MRC with CSI).   (46)

To further simplify the branch metric computation, the bit-by-bit piecewise approximation technique described above can be applied to compute the branch metrics for the branch computation unit 1032 of the Viterbi decoder 1030 (FIG. 10). In this case, the expressions to compute the branch metrics have the form,

BMk,n,i=−(|Zk,n,i|−Ĥk,n2·m)·sign(bi)   (47)

where m=0 for QPSK, mε{0,2} for 16-QAM constellations, and biε{±1}.

In a practical MRC receiver design, the received signal in each receive pathway will pass through an Automatic Gain Control (AGC) (not shown) prior to frequency domain conversion through an individual pathway FFT (not shown) so that the dynamic range of the Analog-to-Digital Convertor (ADC) can be fully utilized. A simplified conceptual block diagram illustrating this feature is shown in FIG. A gain, denoted g(d) for branch or pathway d is applied to the received symbol Yk,n(d) as noted in the channel model 901. Thus, the available received symbol at the receiver is,

{tilde over (Y)}k,n(d)=g(d)·Yk,n(d),   (48)

and the channel estimates can be expressed as:

{tilde over (H)}k,n(d)=g(d)·Hk,n(d),   (49)

Given that each receiver pathway is subjected to a different multipath channel, the gain can be different for each receiver pathway. In order to weight and normalize the MRC and the Viterbi decoder branch metrics properly, we substitute Equations 48 and 49 into Equation 40 to derive MRC with CSI, taking into consideration of the AGC gain in each receiver chain as follows:




  
    
      
        
          
            X
            _
          
          
            k
            ,
            n
          
          
            CSI
            ,
            AGC
          
        
        =
        
          
            
              ∑
              
                d
                =
                0
              
              
                D
                -
                1
              
            
            ⁢
            
              
            
            ⁢
            
              
                
                  (
                  
                    g
                    
                      (
                      d
                      )
                    
                  
                  )
                
                
                  -
                  2
                
              
              ⁢
              
                
                  H
                  ~
                
                
                  k
                  ,
                  n
                
                
                  
                    (
                    d
                    )
                  
                  *
                
              
              ⁢
              
                
                  Y
                  ~
                
                
                  k
                  ,
                  n
                
                
                  (
                  d
                  )
                
              
            
          
          
            
              
                ∑
                
                  d
                  =
                  0
                
                
                  D
                  -
                  1
                
              
              ⁢
              
                
                  
                    (
                    
                      g
                      
                        (
                        d
                        )
                      
                    
                    )
                  
                  
                    -
                    2
                  
                
                ⁢
                
                  
                    
                    
                      
                        H
                        ~
                      
                      
                        k
                        ,
                        n
                      
                      
                        (
                        d
                        )
                      
                    
                    
                  
                  2
                
              
            
          
        
      
    
    
      
        (
        50
        )
      
    
  




Similarly, the equivalent branch metrics in terms of Yk,n and Hk,n can be derived. For example, to implement the division-free demodulator within e.g. the MRC combine and demodulation unit 910 shown in the embodiment of FIG. 9,

Zk,n=Σd=0D−1(g(d))−2{tilde over (H)}k,n(d)*{tilde over (Y)}k,n(d)   (51)

and the branch metric, using the bit-by-bit piecewise approximation approach discussed herein is,

BMk,n,i=(−|Zk,n,i|+{hacek over (H)}k,n2·m)sign(bi) (MRC with CSI)   (52)

where





  
    
      
        
          
            H
            ⋓
          
          
            k
            ,
            n
          
        
        =
        
          
            
              ∑
              
                m
                =
                0
              
              
                D
                -
                1
              
            
            ⁢
            
              
                
                  (
                  
                    g
                    
                      (
                      m
                      )
                    
                  
                  )
                
                
                  -
                  2
                
              
              ⁢
              
                
              
              ⁢
              
                
                  
                  
                    
                      H
                      ~
                    
                    
                      k
                      ,
                      n
                    
                    
                      (
                      m
                      )
                    
                  
                  
                
                2
              
            
          
        
      
    
    
      
        (
        53
        )
      
    
  




and where m=0 for QPSK, mε{0,2} for 16-QAM and mε{0,2,4} for 64-QAM constellations, and biε{±1}.

For the case with 2 receive antennae, D=2, the demodulator using MRC is reduced to,

Zk,n={tilde over (H)}k,n(o)*·{tilde over (Y)}k,n(0)+β·{tilde over (H)}k,n(1)*·{tilde over (Y)}k,n(1)   (54)

and the branch metric, using the bit-by-bit piecewise approximation approach is,

BMk,n,i=(−|Zk,n,i|+({tilde over (H)}k,n(0)2+β·{tilde over (H)}k,n(1)2)·m)·sign(bi) (MRC with CSI)   (55)

where





  
    
      
        β
        =
        
          
            (
            
              
                g
                
                  (
                  0
                  )
                
              
              
                g
                
                  (
                  1
                  )
                
              
            
            )
          
          2
        
      
    
    
      
        (
        56
        )
      
    
  




These practical receiver branch metric calculations may be conveniently undertaken in the branch metric computation unit 932 of the Viterbi decoder 930 as part of the MRC capable receiver baseband processing unit 900 shown in FIG. 9. If utilized, simulation results show at least a 1 dB SNR improvement.
In the above derivations, we assume that the gain for each receiver pathway or chain is a constant for each chain. This is true for an OFDM system where all the sub-carriers are subjected to same gain. Furthermore, in a quasi-static channel, the gain for each receiver chain throughout the packet burst remains constant. Therefore, when there is only one receive antenna, all the symbols are subjected to the same gain and therefore the gain factor can be ignored without affecting the decoder performance. For systems where this gain can change from symbol to symbol, the different gain factor for each symbol should be taken into consideration in the derivation of the demodulator and the branch metric computation, even for the single receive antenna case. The derivation is similar to that of the case with multiple antennae.
Turning briefly to FIG. 1, FIG. 1 illustrates a wireless communications transceiver 100 capable of implementing the receiver baseband processing units shown in FIGS. 3 or 4. In this embodiment, inbound RF signals conveying a 802.11a/g or 802.16a compliant frame of OFDM encoded symbols are picked up by the duplex antenna 110 and routed to the RF receiver unit 115 of a receiver 150 arranged in a manner consistent with the present invention. The RF receiver unit 115 performs routine downconversion and automatic gain control of the inbound RF signals, and presents an analog baseband signal containing the aforementioned 802.11a/g or 802.16a frame of OFDM symbols to the receive baseband processor 120, which can conveniently comprise the receiver baseband processing unit 300, 400 described above. Generally speaking, the receive baseband processor 120 performs symbol demodulation of the each inbound 802.11a/g or 802.16a compliant frame to recover bitstream data for receiver synchronization (preamble), frame or packet definition (header), or the actual inbound data of interest (payload). Consistent with the present invention, this processor 120 may include either units 300 or 400 to carry out joint decoding and equalization or reduced complexity decoding as described above.
Once recovered by the receive baseband processor 120, the inbound data contained in each received 802.11a/g or 802.16a formatted frame is delivered to a network interface such as the MAC layer interface 125 and then on to higher layer applications and devices being serviced by the transceiver 100. Outbound data intended for wireless transmission originating from the device(s) or application(s) being serviced by the transceiver 100 are delivered to the transmit baseband processor 135 of the transmitter 160 from the MAC interface 125. The transmit baseband processor 135 formulates appropriate 802.11a/g or 802.16a frame preamble and header information, and OFDM symbol encodes the outbound data to generate one or more complete outbound 802.11a/g or 802.16a frames. As the frame or packet is being developed, it is converted into analog form suitable for upconversion and RF transmission by the RF transmitter unit 140 consistent with 802.11a/g or 802.16a physical layer requirements.
Though only a single duplex antenna arrangement is shown in FIG. 1, the transceiver 100 can be easily adapted to incorporate multiple receive pathways or chains to take advantage of selection diversity or MRC diversity techniques as discussed above. To illustrate, consider the transceiver 101 in FIG. 11 which includes plural receive antenna (e.g. antennae 114, 111, and 112) respectively coupled to individual receive pathway RF receivers (.e.g 115, 116 and 117) as part of the receiver 151. In turn, the individual baseband signals recovered by these distinct receive pathway RF receivers are fed to a common receive baseband processor 121, which can conveniently implement an MRC aware receive baseband processing unit 1000 or 900 shown in FIGS. 10 and 9 respectively. A separate antenna 113 is shown in FIG. 11 to radiate the RF signal generated by the transmitter 160, though other types of antennae configuration may be utilized, as is known in the art.
Also, though not shown in FIG. 1 or 11, the transceiver 100, 101 may form an operational part of a network interface apparatus such as a PC card or network interface card capable of interfacing with the CPU or information processor of an information processing apparatus such as a desktop or laptop computer, and may be integrated within and constitute a part of such information processing apparatus. This network interface apparatus may alternatively form an operational component of a wireless communications access point such as a base station as will be appreciated by these ordinarily skilled in the art.
It will be obvious to those having skill in the art that many changes may be made to the details of the above-described embodiments of this invention without departing from the underlying principles thereof. For example, although the above-described embodiments deal with OFDM symbol decoding, the teachings of the invention are not intended to be so limiting, and in fact several aspects of the present invention may be applied to other types of receivers decoding orthogonal class symbol modulated data. To illustrate, joint equalization and decoding aspects of the invention may be easily applied to reducing pre-demodulation division operations in time domain applications, including adaptive complex gain normalization of the time domain signal to offset AGC side-effects when seeking to maximize the dynamic range of the ADC. The scope of the present invention should, therefore, be determined only by the following claims.

## Claims

1. A baseband processing unit for decoding symbols defining modulated data, comprising:
a channel estimator to generate a channel estimate for each of the symbols; and
a Viterbi decoder, comprising:
a branch metric computation unit to compute a plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
a most-likely codeword estimator to estimate a transmitted coded bit sequence based on the plurality of branch metrics computed by said branch metric computation unit for a plurality of said symbols, wherein said branch metric computation unit computes the plurality of branch metrics using


BMk,n,i=−(|Zk,n,i|−|Hk,n2·m)·sign(bi)



wherein BMk,n,i is a branch metric, k is a subcarrier identifier, n is a symbol identifier, Zk,n,i is equal to Hk,n*·Yk,n where Hk,n* is a channel estimate and Yk,n is a received noisy symbol, m is a modulation variable, bε{±1}, and iε{0,1}.

2. A baseband processing unit for decoding a symbol defining modulated data, comprising:
a channel estimator to generate a channel estimate from the symbol; and
a Viterbi decoder, comprising:
a branch metric computation unit to compute a plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
a most-likely symbol estimator to estimate a clean symbol based on the plurality of branch metrics computed by said branch metric computation unit,

wherein the channel estimate comprises a plurality of channel estimates; and
wherein said branch metric computation unit applies a divisionless normalization factor to compute the plurality of branch metrics, the divisionless normalization factor comprising a function of the magnitude of the plurality of channel estimates.

3. A transceiver, comprising:
an RF receiving unit to recover a baseband signal, the baseband signal including a plurality of symbols defining modulated data; and
a baseband processing unit for decoding the plurality of symbols, comprising:
a channel estimator to generate a channel estimate from the plurality of symbols; and
a Viterbi decoder, comprising:
a branch metric computation unit to compute a plurality of branch metrics responsive to the channel estimate and based on the plurality of symbols, channel state information associated with the plurality of symbols, and a piecewise bit-by-bit approximation; and
a most-likely codeword estimator to estimate a transmitted coded bit sequence based on the plurality of branch metrics computed by said branch metric computation unit for the plurality of symbols, wherein said branch metric computation unit computes the plurality of branch metrics using


BMk,n,i=−(|Zk,n,i|−|Hk,n|2·m)·sign(bi)




wherein BMk,n,i is a branch metric, k is a subcarrier identifier, n is a symbol identifier, Zk,n,i is equal to Hk,n*·Yk,n where Hk,n* is a channel estimate and Yk,n is a received noisy symbol, m is a modulation variable, bε{±1}, and iε{0,1}.

4. A transceiver, comprising:
an RF receiving unit to recover a baseband signal, the baseband signal including a symbol defining modulated data; and
a baseband processing unit for decoding the symbols, comprising:
a channel estimator to generate a channel estimate from the symbols; and
a Viterbi decoder, comprising:
a branch metric computation unit to compute a plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
a most-likely symbol estimator to estimate a clean symbol based on the plurality of branch metrics computed by said branch metric computation unit wherein the channel estimate comprises a plurality of channel estimates; and


wherein said branch metric computation unit applies a divisionless normalization factor to compute the plurality of branch metrics, the divisionless normalization factor comprising a function of the magnitude of the plurality of channel estimates.

5. A Viterbi decoder for decoding a plurality of symbols defining modulated data, comprising:
computing means for computing a plurality of branch metrics based on the plurality of symbols, channel state information associated with the plurality of symbols, and a piecewise bit-by-bit approximation; and
codeword means for estimating a transmitted coded bit sequence based on the plurality of branch metrics computed by said computing means for the plurality of symbols, wherein said computing means includes means for computing the plurality of branch metrics using


BMk,n,i=−(|Zk,n,i|−|Hk,n|2·m)·sign(bi)


wherein BMk,n,i is a branch metric, k is a subcarrier identifier, n is a symbol identifier, Zk,n,i is equal to Hk,n*·Yk,n where Hk,n* is a channel estimate and Yk,n is a received noisy symbol, m is a modulation variable, bε{±1}, and iε{0,1}.

6. A baseband processing unit for decoding symbols defining modulated data, comprising:
computing means for generating a channel estimate from the symbol; and
Viterbi decoder means, comprising:
means for computing a plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
codeword means for estimating a transmitted coded bit sequence based on the plurality of branch metrics computed by said computing means for a plurality of said symbols, wherein said computing means includes means for computing the plurality of branch metrics using


BMk,n,i=−(|Zk,n,i|−|Hk,n|2·m)·sign(bi)



wherein BMk,n,i is a branch metric, k is a subcarrier identifier, n is a symbol identifier, Zk,n,i is equal to Hk,n*·Yk,n where Hk,n* is a channel estimate and Yk,n is a received noisy symbol, m is a modulation variable, bε{±1}, and iε{0,1}.

7. A baseband processing unit for decoding a symbols defining modulated data, comprising:
computing means for generating a channel estimate from the symbol; and Viterbi decoder means, comprising:
means for computing a plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
means for estimating a clean symbol based on the plurality of branch metrics computed by said computing means,
wherein the channel estimate comprises a plurality of channel estimates; and
wherein said computing means includes means for applying a divisionless normalization factor for use in computing the plurality of branch metrics, the divisionless normalization factor comprising a function of the magnitude of the plurality of channel estimates.

8. A transceiver, comprising:
means for recovering a baseband signal, the baseband signal including symbols defining modulated data; and
baseband processing means for decoding the symbols, comprising:
means for generating a channel estimate from each of the symbols; and
Viterbi decoder means, comprising:
computing means for computing a plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
codeword means for estimating a transmitted coded bit sequence based on the plurality of branch metrics computed by said computing means for a plurality of said symbols, wherein said computing means includes means for computing the plurality of branch metrics using


BMk,n,i=−(|Zk,n,i|−|Hk,n|2·m)·sign(bi)




wherein BMk,n,i is a branch metric, k is a subcarrier identifier, n is a symbol identifier, Zk,n,i is equal to Hk,n*·Yk,n where Hk,n* is a channel estimate and Yk,n is a received noisy symbol, m is a modulation variable, bε{±1}, and iε{0,1}.

9. A transceiver, comprising:
means for recovering a baseband signal, the baseband signal including a symbol defining modulated data;
baseband processing means for decoding the symbol, comprising:
means for generating a channel estimate from the symbol; and
Viterbi decoder means, comprising:
computing means for computing a plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation;
means for estimating a clean symbol based on the plurality of branch metrics computed by said computing means; and


wherein the channel estimate comprises a plurality of channel estimates;
wherein said computing means includes means for applying a divisionless normalization factor for use in computing the plurality of branch metrics, the divisionless normalization factor comprising a function of the magnitude of the plurality of channel estimates.

10. A method for decoding symbols defining modulated data, comprising:
computing a plurality of branch metrics based on each of the symbols, channel state information associated with each of the symbols, and a piecewise bit-by-bit approximation for each of the symbols; and
estimating a transmitted coded bit sequence based on the plurality of branch metrics computed at said computing step for a plurality of said symbols, wherein said computing step includes computing the plurality of branch metrics using


BMk,n,i=−(|Zk,n,i|−|Hk,n|2·m)·sign(bi)


wherein BMk,n,i is a branch metric, k is a subcarrier identifier, n is a symbol identifier, Zk,n,i is equal to Hk,n*·Yk,n where Hk,n* is a channel estimate and Yk,n is a received noisy symbol, m is a modulation variable, bε{±1}, and iε{0,1}.

11. A method for decoding a symbol defining modulated data, comprising:
computing a plurality of branch metrics based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
estimating a clean symbol based on the plurality of branch metrics computed at said computing step; and
generating a channel estimate from the symbol, wherein said computing step comprises computing the plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation, wherein
the channel estimate comprises a plurality of channel estimates; and
wherein the method further comprises applying a divisionless normalization factor to the plurality of channel estimates prior to said branch metric computing step, the divisionless normalization factor comprising a function of the magnitude of the plurality of channel estimates.

12. A computer program stored on a computer readable medium and executable by a computer, comprising:
computing a plurality of branch metrics based on a symbol defining modulated data, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
estimating a transmitted coded bit sequence based on the plurality of branch metrics computed at said computing step for a plurality of said symbols, wherein said computing step includes computing the plurality of branch metrics using


BMk,n,i=−(|Zk,n,i|−|Hk,n|2·m)·sign(bi)


wherein BMk,n,i is a branch metric, k is a subcarrier identifier, n is a symbol identifier, Zk,n,i is equal to Hk,n*·Yk,n where Hk,n* is a channel estimate and Yk,n is a received noisy symbol, m is a modulation variable, bε{±1}, and iε{0,1}.

13. A computer program stored on a computer readable medium and executable by a computer, comprising:
computing a plurality of branch metrics based on a symbol defining modulated data, channel state information associated with the symbol, and a piecewise bit-by-bit approximation; and
estimating a clean symbol based on the plurality of branch metrics computed at said computing step; and
generating a channel estimate from the symbol, wherein said computing step comprises computing the plurality of branch metrics responsive to the channel estimate and based on the symbol, channel state information associated with the symbol, and a piecewise bit-by-bit approximation, wherein
the channel estimate comprises a plurality of channel estimates; and
wherein the product further comprises computer readable program code causing the information processor to perform the step of applying a divisionless normalization factor to the plurality of channel estimates prior to said branch metric computing step, the divisionless normalization factor comprising a function of the magnitude of the plurality of channel estimates.