Embodiments of the invention relate generally to digital communication systems and methods, and particularly to digital television receivers.
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
The remaining 312 segments of each field 104, 108 are referred to as data segments. An exemplary data segment 300 is shown in
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.
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πF
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):
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
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):
The matched filter output y(t) in the receiver prior to equalization is given by EQN. (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):
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,
R
uu
[n]=E(u[n]uH[n]) has a size of N×N, and
r
du
=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):
An optimal MMSE tap vector wopt is found by setting ∇J(w)=0, yielding the Weiner Hopf tap weight solution given by EQN. (11):
w
opt
[n]=R
uu
−1
[n]r
du
[n] (11)
The MSE is generally a measure of the closeness of w to wopt. As a function of the tap weight vector w, the MSE is then given by EQN. (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),
R
uu
[n]≈u[n]u
H
[n] (14)
and
r
du
≈u[n]d*[n], (15)
the gradient can be given by EQN. (16):
A practical LMS algorithm for the equalizer 520, as shown in EQN. (17), can then be determined from EQN. (13):
where μ is a step size parameter.
As shown in
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
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.
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”).
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.
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.
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).
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.
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).
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.
As shown in
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)
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 R, the step size generator 916 sets the step size parameter μ[k] equal to a predetermined step size μr.
If EstMSE[k]εR,
u[k]=μ, (25)
end
In one embodiment, smaller values of EstMSE correspond to lower values of μ. 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.
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
In the LE system 1600, for the coded symbols, an instantaneous MSE estimate at block time k given by EQN. (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).
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
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.
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.
ρ[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] ε ℑr,
μ[k]=μ[k]+Δμr (29)
where ℑr 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.
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 ℑ3, 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
U
F
[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,
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).
E
F
[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).
W
F
[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.
W
F
[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
ρ[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).
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.
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.
Number | Date | Country | |
---|---|---|---|
60885692 | Jan 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11687909 | Mar 2007 | US |
Child | 11776233 | US |