# Patent

## Title
Method for channel tracking in an LMS adaptive equalizer for 8VSB

## Abstract

A method and system for channel tracking in an adaptive equalizer for a digital data receiver. The method includes determining a first set of tap weights and a second set of tap weights of the equalizer, and determining a difference between the first and second sets of tap weights. The method also includes determining an error estimate based on symbols received at the receiver, comparing the error estimate with a divergence threshold, and determining a step size factor based on the difference and the comparison.

## Background
RELATED APPLICATIONS
This application is a continuation-in-part of prior-filed copending U.S. patent application Ser. No. 11/687,909, filed on Mar. 19, 2007, which claims the benefit of prior-filed U.S. Provisional Patent Application Ser. No. 60/885,692, filed on Jan. 19, 2007, the entire contents of both of which are incorporated by reference herein.


FIELD
Embodiments of the invention relate generally to digital communication systems and methods, and particularly to digital television receivers.
BACKGROUND
In 1996, the Advanced Television Systems Committee, Inc. (“ATSC”) adopted an ATSC digital television (“DTV”) terrestrial transmission standard. Several generations of receivers have been developed since adoption of the ATSC DTV standard. Generally, each generation of receivers was developed to improve reception performance over previous generations of receivers. A main impediment to good reception is severe multipath interference. Hence, complicated equalizers were developed for receivers in order to improve receiver performance by mitigating the effects of the multipath interference.
Terrestrial broadcast DTV channel presents quite a difficult multipath environment. Relatively strong duplicates of the transmitted signal may arrive at a receiver via various reflected signal paths as well as via the direct path from transmitter to receiver. In some cases, there is no direct path from transmitter to receiver, and all received signal paths are via reflection. If the path carrying the strongest signal is regarded as the main signal path, reflected signals may arrive at the receiver both prior to or subsequent to the main signal. The arrival time differences among various signal paths, compared to that of the main signal path, can be large. Also, these reflected signals may vary in time, both in terms of amplitude and delay relative to the main signal path.
During a typical transmission, data is transmitted in frames 100 as shown in FIG. 1. Each frame 100 is composed of two fields 104, 108. Each of the fields 104, 108 includes 313 segments. Each of the segments includes 832 symbols. As such, each of the fields 104, 108 includes a total of 260,416 symbols. Each of the segments begins with a four-symbol sequence, referred to as a segment sync, which comprises four symbols [+5, −5, −5, +5]. The first segment in each field is a field sync segment.
FIG. 2 shows an exemplary field sync segment 200 of the field 104 or 108 of FIG. 1. The field sync segment 200 includes a segment sync 204, a pseudo noise sequence 208 that comprises 511 symbols (PN511), a pseudo noise sequence 212 that comprises 63 symbols (PN63), a second PN63 sequence 216, and a third PN63 sequence 220. The third PN63 sequence 220 is followed by a mode sequence 224 that comprises 24 symbols to indicate a transmitting mode of 8-level vestigial sideband (“8VSB”). In alternate fields, the three PN63 sequences 212, 216, 220 are the same. In the remaining fields, the first and third PN63 sequences 212, 220 are the same while the second PN63 sequence 216 is inverted. In either case, the first 728 symbols of the field sync segment 200 are a priori known to a receiver and may be used for equalizer training. The mode sequence 224 is followed by a reserved mode sequence 228 of 92 symbols composing various mode and reserved fields that are not a priori known to the receiver. The sequences 204, 208, 212, 216, 220, 224, and 228 symbols use a symbol set of {+5, −5}. The field sync segment 200 ends with a precode sequence 232 comprising 12 symbols that use a symbol set of {−7, −5, −3, −1, +1, +3, +5, +7}, and are duplicates of the last 12 symbols of the preceding data field. These are thus called precode symbols.
The remaining 312 segments of each field 104, 108 are referred to as data segments. An exemplary data segment 300 is shown in FIG. 3. After the segment sync symbols 204, the data segment 300 includes a data sequence 304 that comprises 828 symbols. The symbols are trellis encoded by a 12 phase trellis encoder that results in 8-level symbols from a symbol set of {−7, −5, −3, −1, +1, +3, +5, +7}.
FIG. 4 shows a digital data (e.g., 8VSB) transmitter 400. The transmitter 400 includes a randomizer 404 that randomizes data to be transmitted, a Reed-Solomon encoder 408 that encodes the randomized data from the randomizer 404, and an interleaver 412 that interleaves Reed-Solomon byte-wise encoded data. The transmitter 400 also includes a trellis encoder 416 that encodes the interleaved data. An exemplary trellis encoder 416 is a 12-phase trellis encoder. A data frame formatter 420 subsequently adds segment sync symbols and field sync symbols to the trellis coded data at appropriate times to create a data frame structure like that of FIG. 1. A pilot insertion module 424 then inserts a pilot carrier frequency signal by adding a fixed DC level to each of the symbols.
A modulator 428 then implements root raised cosine pulse shaping and modulates the signal for RF transmission as an 8VSB signal at a symbol rate of 10.76 MHz. The 8VSB signal differs from other commonly used linear modulation methods such as quadrature amplitude modulation (“QAM”) in that the 8VSB symbols are real, but have a pulse shape that is complex with only the real part of the pulse having a Nyquist shape.
FIG. 5 shows a block diagram of a digital data (e.g., 8VSB) receiver 500. The receiver 500 includes a tuner 504 to receive RF signals transmitted from the transmitter 400, and a demodulator 508 to demodulate the RF signal to baseband. The receiver 500 also includes a sync and timing recovery module 512 to perform symbol clock timing and frame synchronization recovery on the demodulated signals. The receiver 500 also includes a matched filter 516 to filter the recovered signals, an equalizer 520 that equalizes the filtered signals, a phase tracker 524 that reduces the phase noise of the equalized signals, a trellis decoder 528 that decodes the noise-reduced equalized signals, a deinterleaver 532 that deinterleaves the decoded signals, a Reed-Solomon decoder 536 that decodes the deinterleaved signals, and a derandomizer 540 that derandomizes the decoded signals.
The multipath RF channel between the transmitter 400 and the receiver 500 can be viewed in its baseband equivalent form. For example, the transmitted signal has a root raised cosine spectrum with a nominal bandwidth of 5.38 MHz and an excess bandwidth of 11.5% centered at one fourth of the symbol rate (i.e., 2.69 MHz). Thus, the transmitted pulse shape or pulse q(t) is complex and given by EQN. (1):

q(t)=ejπFst/2qRRC(t)  (1)

where Fs is a symbol frequency, and qRRC(t) is a real square root raised cosine pulse with an excess bandwidth of 11.5% of the multipath RF channel. The pulse q(t) is referred to as a “complex root raised cosine pulse.” For an 8VSB system, the transmitted pulse shape q(t) and the received and matched filter pulse shape q*(−t) are identical since q(t) is conjugate-symmetric. Thus, the raised cosine pulse p(t), referred to as the “complex raised cosine pulse,” is given by EQN. (2):

p(t)=q(t)*q*(−t)  (2)

where * denotes convolution, and * denotes complex conjugation.

The transmitted baseband signal with a data rate of 1/T symbols/sec can be represented by EQN. (3):




  
    
      
        
          
            s
            ⁡
            
              (
              t
              )
            
          
          =
          
            
              ∑
              k
            
            ⁢
            
              
                I
                k
              
              ⁢
              
                q
                ⁡
                
                  (
                  
                    t
                    -
                    kT
                  
                  )
                
              
            
          
        
        ,
      
    
    
      
        (
        3
        )
      
    
  




where {Ik ∈ A≡{α1, . . . α8} ⊂R1} is a transmitted data sequence, which is a discrete 8-ary sequence taking values of the real 8-ary alphabet A. For 8VSB, the alphabet set is {−7, −5, −3, −1, +1, +3, +5, +7}.

A physical channel between the transmitter 400 and the receiver 500 is denoted c(t) and can be described by




  
    
      
        
          c
          ⁡
          
            (
            t
            )
          
        
        =
        
          
            ∑
            
              k
              =
              
                -
                
                  L
                  ha
                
              
            
            
              L
              hc
            
          
          ⁢
          
            
              c
              k
            
            ⁢
            
              δ
              ⁡
              
                (
                
                  t
                  -
                  
                    τ
                    k
                  
                
                )
              
            
          
        
      
    
    
      
        (
        4
        )
      
    
  




where {ck(τ)} ⊂ C1, and Lha and Lhc are the maximum number of anti-causal and causal multipath delays, respectively. Constant τk is a multipath delay, and variable δ(t) is a Dirac delta function. Hence, the overall channel impulse response is given by EQN. (5):





  
    
      
        
          h
          ⁡
          
            (
            t
            )
          
        
        =
        
          
            
              p
              ⁡
              
                (
                t
                )
              
            
            *
            
              c
              ⁡
              
                (
                t
                )
              
            
          
          =
          
            
              ∑
              
                -
                
                  L
                  ha
                
              
              
                L
                hc
              
            
            ⁢
            
              
                c
                k
              
              ⁢
              
                p
                ⁡
                
                  (
                  
                    t
                    -
                    
                      τ
                      
                        k
                        ⁢
                        
                          
                        
                      
                    
                  
                  )
                
              
            
          
        
      
    
    
      
        (
        5
        )
      
    
  




The matched filter output y(t) in the receiver prior to equalization is given by EQN. (6):




  
    
      
        
          
            y
            ⁡
            
              (
              t
              )
            
          
          =
          
            
              
                (
                
                  
                    ∑
                    k
                  
                  ⁢
                  
                    δ
                    ⁡
                    
                      (
                      
                        t
                        -
                        kT
                      
                      )
                    
                  
                
                )
              
              *
              
                h
                ⁡
                
                  (
                  t
                  )
                
              
            
            +
            
              v
              ⁡
              
                (
                t
                )
              
            
          
        
        ,
      
    
    
      
        (
        6
        )
      
    
  




where v(t) is given by EQN. (7):

v(t)=η(t)*q*(−t)  (7)

which denotes a complex or colored noise process after the pulse matched filter, with η(t) being a zero-mean white Gaussian noise process with spectral density σn2 per real and imaginary part. Sampling the matched filter output y(t) at the symbol rate produces a discrete time baseband representation of the input to the equalizer 520, as shown in EQN. (8):





  
    
      
        
          
            
              
                y
                ⁡
                
                  [
                  n
                  ]
                
              
              ≡
              
                y
                ⁡
                
                  (
                  t
                  )
                
              
            
            
          
          
            t
            =
            nT
          
        
        =
        
          
            
              ∑
              k
            
            ⁢
            
              
                I
                k
              
              ⁢
              
                h
                ⁡
                
                  [
                  
                    n
                    -
                    k
                  
                  ]
                
              
            
          
          +
          
            
              v
              ⁡
              
                [
                n
                ]
              
            
            .
          
        
      
    
    
      
        (
        8
        )
      
    
  




As stated above, for each data field of 260,416 symbols, only 728 symbols, which reside in the field sync segment 200, are a priori known and thus available for equalizer training. Furthermore, conditions of the multipath channel are generally not known a priori. As such, the equalizer 520 in the receiver 500 is so configured to adaptively identify and combat various multipath channel conditions.
In the following discussion, n represents a sample time index, regular type represents scalar variables, bold lower case type represents vector variables, bold upper case type represents matrix variables, a * superscript indicates complex conjugation, and the Hsuperscript indicates conjugate transposition (Hermitian).
The equalizer 520 may be implemented as, or employ equalization techniques relating to, linear equalizers (“LEs”), decision feedback equalizers (“DFEs”), and predictive decision feedback equalizers (“pDFEs”). Equalizer tap weight adaptation is often achieved via a least mean square (“LMS”) algorithm or system, which is a low complexity method for adaptively approximating a minimum mean squared error (“MMSE”) tap weight solution, or equivalently a solution to the Weiner Hopf equations, described below.
In the case of an LE, let u[n] be an N long equalizer input vector, y[n] be the equalizer output wH[n]u[n], where wH[n] is an N long equalizer tap weight vector of a linear transversal filter or an adaptive filter,

Ruu[n]=E(u[n]uH[n]) has a size of N×N, and

rdu=E(u[n]d*[n])

Then e[n]=d[n]−y[n] where d[n] is the desired symbol.

The mean squared error (“MSE”) is given by J=E(e[n]e*[n]). It can be shown that the MSE as a function of filter taps w, J(w), is given by (n index omitted for clarity) EQN. (9):

J(w)=σd2−wHrdu−rduHw+wHRuuw  (9)

A gradient vector of J(w) is given by EQN. (10):





  
    
      
        
          ▽
          ⁢
          
            
          
          ⁢
          
            J
            ⁡
            
              (
              w
              )
            
          
        
        =
        
          
            2
            ⁢
            
              
                ∂
                
                  J
                  ⁡
                  
                    (
                    w
                    )
                  
                
              
              
                ∂
                
                  w
                  *
                
              
            
          
          =
          
            
              [
              
                
                  
                    
                      
                        
                          ∂
                          J
                        
                        
                          ∂
                          
                            w
                            0
                            R
                          
                        
                      
                      +
                      
                        j
                        ⁢
                        
                          
                            ∂
                            J
                          
                          
                            ∂
                            
                              w
                              0
                              I
                            
                          
                        
                      
                    
                  
                
                
                  
                    
                      
                        
                          ∂
                          J
                        
                        
                          ∂
                          
                            w
                            1
                            R
                          
                        
                      
                      +
                      
                        j
                        ⁢
                        
                          
                            ∂
                            J
                          
                          
                            ∂
                            
                              w
                              1
                              I
                            
                          
                        
                      
                    
                  
                
                
                  
                    -
                  
                
                
                  
                    -
                  
                
                
                  
                    
                      
                        
                          ∂
                          J
                        
                        
                          ∂
                          
                            w
                            
                              N
                              -
                              1
                            
                            R
                          
                        
                      
                      +
                      
                        j
                        ⁢
                        
                          
                            ∂
                            J
                          
                          
                            ∂
                            
                              w
                              
                                N
                                -
                                1
                              
                              I
                            
                          
                        
                      
                    
                  
                
              
              ]
            
            =
            
              2
              ⁢
              
                (
                
                  
                    
                      R
                      uu
                    
                    ⁢
                    w
                  
                  -
                  
                    r
                    du
                  
                
                )
              
            
          
        
      
    
    
      
        (
        10
        )
      
    
  




An optimal MMSE tap vector wopt is found by setting ∇J(w)=0, yielding the Weiner Hopf tap weight solution given by EQN. (11):

wopt[n]=Ruu−1[n]rdu[n]  (11)

The MSE is generally a measure of the closeness of w to w opt. As a function of the weight vector w, the MSE is then given by EQN. (12):





  
    
      
        
          
            J
            ⁡
            
              (
              w
              )
            
          
          =
          
            
              J
              min
            
            +
            
              
                
                  (
                  
                    w
                    -
                    
                      w
                      opt
                    
                  
                  )
                
                H
              
              ⁢
              
                
                  R
                  uu
                
                ⁡
                
                  (
                  
                    w
                    -
                    
                      w
                      opt
                    
                  
                  )
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        where
      
    
    
      
        (
        12
        )
      
    
  
  
    
      
        
          J
          min
        
        =
        
          
            
              min
              w
            
            ⁢
            
              J
              ⁡
              
                (
                w
                )
              
            
          
          =
          
            
              
                σ
                d
                2
              
              -
              
                
                  r
                  du
                  H
                
                ⁢
                
                  R
                  uu
                  
                    -
                    1
                  
                
                ⁢
                
                  r
                  du
                
              
            
            =
            
              J
              ⁡
              
                (
                
                  w
                  opt
                
                )
              
            
          
        
      
    
    
      
        (
        12
        )
      
    
  




In practice, for large N, inverting Ruu is prohibitively complicated. So a less complicated iterative solution is desirable. A steepest descent method (“SD”) provides such a solution. It is given by EQN. (13):

w[n+1]=w[n]−μ{∇J(w[n])}=w[n]−μ[Ruu[n]w[n]−rdu[n]]  (13)

where μ is a step size parameter. However, estimating and updating Ruu and rdu can also be complicated.

By using instantaneous approximations for Ruu and rdu, EQN. (13) can be greatly simplified for practical applications. For example, as shown in EQN. (14) and EQN. (15),

Ruu[n]≈u[n]uH[n]  (14)

and

rdu≈u[n]d*[n],  (15)

the gradient can be given by EQN. (16):





  
    
      
        
          
            
              
                ▽
                ⁢
                
                  
                
                ⁢
                
                  J
                  ⁡
                  
                    (
                    
                      w
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                    )
                  
                
              
              =
              
              ⁢
              
                2
                ⁢
                
                  (
                  
                    
                      
                        
                          R
                          uu
                        
                        ⁡
                        
                          [
                          n
                          ]
                        
                      
                      ⁢
                      
                        w
                        ⁡
                        
                          [
                          n
                          ]
                        
                      
                    
                    -
                    
                      
                        r
                        du
                      
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                  
                  )
                
              
            
          
        
        
          
            
              ≈
              
              ⁢
              
                
                  -
                  2
                
                ⁢
                
                  
                
                ⁢
                
                  
                    u
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                  ⁡
                  
                    [
                    
                      
                        
                          d
                          *
                        
                        ⁡
                        
                          [
                          n
                          ]
                        
                      
                      -
                      
                        
                          
                            u
                            H
                          
                          ⁡
                          
                            [
                            n
                            ]
                          
                        
                        ⁢
                        
                          w
                          ⁡
                          
                            [
                            n
                            ]
                          
                        
                      
                    
                    ]
                  
                
              
            
          
        
        
          
            
              ≈
              
              ⁢
              
                
                  -
                  2
                
                ⁢
                
                  
                
                ⁢
                
                  u
                  ⁡
                  
                    [
                    n
                    ]
                  
                
                ⁢
                
                  
                    e
                    *
                  
                  ⁡
                  
                    [
                    n
                    ]
                  
                
              
            
          
        
      
    
    
      
        (
        16
        )
      
    
  




A practical LMS algorithm for the equalizer 520, as shown in EQN. (17), can then be determined from EQN. (13):





  
    
      
        
          
            
              
                w
                ⁡
                
                  [
                  
                    n
                    +
                    1
                  
                  ]
                
              
              =
              
              ⁢
              
                
                  w
                  ⁡
                  
                    [
                    n
                    ]
                  
                
                -
                
                  μ
                  ⁢
                  
                    {
                    
                      ▽
                      ⁢
                      
                        
                      
                      ⁢
                      
                        J
                        ⁡
                        
                          (
                          
                            w
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                          )
                        
                      
                    
                    }
                  
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  w
                  ⁡
                  
                    [
                    n
                    ]
                  
                
                -
                
                  2
                  ⁢
                  
                    
                  
                  ⁢
                  μ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    u
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                  ⁢
                  
                    
                      e
                      *
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                
              
            
          
        
      
    
    
      
        (
        17
        )
      
    
  




where μ is a step size parameter.

FIG. 6 shows a signal-to-noise-plus-interference-ratio (“SINR”) plot 600 depicting a plurality of SINRs obtained from a plurality of symbol blocks with an LMS-based LE as discussed above. Similarly, FIG. 7 shows an MSE plot 700 depicting a plurality of MSEs obtained from the plurality of symbol blocks with the LMS-based LE as discussed above. It is well known that SINR and MSE are related as shown in EQN. (18):




  
    
      
        SINR
        =
        
          10
          ⁢
          
            
          
          ⁢
          
            log
            10
          
          ⁢
          
            
              signal
              ⁢
              
                
              
              ⁢
              power
            
            MSE
          
        
      
    
    
      
        (
        18
        )
      
    
  




As shown in FIG. 6, time (in terms of symbol blocks processed by the equalizer 520) is measured along an x-axis 604, and SINR is measured along a y-axis 608. FIG. 6 shows an SINR curve 612 for different times after symbols are equalized with the equalizer 520. FIG. 6 shows that the curve 612 converges to an SINR value of about 15 dB after about 3,000 symbol blocks have been equalized, where each block includes 512 symbols. Similarly, as shown in FIG. 7, time is measured along an x-axis 704, and MSE is measured along a y-axis 708. FIG. 7 shows an MSE curve 712 for different times after symbols are equalized with the equalizer 520. FIG. 7 shows that the MSE curve 712 converges to an MSE value of about 1 dB after about 3,000 symbol blocks have been equalized.

In general, equalizer convergence is achieved when the SINR rises above a prescribed value before approaching a SINR convergence value such that subsequent error correction modules, such as the trellis decoder 528 and the Reed-Solomon decoder 536, can nearly completely correct all data errors. For 8VSB, the prescribed value is about 15 dB, and the SINR convergence value, which will depend on channel conditions, must be larger than that prescribed value. An example is shown in FIG. 6, where values of SINR rise above 15 dB before approaching an SINR convergence value of about 16 dB.
FIG. 8 shows an LE system 800 that utilizes the LMS algorithm as discussed. The LE system 800 includes a linear transversal filter 804 with tap weights w fed by an input data vector u[n]. The filter 804 has an output y[n] that feeds a non-linear decision device 808. The decision device 808 has an output d[n] that is a set of likely symbols transmitted. The output d[n] is subtracted from the output y[n] to create an error signal e[n]. The error signal e[n] is used by an LMS algorithm 812 to update the tap weights w of the filter 804 for time n+1.
SUMMARY
The following summary sets forth certain exemplary embodiments of the invention. It does not set forth all embodiments of the invention and should in no way be construed as limiting of embodiments of the invention.
In one embodiment, the invention includes a method of channel tracking in an adaptive equalizer for a digital data receiver. The method includes determining a first set of tap weights and a second set of tap weights of the equalizer, and determining a difference between the first and second sets of tap weights. The method also includes determining an error estimate based on symbols received at the receiver, comparing the error estimate with a divergence threshold, and determining a step size factor based on the difference and the comparison.
In another embodiment, the invention includes an adaptive equalizer for a digital data receiver, wherein data received by the receiver includes coded symbols. The equalizer includes a tap weight module, a difference module, an error estimator, a comparison module, and a step size factor module. The tap weight module determines a first set of tap weights and a second set of tap weights of the equalizer. The difference module determines a difference between the first and second sets of tap weights. The error estimator determines an error estimate based on symbols received at the receiver. The comparison module compares the error estimate with a divergence threshold, and the step size factor module determines a step size factor based on the difference and the comparison.
In another embodiment, the invention includes a device configured to process digital television signals. The device includes a receiver that includes a demodulator, a decoder, and an equalizer. The receiver receives radio frequency signals modulated with data including coded symbols and uncoded symbols, the demodulator demodulates the received radio frequency signals to produce the coded symbols and the uncoded symbols, and the decoder decodes the coded symbols to produce corresponding decoded symbols. The equalizer includes a tap weight module, a difference module, an error estimator, a comparison module, and a step size factor module. The tap weight module determines a first set of tap weights and a second set of tap weights of the equalizer. The difference module determines a difference between the first and second sets of tap weights. The error estimator determines an error estimate based on symbols received at the receiver. The comparison module compares the error estimate with a divergence threshold, and the step size factor module determines a step size factor based on the difference and the comparison.
Other aspects of the invention will become apparent by consideration of the detailed description and accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an exemplary 8VSB data frame.
FIG. 2 shows an exemplary field sync segment.
FIG. 3 shows an exemplary data segment.
FIG. 4 shows an exemplary digital data transmitter.
FIG. 5 shows an exemplary digital data receiver.
FIG. 6 shows a signal-to-noise-plus-interference-ratio (“SINR”) plot depicting a plurality of SINRs obtained from a plurality of symbol blocks with the equalizer of FIG. 5.
FIG. 7 shows a mean-squared-error (“MSE”) plot depicting a plurality of MSEs obtained from a plurality of symbol blocks with the LMS-based linear equalizer of FIG. 5.
FIG. 8 shows a typical linear equalizer system having a decision device.
FIG. 9A shows a digital communications device according to an embodiment of the invention.
FIG. 9B shows a method according to an embodiment of the invention.
FIG. 9C shows a linear equalizer according to an embodiment of the invention.
FIG. 10 shows an MSE estimate plot based on coded symbols.
FIG. 11 shows an estimate plot based on uncoded symbols.
FIG. 12 shows an estimate plot showing a portion of the plot of FIG. 10.
FIG. 13 shows an estimate plot showing a portion of the plot of FIG. 11.
FIG. 14 shows an estimate plot based on selective use of coded and uncoded symbols.
FIG. 15 shows an estimate plot showing a portion of the plot of FIG. 14.
FIG. 16 shows a linear equalizer system according to an embodiment of the invention.
FIG. 17 shows a digital communications device according to an embodiment of the invention.
FIG. 18 shows a method according to an embodiment of the invention.
FIG. 19 shows a linear equalizer according to an embodiment of the invention.



DETAILED DESCRIPTION
Before any embodiments of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
As should also be apparent to one of ordinary skill in the art, the systems shown in the figures are models of what actual systems might be like. Many of the modules and logical structures described are capable of being implemented in software executed by a microprocessor or a similar device or of being implemented in hardware using a variety of components including, for example, application specific integrated circuits (“ASICs”). Terms like “equalizer” or “decoder” may include or refer to both hardware and/or software. Furthermore, throughout the specification capitalized terms are used. Such terms are used to conform to common practices and to help correlate the description with the coding examples, equations, and/or drawings. However, no specific meaning is implied or should be inferred simply due to the use of capitalization. Thus, the claims should not be limited to the specific examples or terminology or to any specific hardware or software implementation or combination of software or hardware.
As noted above, the step size μ of EQN. (17) controls a rate at which the LMS adaptive equalizer tap weights w converge to near an optimum wopt. It is desirable to use a larger step size to decrease the amount of time needed until convergence is obtained. However, a larger step size leads to a larger steady state MSE, or lower SINR, at the output of an equalizer after convergence. Hence, after the equalizer is close to convergence, a smaller step size is desirable. Therefore, it is generally advantageous to have a variable step size whose value depends on a “closeness” of w to wopt, thereby enabling a receiver to use a larger step size while the adaptive filter is converging and a smaller step size after convergence.
The ability of an adaptive equalizer to track a nonstationary channel is also a concern in appropriately choosing a step size μ. If the equalizer converges close to the optimal tap weight vector wopt and is running with a small step size, but then the channel conditions change, the equalizer must adequately track and adapt the tap weight vector w. Detection of changes in channel conditions and a switch to a larger step size μ, even though the equalizer has previously converged, is advantageous in this situation.
Embodiments of the invention include methods, systems, and devices for adaptively selecting a step size of an equalizer. In one specific embodiment, an adaptive equalizer selectively uses coded symbols or uncoded symbols to determine a step size by which to update tap weights used by a transversal filter. Selective use of coded symbols or uncoded symbols can enable a more accurate estimation of error throughout various states of the equalizer, which estimation in turn can be employed to determine an appropriate step size. For instance, uncoded symbols may be employed before a predetermined convergence state of the equalizer, and coded symbols may be employed once the predetermined convergence state is reached.
Embodiments herein can achieve improved performance than that achieved in existing digital communication receivers. For instance, embodiments herein can be employed to respond adaptively to changing channel conditions and more effectively select an appropriate step size. In one embodiment, iterative processes are employed to detect when current tap weights are no longer sufficiently close to optimal tap weights, and to modify the step size based on coded symbols or uncoded symbols as appropriate, so as to move closer to the optimal tap weight solution.
Although some embodiments herein focus on processing (e.g., reception) of digital television signals, the invention may be implemented in connection with other kinds of digital signals. Similarly, although some embodiments herein relate to the 8VSB RF modulation format, the invention may be implemented in connection with other modulation formats, such as formats that include coded information and a priori known information.
Additionally, although some embodiments herein relate to linear equalizers (“LEs”), the invention may be implemented in connection with other equalizer architectures, such as, for example, decision feedback equalizers (“DFEs”) and predictive decision feedback equalizers (“pDFEs”).
FIG. 9A shows a digital communications device 950 according to an embodiment of the invention. The device 950 can be implemented as, or in conjunction with, any of a host of devices, such as, for example, a receiver (e.g., digital communication receiver), tuner, PC adapter card, set top box, DVD recorder, HDTV recorder, television, phone, or handheld device. The device 950 can be implemented partially or entirely on a semiconductor (e.g., FPGA semiconductor) chip, such as a chip developed through a register transfer level (RTL) design process. The device 950 includes a receiver module 955 and optional hardware and/or software module(s) 990 that provide additional functions (e.g., display functions). In other embodiments, the device 950 includes more or fewer modules than those depicted. For example, certain of the depicted modules can be implemented on other devices that interface with the device 950 (e.g., the receiver module 955 can communicate with a display module incorporated in a separate device).
The receiver module 955 includes a demodulator 960, a decoder 965, and an equalizer 970. In some embodiments, the receiver module 955 includes one or more additional modules, such as, for example, a tuner, a sync and timing recovery module, a matched filter, a phase tracker, a deinterleaver, a second decoder, a slicer, and/or a derandomizer. The equalizer 970 includes a selection module 975, an error estimator 980, and a step size generator 985. Exemplary implementations of the equalizer 970 are described in further detail below.
FIG. 9B shows a method 991 according to an embodiment of the invention. The method 991 can be employed by, or in conjunction with, an equalizer for a digital data receiver in order to determine a step size of the equalizer. For instance, the method 991 can be employed by the receiver module 955 and/or equalizer 970 of FIG. 9A, as well as in connection with other embodiments described below. In task 993, data is received that includes coded symbols and uncoded (e.g., a priori known) symbols. In task 994, a first error estimate is determined based on decoded symbols corresponding to the coded symbols. In task 995, a second error estimate is determined based on the uncoded symbols. In task 996, the first error estimate or the second error estimate is adaptively selected based on a convergence criterion. In task 997, a step size is determined based on the selected error estimate. The method 991 can be iteratively performed as a datastream is received and processed.
Variations of the method 991 are within the scope of embodiments of the invention. For instance, in one embodiment, a method selects either decoded symbols or uncoded symbols based on a convergence criterion; determines a signal estimate based on the selected symbols; determines an error estimate based on received data and the signal estimate; and determines a step size based on the error estimate.
FIG. 9C shows a linear equalizer (“LE”) 900 according to an embodiment of the invention that can be implemented in a digital receiver. The equalizer 900 includes a linear transversal filter 904 having tap weights w and an output y[n], a selection module 908, an error estimator 912, a step size generator 916 that generates a step size parameter μ[k], and an LMS tap weight module 920 that adjusts the tap weights w based on the step size parameter μ[k]. In some embodiments, the error estimator 912 includes an MSE estimator. In such cases, the step size generator 916 generates the step size parameter μ[k] based on error information provided by the MSE estimator. Although FIG. 9C shows an LE, other types of equalizers, such as DFEs and pDFEs, can be employed.
As previously noted, 8VSB signals include a combination of 8-level trellis coded symbols and uncoded 2-level symbols. The selection module 908 generates an output d[n], which in turn is subtracted from y[n] to obtain e[n] at a summing node 924. The selection module 908 also feeds the output d[n] to the error estimator 912. The selection module 908 includes a trellis decoder 928 that decodes the coded symbols at the equalizer output y[n] using the Viterbi algorithm. In the embodiment shown, the decoder 928 has a zero delay or a traceback depth of one output. While longer traceback depth decisions are generally more reliable, they incur a longer delay, which can be unacceptable if an instantaneous e[n] is needed for the LMS update.
Most of the uncoded symbols including all segment sync symbols and the first 728 symbols of the field sync segment are a priori known. These are perfectly “decoded” by reading them out of a memory at appropriate times. The 92 unknown 2-level symbols at the end of the field sync segment are decoded by slicing at a midpoint with a slicer 932 since the unknown symbols are 2-level symbols.
Through a control line 940, a synchronizing control signal indicates to the selection module 908 and a switch 936 which type of symbol is being decoded. Exemplary methods for deriving this control signal first require symbol clock recovery, then data field synchronization, both of which occur in the preceding sync and timing recovery block, and then a modulo 260,416 symbol clock rate counter feeding a comparator that activates the control line 940 according to the type of symbol.
The error estimator 912 controls the adjustable step size parameter μ[k] that is being fed to the LMS module 920. In one embodiment, the error estimator 912 includes a high MSE indicator and a low MSE indicator. A high MSE (low SINR) indicates that w is not close to wopt, and thus a need for a larger step size. A low MSE (high SINR) indicates that w is close to wopt, and thus a desirability of a smaller step size. An exemplary method of MSE estimation (or, equivalently, SINR estimation) for the 8VSB signal is discussed below.
In some embodiments, the error estimator 912 periodically estimates an error, such as an MSE, every block of M symbols times from the trellis decoded symbols outputted by the decoder 928 as follows. For example, in the case of an MSE estimate, an instantaneous MSE estimate at block time k is given by EQN. (19).




  
    
      
        
          
            ξ
            dec
            2
          
          ⁡
          
            [
            k
            ]
          
        
        =
        
          
            (
            
              1
              M
            
            )
          
          ⁢
          
            
              ∑
              
                i
                =
                0
              
              
                M
                -
                1
              
            
            ⁢
            
              
                (
                
                  
                    y
                    ⁡
                    
                      [
                      
                        m
                        +
                        i
                      
                      ]
                    
                  
                  -
                  
                    d
                    ⁡
                    
                      [
                      
                        m
                        +
                        i
                      
                      ]
                    
                  
                
                )
              
              2
            
          
        
      
    
    
      
        (
        19
        )
      
    
  




where k is a block index, symbol index base m=(k−1)M, y is the equalizer output, d is the zero delay output of the trellis decoder 928, and M is a selected block size. Similarly, in the case of an MSE estimate, an averaged MSE estimate is given by EQN. (20).

ξdec,β2[k]=(1−βdec)ξdec2[k]+βdecξdec,β2[k−1], 0<βdec<1  (20)

Note that values of βdec are typically close to 1, with a smaller value providing a noisier MSE estimate but faster tracking of a changing MSE.

FIG. 10 shows an estimate plot 1000. Times (in terms of symbol blocks at the output of the equalizer 900) are measured along an x-axis 1004, and values of the MSE are measured along a y-axis 1008. A curve 1012 shows actual MSEs obtained, and a curve 1018 shows values of the MSE estimate ξdec,β2. FIG. 10 shows that when the actual MSEs (curve 1012) are above about 0.9 (equivalent to an SINR below 13.75 dB), the estimated MSE ξdec,β2 is considerably below the actual MSE.
Alternatively, error values may be estimated using only the a priori known 2-level segment sync symbols. For example, in the case of an MSE estimate, whenever d[p] . . . d[p+3] are segment sync symbols, then an instantaneous MSE estimate at segment j is given by EQN. (21).




  
    
      
        
          
            ξ
            seg
            2
          
          ⁡
          
            [
            j
            ]
          
        
        =
        
          
            (
            
              1
              4
            
            )
          
          ⁢
          
            
              ∑
              
                i
                =
                0
              
              3
            
            ⁢
            
              
                (
                
                  
                    y
                    ⁡
                    
                      [
                      
                        p
                        +
                        i
                      
                      ]
                    
                  
                  -
                  
                    d
                    ⁡
                    
                      [
                      
                        p
                        +
                        i
                      
                      ]
                    
                  
                
                )
              
              2
            
          
        
      
    
    
      
        (
        21
        )
      
    
  




where j is a segment index, and p=832(j−1) is a symbol index (note that blocks k and segments j are in general asynchronous). Similarly, in the case of an MSE estimate, whenever d[p]. . . d[p+3] are segment sync symbols, then an averaged MSE estimate is given by EQN. (22).

ξseg,β2[j]=(1=βseg)ξseg2[j]+βsegξseg,β2[j−1], 0<βseg<1  (22)

Note that values of βseg are typically close to 1, with a smaller value providing a noisier MSE estimate but faster tracking of a changing MSE.

FIG. 11 shows an estimate plot 1100. Times (in terms of symbol blocks at the output of the equalizer 900) are measured along an x-axis 1104, and values of the MSE are measured along a y-axis 1108. A curve 1112 shows actual MSEs obtained, and a curve 1118 shows values of the MSE estimate ξseg,β2. FIG. 11 shows that values of ξseg,β2 are more accurate than ξdec,β2 at high MSE (low SINR).
FIG. 12 shows an estimate plot 1200 showing a portion of the plot 1000 of FIG. 10 between symbol blocks 2600 and 3800. Times (in terms of symbol blocks at the output of the equalizer 900) are measured along an x-axis 1204, and values of the MSE are measured along a y-axis 1208. A curve 1212 shows actual MSEs obtained, and a curve 1218 shows values of the MSE estimate ξdec,β2. Similarly, FIG. 13 shows an estimate plot 1300 showing a portion of the plot 1100 of FIG. 11 between symbol blocks 2600 and 3800. Times (in terms of symbol blocks at the output of the equalizer 900) are measured along an x-axis 1304, and values of the MSE are measured along a y-axis 1308. A curve 1312 shows actual MSEs obtained, and a curve 1318 shows values of the MSE estimate ξdec,β2.
As shown in FIG. 12 and FIG. 13, while the ξseg,β2 estimate is better than ξdec,β2 at high MSE, the ξseg,β2 estimate is noisier than ξdec,β2 as MSE decreases because ξseg2 is averaged over fewer symbols than is ξdec2 (4<<M). Thus, ξseg2 represents a noisier estimate of the actual MSE. As such, each of the two methods provides relatively better estimates for respective MSE regions. Hence, according to various embodiments of the invention, these methods are selectively combined to provide a more accurate MSE estimate both at low and high MSE.
For example, in one embodiment involving EQN. (23) and EQN. (24), if ξdec,β2 is less than a predetermined MSE value (e.g., associated with a convergence state), the step size generator 916 selects ξdec,β2 as the error estimate EstMSE. If ξdec,β2 is greater than or equal to the predetermined MSE value, the step size generator 916 selects ξseg,β2 as the error estimate EstMSE. In some embodiments, the predetermined MSE value is about 0.9. That is,
If ξdec,β2[k]<0.9, (equivalent to SINR>13.75 dB)

EstMSE[k]=ξdec,β2[k] (near or post convergence)  (23)

Else

EstMSE[k]=ξseg,β2[j] (pre convergence)  (24)

FIG. 14 shows an error estimate plot 1400 based on selectively combining use of coded and uncoded symbols. Times (in terms of symbol blocks at the output of the equalizer 900) are measured along an x-axis 1404, and values of the MSE in dB are measured along a y-axis 1408. A curve 1412 shows actual MSEs obtained, and a curve 1416 shows values of the MSE estimate EstMSE determined by EQNS. (21)-(24) and associated logic. FIG. 15 similarly shows a portion 1400′ of the estimate plot 1400 from symbol blocks 2600 to 3800. The portion 1400′ shows the error estimator 912 transitioning from use of uncoded symbols (i.e., ξseg,β2) to use of coded symbols (i.e., ξdec,β2) at a switch point 1420. In the embodiment shown, the switch point is set at about MSE=0.9.
Once the error estimator 912 has determined an error estimate, the step size generator 916 uses the error estimate EstMSE[k] to select a variable LMS step size depending on a range within which the error estimate EstMSE[k] falls. For example, as shown in expression (25), if the error estimate EstMSE[k] falls within a range Rr, the step size generator 916 sets the step size parameter μ[k] equal to a predetermined step size μr.

If EstMSE[k]∈Rr, 

u[k]=μ,  (25)

end

In one embodiment, smaller values of EstMSE correspond to lower values of μr. For example, the step size generator 916 can use three EstMSE[k] ranges: a first range R1, a second range R2, and a third range R3. If EstMSE[k] is within the first range R1, which is less than or equal to 0.7 dB (equivalent to an estimated SINR of about 14.75 dB), the step size generator 916 uses a step size of μ1. Similarly, if EstMSE[k] is within the second range R2, which is between 0.7 dB and 0.9 dB (equivalent to an estimated SINR of about 13.75 dB), the step size generator 916 uses a step size of μ2. If EstMSE[k] is within the third range R3, which is above 0.9 dB, the step size generator 916 uses a step size of μ3. In such cases, μ1 is the smallest among the three step sizes, and μ3 is the largest among the three step sizes.

In other embodiments, the step size generator 916 determines the step size differently. For instance, the step size generator 916 may employ a function (e.g., a continuous function) that computes the step size based on information received from the error estimator 912. In some embodiments, the step size is given by EQN. (25′).

μ[k]=γEstMSE[k]  (25′)

where γ is a predetermined positive real constant.

FIG. 16 shows a second LE system 1600 according to an embodiment of the invention. The LE system 1600 is an alternative embodiment of the LE system 900 of FIG. 9C. Similar to the LE system 900, the LE system 1600 includes a linear transversal filter 1604 having tap weights w and an output y[n], a selection module 1608, an error estimator 1612, a step size generator 1616 that generates a step size parameter μ[k], and an LMS tap weight module 1620 that adjusts the tap weights w based on the step size parameter μ[k]. Furthermore, the selection module 1608 includes a decoder 1621 that decodes the coded symbols at the equalizer output y[n] using the Viterbi algorithm, and a slicer 1622 that slices the unknown 2-level symbols at a midpoint.
The LE system 1600 also includes a plurality of delay blocks 1624, 1628, 1632 that introduce delays during signal processing. In some embodiments, the error estimator 1612 includes an MSE estimator. In such cases, the step size generator 1616 generates the step size parameter μ[k] based on errors estimated by the MSE estimator. However, unlike the LE system 900 of FIG. 9C, the LE system 1600 uses a trellis decoder 1621 with a full traceback depth D+1 (which thus has a decode delay D) and delay blocks 1624, 1628, 1632, all with delay D. A full traceback depth of the trellis decoder 1621 can generate an output that has a higher reliability than a zero delay output generated by the trellis decoder 928 of FIG. 9C. As such, the trellis decoder 1621 with adjustable traceback depth controlled by the delay blocks 1624, 1628, 1632 can provide a more accurate ξdec,β2 value if both the a priori known 2-level symbol output memory and the y[n] signal are likewise delayed by D. Accordingly, the input to the error estimator 1612 is dD[n], which is dD[n] delayed by an amount D.
In the LE system 1600, for the coded symbols, an instantaneous MSE estimate at block time k given by EQN. (26).




  
    
      
        
          
            ξ
            dec
            2
          
          ⁡
          
            [
            k
            ]
          
        
        =
        
          
            (
            
              1
              M
            
            )
          
          ⁢
          
            
              ∑
              
                i
                =
                0
              
              
                M
                -
                1
              
            
            ⁢
            
              
                (
                
                  
                    
                      y
                      D
                    
                    ⁡
                    
                      [
                      
                        m
                        +
                        i
                      
                      ]
                    
                  
                  -
                  
                    
                      d
                      D
                    
                    ⁡
                    
                      [
                      
                        m
                        +
                        i
                      
                      ]
                    
                  
                
                )
              
              2
            
          
        
      
    
    
      
        (
        26
        )
      
    
  




where k is a block index, the symbol index base m=(k−1)M, yD is a delayed equalizer output, d is a full traceback output of the trellis decoder 1621 with a delay D, and M is a selected block size. Similarly, in the LE system 1600, for the uncoded symbols, an instantaneous MSE estimate at segment j is given by EQN. (27).





  
    
      
        
          
            ξ
            seg
            2
          
          ⁡
          
            [
            j
            ]
          
        
        =
        
          
            (
            
              1
              4
            
            )
          
          ⁢
          
            
              ∑
              
                i
                =
                0
              
              3
            
            ⁢
            
              
                (
                
                  
                    
                      y
                      D
                    
                    ⁡
                    
                      [
                      
                        p
                        +
                        i
                      
                      ]
                    
                  
                  -
                  
                    
                      d
                      D
                    
                    ⁡
                    
                      [
                      
                        p
                        +
                        i
                      
                      ]
                    
                  
                
                )
              
              2
            
          
        
      
    
    
      
        (
        27
        )
      
    
  




where j is a segment index, and p=832(j−1) is a symbol index. Blocks k and segments j are in general asynchronous.

Various convergence criteria may be used in connection with embodiments of the invention. In some embodiments, an initial error (e.g., MSE) estimate based on coded symbols is used to determine if coded symbols should continue to be used for further error estimates, or if uncoded symbols should be used for further error estimates. Other exemplary embodiments use convergence criteria based on how often the sign of an error gradient changes.
Consider a case where the equalizer 970 of FIG. 9A has already converged and its output MSE is low, such that a small LMS step size (μ) has been selected according to the previously described methods. When the equalizer 970 has converged, its tap weights w can be said to be adjusted properly for the current multipath channel conditions, and the tap weights w can be seen to change very little as time progresses, as long as the channel conditions are static. If the channel conditions begin to change with time, the channel is then considered to be dynamic.
If the post convergence channel conditions change rapidly enough, the MSE at the equalizer output will increase because the above-described LMS algorithm, operating with a small step size (μ), cannot track the changing channel conditions fast enough. This may result in a selection of a larger LMS step size (μ) after the MSE has increased beyond a specific point, which may then aid the LMS algorithm in its attempt to track the changing channel conditions. However, this change in channel conditions may be so rapid that a switch to a larger step size is too late, resulting in an ultimate divergence of the equalizer 970 as it is unable to track a dynamic channel.
In some embodiments of the invention, a larger step size is selected earlier in the channel tracking process, while the MSE is still relatively small, using a metric other than the MSE estimate EstMSE. Under dynamic channel conditions, even though the MSE remains low and thus the step size (μ) small, the equalizer tap weights w vary much more than under static channel conditions. Therefore, a measure of the difference of the tap weight vector values w at two points in time, if in excess of one or more predetermined thresholds, can be used to trigger an increase in LMS step size (μ) earlier in the process, while the MSE estimate EstMSE is still small.
FIG. 17 shows a digital communications device 1700 according to an embodiment of the invention. The device 1700 can be implemented as, or in conjunction with, any of a host of devices, such as, for example, a receiver (e.g., digital communication receiver), tuner, PC adapter card, set top box, DVD recorder, HDTV recorder, television, phone, or handheld device. The device 1700 can be implemented partially or entirely on a semiconductor (e.g., FPGA semiconductor) chip, such as a chip developed through a register transfer level (RTL) design process. The device 1700 includes a receiver module 1704 and optional hardware and/or software module(s) 1706 that provide additional functions (e.g., display functions). In other embodiments, the device 1700 includes more or fewer modules than those depicted. For example, certain of the depicted modules can be implemented on other devices that interface with the device 1700 (e.g., the receiver module 1704 can communicate with a display module incorporated in a separate device).
The receiver module 1704 includes a demodulator 1708, a decoder 1712, and an equalizer 1716. In some embodiments, the receiver module 1704 includes one or more additional modules, such as, for example, a tuner, a sync and timing recovery module, a matched filter, a phase tracker, a deinterleaver, a second decoder, a slicer, a derandomizer, a Fourier transformer, and/or an inverse Fourier transformer. The equalizer 1716 includes a tap weight module 1720, a difference module 1724, an error estimator 1728, a comparison module 1732, and a step size factor module 1736. In some embodiments, the tap weight module 1720 stores, in a memory, tap weights corresponding to multiple instants in time. For example, the tap weight module 1720 stores a first set of tap weights at time indices k+L, and a second set of tap weights at time index k. In some embodiments, the tap weight module 1720 constantly updates the stored tap weights.
FIG. 18 shows a channel tracking method 1800 according to an embodiment of the invention. The method 1800 can be employed by, or in conjunction with, an equalizer for a digital data receiver. For instance, the method 1800 can be employed by the receiver module 1704 and/or equalizer 1716 of FIG. 17, as well as in connection with other embodiments described herein. In task 1804, a first set of equalizer tap weights (w[k]) at a first point in time, and a second set of equalizer tap weights (w[k+L]) at a second point in time, are determined (e.g., retrieved from the tap weight module 1720 or an associated memory). In task 1808, a difference between the first and second sets of tap weights is determined. In some embodiments, the difference is a metric (p[k]) determined by calculating a 2-norm of the difference of the tap weight vectors w at the respective points in time, given by EQN. (28) as follows.

ρ[k]=∥w[k]−w[k−L]∥22  (28)

The metric determined by EQN. (28) is a time domain metric. In some embodiments, values of L are determined (e.g., selected) in advance. In general, the values of L are small enough so that the amount of tap weight variation (as represented by ρ[k]) can be determined quickly and updated frequently, but also large enough so that the amount of tap weight variation is not too small to be useful. For example, with k representing a block of symbols index, and with such block being 512 symbols in length, a value of L=50 or L=100 may be employed.

At task 1812, an error estimate EstMSE[k] is determined based on the decoded or the uncoded symbols (e.g., as described above). In some embodiments, an initial LMS step size is selected based on the error estimate, as shown in expression (25) described above. At task 1816, the error estimate determined at task 1812 is compared to a divergence threshold, γ. In some embodiments, the divergence threshold is generally a predetermined constant below which the equalizer is able to track a dynamic channel (e.g., a predetermined constant below which the equalizer is said to have converged to a relatively low MSE). At task 1820, a step size factor is determined based on the difference of task 1808 and the comparison of task 1816. In time domain processing, the step size factor can be, for example, a step size increment (Δμr). If the error estimate EstMSE[k] is less than the divergence threshold, γ, the LMS step size (μ) is adjusted with the step size increment determined by expression (29) as follows.

If EstMSE[k]<γand if ρ[k]∈Ir,

μ[k]=μ[k]+Δμr  (29)

where Ir represents a plurality of difference ranges. In general, larger values of ρ[k] correspond to larger values of the step size increment, Δμr. For example, five regions may be established for ρ[k], as shown in exemplary expression (30) as follows.





  
    
      
        
          
            
              
                J
                1
              
              =
              
                (
                
                  0
                  ,
                  20
                
                ]
              
            
          
          
            
              
                Δ
                ⁢
                
                  
                
                ⁢
                
                  μ
                  1
                
              
              =
              0
            
          
        
        
          
            
              
                J
                2
              
              =
              
                (
                
                  20
                  ,
                  40
                
                ]
              
            
          
          
            
              
                Δ
                ⁢
                
                  
                
                ⁢
                
                  μ
                  2
                
              
              =
              
                5.6
                ×
                
                  10
                  
                    -
                    3
                  
                
              
            
          
        
        
          
            
              
                J
                3
              
              =
              
                (
                
                  40
                  ,
                  60
                
                ]
              
            
          
          
            
              
                Δ
                ⁢
                
                  
                
                ⁢
                
                  μ
                  3
                
              
              =
              
                1.1
                ×
                
                  10
                  
                    -
                    2
                  
                
              
            
          
        
        
          
            
              
                J
                4
              
              =
              
                (
                
                  60
                  ,
                  80
                
                ]
              
            
          
          
            
              
                Δ
                ⁢
                
                  
                
                ⁢
                
                  μ
                  4
                
              
              =
              
                1.7
                ×
                
                  10
                  
                    -
                    2
                  
                
              
            
          
        
        
          
            
              
                J
                5
              
              =
              
                (
                
                  80
                  ,
                  ∞
                
                )
              
            
          
          
            
              
                Δ
                ⁢
                
                  
                
                ⁢
                
                  μ
                  5
                
              
              =
              
                2.3
                ×
                
                  10
                  
                    -
                    2
                  
                
              
            
          
        
      
    
    
      
        (
        30
        )
      
    
  




That is, a different step size increment, Δμr, is selected based on which of the difference ranges includes the determined difference. For example, for a difference of 55, which falls in the third difference range I3, a step size increment, Δμ3, of 1.1×10−2 is selected. In other embodiments, the difference ranges may vary considerably depending on the particular equalizer implementation and the selected value for L. Alternatively, Δμ can be set to a value that is directly proportional to ρ[k] on a more continuous basis.

Variations of the method 1800 are within the scope of embodiments of the invention. For instance, in one embodiment, a method processes the received symbols (decoded and/or uncoded) in the frequency domain.
More specifically, each of the linear transversal filters 904 (of FIG. 9) and 1604 (of FIG. 16) has a particular filter length. In some applications, the length of such a filter can reach hundreds or thousands of taps. In such cases, more efficient hardware implementations are possible by utilizing a filter that operates in a block manner in the frequency domain. With the Fast Fourier Transform (“FFT”) and its inverse (“IFFT”), the large computational overhead required for time domain convolution of the input data with the equalizer filter taps can be greatly reduced by implementing a frequency domain point wise vector multiply along with an overlap and save methodology. Additionally, the LMS iteration process as described above can be performed only once per block of symbols, instead of once per symbol. The block size is generally defined as the length of the FFT (N) minus an overlap.
FIG. 19 shows an unconstrained frequency domain equalizer 1900 according to an embodiment of the invention. The frequency domain equalizer 1900 includes a FFT module 1904 that transforms an equalizer input vector, u[k], into its frequency domain equivalent, UF[k], as defined in EQN. (31).

UF[k]=FFT(u[k])  (31)

where k is the block index, and the subscript F indicates a frequency domain vector. The frequency domain equalizer 1900 also includes an IFFT module 1908 that inverse transforms the equalizer frequency domain output vector, YF[k], into its time domain equivalent, y[k], as defined in EQN. (32).

y[k]=IFFT(UF[k]{circumflex over (x)}WF[k])  (32)

where {circumflex over (x)} represents point wise vector multiply, and WF[k] is the frequency domain tap weight vector at time index k. The output vector, y[k], is then fed to a decision device 1912, such as the decision devices 908, 1608 described above. The decision device 1912 then generates a desired symbol vector, d[k].

In addition,




  
    
      y
      ~
    
    ⁡
    
      [
      k
      ]
    
  
  =
  
    
      
        [
        
          
            
              0
            
          
          
            
              
                y
                ⁡
                
                  [
                  k
                  ]
                
              
            
          
        
        ]
      
      ⁢
      
        
      
      ⁢
      and
      ⁢
      
        
      
      ⁢
      
        
          d
          ~
        
        ⁡
        
          [
          k
          ]
        
      
    
    =
    
      [
      
        
          
            0
          
        
        
          
            
              d
              ⁡
              
                [
                k
                ]
              
            
          
        
      
      ]
    
  




are the zero padded filter output and zero padded desired symbol vectors, respectively, with such zero padding as needed to properly execute an overlap and save methodology. An error vector (e[k]) is then obtained by subtracting the output vector from the desired symbol vector, e[k]={tilde over (d)}[k]−{tilde over (y)}[k]. Similarly, a frequency domain error vector can then be defined as the FFT of a vector difference between the zero-padded desired symbol vectors and the zero-padded filter output vectors at an FFT module 1916, as shown in EQN. (33).

EF[k]=FFT({tilde over (d)}[k]−{tilde over (y)}[k])=FFT(e[k])  (33)

Similar to the error estimators 912, 1612 described above, an error estimator 1920 estimates an error from the error vector (e[k]).

After the frequency domain input vector, UF[k], has been Hermitian conjugated at a conjugate module 1924 to obtain UFH[k], it is point-wise vector multiplied by the frequency domain error vector, EF[k]. A variable step size module 1928 then determines a variable step size scalar μ[k] from the error estimate EstMSE[k] as described. The equalizer 1900 then iteratively determines a new set of tap weights based on the current set of tap weights, the scalar μ[k], and a delay 1932 in a frequency block LMS (“FBLMS”) iteration process, which is executed once per block. A FBLMS iteration process under a normal multipath condition is given by EQN. (34).

WF[k+1]=WF[k +]μ[k](UFH[k]{circle around (x)}EF[k])  (34)

Under difficult multipath conditions, the convergence properties of the equalizer 1900 can be improved if the variable step size module 1928 utilizes step size power normalization. An exemplary step size power normalization process is represented by EQN. (35) as follows.

WF[k+1]=WF[k]+μ[k]D−1(UFH[k]{circle around (x)}EF[k])   (35)

where D is a step size normalization matrix, as shown in EQN. (36).

D=diag[{circumflex over (λ)}0 . . . {circumflex over (λ)}N−1]  (36)

where {circumflex over (λ)}i provides a normalization factor for each equalizer tap i, where i=0 . . . (N−1). {circumflex over (λ)}i is defined in EQN. (37) as follows.

{circumflex over (λ)}i[k]=βstep{circumflex over (λ)}i[k−1]+(1−βstep)|UF,i[k]|2  (37)

where βstep is a predetermined forgetting factor.

The normalization factors {circumflex over (λ)}i's are a function of the frequency domain samples of the received data stream, uF,i; hence, the {circumflex over (λ)}i's are a function of the channel conditions. The forgetting factor, βstep, controls the updating and averaging of the calculated normalizing factors. A larger βstep gives more weight to past values of {circumflex over (λ)}i, enhancing the effect of averaging over time and providing a more accurate estimate of the ideal power normalization factor. A smaller βstep gives less weight to past values of {circumflex over (λ)}i, resulting in a noisier estimate of the power normalization factor.
In some embodiments, larger values of βstep are employed for static channels. However, in other embodiments, for dynamic channels, an optimal value for {circumflex over (λ)}i changes over time as the channel condition changes. Hence, in some embodiments, a smaller value of βstep is employed to more quickly “forget” past values.
In the frequency domain, the channel tracking method 1800 of FIG. 18 can be employed to determine a step size factor that is, for example, the forgetting factor βstep. The difference of task 1808 can be determined, for example, by calculating a 2-norm of the difference of the frequency domain or transformed tap weight vectors at different points in time k and k−L, as shown in EQN. (38) as follows.

ρ[k]=∥WF[k]−WF[k−L]∥22  (38)

In an embodiment, either a large or small βstep is selected depending on an estimate of changing channel conditions as shown in expressions (39) and (40).

If EstMSE[k]<γ

if p[k]>α,

βstep[k]=ξsmall  (39)

else

βstep[k]=ξlarge  (40)

where α is a difference threshold, λsmall and ξlarge are predetermined constants, and ξsmall<ξlarge. That is, if the error estimate is less than the divergence threshold, and if the difference is greater than the difference threshold, the forgetting factor is assigned a relatively small value. Conversely, if the error estimate is less than the divergence threshold, and if the difference is less than the difference threshold, the forgetting factor is assigned a relatively large value. Alternatively, βstep[k] can be set to be inversely proportional to ρ[k] in a continuous manner as shown in expression (41).





  
    
      
        
          
            if
            ⁢
            
              
            
            ⁢
            
              EstMSE
              ⁡
              
                [
                k
                ]
              
            
          
          <
          γ
        
        ,
        
          
            
              β
              step
            
            ⁡
            
              [
              k
              ]
            
          
          =
          
            κ
            
              ρ
              ⁡
              
                [
                k
                ]
              
            
          
        
      
    
    
      
        (
        41
        )
      
    
  




where κ is a predetermined constant. That is, if the error estimate is greater than a divergence threshold, the forgetting factor increases as the difference decreases.

Once the variable step size module 1928 determines the forgetting factor, βstep[k], the variable step size module 1928 proceeds to determine the normalization factor {circumflex over (λ)}i for each equalizer tap, and to generate the step size normalization matrix, D, as described. The equalizer 1900 then iteratively generates a new set of frequency domain tap weights, WF[k+1], based on EQN. (35). A delay is then applied to the new set of frequency domain tap weights at the delay module 1932. The delayed set of frequency domain tap weights are then used in filtering an input vector. The equalizer 1900 then iteratively applies the FBLMS process as described.
It should be noted that the numerical values described above and illustrated in the drawings are exemplary values only. Other numerical values can also be used. Additionally, various embodiments above may be selectively and separately implemented in suitable contexts, or together (e.g., in the same equalizer).
Various features and advantages of the invention are set forth in the following claims.

## Claims

1. A method of channel tracking in an adaptive equalizer for a digital data receiver, the receiver configured to receive radio frequency signals modulated with data including coded symbols and uncoded symbols, the method comprising:
demodulating, in a demodulator, the received radio frequency signals to produce the coded symbols and the uncoded symbols;
decoding, in a decoder, the coded symbols to produce corresponding decoded symbols;
determining, in a tap weight module, a first set of equalizer tap weights at a first time and a second set of equalizer tap weights at a second time;
calculating, in a difference module, a difference between the first and second sets of equalizer tap weights;
determining, in an error estimator, an error estimate based on the symbols received at the receiver;
comparing, in a comparison module, the error estimate with a divergence threshold;
determining, in a step size factor module, a step size factor based on the difference between the first and second sets of equalizer tap weights and the comparison of the error estimate with the divergence threshold, wherein the step size factor is adjusted when the error estimate is less than the divergence threshold; and
calculating a new step size value as a function of the step size factor and a current step size value.

2. The method of claim 1, wherein the first and second sets of equalizer tap weights comprise respective frequency domain tap weights, and the step size factor comprises a forgetting factor.

3. The method of claim 2, wherein determining a step size factor comprises:
assigning a first predetermined forgetting factor when the difference between the first and second sets of equalizer tap weights is greater than a difference threshold; and
assigning a second predetermined forgetting factor when the difference between the first and second sets of equalizer tap weights is less than or equal to the difference threshold,
wherein the first predetermined forgetting factor is less than the second predetermined forgetting factor.

4. The method of claim 2, wherein the forgetting factor is inverse- proportionally related to the difference between the first and second sets of equalizer tap weights.

5. The method of claim 2, wherein the difference between the first and second sets of equalizer tap weights comprises a 2-norm difference, the method further comprising:
determining a normalization factor based on the forgetting factor and the first and second sets of equalizer tap weights; and
iteratively determining a third set of frequency domain tap weights based on the normalization factor.

6. The method of claim 1, wherein the step size factor comprises a step size increment, and wherein determining a step size factor comprises:
comparing the difference between the first and second sets of equalizer tap weights with a plurality of difference ranges including a first difference range, each of the difference ranges having a corresponding step size increment; and
selecting the corresponding step size increment of the first difference range if the difference between the first and second sets of equalizer tap weights is within the first difference range.

7. The method of claim 6, further comprising incrementing the current step size based on the step size increment to determine the new step size.

8. The method of claim 1, further comprising:
comparing the error estimate with a plurality of error ranges including a first error range, each of the error ranges having a corresponding base step size; and
selecting a corresponding base step size of the first error range if the error estimate is within the first error range.

9. The method of claim 1, wherein the difference comprises a 2-norm of the difference between the first and second sets of equalizer tap weights.

10. The method of claim 1, wherein the error estimate comprises a mean-squared-error estimate.

11. The method of claim 1, wherein the first time is different from the second time.

12. The method of claim 11, further comprising determining a third set of tap weights based on at least one of the first and second sets of equalizer tap weights, the difference between the first and second sets of equalizer tap weights, and the comparison of the error estimate with the divergence threshold, wherein the third set of tap weights comprise tap weights of the equalizer at a third time, wherein the third time is different from the first and second times.

13. The method of claim 1, wherein calculating a new step size value includes adding the step size factor to the current step size value.

14. The method of claim 1, wherein the equalizer is a linear-mean-squared (LMS) equalizer for 8-level-vestigial-sideband (8VSB) modulated signals.

15. The method of claim 1, wherein the digital data receiver is a digital television receiver.

16. An adaptive equalizer for a digital data receiver, data received by the receiver including coded symbols, the equalizer comprising:
a tap weight module configured to determine a first set of equalizer tap weights at a first time and a second set of equalizer tap weights at a second time;
a difference module configured to calculate a difference between the first and second sets of equalizer tap weights;
an error estimator configured to determine an error estimate based on symbols received at the receiver;
a comparison module configured to compare the error estimate with a divergence threshold;
a step size factor module configured to determine a step size factor based on the difference between the first and second sets of equalizer tap weights and the comparison of the error estimate with the divergence threshold, wherein the step size factor is adjusted when the error estimate is less than the divergence threshold; and
a step size generator configured to generate a new step size as a function of the step size factor and a current step size.

17. The equalizer of claim 16, wherein the equalizer is implemented on a semiconductor chip.

18. The equalizer of claim 16, wherein the equalizer is implemented in a digital television receiver.

19. The equalizer of claim 16, wherein the step size factor comprises a step size increment.

20. The equalizer of claim 16, wherein the equalizer is a frequency domain block linear-mean-squared (FBLMS) equalizer for 8-level-vestigial-sideband (8VSB) modulated signals, and wherein the step size factor comprises a forgetting factor.

21. A device configured to process digital television signals, thecm device comprising:
a receiver including a demodulator, a decoder, and an equalizer,
the receiver configured to receive radio frequency signals modulated with data including coded symbols and uncoded symbols,
the demodulator configured to demodulate the received radio frequency signals to produce the coded symbols and the uncoded symbols,
the decoder configured to decode the coded symbols to produce corresponding decoded symbols, and
the equalizer including
a tap weight module configured to determine a first set of equalizer tap weights at a first time and a second set of equalizer tap weights at a second time,
a difference module configured to determine a difference between the first and second sets of equalizer tap weights,
an error estimator configured to determine an error estimate based on symbols received at the receiver,
a comparison module configured to compare the error estimate with a divergence threshold,
a step size factor module configured to determine a step size factor based on the difference between the first and second sets of equalizer tap weights and the comparison of the error estimate with the divergence threshold, wherein the step size factor is adjusted when the error estimate is less than the divergence threshold, and
a step size generator configured to generate a new step size as a function of the step size factor and a current step size.

22. The device of claim 21, wherein the device is a tuner, a television, a PC adapter card, a set top box, a DVD recorder, a HDTV recorder, a phone, or a handheld device.

23. A method of determining a step size for a linear-mean-squared (LMS) equalizer of 8-level-vestigial-sideband (8VSB) modulated signals having trellis-coded symbols and segment sync symbols, the method comprising:
(a) determining a mean-squared-error estimate based on at least one of decoded trellis-coded symbols and the segment sync symbols;
(b) determining a first set of equalizer tap weights at a first time and a second set of equalizer tap weights at a second time;
(c) determining a 2-norm of the difference between the first and second sets of equalizer tap weights;
(d) comparing the error estimate with a divergence threshold;
(e) if the error estimate is less than the divergence threshold, comparing the 2-norm difference between the first and second sets of equalizer tap weights with a plurality of difference ranges including a first difference range, each of the difference ranges having a corresponding step size increment, selecting the corresponding step size increment of the first difference range if the 2-norm is within the first difference range, and incrementing a base step size based on the step size increment to determine a step size, and determining a third set of tap weights based on the step size; and
(f) iteratively performing acts (a)-(e).

24. A digital communication receiver configured to receive radio frequency signals modulated with data including coded symbols and a priori known uncoded symbols, the receiver comprising:
a demodulator configured to demodulate the received radio frequency signals to produce the coded symbols and the a priori known uncoded symbols;
a decoder configured to decode the coded symbols to produce corresponding decoded symbols; and
a frequency domain equalizer including
a difference module configured to determine a difference between a first equalizer tap weight vector at a first time and a second equalizer tap weight vector at a second time,
an error estimator configured to determine an error estimate based on the decoded symbols or the uncoded symbols,
a comparison module configured to compare the error estimate with a divergence threshold, and
a forgetting factor module configured to determine a forgetting factor based on the difference between the first and second equalizer tap weight vectors and the comparison of the error estimate with the divergence threshold.