Abstract:
A linear turbo-equalizer for use in a CDMA receiver equalizes a despread received signal (rather than the spread received signal) to suppress self-interference resulting from coupling between transmitted symbols. In an example implementation, a linear equalizer based on a generalized-Rake (G-Rake) receiver design uses decoder feedback in forming Rake combining weights as well as in forming a self-interference estimate removed from the equalizer signal provided to the decoder. Preferably, turbo de-coding is also performed. In that case, each turbo-decoder component preferably executes one pass before feeding back information to the equalizer. This ensures that the turbo-decoder does not prematurely lock onto an incorrect code word before feeding back extrinsic information to the equalizer.

Description:
TECHNICAL FIELD 
   The technical field relates to communications, and more particularly, to demodulation in a direct sequence-code division multiple access (DS-CDMA) communications system. 
   BACKGROUND 
   Third generation cellular communications employ wideband CDMA (WCDMA). CDMA is a method for transmitting simultaneous signals over a shared portion of the spectrum. CDMA spreads the signal over the full bandwidth of the CDMA frequency band using a spreading code that, because it is orthogonal to all the other spreading codes used, allows each modulated bit stream to be distinguished (decoded) at the receiver from all of the other signals and noise. The rate of the spreading signal is known as the “chip rate,” as each bit in the spreading signal is called a “chip”, e.g., one bit from the modulated bit stream is spread into 128 chips, giving the receiver an enormous amount of data it can average to determine the value of one bit. 
   A Rake receiver structure is commonly used to recover information corresponding to one of the user data streams in CDMA receivers. In a typical Rake receiver, a received composite signal is correlated with a particular spreading sequence assigned to the receiver to produce a plurality of time-offset correlations, each one corresponding to an echo or image of a transmitted spread spectrum signal. The correlations are then combined in a weighted fashion, i.e., respective correlations are multiplied by respective weighting factors and then summed to produce transmitted symbol estimates that hopefully correspond to the originally transmitted symbols. 
   WCDMA has been evolving to support higher data rates over the radio interface. In the downlink from the radio access network to the mobile terminal, high speed downlink (base station-to-mobile station) packet access (HSDPA) may use multi-code transmission (i.e., more than one spreading code is used to send the information bit stream) and/or higher-order modulation to send more modem (modulated) bits per frame, thereby enabling higher rates. A major obstacle to achieving higher bit rates relates to the dispersive characteristics of a radio channel. If the channel is dispersive, self-interference results primarily due to loss of orthogonality between the multi-code signals. This form of self-interference is referred to as intercode interference (ICI). Another form of self-interference is interference from successive symbols on the same code. This interference is referred to as intersymbol interference (ISI). Higher-order modulation is particularly sensitive to self-interference. The story is similar in the uplink (mobile to base station). The “enhanced uplink” currently being standardized for WCDMA will use multi-code and low spreading factor to enable higher rates. At high rates, dispersion leads to significant self-interference. 
     FIG. 1  helps illustrate the self-interference problem. In this simple example, three symbols  1 ,  2 , and  3  are sent sequentially on one spreading code while three other symbols  4 ,  5 , and  6  are sent sequentially on a different spreading code. As a result, two symbols are sent in parallel during each symbol period. Due to time dispersion, the transmitted signal travels along two paths such that the second path has a longer delay than the first. As a result, the receiver receives two overlapping signal images corresponding to the two different path delays. Assume recovery of the image of symbol  2  (the symbol of interest) from the first path (identified with dots). While this symbol  2  image overlaps with the image of symbol  5  on path  1 , there is no interference between these two images because spreading codes  1  and  2  are orthogonal and their correlation is substantially zero. But there is interference from path  2 . Specifically, there is ISI from symbol  1  on the same code (shown with slanted lines) and ICI from symbols  4  and  5  (shown with horizontal lines). The overlapping portion of symbol  1  path  2  interferes when symbol  2  path  1  is despread. Overlapping portions of symbols  4  and  5  in path  2  are not aligned with symbol  2  path  1 , so the desired orthogonality is lost. 
   There are different approaches to this self-interference problem. One is linear equalization to suppress self-interference. One linear equalization approach is to perform equalization despreading as part of Rake combining process using a generalized-Rake (G-Rake) receiver. Combining weights (vector w) are determined by net channel estimates (vector h) and an impairment covariance matrix estimate (R) by solving
 
Rw=h.  (1)
 
With code-specific G-Rake, the impairment covariance and/or the channel estimates can be determined based on a set of spreading sequences being used. Another linear equalization approach is chip equalization where chip samples are filtered prior to despreading to suppress interference. The main limitation with linear equalization is the limited amount of interference suppression. Loss of orthogonality is due to the channel. Linear equalizers try to undo the channel to restore orthogonality. But this enhances noise and other forms of interference. Thus, this trade-off prevents full restoration of orthogonality.
 
   With nonlinear equalization, such as maximum likelihood sequence estimation (MLSE) and maximum a-posteriori probability (MAP) equalization, self interfering symbols are jointly detected. Thus, rather than undoing the channel, the receiver accounts for what the channel did to the signal. This avoids the noise enhancement problem. The drawback is much higher complexity relative to linear equalization. The receiver must maintain a state space whose size depends exponentially on how many symbols interfere with one another. 
   In CDMA system, interference cancellation has been proposed for improved demodulation. Modem symbols are detected and then used to remove their contribution to the received signal so that detection of other symbols is improved. But modem symbol detection is not always accurate. Thus, interference cancellation can actually worsen the situation when symbol detection errors are made. Also, such an approach does not utilize forward error correction (FEC) coding structure to obtain reliable modem symbol estimates. 
   Turbo-equalization is an approach in which equalization and FEC decoding are performed iteratively, each exchanging information with the other. It was originally developed for narrowband or nonspread systems and later applied to CDMA systems, primarily in conjunction with nonlinear equalization. Again, the problem is complexity. To reduce complexity in turbo-equalization, a linear equalizer can be used that performs chip-level equalization. A drawback with chip equalization is that it is complicated; it is easier to equalize the despread signal. Moreover, traditional CDMA receiver architectures initially despread the received signal and perform linear equalization after despreading. 
   SUMMARY 
   A linear turbo-equalizer for use in a CDMA receiver equalizes a despread received signal (rather than the spread received signal) to suppress self-interference resulting from coupling between transmitted symbols. This approach fits very well into existing CDMA radio receivers that employ traditional Rake receiver architectures and offers an alternative to chip equalization. In an example implementation, a linear equalizer based on a generalized-Rake (G-Rake) receiver design uses decoder feedback in forming Rake combining weights as well as in forming a self-interference estimate removed from the equalizer signal provided to the decoder. Preferably, turbo-decoding is also performed. Each turbo-decoder component decoder executes one pass and feeds back extrinsic information to the equalizer to prevent the decoder from locking onto an incorrect decoding result. An example application of this technology includes any type of radio receiver such as a mobile radio or a radio base station. 
   More generally, a method, an apparatus, and a program product are described for processing a received, direct-sequence code-division multiple-access (DS-CDMA) baseband signal to recover information bits. The DS-CDMA baseband signal includes composite noise and transmitted symbols, and each transmitted symbol includes one or more modulated bits. A first set of modulated bit estimates is formed based on the received signal. Decoding operations are performed using the first set of modulated bit estimates to produce extrinsic information associated with the modulated bits. The modulated bit estimates correspond to transmitted symbols sent in parallel on different spreading codes. For multiple delays of the received signal, a despreading operation is performed using the received baseband signal to produce multiple despread values corresponding to a transmitted symbol. A second set of modulated bit estimates is formed using the despread values and the extrinsic information. Decoding operations are performed using the second set of modulated bit estimates to produce information bit estimates. 
   The second set of modulated bit estimates is preferably performed by an enhanced linear equalizer. From the extrinsic information, the enhanced linear equalizer determines an interference estimate associated with a transmitted symbol. More specifically, the extrinsic information is used to form an average symbol value for an interfering transmitted symbol. The enhanced linear equalizer uses the average symbol value to form an interference estimate associated with the transmitted symbol. The equalizer removes the interference estimate from its output provided to the decoder. 
   As mentioned above, a non-limiting, example embodiment of the enhanced linear receiver employs a generalized-Rake (G-Rake) receiver using a second set of combining weights to form the first set of modulated bit estimates. The generalized-Rake receiver produces symbol estimates from despread values output from a Rake correlator, and the symbol estimates are used to produce modulated bit estimates. The enhanced linear equalizer includes an enhanced Rake “fingers” weight processor to form a first and second set of combining weights. The interference removal can be performed on the despread values from the Rake correlator before weighted combining or after weighted combining. In either approach, the first set of combining weights are determined based on the extrinsic information. 
   A symbol likelihood processor uses the extrinsic information to form symbol likelihoods corresponding to the transmitted symbols. The combining weights are determined based on the symbol likelihoods. A first set of combining weights may be used in forming the first set of modulated bit estimates. A second different set of combining weights, for use in forming the second set of modulated bit estimates, are determined based on channel estimates and an impairment covariance estimate. 
   Preferably, the decoder is a turbo-decoder. One turbo-decoding pass is performed with first and second component decoding operations using the modulated bit estimates to produce the extrinsic information. After the turbo-decoding one pass, the extrinsic information is preferably provided to the linear equalizer to form the second set of modulated bit estimates. Alternatively, multiple turbo-decoding passes can be performed before providing the extrinsic information to the linear equalizer, but with the risk of locking onto incorrectly decoded symbols and misleading the equalizer. 
   The turbo-decoder can use a serial approach where it performs a first component decoding operation using the modulated bit estimates to produce a first set of modulated bit likelihood information and a second component decoding operation using the modulated bit estimates and the first set of modulated bit likelihood information to produce a second set of modulated bit likelihood information (i.e., serial in the sense that the second set information depends on the first set information). From the first and second sets of modulated bit likelihood information, the turbo-decoder forms the extrinsic information. Alternatively, the turbo-decoder can use a parallel approach. It performs a first component decoding operation using the modulated bit estimates to produce a first partial set of modulated bit likelihood information and a second component decoding operation using the modulated bit estimates to produce a second partial set of modulated bit likelihood information. The turbo-decoder combines (i.e., in parallel) the first and second partial sets of modulated bit likelihood information to produce the extrinsic information. 

   
     BRIEF DESCRIPTION OF THE FIGURES 
       FIG. 1  is a diagram that illustrates examples of ISI and ICI self-interference; 
       FIG. 2  is a diagram representing a link in a communications system; 
       FIG. 3  is a diagram of an example cellular communications system; 
       FIG. 4  is a function block diagram of one example embodiment of a turbo-equalizer; 
       FIG. 5  is a function block diagram of a symbol likelihood computer shown in the turbo-equalizer of  FIG. 4 ; 
       FIG. 6  is a function block diagram of an enhanced linear equalizer shown in the turbo-equalizer of  FIG. 4 ; 
       FIG. 7  is a function block diagram of a soft interference subtraction unit shown in the turbo-equalizer of  FIG. 4 ; 
       FIG. 8  is a function block diagram of an overall channel estimator shown in the turbo-equalizer of  FIG. 4 ; 
       FIG. 9  is a function block diagram of a bit demodulator shown in the turbo-equalizer of  FIG. 4 ; 
       FIG. 10  is a function block diagram of an example turbo-decoder employing a serial approach that may be used as the decoder in the turbo-equalizer of  FIG. 4 ; 
       FIG. 11  is a function block diagram of an example turbo-decoder employing a parallel approach that may be used as the decoder in the turbo-equalizer of  FIG. 4 ; and 
       FIG. 12  is flowchart diagram outlining example, non-limiting operations that may be performed by the turbo-equalizer of  FIG. 4 . 
   

   DETAILED DESCRIPTION 
   In the following description, for purposes of explanation and non-limitation, specific details are set forth, such as particular nodes, functional entities, techniques, protocols, standards, etc. in order to provide an understanding of the described technology. It will be apparent to one skilled in the art that other embodiments may be practiced apart from the specific details disclosed below. In other instances, detailed descriptions of well-known methods, devices, techniques, etc. are omitted so as not to obscure the description with unnecessary detail. Individual function blocks are shown in the figures. Those skilled in the art will appreciate that the functions of those blocks may be implemented using individual hardware circuits, using software programs and data in conjunction with a suitably programmed microprocessor or general purpose computer, using applications specific integrated circuitry (ASIC), field programmable gate arrays, one or more digital signal processors (DSPs), etc. 
   In the text below, the terms modulated bit estimate and modem bit estimate are used interchangeably. The adjectives modulated and modem are not meant to be limiting but are used simply to distinguish the bits being processed/demodulated from the actual information bits that are ultimately output by the decoder. The term likelihood information or values includes any type of likelihood or probability parameter including for example probabilities, probability ratios, log probabilities, log-likelihood ratios, soft values, etc. 
   A block diagram of a communications link between a transmitter and a receiver is shown in  FIG. 2 . One non-limiting example application is a radio communications system. An example cellular communications system  20  is shown in  FIG. 3 . One or more mobile radios (terminals)  22  communicate with cells  24  served by associated base stations  26  and a radio access network RAN  28  (the base stations are part of the RAN). The RAN  28  is coupled to one or more core network nodes  34 , which in turn are connected to one or more respective core networks  36  (e.g, the PSTN, the Internet, etc.). Although only three cells  24  are shown, a typical cellular network may include hundreds of cells and may serve thousands of mobile radios. Although a terrestrial RAN is shown, a satellite based RAN could also be used. 
   The cells  24  generally serve as nodes in the communication system  20 , from which links are established between the mobile radios  22  and the RAN  28 , by way of the base stations  26  serving the cells  24 . Each base station  26  handles radio communication between a cell  24  and mobile terminals  22 . Both the base stations and the mobile stations include radio transceiving, signal, and data processing circuitry to transmit and receive cellular radio communications (voice and/or data) over the radio air interface. Transmissions from the base stations to the mobile station are referred to as downlink transmissions, and transmissions from the mobile station to the base station are referred to as uplink transmissions. 
   Third generation cellular systems typically use CDMA or WCDMA because CDMA systems achieve increased channel capacity by using “spread spectrum” techniques where a communications channel is defined by modulating a data-modulated carrier signal by a unique spreading code, i.e., a code that spreads an original data-modulated carrier over a wide portion of the frequency spectrum in which the communications system operates. Conventional spread-spectrum CDMA communications systems commonly use so-called “direct sequence” spread spectrum modulation. In direct sequence modulation, a data-modulated carrier is directly modulated by a spreading code or sequence before being amplified by a power amplifier and transmitted over a communications medium, e.g., a radio air interface. The spreading code includes a sequence of “chips” occurring at a chip rate that is much higher than the bit rate of the data being transmitted. 
   The transmitter  11  illustrated in  FIG. 2  performs various signal processing steps including error correction coding, interleaving, and modulating functions. An information bit stream is encoded using an FEC encoder  14  (convolutional, turbo code, low-density parity-check (LDPC) code, etc.), and then interleaved in an interleaver  15  to produce a stream of encoded bits to be modulated (modulated bits) denoted {b p ; p=O, . . . , N e −1}. These encoded bits are then used to form a modulation symbol stream {S i ; i=O, . . . , N s −1}. An arbitrary, M-ary modulation is assumed, with symbol set {S m ; m=O, . . . , M−1}. BPSK and QPSK modulation can be used as well as higher-order modulation such as 16-QAM. It is assumed that the encoded bits are sufficiently random so that all symbol values are equi-likely with probability 1/M. Modulation in block  16  includes spreading and mixing up to a radio carrier frequency. However, in the subsequent equations, a baseband equivalent signal is described. 
   For multi-code transmission (multiple codes are used to transmit a user&#39;s data), the modulation symbol stream is split into K parallel streams for parallel transmission. The i′-th symbol of the k′-th stream is given by
 
 s   k′ ( i ′)= s   i ( k′,i ′),  (2)
 
where
 
 i ( k′,i ′)= k′+i′K.   (3)
 
The baseband transmitted signal can be expressed as
 
                     x   ⁡     (   t   )       =         E       k   ′     ⁡     (   i   )           ⁢       ∑       k   ′     =   0       K   -   1       ⁢       ∑       i   ′     =   ∞     ∞     ⁢         s     k   ′       ⁡     (     i   ′     )       ⁢       a       k   ′     ,     i   ′         ⁡     (     t   -       i   ′     ⁢   T       )                 ,           (   4   )               
where K is the number of streams, E k′(i)  is the energy-per-symbol, s k′ (i′) is the i′th symbol in stream k′, a k′, i′ (t) is the spreading waveform for the i′th symbol in stream k′, and T is the symbol period. The spreading waveform consists of an N-chip spreading sequence convolved with a chip pulse shape, which is assumed to be root-Nyquist. The spreading sequences are assumed to be orthogonal when time-aligned.
 
   In (4), the transmitted signal is expressed in terms of a double summation, summing over streams as well as symbol periods. In later sections, it will be convenient to express this as a single summation, using index i, giving 
   
     
       
         
           
             
               
                 
                   
                     x 
                     ⁡ 
                     
                       ( 
                       t 
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         i 
                         = 
                         ∞ 
                       
                       ∞ 
                     
                     ⁢ 
                     
                       
                         ( 
                         
                           
                             E 
                             
                               
                                 k 
                                 ′ 
                               
                               ⁡ 
                               
                                 ( 
                                 i 
                                 ) 
                               
                             
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         s 
                         i 
                       
                       ⁢ 
                       
                         
                           a 
                           i 
                         
                         ⁡ 
                         
                           ( 
                           
                             t 
                             - 
                             
                               
                                 
                                   i 
                                   ′ 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   i 
                                   ) 
                                 
                               
                               ⁢ 
                               T 
                             
                           
                           ) 
                         
                       
                     
                   
                 
                 , 
                 
                   
 
                 
                 ⁢ 
                 where 
               
             
             
               
                 ( 
                 5 
                 ) 
               
             
           
           
             
               
                 
                   
                     k 
                     ′ 
                   
                   ⁡ 
                   
                     ( 
                     i 
                     ) 
                   
                 
                 = 
                 
                   i 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   mod 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   K 
                 
               
             
             
               
                 ( 
                 6 
                 ) 
               
             
           
           
             
               
                 
                   
                     i 
                     ′ 
                   
                   ⁡ 
                   
                     ( 
                     i 
                     ) 
                   
                 
                 = 
                 
                   
                     ⌊ 
                     
                       i 
                       / 
                       K 
                     
                     ⌋ 
                   
                   . 
                 
               
             
             
               
                 ( 
                 7 
                 ) 
               
             
           
         
       
     
   
   The transmitted signal passes through a dispersive channel  12 , modeled by an L-tap FIR filter with relative delays {τ l ; l=O, . . . , L−1} and medium coefficients {g l ; l=0, . . . , L−1}. The channel-filtered signal is received at receiver  13  in the presence of noise n(t), giving a received signal of the form 
                   r   ⁡     (   t   )       =         ∑     l   =   0       L   -   1       ⁢       g   l     ⁢     x   ⁡     (     t   -     τ   l       )           +       n   ⁡     (   t   )       .               (   8   )               
For a cellular system like that in  FIG. 3 , in the downlink, n(t) models other-cell interference in addition to thermal noise. In the uplink, it models other-user interference in addition to thermal noise.
 
   The receiver  13  receives a composite signal, and a front-end processor  17  mixes the radio signal received on one or more receive antennas down to baseband digital samples that includes composite noise and transmitted symbols. The baseband samples are provided to a tubo-equalizer  18 . Part of the turbo-equalizer  18  includes correlators or fingers, which despread symbols with a user&#39;s spreading code to produce despread values. Symbols are despread using J Rake fingers by correlating the received signal to the conjugate of the spreading waveform at delays {d j′ j=0, . . . , J−1}. The vector of despread values for symbol s k  can be represented as 
                   y   k     =         h     k   ,   k       ⁢     s   k       +     u   k               (   9   )                 u   k     =         ∑     i   ≠   k       ⁢       h     i   ,   k       ⁢     s   i         +     n     k   ,                 (   10   )               
where h i,k  is the overall channel response for symbol i as seen by despreading symbol k. It depends on the chip pulse shape, the channel response, and the aperiodic crosscorrelation between the spreading codes for symbols i and k. Setting k=0 (s o  is the symbol of interest), the jth row of h i,o  can be expressed as
 
                       h     i   ,   0       ⁡     (   j   )       =       ∑     l   =   0       L   -   1       ⁢         g   ~     l     ⁢       R                   k   ′     ⁡     (   i   )       ,       i   ′     ⁡     (   i   )             ⁡     (       d   j     -         i   ′     ⁡     (   i   )       ⁢   T     -     τ   l       )             ,           (   11   )               
where {tilde over (g)} t =√{square root over (E k′(i) )}g l ,
 
                     R     k   ,   i       ⁡     (   t   )       =       1   N     ⁢       ∑     m   =     1   -   N         N   -   1       ⁢         C     k   ,   i       ⁡     (   m   )       ⁢       R   p     ⁡     (     t   +     mT   c       )                     (   12   )                   C     k   ,   i       ⁡     (   m   )       =     {               ∑     n   =   0       N   -   1   -   m       ⁢         c     k   ,   i       ⁡     (   n   )       ⁢       c     0   ,   0     *     ⁡     (     n   +   m     )           ,           0   ≤   m   ≤     N   -   1                     ∑     n   =   0       N   -   1   +   m       ⁢         c     k   ,   i       ⁡     (     n   -   m     )       ⁢       c     0   ,   0     *     ⁡     (   n   )           ,             1   -   N     ≤   m   &lt;   0.                     (   13   )                     R   p     ⁡     (   τ   )       =       ∫     -   ∞     ∞     ⁢       p   ⁡     (     t   +   τ     )       ⁢   p   *     (   τ   )     ⁢     ⅆ   τ           ,           (   14   )               
and p(t) is the chip pulse shape. The term c k,i (n) is the spreading sequence for user k at symbol period i. The receiver knows the pulse shape and its autocorrelation R p (τ) The pulse shape is normalized so that R p (0)=1.
 
   In (9), the first term h k,k s k  on the right hand side can be considered the “signal” term, whereas the second term, u k , is the impairment (interference+noise). The noise vector n k  is the result of despreading the composite noise. In (11), {tilde over (g)} l  may be viewed as the channel coefficient, being the product of the medium coefficient and the square-root of the energy associated with the symbol. Conventional channel estimation may be used to estimate the channel coefficient. Returning to the cellular example, if the channel is estimated using a common pilot channel, the channel coefficient associated with the data can be obtained by an appropriate scaling, which in essence scales by the square-root of the ratio of the powers. In the uplink, the channel is usually estimated using a known signal on the control channel. In this case, the relative scaling for the data channel is known and can be used to scale the channel estimate from the control channel to obtain a channel estimate for the data channel. In (12), R k,i (t) may be viewed as the crosscorrelation of the spreading waveform for symbol k with the spreading waveform for symbol i. 
   A block diagram example of the turbo equalizer  18  is given in  FIG. 4 . Baseband received samples are provided to an enhanced linear equalizer  50 , which produces symbol estimates z k  and possibly q k  estimates (used with higher-order modulation), depending on the modulation used. The symbol estimates are provided to a bit demodulator  52 . The bit demodulator  52  also receives symbol likelihoods from a symbol likelihood processor  60  and extrinsic information from the decoder  56  after re-ordering by interleaver  58 . The bit demodulator  52  uses these things to produce modulated bit estimates, which are provided to the de-interleaver  54 . The de-interleaver  54  de-interleaves (re-orders) the modulated bit estimates, in essence undoing the interleaving done at the transmitter. The de-interleaved information is provided to the decoder  56 . The decoder  56  produces decoded information bits for final output and further higher level processing as well as information regarding the modulated bits. This information is adjusted by the input modulated bit estimates to form extrinsic information associated with the modulated bits. The extrinsic information from the decoder  56  is interleaved by the interleaver  58  to produce interleaved extrinsic information which is provided to a symbol likelihood processor  60  as well as the bit demodulator  52 . The symbol likelihood processor  60  uses the extrinsic information to produce symbol likelihood information. 
   The symbol likelihood processor  60  uses modulated bit extrinsic information from the decoder  56  to provide modulated symbol likelihood information, which is treated as prior or side information by the equalizer. Consider a particular symbol s k , which represents a set of bits {b o , b l , . . . , b q } where q=log 2 (M)−1. Using all the feedback information from the decoder  56 , the symbol likelihood is given by
 
 Pr ( s   k   =S   m )= Pr ( b   o   =B   o   , . . . , b   q   =B   q ),  (15)
 
where the modulated bit values B 0  through B q  correspond to sending modulation symbol S m . Observe that (15) requires joint likelihoods associated with a subset of bits that form a symbol. With symbol interleaving, such information may be available. With bit interleaving, it is reasonable to assume that the bits are unrelated, so that we can approximate (15) with
 
 Pr ( s   k   =S   m )≈ Pr ( b   o   =B   o ) x . . . x Pr ( b   q   =B   q ).  (16)
 
   The decoder  56  feeds back extrinsic information about the modulated bits, which are treated as prior log-likelihood ratios for each bit, i.e., 
                       V   d     ⁡     (     b   j     )       =     log   ⁢           ⁢       Pr   ⁡     (       b   j     =   0     )         Pr   ⁡     (       b   j     =   1     )             ,           (   17   )               
where subscript “d” denotes a decoder  56  output. These can be converted into bit likelihoods using
 
   
     
       
         
           
             
               
                 
                   
                     
                       
                         Pr 
                         ⁡ 
                         
                           ( 
                           
                             
                               b 
                               j 
                             
                             = 
                             0 
                           
                           ) 
                         
                       
                       = 
                       
                         
                           ⅇ 
                           
                             V 
                             ⁡ 
                             
                               ( 
                               
                                 b 
                                 j 
                               
                               ) 
                             
                           
                         
                         
                           1 
                           + 
                           
                             ⅇ 
                             
                               V 
                               ⁡ 
                               
                                 ( 
                                 
                                   b 
                                   j 
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       = 
                       
                         1 
                         
                           1 
                           + 
                           
                             ⅇ 
                             
                               - 
                               
                                 V 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     b 
                                     j 
                                   
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       = 
                       
                         1 
                         - 
                         
                           Pr 
                           ⁡ 
                           
                             ( 
                             
                               
                                 b 
                                 j 
                               
                               = 
                               1 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
             
             
               
                 ( 
                 18 
                 ) 
               
             
           
           
             
               
                 
                   
                     
                       
                         Pr 
                         ⁡ 
                         
                           ( 
                           
                             
                               b 
                               j 
                             
                             = 
                             1 
                           
                           ) 
                         
                       
                       = 
                       
                         
                           ⅇ 
                           
                             - 
                             
                               V 
                               ⁡ 
                               
                                 ( 
                                 
                                   b 
                                   j 
                                 
                                 ) 
                               
                             
                           
                         
                         
                           1 
                           + 
                           
                             ⅇ 
                             
                               - 
                               
                                 V 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     b 
                                     j 
                                   
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       = 
                       
                         1 
                         
                           1 
                           + 
                           
                             ⅇ 
                             
                               V 
                               ⁡ 
                               
                                 ( 
                                 
                                   b 
                                   j 
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       = 
                       
                         1 
                         - 
                         
                           
                             Pr 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   b 
                                   j 
                                 
                                 = 
                                 0 
                               
                               ) 
                             
                           
                           . 
                         
                       
                     
                   
                 
               
             
             
               
                 ( 
                 19 
                 ) 
               
             
           
         
       
     
   
   A block diagram of the symbol likelihood processor  60  is given in  FIG. 5 . Extrinsic information from the FEC decoder  56  is used by the bit probability computer  62  to compute bit probabilities as described in equations (18) and (19). These bit probabilities are provided to the symbol likelihood calculator  64 , which computes symbol likelihood information as described by equation (16). 
   From (10), the mean, correlation, and covariance of the impairment are given by 
                     u   _     k     =       ∑     i   ≠   k       ⁢       h     i   ,   k       ⁢       s   _     i                 (   20   )                 R   k     =         ∑     i   ≠   k       ⁢       ∑     m   ≠   k       ⁢           s   i     ⁢     s   m   *       _     ⁢     h     i   ,   k       ⁢     h     m   ,   k     H           +     C   n               (   21   )                   C   k     =       R   k     -         u   _     k     ⁢       u   _     k   H           ,           (   22   )               
where C n  denotes the covariance of composite noise process n k  in (10). The element of this matrix corresponding to finger delays d 1  and d 2  is given by
 
                       C   n     ⁡     (       d   1     ,     d   2       )       =         N   0     N     ⁢       ∑     m   =     1   -   N         N   -   1       ⁢         C     0   ,   0       ⁡     (   m   )       ⁢       R   p     ⁡     (       d   1     -       d   2     ÷     mT   c         )               ,           (   23   )               
where C i,k (m) is defined in (13). The term  s   i  denotes the mean symbol value, which can be expressed as
 
                       s   _     i     =       ∑     m   =   0       M   -   1       ⁢       Pr   ⁡     (       s   i     =     S   m       )       ⁢     S   m           ,           (   24   )               
where Pr(S i =S m ) is provided by the symbol likelihood computer. The term  s i s* m    is the average of the product of one symbol with the conjugate of another and depends on the joint probability of these symbols. If joint probability information is available, it can be used to determine  s i s* m   .
 
   Typically, joint probability information is not available. However, due to interleaving, it is reasonable to assume the symbols are independent, so that 
                       s   i     ⁢     s   m   *       _     =     {                 s   _     i     ⁢       s   _     m   *             m   ≠   i                        s   i          2     _           m   =   i           ,     
     ⁢   where               (   25   )                          s   i          2     _     =       ∑     m   =   0       M   -   1       ⁢       Pr   ⁡     (       s   i     =     S   m       )       ⁢              S   m          2     .                 (   26   )               
With this assumption, (21) becomes
 
                   R   k     =         ∑     i   ≠   k       ⁢                s   i          2     _     ⁢     h     i   ,   k       ⁢     h     i   ,   k     H         +       ∑     i   ≠   k       ⁢       ∑       m   ≠   k     ,     m   ≠   i         ⁢         s   _     i     ⁢       s   _     m   *     ⁢     h     i   ,   k       ⁢     h     m   ,   k     H           +       C   n     .               (   27   )               
Substituting (20) and (27) into (22) gives
 
   
     
       
         
           
             
               
                 
                   C 
                   k 
                 
                 = 
                 
                   
                     
                       ∑ 
                       
                         i 
                         ≠ 
                         k 
                       
                     
                     ⁢ 
                     
                       
                         ( 
                         
                           
                             
                               
                                  
                                 
                                   s 
                                   i 
                                 
                                  
                               
                               2 
                             
                             _ 
                           
                           - 
                           
                             
                                
                               
                                 
                                   s 
                                   _ 
                                 
                                 i 
                               
                                
                             
                             2 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         h 
                         
                           i 
                           , 
                           k 
                         
                       
                       ⁢ 
                       
                         h 
                         
                           i 
                           , 
                           k 
                         
                         H 
                       
                     
                   
                   + 
                   
                     
                       C 
                       n 
                     
                     . 
                   
                 
               
             
             
               
                 ( 
                 28 
                 ) 
               
             
           
         
       
     
   
   With traditional demodulation, all symbol values are assumed equi-likely. With symmetric signal constellations, this results in  s   i =0. However, with turbo equalization, the decoder can provide side information about symbol likelihoods, which can be treated as prior information. In this situation,  s   i  can be non-zero. With enhanced linear equalization, symbol log-likelihoods are formed for a particular symbol s k , treating information from the decoding unit as prior information about the interfering symbols {s i ;i≠k}. Decoder information regarding s k  is not included to avoid “double counting” such information when feeding the output of the linear equalizer  50  to the decoder  56 . 
   Specifically, the enhanced linear equalizer  50  forms symbol estimates z k  and q k  estimates given by
 
z k =w k   H {tilde over (y)} k   (29)
 
q k =w k   H h k,k   (30)
 
where
 
 {tilde over (y)}   k   =y   k   −ū   k   (31)
 
w k =C k   −1 h k,k .  (32)
 
In (31), an interference estimate ū k  is subtracted from the traffic despread values to form modified traffic despread values. These modified traffic despread values are then combined in (29) to form the symbol estimate.
 
   The vector of combining weights w k  in (29) depends on an impairment covariance matrix and a channel response. The impairment covariance and channel response depend on the spreading codes being used. In addition, the impairment covariance matrix depends on symbol mean and mean-square values (see (28)), which depend on the decoder  56  feedback regarding the interfering symbols (see (24) and (26)). 
   The subtraction of ū k  in (31) may be interpreted as a form of “soft interference cancellation.” Extrinsic information feedback from the decoder  56  unit is used to determine mean symbol values, which are then subtracted from the equalizer&#39;s output to the decoder  56 . 
   A block diagram of one example implementation of the enhanced linear equalizer is shown in  FIG. 6  which includes a generalized Rake receiver. Baseband samples are provided to a finger placement unit  72  which determines where to place Rake fingers in delay based on signal delays and delays useful for interference suppression. These delays determine how to despread the data in the correlation unit  70 . An enhanced weight processor  74  computes combining weights (w) for the delays determined by the finger placement unit  72  using the received samples and overall channel estimates (h&#39;s) from an overall channel estimator  75 . A correlation unit  70  despreads the baseband samples for the delays provided by the finger placement unit. Ultimately, the despread values are combined in a weighted combiner  80  using the combining weights provided by the enhanced weight processor  74  to produce symbol estimates. 
   The enhanced weight processor  74  computes the combining weights for each symbol period and each iteration or pass of the turbo-equalizer according to (32). Symbol likelihood information is also used by weight processor  74  to determine average symbol products according to (26) and (25). These are then used to determine an impairment covariance according to (28). The weight processor  74  also computes an estimate according to (30) if needed. 
   The despread values are provided to a soft interference subtraction unit  76 . The subtraction unit  76  determines average symbol values according (24). These average symbol values are scaled by an overall channel estimate (h&#39;s) provided by the overall channel estimator  75  (see (20)) and subtracted from the despread value according to (31) to form modified despread values. Depending on the form of the values, a different type of operation other than subtraction might be performed to remove the average symbol values. The main point is unit  76  removes the soft interference from the despread values. The modified despread values are combined in a weighted combiner  80  using the combining weights to produce a symbol estimate. 
   Soft interference subtraction/removal can be performed before combining as shown in  FIG. 6 . As these operations are linear, subtraction may be performed after combining. To do this, the soft intererence estimate would be combined first using the combining weights from weight processor  74  to form a combined interference estimate. The despread values from correlation unit  70  would be directly combined in weighted combiner  80  to produce an initial symbol estimate. A final symbol estimate would be generated by subtracting the combined interference estimate from the initial symbol estimate. 
   Further details of the soft interference subtraction unit  76  are described now in conjunction with the function block diagram shown in  FIG. 7 . A combiner unit  77  receives despread values y k  from the correlation unit  70 . The combiner  77 , in accordance with (31), subtracts the interference estimate ū k  to produce modified despread values {tilde over (y)} k . To calculate the interference estimate, an average symbol computer  79  computes a mean symbol value  s   i  in accordance with equation (24) using symbol likelihood information. The mean symbol value is provided to a composite interference estimator  78  which also receives the overall channel estimates h i,k  and generates the interference estimate ū k  in accordance with equation (20). 
   Both the enhanced weight processor  74  and the subtraction unit  76  rely on overall channel estimates, denoted h i,k . A block diagram of the overall channel estimator  75  is shown in  FIG. 8 . Baseband samples are despread in the pilot correlation unit  82 . These pilot despread values are used by the channel estimator  84  to form channel estimates, in essence {tilde over (g)} l  values. In a combiner  86 , these g values are combined with spreading waveform correlation values to produce overall channel estimates (h&#39;s) as described in equation (11). The spreading waveform correlation unit  88  determines spreading waveform correlations R i,k (t) at various lags t. These correspond to auto-correlation values if the spreading waveform is correlated with itself. Otherwise, they are cross-correlation values. The same channel estimates can be stored and reused to compute multiple correlation values. If the number of possible spreading codes is small enough, the correlation values can be precomputed and stored in a table. 
   To reduce complexity, certain approximations may be made that do not impact performance significantly. One approximation is to simplify the combining weight formation. From (32), code cross-correlations are needed to form C k , and code auto-correlations are needed to form h k,k . One approximation is to average one or both of these quantities over the random scrambling used in most systems. 
   First, consider averaging h k,k  over the random scrambling. This simplifies the operation of the overall channel estimator when h k,k  is computed (h i,k  would still be computed as described earlier for the subtraction unit). From (11), assuming k=0, the jth row of h o,o  becomes 
                       h     0   ,   0       ⁡     (   j   )       ≈         h   _       0   ,   0       ⁡     (   j   )         =       ∑     l   =   0       L   -   1       ⁢         g   ~     l     ⁢         R   p     ⁡     (       d   j     -     τ   l       )       .                 (   33   )               
Thus, with respect to  FIG. 8 , the spreading waveform correlation unit  88  would compute average autocorrelation values for the spreading waveform which are simply pulse shape autocorrelation values that can be precomputed and stored.
 
   Next, consider averaging C k  over the random scrambling. In (28), the j 1 th row and j 2 th column of term h i,k h l,k   H  is replaced by 
                   E   ⁢     {         h     i   ,   0       ⁡     (     j   1     )       ⁢         h     i   ,   0       ⁡     (     j   2     )       *       }       =     {                 ∑     l   =   0       L   -   1       ⁢       ∑     q   =   0       L   -   1       ⁢         g   ~     l     ⁢       g   ~     q   *     ⁢       X   1     ⁡     (     l   ,   q     )             ,               i   ′     ⁡     (   i   )       ≠   0                   ∑     l   =   0       L   -   1       ⁢       ∑     q   =   0       L   -   1       ⁢         g   ~     l     ⁢       g   ~     q     ⁢       X   2     ⁡     (     l   ,   q     )             ,               i   ′     ⁡     (   i   )       =   0           ,     
     ⁢   where               (   34   )                   X   1     ⁡     (     l   ,   q     )       =       ∑     m   =     1   -   N         N   -   1       ⁢       (       N   -        m            N   2       )     ⁢       R   p     ⁡     (       t   1     +     mT   c       )       ⁢       R   p   *     ⁡     (       t   2     +     mT   c       )                   (   35   )                   X   2     ⁡     (     l   ,   q     )       =       ∑       m   =     1   -   N       ,     m   ≠   0         N   -   1       ⁢       (       N   -        m            N   2       )     ⁢       R   p     ⁡     (       t   1     +     mT   c       )       ⁢       R   p   *     ⁡     (       t   2     +     mT   c       )                   (   36   )                 t   1     =       d     j   1       -         i   ′     ⁡     (   i   )       ⁢   T     -     τ   l               (   37   )                 t   2     =       d     j   2       -         i   ′     ⁡     (   i   )       ⁢   T     -       τ   q     .               (   38   )               
The symbols can be divided into groups (same symbol period or i′(i) value, different multi-code), which will have the same average outer product term.
 
   When using (33), one is effectively ignoring interference of the symbol with itself, due to imperfect autocorrelation of the spreading waveform. This term can be treated as additional, colored noise. Setting i to zero in (11) gives 
                       h     0   ,   0       ⁡     (   j   )       =       ∑     l   =   0       L   -   1       ⁢         g   ~     l     ⁢       R     0   ,   0       ⁡     (       d   j     -     τ   l       )             ,           (   39   )               
Substituting (12) into (39) and using (33) gives
 
                             h     0   ,   0       ⁡     (   j   )       =       1   N     ⁢       ∑     l   =   0       L   -   1       ⁢         g   ~     l     ⁢       ∑     m   =     1   -   N         N   -   1       ⁢         C     k   ,   1       ⁡     (   m   )       ⁢       R   p     ⁡     (       d   j     -     τ   l     +     mT   c       )                             =           h   _       0   ,   0       ⁡     (   j   )       +         h   _       0   ,   0       ⁡     (   j   )                 ⁢     
     ⁢   where           (   40   )                     h   _       0   ,   0       ⁡     (   j   )       =       1   N     ⁢       ∑     l   =   0       L   -   1       ⁢         g   ~     l     ⁢       ∑       m   =     1   -   N       ,     m   ≠   0         N   -   1       ⁢         C     k   ,   l       ⁡     (   m   )       ⁢       R   p     ⁡     (       d   j     -     τ   l     +     mT   c       )                         (   41   )               
Substituting (40) in (9) gives rise to an additional impairment term {tilde over (h)} 0,0 (j)s 0 , which can be treated as additional, colored noise (folded into C n ). An expression for the covariance due to this term is given by:
 
   
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           R 
                           SI 
                         
                         ⁡ 
                         
                           ( 
                           
                             
                               d 
                               1 
                             
                             , 
                             
                               d 
                               2 
                             
                           
                           ) 
                         
                       
                       = 
                         
                       ⁢ 
                       
                         E 
                         ⁢ 
                         
                           { 
                           
                             
                               
                                  
                                 
                                   
                                     s 
                                     0 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     0 
                                     ) 
                                   
                                 
                                  
                               
                               2 
                             
                             ⁢ 
                             
                               
                                 h 
                                 2 
                               
                               ⁡ 
                               
                                 ( 
                                 
                                   d 
                                   1 
                                 
                                 ) 
                               
                             
                             ⁢ 
                             
                               
                                 h 
                                 2 
                                 * 
                               
                               ⁡ 
                               
                                 ( 
                                 
                                   d 
                                   2 
                                 
                                 ) 
                               
                             
                           
                           } 
                         
                       
                     
                   
                 
                 
                   
                     
                       = 
                         
                       ⁢ 
                       
                         
                           1 
                           
                             N 
                             2 
                           
                         
                         ⁢ 
                         
                           
                             ∑ 
                             
                               l 
                               = 
                               0 
                             
                             
                               L 
                               - 
                               1 
                             
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 q 
                                 = 
                                 0 
                               
                               
                                 L 
                                 - 
                                 1 
                               
                             
                             ⁢ 
                             
                               
                                 
                                   g 
                                   ~ 
                                 
                                 l 
                               
                               ⁢ 
                               
                                 
                                   g 
                                   ~ 
                                 
                                 q 
                                 * 
                               
                               ⁢ 
                               
                                 
                                   ∑ 
                                   
                                     
                                       m 
                                       = 
                                       
                                         1 
                                         - 
                                         N 
                                       
                                     
                                     , 
                                     
                                       m 
                                       ≠ 
                                       0 
                                     
                                   
                                   
                                     N 
                                     - 
                                     1 
                                   
                                 
                                 ⁢ 
                                 
                                   
                                     ( 
                                     
                                       N 
                                       - 
                                       
                                          
                                         m 
                                          
                                       
                                     
                                     ) 
                                   
                                   × 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                         
                       ⁢ 
                       
                         
                           
                             R 
                             p 
                           
                           ⁡ 
                           
                             ( 
                             
                               
                                 d 
                                 1 
                               
                               + 
                               
                                 mT 
                                 c 
                               
                               - 
                               iT 
                               - 
                               
                                 τ 
                                 l 
                               
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           
                             
                               R 
                               p 
                               * 
                             
                             ⁡ 
                             
                               ( 
                               
                                 
                                   d 
                                   2 
                                 
                                 + 
                                 
                                   mT 
                                   c 
                                 
                                 - 
                                 iT 
                                 - 
                                 
                                   τ 
                                   q 
                                 
                               
                               ) 
                             
                           
                           . 
                         
                       
                     
                   
                 
               
             
             
               
                 ( 
                 42 
                 ) 
               
             
           
         
       
     
   
   A further approximation is to simply express C k  as the sum of an interference term and a noise term using standard G-Rake expressions. An additional, iteration-dependent scaling term can be introduced in front of the interference term that is set to 1 for the first pass, then gradually decreases as feedback from the decoder  56  becomes more confident. This gives
 
 C   k   =C=q ( o )C 1   +C   n ,  (43)
 
where q(o) is the scaling term for iteration o. With more confidence in the estimation of the interference cancellation term, the remaining uncertainty decreases. C 1  and C n  may include adaptively-learned scaling factors α and β.
 
   A scaling term can be set to the difference between the mean square value of the modulated symbols assuming equi-probably symbols and the square of the mean value of the modulated symbols based on the symbol likelihoods determined from the decoder. When the decoder is 100% certain of the symbol values, then this difference becomes zero, assuming all possible modulated symbol values appear equally often in the transmitted block. A similar approach may be derived by replacing (  |s i | 2   −  s   i | 2 ) with an average value, averaged over i. Assuming N s  symbols, the scaling term becomes 
                     q   ⁡     (   o   )       =       1     N   s       ⁢       ∑     i   =   0         N   s     -   1       ⁢     (                s   i          2     _     -              s   _     i          2       )           ,           (   44   )               
where the probabilities used to generate  |s i | 2    and  s   i  are taken from iteration o−1.
 
   The scaling term may be simplified to unity for the first pass and zero for the second pass. Alternatively, a fixed table of terms as a function of iteration can be used (e.g., 1, 0.8, 0.5). It may also be acceptable to leave the scaling term as unity for all passes. In any case, feedback from the decoder  50  is then only used for soft interference subtraction. Also, if only one or two weight vectors are considered, these can be applied separately to the data and interference cancellation term. While the latter must be performed each iteration, the first can be stored and reused. 
   Other approximations may also be used. For example, an M-algorithm approach may be used to avoid computing all conditional likelihoods. In the first pass, there is no decoder feedback. In this case, it is reasonable to assume equilikely symbol values. In addition, if the modulation scheme is symmetric in the complex plane, then  s   i =0. This simplifies the mean and covariance of the impairment to 
                     u   _     k     =   0           (   45   )                 C   k     =         ∑     l   ≠   k       ⁢       h     l   ,   k       ⁢     h     i   ,   k     H         +       C   n     .               (   46   )               
The equalizer becomes a code-specific G-Rake in this case. Other forms of first pass demodulation can be used, such as conventional G-Rake reception or chip equalization. The bit demodulator  52  takes the symbol and q k  estimates from the enhanced linear equalizer  50 , symbol likelihood information from the symbol likelihood processor  60 , and extrinsic information from the decoder  56  and produces soft modulated bit estimates. A Log-MAP approach is a preferred example approach.
 
   For a particular bit b i , in the set of bits that s k  represents, we can divide the possible symbol values into two sets, set Q 0 (i) corresponding the ith bit being 0 (+1) and Q 1 (i) corresponding the ith bit being 1 (−1). Then, the likelihood ratio for that bit is given by 
                     LR   ⁡     (     b   i     )       =         ∑     m   ∈       Q   0     ⁡     (   i   )           ⁢       exp   ⁡     [     U     m   ,   k       ]       ⁢     Pr   ⁡     (       s   k     =     S   m       )               ∑     m   ∈       Q   1     ⁡     (   i   )           ⁢       exp   ⁡     [     U     m   ,   k       ]       ⁢     Pr   ⁡     (       s   k     =     S   m       )               ,     
     ⁢   where           (   47   )                 U     m   ,   k       =       2   ⁢   Re   ⁢     {       S   m   *     ⁢     z   k       }       -              S   m          2     ⁢     q   k                 (   48   )               
is a symbol metric.
 
   The term Pr(s k =S m ) in (47) is computed from the feedback concerning the bits that comprise s k  as described earlier. All the feedback information is used in computing this term. An adjustment is made in bit demodulator  52  so that double counting is avoided in second and subsequent passes. Also, it is more convenient for the bit estimate to be given in log form. Taking the log of (47), including the adjustment, and adding index o to clarify iteration number gives 
                       V   e     ⁡     (       b   1     ,   o     )       =       log   ⁢     (       ∑     m   ∈       Q   0     ⁡     (   i   )           ⁢       exp   ⁡     [     U     m   ,   k       ]       ⁢     Pr   ⁡     (       s   k     =     S   m       )           )       -     log   (       ∑     m   ∈       Q   1     ⁡     (   i   )           ⁢       exp   ⁡     [     U     m   ,   k       ]       ⁢     Pr   ⁡     (       s   k     =     S   m       )           )     -       V   d     ⁡     (       b   1     ,     o   -   1       )           ,           (   49   )               
where subscript “e” denotes information based on the equalizer output.
 
   If desired, a dual max approximation may be used to approximate (49) as
 
 V   e ( b   i   ,o )≈max mεQo(i)   {U   m,k ÷log [ Pr ( s   k   =S   m )]}−max mεQ1(i)   {U   m,k ÷log [ Pr ( s   k   =S   m )]}− V   d ( b   i   ,o− 1).  (50)
 
Other standard approaches can also be used.
 
   A block diagram of the bit demodulator  52  is shown in  FIG. 9 . Symbol estimates and q k  estimates are provided from the enhanced linear equalizer  50 . A symbol metric computer  90  uses these inputs to form symbol metrics as described in equation (48). These symbol metrics are provided to a bit log-likelihood ratio (LLR) computer  92 . Extrinsic information from the decoder  56  is also provided to the bit LLR computer  92 . The bit LLR computer  92  uses these inputs to produce modulated bit estimates as described in (49) or (50). 
   With QPSK modulation, the second term in (48) becomes hypothesis independent. Omitting this term gives
 
U m,k =2Re{S* m z k }  (51)
 
The LLR for the in-phase (I) bit can be shown to be
 
LLR( b   l )=4 Re{z   k }.  (52)
 
Similarly, the quadrature (Q) bit can be recovered by taking the imaginary part, rather than the real part, in (52). The factor “4” is a fixed scaling that can be omitted in (52) for decoders insensitive to a common scaling factor, which is usually the case. In this case, the bit demodulator can be much simpler. Input from the symbol likelihood processor  60  and input from the decoder  56  are not needed. Also, the symbol metric computer  90  is not required. The bit LLR computer  92  can simply use the symbol estimates from the enhanced linear equalizer  50  to compute bit estimates according to (52) and its counterpart for the Q bit.
 
   One way to address BPSK is to treat it as QPSK and just recover the in-phase bit. This assumes that the impairment is circular. When the number of symbols that significantly contribute to ISI is small, this may not be a good approximation. In that case, the impairment can be treated as non-circular, and the in-phase and quadrature receive components are treated as separate, real input signals. With higher-order modulation, there is often symmetries that can be used to simplify symbol likelihood calculation and other operations. See, for example, commonly-assigned U.S. patent application Ser. No. 10/746,434 entitled, “Fast soft value computation methods for Gray-mapped QAM,” filed Dec. 24, 2003, incorporated here by reference. 
   With traditional MAP or MLSE decoding, the soft bits provided by the demodulator are used to determine the information bit likelihoods or information sequence likelihoods. With turbo equalization, the decoder  56  must also generate likelihood ratios associated with the modulated bits. An adjustment occurs, so that the input soft values are subtracted from the modulated bit log-likelihood ratios generated by the decoder to capture only the information learned from the decoding process. The resulting extrinsic information is then fed back to the demodulation process. Such a decoder can be designed for a variety of codes, including turbo codes, LDPC codes and convolutional codes. There is added complexity to compute the modulated bit log-likelihood ratios. When the decoder  56  is a turbo-decoder or LDPC decoder, it may be important how many iterations (“passes”) of turbo-decoding are performed before feeding back information to the equalizer. The preferred approach is to run each constituent decoder through only one pass, although multiples passes may be used. This prevents the decoder from locking onto an incorrect solution too early in the turbo-equalization process. 
   Example embodiments where the decoder  56  is a turbo-decoder are now presented. A first example embodiment of a turbo-decoder  56 ′ shown in  FIG. 10  uses a serial approach to component code decoding. De-interleaved modulated bit estimates from the de-interleaver (DI)  54  are provided to a demultiplexing and de-rate-matching unit  94 . Unit  94  splits the bit estimates into three streams corresponding to the systematic (the information bits), parity  1  (P 1 ) and parity  2  (P 2 ) streams of the turbo encoder in the transmitter  11 . De-rate-matching is also performed, which involves depuncturing and/or de-repeating (combining repeats). 
   The systematic bits and the parity  1  bits are provided to a first soft decoder  1  ( 96 ), which performs decoding on component  1  of the turbo code. Soft decoder  1  produces likelihood information concerning the modulated bit estimates using standard approaches. The parity  1  likelihood values associated with the P 1  bits are adjusted in adjust unit  1  ( 98 ) to produce extrinsic information for the parity  1  bits. For example, when quantities are expressed in terms of log-likelihood ratios, then the adjust unit  98  subtracts the parity  1  inputs to the decoder  56 ′ from the corresponding parity  1  outputs of the decoder  96  to produce the extrinsic values. 
   The likelihood information corresponding to the systematic bits is provided to an interleave unit (I unit)  100 , which interleaves the bits according to the transmission interleaving scheme to produce interleaved soft systematic bit values. These values, along with parity  2  values, are provided to a soft decoder  2  ( 104 ). Soft decoder  2  performs decoding on component  2  of the turbo code and produces soft information concerning modulated bits. These values are adjusted in adjust unit  2  ( 106 ) and adjust unit  3  to produce extrinsic information for both the systematic and parity  2  bits, respectively. The output systematic bits are adjusted by systematic bits that have been interleaved by an I unit  102 . 
   The extrinsic information for the systematic bits are de-interleaved in the DI unit  110 . These de-interleaved extrinsic values for the systematic bits, the extrinsic values for the parity  1  bits, and the extrinsic values for the parity  2  bits are provided to the multiplexer and rate-matching unit  112 . Unit  112  multiplexes the three streams together and performs rate matching (puncturing and repeating) as needed. Though not shown, after the last decoder operation, the decoder  56 ′ produces standard outputs corresponding to the information bits. Extrinsic modulated bit information need not be produced then. 
   A second example embodiment of a turbo-decoder  56 ″ is shown in  FIG. 11  which uses a parallel approach to component code decoding. De-interleaved modulated bit estimates from the de-interleaver (DI)  54  are provided to the demultiplexing and de-rate-matching unit  94 . The systematic bits and the parity  1  bits are provided to soft decoder  1 , which performs decoding on component  1  of the turbo-code and produces soft information concerning the modulated bits using standard approaches. These soft values are adjusted in adjust unit ( 98 )  1  and a new adjust unit  4  ( 116 ) to produce extrinsic information for the parity  1  and partial extrinsic information for the systematic bits. Soft decoder  2  performs decoding on component  2  of the turbo code and produces soft information concerning modulated bits. These values are adjusted in adjust units  2  and  3  to produce extrinsic information for the parity  2  and partial extrinsic information for the systematic bits. The partial extrinsic information for the systematic bits are de-interleaved in the DI unit  110  and added to the partial extrinsic information for the systematic bits from adjust unit  4  in combiner  114  to produce extrinsic information for the systematic bits. The extrinsic information for the systematic bits from combiner  114 , the extrinsic information for the parity  1  bits from adjust  1 , and the extrinsic information for the parity  2  bits from adjust  3  are provided to the multiplexer and rate-matching unit  112 . Unit  112  multiplexes the three streams together and performs rate matching (puncturing, repeating) as needed. Again, though not shown, the last pass of the decoder  56 ″ produces standard outputs corresponding to the information bits. Extrinsic modulated bit information does not need to be produced this last pass. The last pass of the decoder  56 ,  56 ′, and  56 ″ depends on the stopping criterion. Standard criterion can be used, such as a fixed number of iterations or an error detection criterion such as a CRC check. It is preferred that only one pass of the decoder be performed to avoid locking onto an incorrect solution early in the process. 
   A flowchart of general operations for the turbo-equalizer  18  is shown in  FIG. 12 . An initial step S 1 , the received signal is demodulated, and soft bit estimates are determined. Any suitable equalization technique can be used to perform this first step; G-Rake can, but need not, be used. The soft bit estimate values are de-interleaved in step S 2 . Decoding operations in the decoder are used to produce modem bit extrinsic information and information bit decisions in step S 3 . A decision is made in step S 4  whether this is the last pass of decoder  56 . If this is the last decoder pass, decoding operations are performed to produce coded information bits in step S 5 . If not, interleaving of modem bit extrinsic information is performed in step S 6  and symbol likelihood information is produced in step S 7 . Enhanced, symbol-level, linear equalization is performed using the symbol likelihood information in step S 8 . This enhanced linear equalization includes removing interference using the symbol likelihood information. Soft bit estimates are determined including adjustment using modem bit extrinsic information provided from the decoder  56  in step S 9 . Control returns to the de-interleaving in step S 3 . 
   A single, multi-code user signal received in the presence of composite noise has been assumed. One extension is to express the composite noise covariance term as the sum of white and colored noise terms. In the uplink, this could model another high-rate user or some other form of interference. In the downlink, this could model other own-cell users or other-cell interference. For example, for the case of only one colored-noise term, C n  can be replaced with C n +C 1 . 
   Multiple receive antennas can also be considered. Most of the equations remain the same if a Rake finger has both a delay and an antenna associated with it. Some of the specific equations need to be extended, but this is well understood. Multiple transmit antennas, such as open or closed-loop transmit diversity in the downlink can also be considered. The extension is straightforward based on how G-Rake was extended to handle these situations. 
   While simpler than nonlinear equalization, the linear form does require spreading code knowledge to compute combining weights and an interference cancellation term. Due to the use of long scrambling sequences, these quantities are recomputed every symbol period. In addition, during the turbo equalization process, these quantities should be recomputed every iteration. It may be reasonable to approximate the solution by forming combining weights that don&#39;t directly depend on symbol likelihoods. 
   Although various embodiments have been shown and described in detail, the claims are not limited to any particular embodiment or example. None of the above description should be read as implying that any particular element, step, range, or function is essential such that it must be included in the claims scope. The scope of patented subject matter is defined only by the claims. The extent of legal protection is defined by the words recited in the allowed claims and their equivalents. No claim is intended to invoke paragraph 6 of 35 USC §112 unless the words “means for” are used.