# Patent

## Title
Iterative MMSE equalization-decoder soft information exchange decoding method and device

## Abstract

A method and device employing an iterative MMSE equalization-decoder soft information exchange decoding. The method uses a MMSE equalizer which receives and outputs soft information. The equalizer exchanges soft information with a soft input soft output decoder, preferably an error correction decoder. The nature of the equalizer permits solutions beyond one-dimensional data streams and permits solutions for long channel lengths and multi-dimensional data since the solution is not a function of the channel impulse response.

## Background
FIELD OF THE INVENTION
The present invention concerns the field of decoding of information symbols received over a channel.
BACKGROUND OF THE INVENTION
Information symbols are transmitted over channels in most information, storage and communication devices. The channel can comprise, for example, a wired or wireless communication link between a transmitter or receiver, or an information path within a disk drive. More generally, any information path of limited bandwidth through which digital signals are transmitted may be defined as a channel. Such channels are subject to various types of distortion, e.g., additive noise and intersymbol interference. These distortions limit the data rate efficiencies for communication over such channels. Accordingly, much effort has been devoted to reducing the effect of such distortions in the channels. The obvious end goal is to decode symbols accurately. More specifically, the goal is to have low decoding error rates. A second and conflicting goal is to increase the ratio of data symbols to total channel symbols transmitted, i.e., the data rate.
Recent focus for joint equalization and decoding has been on iterative decoding schemes, and in particular, turbo coding schemes. These schemes are confidence building schemes in which an equalizer and decoder trade soft information in the form of symbol estimates until convergence is reached and hard decisions for symbols are output. These iterative schemes treat the channel contribution like an error correction code. The data symbols are generally permuted before transmission and are typically protected with a convolutional error correcting code. On the decoding side, soft information is exchanged between an error correction decoder and a channel decoder. However, all current implementations of these soft information exchange schemes use a forward/backward, Viterbi, or similar decoding algorithm for the decoding function. Specific examples are the forward/backward and soft output Viterbi algorithm for convolutional codes. In such decoding schemes, the complexity of the decoder is a design choice, but the complexity of a trellis based equalizer is a function of the length of the channel impulse response. This limits practical usefulness of the conventional decoding schemes to a class of channels having reasonably short impulse response lengths or small signal constellations.
The complex nature of conventional equalizing schemes in soft input exchange methods and devices also places certain physical limitations on devices which rely on such methods and devices for channel decoding. For example, there exist no solutions beyond one dimension for forward/backward and Viterbi algorithms. This dictates a one dimensional data stream, such as the stream obtained by a magnetic disk drive head or an optical disk drive. There is no significant physical reason for restriction to one-dimensional streams of data, but an as yet insurmountable hurdle for extension to higher dimensions is the lack of higher dimensional forward/backward and Viterbi algorithms. A decoding method with multi-dimensional decoding capability would free devices from the requirement of creating a one dimensional stream of data. For example, two dimensional regions of disk drives could be read simultaneously if two dimensional channel decoding is supported. The forward/backward and Viterbi algorithms used for data decoding are unable to handle the multidimensional task since multidimensional solutions are unknown.
Accordingly, there is a need for an improved method for decoding data received over a potentially noisy channel which addresses some or all of the aforementioned drawbacks. It is an object of the invention to provide such an improved method.
SUMMARY OF THE INVENTION
These and other needs and objects are met or exceeded by the present iterative MMSE equalization-decoder soft information exchange decoding method and device. The method uses a MMSE equalizer which receives and outputs soft information. The equalizer exchanges soft information with a soft information decoder. The simple nature of the equalizer permits solutions beyond one-dimensional data streams and for channels of arbitrary length and for signal constellations of arbitrary size.



BRIEF DESCRIPTION OF THE DRAWING
Other features, objects and advantages of the invention will be apparent to artisans from the detailed description and the FIGURE, which is a block diagram of a data communication system including an iterative MMSE equalization-decoder for soft information exchange decoding.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The invention is directed to a method for data recovery by confidence building. The invention is applicable, for example, to communications, telephony, recording, data transmission, and restoration. For example, even when the data has not been protected by an error correcting code, there may be other opportunities for confidence building decoders to operate. Suppose that the data were transmitted over multiple channels to the same receiver. This might arise when a preferred user in a cellular telephone system was given two or more cellular phone channels (for example multiple time-slots in a time-division multiple access scheme, multiple frequency slots in a frequency-division multiple access, or multiple spreading codes in a code division multiple access scheme), it might include storing the information on a data recording device multiple times (modular redundancy), or a receiver that has multiple antennas which can receive the same data at multiple locations. According to the invention, even without error correction coding, a confidence building data recovery system may be constructed, in which equalizers for each of the different channels exchange their beliefs, or estimates, of the data, until a consensus is achieved. A typical and more general case arises when there is one or multiple channels over which data is sent, and the data is protected by an error correction code, likely different for each channel, before being sent over each channel.
The generality of the confidence building data recovery method of the invention will be apparent to artisans. The method will be illustrated with reference to an error correction coded communication channel. An exemplary communication system including such a channel is shown in FIG. 1.
For simplicity, we consider transmission of binary digits bi using a Binary Phase Shift Keying (BPSK) modulation scheme. Artisans will understand that the invention is readily generalized to other modulation schemes. We assume that the bits bi are encoded in a forward error correction code C (typically a convolutional code), by an encoder 10, and that the bit stream is permuted by a suitable (e.g. random) interleaver 12 before the transmission.
The encoded symbols are denoted ãi. II is a permutation of the bits ãi. The transmitted signal may be expressed as 



  
    s
    ⁡
    
      (
      t
      )
    
  
  =
  
    
      ∑
      i
    
    ⁢
    
      
        b
        i
      
      ⁢
      
        
          h
          s
        
        ⁡
        
          (
          
            t
            -
            
              i
              ⁢
              
                
              
              ⁢
              T
            
          
          )
        
      
      ⁢
      
        exp
        ⁡
        
          (
          
            j
            ⁡
            
              (
              
                
                  2
                  ⁢
                  π
                  ⁢
                  
                    
                  
                  ⁢
                  
                    f
                    0
                  
                  ⁢
                  t
                
                +
                
                  φ
                  o
                
              
              )
            
          
          )
        
      
    
  




where fo is the carrier frequency and φ0 is a constant angle. The received signal equals 



  
    
      x
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        
          ∑
          i
        
        ⁢
        
          
            b
            i
          
          ⁢
          
            
              h
              s
            
            ⁡
            
              (
              
                t
                -
                
                  i
                  ⁢
                  
                    
                  
                  ⁢
                  T
                
              
              )
            
          
          ⁢
          
            exp
            ⁡
            
              (
              
                j
                ⁡
                
                  (
                  
                    
                      2
                      ⁢
                      π
                      ⁢
                      
                        
                      
                      ⁢
                      
                        f
                        0
                      
                      ⁢
                      t
                    
                    +
                    
                      φ
                      1
                    
                  
                  )
                
              
              )
            
          
        
      
      +
      
        w
        ⁡
        
          (
          t
          )
        
      
    
  
  ,




where φ1 is a constant angle and w(t) is an additive noise term. In addition to intersymbol interference, a channel 16 typically also adds a noise component. The signal x(t) is demodulated, passed through a receiving filter and sampled leading to the equivalent discrete-time model of the communication link which is depicted in FIG. 1. 



  
    
      x
      ⁡
      
        [
        u
        ]
      
    
    =
    
      
        
          ∑
          i
        
        ⁢
        
          
            b
            i
          
          ⁢
          
            h
            ⁡
            
              [
              
                n
                -
                i
              
              ]
            
          
        
      
      +
      
        w
        ⁡
        
          [
          n
          ]
        
      
    
  
  ,




where h[j] are the sampled values of the overall impulse response of the communication system.

A discrete-time model of the channel 16 with intersymbol interference and additive noise wn is described as 



  
    x
    ⁡
    
      [
      n
      ]
    
  
  =
  
    
      
        b
        n
      
      ⁢
      
        h
        ⁡
        
          [
          0
          ]
        
      
    
    +
    
      w
      ⁡
      
        [
        u
        ]
      
    
    +
    
      
        ∑
        
          i
          ≠
          n
        
      
      ⁢
      
        
          b
          i
        
        ⁢
        
          
            h
            ⁡
            
              [
              
                n
                -
                i
              
              ]
            
          
          .
        
      
    
  




where the term 



  
    ∑
    
      i
      ≠
      n
    
  
  ⁢
  
    
      ∑
      i
    
    ⁢
    
      
        b
        i
      
      ⁢
      
        h
        ⁡
        
          [
          
            n
            -
            i
          
          ]
        
      
    
  




is usually referred to as intersymbol-interference.

We note that the received sampled signal x[n] is a noisy version the convolution of the bit-sequence with the overall impulse response. In particular, for a finite length impulse response h[j] the sequence x[n] can be represented as a noisy output of a Markov process. The task of estimating symbols bi in the absence of a coding constraint is referred to as equalization. The invention concerns joint decoding and equalization of the bit-stream x[n] in an iterative decoder 20 having a soft MMSE equalizer 22 exchanging information with a soft decoder 24.
It is well known how to optimally estimate bn from the sequence x[n] using the so-called forward/backward algorithm. However, the complexity of this approach is usually impractical because the complexity is essentially the product of the complexities of an optimal decoding procedure and an optimal equalization only procedure. The complexity of an optimal equalization only procedure grows exponentially in the length of the overall impulse response, which, for practical channels with impulse response lengths in the tens to hundreds, is infeasible.
Iterative (Turbo) decoding and equalization uses at least two soft input/soft output (SISO) devices that communicate information. A SISO equalizer takes as input the received sequence x[n] and some additional information about the symbol sequence bi. This additional information could for example be a prior probability on the bits. The SISO equalizer produces a soft estimate of the symbols. This soft output could for example be a probability mass function indicating the likelihood of any symbol bi being equal to 0 or 1.
A second SISO block performs the decoding of the estimated bit sequence with respect to the code. In other words the soft input decoder takes as input reliability information (typically a probability mass function) and produces as soft output a probability mass function indicating the likelihood of any symbol bi being equal to 0 or 1. The input reliability information for the equalizer (decoder) is denoted πinE(πinD). The output of the devices is denoted as πoutE(πoutD). For an overall channel impulse response h[j], let the received values x[n] and reliability vectors πin [n] n=1 . . . N be given. Without loss of generality we assume that 0≦πin[j]≦1 for all jε{0 . . . N}. (The πin [j] can be thought of as prior probabilities).
We define a SISO equalizer mathematically as a device that performs an equalization function eq: ×[0,1]N→[0,1]N eq(y, πinE)πoutE, where πoutE can be thought of as a vector of a posteriori probabilities.
Similarly, we mathematically define an SISO decoder as a device that performs a decoding function dec: [0,1]N→[0,1]N dec (πinD)πoutD, where πoutD can be thought of as a vector of a posteriori probabilities.
The main idea of conventional iterative joint equalization and decoding is to let the two SISO blocks exchange information until they agree on a decision or until a maximal number of iterations is reached. As soon as the predetermined termination criterion is satisfied, the output and the input of the SISO decoder are combined in order to form a soft combined equalization decoding decision. If desired, a hard decision on any symbol can be derived from this soft value.
Typically after a suitable number of iterations the output of the joint equalizer decoder is formed by multiplying the values of the likelihood ratios πinD/(1−πinD) and πoutD/(1−πoutD).
In order to achieve good performance in such an iterative scheme, a permutation is included in the data path, which spreads out statistical dependencies between estimates. The exchange between decoder and equalizer establishes an inherent feedback loop. It is important that this feedback be mitigated as much as possible. We say that an equalizer (decoder) is well-behaved if πoutE[j] is not a function of πinE[j] (πoutD[j] is not a function of πinE[j]).
We now can describe the iterative equalization/decoding scheme in the following algorithm:
1. INPUT: A permutation Π, a vector of received values y, and prior information about the symbols expressed as a vector of probabilities πinE(πinE is usually a vector containing a value 0.5 in each position.)
2. Repeat the following steps until a termination criterion is reached.

    
    
        (a) πoutE=eq(y, πinE)
        (b) in πinD=Π−1(πoutE)
        (c) πoutD=dec(πinD)
        (d) πinE=Π(πoutD)
        (e) If the termination criterion is not satisfied go to step 2a.
        3. OUTPUT hard decisions for symbol bi comparing 



  
    
      
        π
        out
        D
      
      ⁡
      
        [
        i
        ]
      
    
    ⁢
    
      
        π
        
          i
          ⁢
          
            
          
          ⁢
          n
        
        D
      
      ⁡
      
        [
        i
        ]
      
    
  
  
    
      (
      
        1
        -
        
          
            π
            out
            D
          
          ⁡
          
            [
            i
            ]
          
        
      
      )
    
    ⁢
    
      (
      
        1
        -
        
          
            π
            
              i
              ⁢
              
                
              
              ⁢
              n
            
            D
          
          ⁡
          
            [
            i
            ]
          
        
      
      )
    
  




to 1.

    
    


Iterative joint equalization and decoding schemes can be compared on the basis of the above algorithm and various combinations of decoding functions and equalization functions have been reported on. As decoding functions we explicitly mention the forward-backward and the SOVA algorithm for convolutional codes. Adaptations of these algorithms have been employed in the equalizer function. However, while the complexity of the decoder is a design issue, the complexity of a trellis based equalizer is based on the length of the channel impulse response. This severely hampers practical use of iterative equalization decoding techniques based on the turbo principle. For channels with long impulse responses, the exclusively used equalization techniques are either linear equalization or decision feedback techniques without use of the decoder in the equalization process. The invention solves this problem by providing an equalization algorithm independent of the length of the channel impulse response that can be used in iterative decoding. In particular, a minimum mean square error equalizer is demonstrated by the invention to facilitate joint decoding and equalization. The iterative technique of the invention is applicable to channels with a short or long impulse response, and with small or large signal constellations.
Let b[n] be a sequence of symbols that have been transmitted through a communications channel, such as a wireless or wireline data link, or recorded onto some data recording medium, such as an optical ROM or magnetic disk or tape. A linear, equivalent base-band model for the received (or read-back) sequence of symbols is given by 



  
    
      x
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        
          ∑
          
            k
            =
            
              -
              
                L
                1
              
            
          
          
            L
            2
          
        
        ⁢
        
          
        
        ⁢
        
          
            h
            ⁡
            
              [
              k
              ]
            
          
          ⁢
          
            b
            ⁡
            
              [
              
                n
                -
                k
              
              ]
            
          
        
      
      +
      
        w
        ⁡
        
          [
          n
          ]
        
      
    
  
  ,




where h[k] is the length L1+L2+1 impulse response of the channel, and w[n] is an additive noise term modeling electrical and thermal fluctuation and undmodeled components of the channel. This generic linear model is a widely accepted mathematical model for the distortions induced on a sequence of symbols both in communications and data storage applications. A linear equalizer for this channel can be used to attempt to reduce the effects of the intersymbol interference and the additive noise induced by the channel. A linear (affine) equalizer with coefficients c[n, k] and offset g[n] and symbol estimate {circumflex over (b)}[n] can be expressed in the form 



  
    
      
        b
        ^
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        
          ∑
          
            k
            =
            
              -
              
                N
                1
              
            
          
          
            N
            2
          
        
        ⁢
        
          
        
        ⁢
        
          
            c
            ⁡
            
              [
              
                n
                ,
                k
              
              ]
            
          
          ⁢
          
            x
            ⁡
            
              [
              
                n
                +
                k
              
              ]
            
          
        
      
      +
      
        g
        ⁡
        
          [
          n
          ]
        
      
    
  
  ,




where the equalizer coefficients are written as a function n to enable the possibility of different coefficients used to estimate each symbol {circumflex over (b)}[n], and the offset g[n] provides a richer class of linear estimates which can account for a non-zero mean prior. The channel model can be written in matrix form as

{right arrow over (x)}[n]=H{right arrow over (b)}[n]+{right arrow over (w)}[n], 

where the channel response matrix, H, is given by 



  
    [
    
      
        
          
            h
            ⁡
            
              [
              
                L
                2
              
              ]
            
          
        
        
          
            h
            ⁡
            
              [
              
                
                  L
                  2
                
                -
                1
              
              ]
            
          
        
        
          ⋯
        
        
          
            h
            ⁡
            
              [
              
                -
                
                  L
                  1
                
              
              ]
            
          
        
        
          0
        
        
          ⋯
        
        
          0
        
      
      
        
          0
        
        
          
            h
            ⁡
            
              [
              
                L
                2
              
              ]
            
          
        
        
          
            h
            ⁡
            
              [
              
                
                  L
                  2
                
                -
                1
              
              ]
            
          
        
        
          ⋯
        
        
          
            h
            ⁡
            
              [
              
                -
                
                  L
                  1
                
              
              ]
            
          
        
        
          ⋯
        
        
          0
        
      
      
        
          
            
          
        
        
          
            
          
        
        
          
            
          
        
        
          ⋮
        
        
          
            
          
        
        
          
            
          
        
        
          
            
          
        
      
      
        
          0
        
        
          ⋯
        
        
          0
        
        
          
            h
            ⁡
            
              [
              
                L
                2
              
              ]
            
          
        
        
          
            h
            ⁡
            
              [
              
                
                  L
                  2
                
                -
                1
              
              ]
            
          
        
        
          ⋯
        
        
          
            h
            ⁡
            
              [
              
                -
                
                  L
                  1
                
              
              ]
            
          
        
      
    
    ]
  
  ,




and the signal vectors are given by

{right arrow over (x)}=[n]=[x[n−N1 . . . x[n] . . . x[n+N2]]T,

{right arrow over (b)}[n]=[b[n−N1−L2] . . . b[n] . . . b[n+N2+L1]]T,

{right arrow over (w)}[n]=[w[n−N1] . . . w[n+N2]]T.

The equalizer output can also be expressed in matrix form, simply as

{circumflex over (b)}[n]={right arrow over (c)}[n]T{right arrow over (x)}[n]+g[n], 

where the equalizer coefficients c[n,k] are written

{right arrow over (c)}[n]=[c[n, −N1], . . . , c[n, N+2]].

With this channel model, the mean-square error of a symbol estimate b[n] based on the estimate {circumflex over (b)}[n] is given by

E{|b[n]−{circumflex over (b)}[n]|2},  (2)

where the expectation is taken over the distribution of the symbols b[n] and the noise w[n]. In the conventional traditional approach to the design of complexity-constrained (finite N1 and N2) minimum mean-square error (MMSE) linear equalizers, it is assumed that the symbols b[n] are equally likely to take on all possible symbol values, and that there is no additional information about their values available. The conventional equalizer is determined by finding the coefficient values {right arrow over (c)}[n] and g[n] which minimize the mean squared error (2), which, since the symbols are assumed unknown and equally likely for all time n leads to a single set of coefficients, {right arrow over (c)}, and the offset is given by g[n]=0.

According to the invention, the equalizer 22 implements an equalization algorithm which has available a set of priors over the symbols. For example, if the symbol alphabet is binary, then this would correspond to the availability of the sequence TE πinE=Prob {b[n]=1}. In the sequel, we assume that the channel response h[n] is real and that the symbol alphabet is b[n]ε{−1, 1} for simplicity. Extension to complex baseband channels and higher-order symbol constellations is straightforward. In this case, the MMSE equalizer 22 can be designed incorporating these priors into the optimization. Hence, the equalizer coefficients, {right arrow over (c)}[n] and g[n] can be determined by finding the minimum of the mean-squared error (2), where the expectation in (2) is over both the additive noise in the channel, and the given (time-varying) prior over the symbols. As a result, the equalizer coefficients will vary with time index, n. This leads to the following formulation,

{circumflex over (b)}[n]=E{b[n]}+[E{b[n]{right arrow over (b)}[n]}HT−E{b[n]}E{{right arrow over (b)}[n]T}HT][HE{{right arrow over (b)}[n]{right arrow over (b)}[n]T}HT+E{|w[n]|2}I −HE{{right arrow over (b)}[n]}E{{right arrow over (b)}[n]T}HT]−1({right arrow over (x)}[n]−HE{{right arrow over (b)}[n]}). 

Once the equalizer has produced MMSE linear estimates of the symbols {circumflex over (b)}[n], these estimates must be mapped into priors πoutE. One method for mapping the outputs of the linear equalizers is to assume the output distribution {circumflex over (b)}[n] is conditionally Gaussian, distributed about the symbol values. This leads to the following mapping 



  
    
      Prob
      ⁢
      
        {
        
          
            b
            ⁡
            
              [
              n
              ]
            
          
          =
          
            1
            ❘
            
              
                b
                ^
              
              ⁡
              
                [
                n
                ]
              
            
          
        
        }
      
    
    =
    
      
        1
        2
      
      ⁢
      
        (
        
          1
          +
          
            tanh
            ⁡
            
              (
              
                
                  
                    b
                    ^
                  
                  ⁡
                  
                    [
                    n
                    ]
                  
                
                
                  σ
                  
                    b
                    ^
                  
                  2
                
              
              )
            
          
        
        )
      
    
  
  ,




where σ{circumflex over (b)}2 is the variance of the conditional output distribution given the symbol {circumflex over (b)}[n]=sign ({circumflex over (b)}[n]). In order for this equalizer to be considered well-behaved, the estimate {circumflex over (b)}[n] cannot be a function of πinE[n]. Hence, the expectations must be taken over a distribution of the symbols which excludes πinE[n] for the calculation of {circumflex over (b)}[n]. However, in calculating {circumflex over (b)}[k], k≠n, πinE[n] may be used. This leads to the following method for computing the output distribution given the observations, x[n] and the input distribution πINE.

Create Buffers

1. Create buffers for the priors, the signal x[n], the expectations {right arrow over (bb)}[n]=E{b[n]{right arrow over (b)}[n]}, the correlation matrix B[n]=E{{right arrow over (b)}[n]{right arrow over (b)}[n]T}, and the means {right arrow over (mb)}[n]=E{{right arrow over (b)}[n]}

    
    
        {right arrow over (π)}(n)Δ[π(n)[−N1−L2], . . . , π(n)[0], . . . , π(n)[N2+L1]]T 
        {right arrow over (x)}(n)Δ[x(n)[−N1], . . . , x(n)[0], . . . , x(n)[N2]]T 
        {right arrow over (bb)}(n)Δ[bb(n)[−N1−L2] . . . , bb(n)[0], . . . bb(n)[N2]]T=[0, . . . 0, 1, 0, . . . , 0]T 
    
    


2. Initialize buffers for priors {right arrow over (π)}(n) and data {right arrow over (x)}(n), in terms of the signal x[n] and the input πINE.

    
    
        {right arrow over (x)}(0)=[0, 0, . . . , x[0], x[1], . . . , x[N2]]T 
        {right arrow over (π)}(0)=[0, 0, . . . , 0, πINE[0], πINE[1], . . . , πINE[N2+L1]]T 
    
    


3. Loop over the data for n=0, . . . , N:

    
    
        π(n)[0]=1⁄2
        {right arrow over (mb)}(n)=2{right arrow over (π)}(n)−1
        diag(B)=diag (1, 1, . . . , 1)
        {right arrow over (c)}[n]=[H (B−{right arrow over (mb)}(n){right arrow over (mb)}(n)T) HT+σw2I]−1H {right arrow over (bb)}(n) 
        {circumflex over (b)}[n]={right arrow over (mb)}(n)+{right arrow over (c)}(n)T({right arrow over (x)}(n)−H{right arrow over (mb)}(n))
        {right arrow over (x)}(n+1)=[x(n)[−N1+1], . . . , x(n)[N2], 0]
        {right arrow over (π)}(n+1)=[π(n)[−N1−L2+1], . . . , π(n)[N2+L1], 0]
        
            if n<N−N2 
            
                x(+1)[N2]=x[n+1+N2]
            
            
            if n<N−N2−L1 
            
                πn+1)[N2+L1]=πINE[n+1+N2+L1]
            
            
        
        
    
    


4. Estimate output variance σ{circumflex over (b)}2=(var({circumflex over (b)}|{circumflex over (b)}>0)+var({circumflex over (b)}|{circumflex over (b)}<0))/2
5. Determine output priors, 



  
    π
    OUT
    E
  
  =
  
    
      1
      /
      2
    
    ⁢
    
      (
      
        1
        +
        
          tanh
          ⁡
          
            (
            
              
                
                  b
                  ^
                
                ⁡
                
                  [
                  n
                  ]
                
              
              
                σ
                
                  b
                  ^
                
                2
              
            
            )
          
        
      
      )
    
  




Soft-Input Soft-Output Decision Feedback Equalization

For a minimum mean-square error (MMSE) decision feedback equalizer, the channel model can be written in similar matrix form to the MMSE linear equalizer, 



  
    
      [
      
        
          
            x
            →
          
          ⁡
          
            [
            n
            ]
          
        
        
          
            d
            →
          
          ⁡
          
            [
            n
            ]
          
        
      
      ]
    
    =
    
      
        
          [
          
            H
            
              
                I
                
                  M
                  ×
                  M
                
              
              |
              
                0
                
                  M
                  ×
                  M
                
              
            
          
          ]
        
        ⁢
        
          
            b
            →
          
          ⁡
          
            [
            n
            ]
          
        
      
      +
      
        [
        
          
            
              w
              →
            
            ⁡
            
              [
              n
              ]
            
          
          
            0
            
              M
              ×
              1
            
          
        
        ]
      
    
  
  ,




where, for simplicity of notation, it is assumed that the number of decision symbols feedback to the equalizer is given by M=N1+L2, for {right arrow over (d)}[n]=[d[n−1], . . . , d[n−M]]. For binary antipodal signaling, d[n−k]=sign ({circumflex over (b)}[n−k]), and for higher order signaling constellations, a suitable quantizer to the nearest symbol would be used.

The MMSE DFE coefficients are then given by 



  
    
      b
      ∼
    
    ⁡
    
      [
      n
      ]
    
  
  =
  
    
      E
      ⁢
      
        {
        
          b
          ⁡
          
            [
            n
            ]
          
        
        }
      
    
    +
    
      
        
          
            [
            
              
                E
                ⁢
                
                  {
                  
                    
                      b
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                    ⁢
                    
                      
                        b
                        →
                      
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                  
                  }
                
                ⁢
                
                  H
                  T
                
              
              -
              
                E
                ⁢
                
                  {
                  
                    
                      b
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                    ⁢
                    E
                    ⁢
                    
                      {
                      
                        
                          
                            b
                            →
                          
                          ⁡
                          
                            [
                            n
                            ]
                          
                        
                        T
                      
                      }
                    
                    ⁢
                    
                      H
                      T
                    
                  
                  
                
                ⁢
                
                  0
                  
                    1
                    ×
                    M
                  
                
              
            
            ]
          
          ⁢
          
            

          
          [
          
            
              
                
                  
                    
                      HE
                      ⁢
                      
                        {
                        
                          
                            
                              b
                              →
                            
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                          ⁢
                          
                            
                              
                                b
                                →
                              
                              ⁡
                              
                                [
                                n
                                ]
                              
                            
                            T
                          
                        
                        }
                      
                      ⁢
                      
                        H
                        T
                      
                    
                    +
                  
                
              
              
                
                  
                    
                      E
                      ⁢
                      
                        {
                        
                          
                            w
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                          2
                        
                        }
                      
                      ⁢
                      I
                    
                    -
                    
                      HE
                      ⁢
                      
                        {
                        
                          
                            b
                            →
                          
                          ⁡
                          
                            [
                            n
                            ]
                          
                        
                        }
                      
                      ⁢
                      E
                      ⁢
                      
                        {
                        
                          
                            
                              b
                              →
                            
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                          T
                        
                        }
                      
                      ⁢
                      
                        H
                        T
                      
                      ⁢
                      HE
                      ⁢
                      
                        {
                        
                          
                            
                              b
                              →
                            
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                          ⁢
                          
                            
                              
                                d
                                →
                              
                              ⁡
                              
                                [
                                n
                                ]
                              
                            
                            T
                          
                        
                        }
                      
                    
                    -
                  
                
              
              
                
                  
                    HE
                    ⁢
                    
                      {
                      
                        
                          b
                          →
                        
                        ⁡
                        
                          [
                          n
                          ]
                        
                      
                      }
                    
                    ⁢
                    E
                    ⁢
                    
                      {
                      
                        
                          
                            d
                            →
                          
                          ⁡
                          
                            [
                            n
                            ]
                          
                        
                        T
                      
                      }
                    
                  
                
              
            
            
              
                
                  
                    E
                    ⁢
                    
                      {
                      
                        
                          d
                          →
                        
                        [
                        
                          
                            
                              n
                              [
                              
                                
                                  
                                    b
                                    →
                                  
                                  ⁡
                                  
                                    [
                                    n
                                    ]
                                  
                                
                                T
                              
                              }
                            
                            ⁢
                            
                              H
                              T
                            
                          
                          +
                        
                      
                    
                  
                
              
              
                
                  
                    
                      E
                      ⁢
                      
                        {
                        
                          
                            d
                            →
                          
                          ⁡
                          
                            [
                            n
                            ]
                          
                        
                        }
                      
                      ⁢
                      E
                      ⁢
                      
                        {
                        
                          
                            
                              b
                              →
                            
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                          T
                        
                        }
                      
                      ⁢
                      
                        H
                        T
                      
                      ⁢
                      E
                      ⁢
                      
                        {
                        
                          
                            
                              d
                              →
                            
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                          ⁢
                          
                            
                              
                                d
                                →
                              
                              ⁡
                              
                                [
                                n
                                ]
                              
                            
                            T
                          
                        
                        }
                      
                    
                    -
                  
                
              
              
                
                  
                    E
                    ⁢
                    
                      {
                      
                        
                          d
                          →
                        
                        ⁡
                        
                          [
                          n
                          ]
                        
                      
                      }
                    
                    ⁢
                    E
                    ⁢
                    
                      
                        {
                        
                          
                            d
                            →
                          
                          ⁡
                          
                            [
                            n
                            ]
                          
                        
                        }
                      
                      T
                    
                  
                
              
            
          
          ]
        
        
          -
          1
        
      
      ⁢
      
        

      
      [
      
        
          
            
              x
              →
            
            ⁡
            
              [
              n
              ]
            
          
          -
          
            HE
            ⁢
            
              {
              
                
                  b
                  →
                
                ⁡
                
                  [
                  n
                  ]
                
              
              }
            
          
        
        
          
            
              d
              →
            
            ⁡
            
              [
              n
              ]
            
          
          -
          
            E
            ⁢
            
              {
              
                
                  d
                  →
                
                ⁡
                
                  [
                  n
                  ]
                
              
              }
            
          
        
      
      ]
    
  




When this MMSE DFE is made well-behaved, we set E{b[n]}=0, which, together with some algebra, reduces this expression considerably, to

{circumflex over (b)}[n]=E{b[n]{right arrow over (b)}[n]T}HT[HE{{right arrow over (b)}[n]{right arrow over (b)}[n]T}HT+E{w[n]2}I−HE{{right arrow over (b)}[n]}E{{right arrow over (b)}[n]T}HT−

(HE{{right arrow over (b)}[n]{right arrow over (d)}[n]T}−HE{{right arrow over (b)}[n]}E{{right arrow over (d)}[n]T})E{{right arrow over (d)}[n]{right arrow over (d)}[n]T}−1(E{{right arrow over (d)}[n]{right arrow over (b)}[n]T}

HT−E{{right arrow over (d)}[n]}E{{right arrow over (b)}[n]T}HT)]−1

[({right arrow over (x)}[n]−HE{{right arrow over (b)}[n])−(HE{{right arrow over (b)}[n]{right arrow over (d)}[n]T}−HE{{right arrow over (b)}[n]}E{{right arrow over (d)}[n]T})E{{right arrow over (d)}[n]{right arrow over (d)}[n]T}−1

({right arrow over (d)}[n]−E{{right arrow over (d)}[n]})].

The preferred implementation of the present invention is shown in the FIGURE. In the FIGURE, a process for encoding/transmission and reception/decoding begins with a set of digital data, depicted as data bits ai. These data bits are then encoded, using forward error correction coding 10, to produce the encoded sequence of bits, depicted as ãi.
The encoded data bits are now interleaved (re-ordered) in time using the data interleaver 12. The purpose of the data interleaver is to re-order the data such that the statistical dependencies between the data bits are spread out in time. This makes adjacent data bits in the re-ordered sequence, bi in the figure, approximately independent of one another. The re-ordered bits bi are now ready to be transmitted over the channel 16. The process of mapping the bits bi into channel symbols and transmitting them over the channel is depicted in the FIGURE as block 16. The ISI channel 16 introduces distortion into the sequence of channel symbols. The channel 16 also is assumed to exhibit additive noise, as depicted in the FIGURE. The output of the channel 16, is then the sequence of corrupted channel symbols, x[n]. The received sequence x[n] is then processed by the receiver block 20 to remove effects of the channel. The receiver block comprises several elements.
First, the received data symbols are equalized using a soft-input/soft-output MMSE equalizer 22. The equalizer 22 attempts to eliminate the intersymbol interference (ISI) from the channel. The output of the equalizer 22 is a set of priors, or confidence levels, in the symbol values, labeled as ΠOUTE in the figure. The two inputs to the SISO MMSE equalizer 22 are the channel output symbols x[n] and a set of confidence levels in their values, ΠINE. On the first pass through the equalizer, an initialization set of confidence levels are used, which are equally-likely to take on all values. Subsequent passes use confidence levels produced by the SISO decoder 24.
The confidence levels are then re-ordered using the de-interleaver 12a to place them in the same order as the corresponding bits in the encoded sequence ai. The confidence levels can now be used in a soft-input/soft-output decoder 24 to produce estimates of the original uncoded data bits ai, labeled as ΠOUTE in the figure. The confidence levels over the sequence ai are then interleaved 12 again, back to the ordering of the channel symbols and the interleaved data bits bi. The confidence levels are now used as input to the SISO MMSE equalizer 22, together with the data x[n]. Whereas in the first pass through the equalizer 22, the confidence levels were arbitrarily preset to initialized values, now the confidence levels have been determined by the decoding process. This cycle is repeated until either a convergence criteria is met, or a sufficient number of passes over the data have elapsed. Typically, the convergence criteria will consist of a prespecified measure of match between the confidence levels determined by the decoding process and those determined by the equalization process. Other possible convergence criteria could include testing that the confidence levels determined by one or the two SISO devices have not changed appreciably over a sequence of passes.
While various embodiments of the present invention have been shown and described, it should be understood that other modifications, substitutions and alternatives are apparent to one of ordinary skill in the art. Such modifications, substitutions and alternatives can be made without departing from the spirit and scope of the invention, which should be determined from the appended claims.
Various features of the invention are set forth in the appended claims.

## Claims

1. A method for estimating digital data received over a potentially noisy channel which adds intersymbol interference or additive noise, or a combination of intersymbol interference or additive noise, the method comprising steps of:
inputting data received from the noisy channel into a SISO MMSE equalizer;
inputting a set of priors over symbol values of the noisy channel including a separate prior for each received noisy channel symbol value, into the SISO MMSE equalizer;
equalizing, by an MMSE equalization in the SISO MMSE equalizer, the data received from the noisy channel and the set of priors over symbol values to produce a symbol value estimate;
mapping output of the SISO MMSE equalizer onto priors over the symbol values to produce a confidence indication in each of the symbol value estimates as a function of time;
wherein said step of equalizing excludes symbol value estimates which are functions of an input distribution of a current symbol being equalized;
wherein digital data transmitted over said potentially noisy channel is error correction encoded prior to transmission, the step of mapping output of the SISO MMSE equalizer comprising steps of:
passing output of the SISO MMSE equalizer into a SISO error correction decoder;
using an output of said SISO error correction decoder as the set of priors over symbol values;
repeating all steps of the method until a predetermined convergence criterion is reached between said SISO error correction decoder and said SISO MMSE equalizer;
wherein digital data transmitted over said potentially noisy channel is interleaved prior to transmission and a step of de-interleaving is conducted on the output of the SISO MMSE equalizer prior to said step of passing output of the SISO MMSE equalizer into the SISO error correction decoder.

2. The method according to claim 1, wherein said SISO error correction decoder has its output restricted to exclude symbol value estimates which are functions of an input distribution of a current symbol being decoded.

3. A data decoding device comprising:
a SISO MMSE equalizer;
a SISO decoder, the decoder exchanging symbol estimates with the SISO MMSE equalizer, the SISO MMSE equalizer produces an MMSE linear estimate, and corresponding output distribution of estimates {circumflex over (b)}[n] of transmitted symbols [{circumflex over (b)}[n]] b[n], and mapping the output distribution to an output set of priors over the symbols πOUTE;
wherein said equalizer maps the estimates by treating the output distribution of estimates {circumflex over (b)}[n] as conditionally Gaussian, and distributed about the symbol values.

4. The device according to claim 3, wherein the output distribution mapping is defined as: 



  
    
      Prob
      ⁢
      
        {
        
          
            b
            ⁡
            
              [
              n
              ]
            
          
          =
          
            1
            ❘
            
              
                b
                ^
              
              ⁡
              
                [
                n
                ]
              
            
          
        
        }
      
    
    =
    
      
        1
        2
      
      ⁢
      
        (
        
          1
          +
          
            tanh
            ⁡
            
              (
              
                
                  
                    b
                    ^
                  
                  ⁡
                  
                    [
                    n
                    ]
                  
                
                
                  σ
                  
                    b
                    ^
                  
                  2
                
              
              )
            
          
        
        )
      
    
  
  ,




where σ{circumflex over (b)}2 is the variance of the conditional output distribution given the symbol b[n]=sign ({circumflex over (b)}[n]), and the calculation of estimates {circumflex over (b)}[n] excludes the corresponding πINE[n] wherein ΠEIN[n] is the output set of priors over the symbols πOUTE, and the expectations are taken over a distribution of the symbols which excludes πINE[n] for the calculation of the estimates {circumflex over (b)}[n].

5. The device according to claim 3, wherein the following steps are conducted by the device for computing the output distribution given the observations, x[n] and the input distribution πINE used by the MMSE equalizer:
a. create buffers for the priors, the signal x[n], expectations {right arrow over (bb)}[n]=E{b[n]{right arrow over (b)}[n]}, the correlation matrix B[n]=E{{right arrow over (b)}[n]{right arrow over (b)}[n]T}, and the means {right arrow over (mb)}[n]=E{{right arrow over (b)}[n]}
{right arrow over (π)}(a)Δ[π(n)[−N1−L2], . . . , π(n)[0], . . . , π(n)[N2+L1]]T 
{right arrow over (x)}(a)Δ[x(n)[−N1], . . . , x(n)[0], . . . , x(n)[N2]]T 
{right arrow over (bb)}(n)Δbb(n)[−N1−L2], . . . , bb(n)[0], . . . bb(n)[N2]]T=[0, . . . 0, 1, 0, . . . , 0]T 
b. initialize buffers for priors {right arrow over (π)}(n) and data {right arrow over (x)}(n), in terms of the signal x[n] and the input πINE 
{right arrow over (x)}(0)=[0, . . . , x[0], x[1], . . . , x[N2]]T 
c. loop over the data for n=0, . . . , N:
π(n)[0]=1⁄2
{right arrow over (mb)}(n)=2{right arrow over (π)}(n)−1
B={right arrow over (mb)}(n){right arrow over (mb)}(n)T 
diag(B)=diag (1, 1, . . . , 1)
{right arrow over (c)}[n]=[H (B−{right arrow over (mb)}(n){right arrow over (mb)}(n)T)HT+σw2I]−1H{right arrow over (bb)}(n) 
{circumflex over (b)}[n]={right arrow over (mb)}(n)+{right arrow over (c)}(n)T({right arrow over (x)}(n)−H{right arrow over (bb)}(n) 
{right arrow over (x)}(n+1)=[x(n)[−N1+1], . . . , x(n)[N2], 0]
{right arrow over (π)}(n+1)=[π(n)[−N1−L2+1], . . . , π(n)[N2+L1], 0]
if n<N−N2 
x(n+1)[N2]=x[n+1+N2]

if n<N−N2−L1 
π(n+1)[N2+L1]=πINE[n+1+N2+L1]


d. estimate output variance σ{circumflex over (b)}2=(var({circumflex over (b)}|{circumflex over (b)}>0)+var({circumflex over (b)}|{circumflex over (b)}<0))/2
e. determine output priors, 



  
    π
    OUT
    E
  
  =
  
    
      1
      /
      2
    
    ⁢
    
      
        (
        
          1
          +
          
            tanh
            ⁡
            
              (
              
                
                  
                    b
                    ^
                  
                  ⁡
                  
                    [
                    n
                    ]
                  
                
                
                  σ
                  
                    b
                    ^
                  
                  2
                
              
              )
            
          
        
        )
      
      .