Adaptive FIR filter and method

Finite impulse response filters are commonly used in high speed data communications electronics for reducing error rates in multilevel symbol encoding schemes. Schemes such as pulse amplitude modulation and quadrature amplitude modulation may have higher error rates for symbols with low signal to noise ratios. By selectively updating the tap coefficients of the filter based on the symbols received, a more robust, accurate filter can be built.

FIELD

The invention relates to finite impulse response filters, and, more specifically, adaptive finite impulse response filters.

BACKGROUND

Finite impulse response (FIR) filters are commonly used in high speed data communications electronics for reducing error rates in multilevel symbol encoding schemes. Schemes such as pulse amplitude modulation (PAM) and quadrature amplitude modulation (QAM) may have higher error rates for symbols with low signal to noise ratios. A symbol refers to a data pulse on a line. The symbol may have several bits of information encoded within the voltage level and polarity (PAN for example). By using high levels of bit encoding in symbols, lower symbol rates can be used. Lower symbol rates are desirable because of their lower levels of noise.

FIG. 1shows an example of a symbol pulse. The symbol pulse102shows the analog voltage vs. time response of the symbol being driven on the line. In an ideal world, the symbol pulse102would look like a square wave. Unfortunately, real pulses have profiles like that shown inFIG. 1. The line is driven so that at time t0the amplitude of the pulse102is about h0. As the pulse102is driven back to zero, it still has an amplitude of h1at time t1. The spacing of times t0and t1corresponds with the symbol rate. Thus, the receiver might confuse the pulse102amplitude at time t1with a symbol meant to be valid at time t1, when it was simply the tail end of the pulse102meant to be valid at time t0.

FIG. 2shows an example of two successive four level PAM symbols. Four level PAM usually has an encoding scheme with four different voltage levels: +3, +1, −1, and −3 volts. This scheme gives two bits of encoding. Two successive symbols are shown with their possible waveforms for each pulse, one intended to be valid at time t0and one at t1. The first symbol has possible pulses peaking at time t0and has the following possibilities: a +3 pulse202, a +1 pulse204, a −1 pulse206, or a −3 pulse208. Similarly, the second symbol has possible pulses peaking at time t1and has the following possibilities: a +3 pulse210, a +1 pulse212, a −1 pulse214, or a −3 pulse216. One can see that a +3 pulse202looks like +3 volts at time t0and +1 volt at time t1.

FIG. 3shows an example of a one tap FIR filter. The filter302provides a method of determining how much of first symbols tail needs to be removed from the apparent head of a second symbol. Data303, which may be digital decoded, passes through a delay block304. The delay block304delays the propagation of the data303for one period corresponding to the symbol rate. The data303then goes into the pulse block306, where the sign of the data303is determined. It is also possible to determine the sign of the data303before the pulse block306and simply feed the sign of the data to the pulse block306. The pulse block306also receives the sign of the error308, which is determined by the difference between a symbol pulse and its decoded data at a given clock edge.

The output of a prior art pulse block306is the sign of the data303multiplied by the sign of the error308. This output in the up/down pulse, and it is fed into an integrator310. The integrator multiplies the up/down pulse by a small constant μ and adds that value to the previous filter coefficient to create a new coefficient. The following equation summarizes this:
hi+1=hi+(μ*sign(data)*sign(error))
Thus, the coefficient of the filter302constantly changes based on the sign of the error308and the sign of the data303. The coefficient output of the integrator310is multiplied by the delayed data303at a multiplier312. The result is a correction signal314that, when added to the symbol signal, ideally cancels any signal portions of previous symbols from a current symbol before the current symbol is decoded. Actual filters302may employ more than one tap in order to achieve the desired results.

FIG. 4shows a chart of a prior art up/down pulse determination scheme. The sign of the data multiplied by the sign of the error determines the sign of the up/down pulse. Unfortunately, this prior art scheme does not work very well for noisy systems and symbols with small signals.

FIG. 5shows an example of amplitude error and noise for symbols. The symbols 3, 1, −1, and −3508,506,504,502respectively each have error distributions in their amplitudes. Also shown is a noise510distribution. For symbols with low signal to noise ratios, like symbol 1506and symbol −1504, the noise510in the system may disrupt the accuracy of the up/down pulse. This, in turn, may erroneously affect the modification of filter coefficients.

Thus, there is a need for a FIR filter that accounts for low signal to noise ratio symbols when updating filter coefficients.

SUMMARY

This document describes a FIR filter where filter coefficients are selectively updated. This document also describes a method for selectively updating filter coefficients.

DESCRIPTION

FIR filters are used in many types of circuits. Examples include decision-feedback equalizers (DFE), echo cancellers (EC), feed forward equalizers (FFE), automatic gain control (AGC), and adaptive reference control (ARC). By not updating the filter coefficients for symbols with low signal to noise ratios, a more robust, less noise sensitive filter can be created.

FIG. 6shows an example of a selective up/down pulse scheme for four level PAM. With four level PAM, the +3, −3 symbols have high signal to noise ratios, while the +1, −1 symbols have low signal to noise ratios. By changing the possible output of a pulse block (from −1, 1 in the prior art) to −1, 0, 1, the filter is allowed to keep its coefficients constant for symbols with low signal to noise ratios. The scheme shown inFIG. 6outputs the sign(data)*sign(error) for symbols of +3 and −3, but the scheme also has an output of zero for symbols of +1 and −1. An output of zero means that an integrator will keep a tap coefficient constant for that symbol. The implementation of the modified up/down pulse scheme may be, among others, a lookup table or simple logical circuit. The implementation looks at both the sign and magnitude of the symbol.

The method of selectively updating filter coefficients may be applied to any encoding scheme. For example, with eight level PAM, one may choose to only update the coefficients for symbols with the largest absolute values (for example, +7 and −7, where the symbols are −7, −5, −3, −1, 1, 3, 5, 7). In another example, with 12 level PAM, one may choose to only update the coefficients for symbols with the largest absolute values (for example, +11 and −11, where the symbols are −11, −9, −7, −5, −3, −1, 1, 3, 5, 7, 9, 11). Alternately, one may choose to update the coefficients only for symbols with absolute signals in the upper half of possibilities. Alternately, one may choose to update the coefficients for all symbols except those with the smallest absolute signals (for example, update for all but 1 and −1 in 12-PAM). The scheme may also be used for quadrature encoded symbols. The symbols with low signal to noise ratios simply do not trigger an update of the filter coefficients.

FIG. 7shows an example of a three tap DFE filter. The DFE filter700includes three taps702a,702b,702c. The taps702a,702b,702ceach comprise a FIR filter with a selective coefficient updating scheme. The output of the taps is added to an incoming signal704at a summing node706. The output of the summing node706ideally has a level corresponding to the current symbol. The decision circuit708decodes the signal into data710. The difference between the data710and the symbol is determined at a subtracting node712. This difference comprises the error. Feeding the error through a slicer714results in the sign of the error, which is fed to each tap702a,702b,702cof the filter700. The table blocks noted in each tap702a,702b,702ccomprise the up/down pulse blocks that select an up, down, or zero pulse for the integrator. The table blocks may be lookup tables, logic, or even an adaptive algorithm that determines for which symbols the coefficients will be updated. The schemes used in each tap may not necessarily be the same.

It will be apparent to one skilled in the art that the described embodiments may be altered in many ways without departing from the spirit and scope of the invention. Accordingly, the scope of the invention should be determined by the following claims and their equivalents.