# What Does an Adaptive Filter Do?

I studied a bit about adaptive filter on internet and found that its a special filter which keep on updating its filter value as soon as it proceeds. It finds out the difference between input and output and using the error function and previous coefficients finds out the new filter coefficients.

But this doesn't make any sense. It always tries to minimize the difference between input and output. So, how is it of any use, if it tries to pass all the signals as it is.

Can anyone explain me how it is being used in real day applications.

It will also be good if you can help me through some links which could help me in implementation of adaptive digital filter.

please comment if I am unclear in expressing my doubt !

• In at least some practical applications of adaptive filter, what it does is a continous search for a «best fit» for an (assumed) fir filter that is itself unknown, but whose input and output is known. Mar 3, 2020 at 15:27

The key concept that you are missing is that you are not just minimising the difference between input and output signals. The error is often calculated from a 2nd input. Just look at the Wikipedia example related to the ECG.

The filter coefficients in this example are recalculated to change the notch frequency of a notch filter according to the frequency extracted from the mains signal. One could use a static notch filter, but you would have to reject a wider range of frequencies to accommodate the variability in the mains frequency. The adaptive filter follows the mains frequency and so the stop band can be much more narrow, thus retaining more of the useful ECG information.

EDIT:

I have looked at this again and I think I understand your question a little better. The LMS algorithm needs an error term in order to update the filter coefficients. In the ECG example that I paraphrase above, I give the error term as a second input from a mains voltage. Now I'm guessing that you are thinking, "Why not just subtract the noise from the signal-plus-noise to leave the signal?" This would work fine in a simple linear system. Even worse, most examples given online tell you (correctly but confusingly) that the error term is calculated from the difference between the desired signal and the output of the adaptive filter. This leaves any reasonable person thinking "If you already have the desired signal, why bother doing any of this!?". This can leave the reader lacking motivation to read and comprehend the mathematical descriptions of adaptive filters. However, the key is in section 18.4 of Digital Signal Processing Handbook, Ed. Vijay K. Madisetti and Douglas B. William.

where:

• x=input signal,
• y=output from filter,
• W=the filter coefficients,
• d=desired output,
• e=error

In practice, the quantity of interest is not always d. Our desire may be to represent in y a certain component of d that is contained in x, or it may be to isolate a component of d within the error e that is not contained in x. Alternatively, we may be solely interested in the values of the parameters in W and have no concern about x, y, or d themselves. Practical examples of each of these scenarios are provided later in this chapter.

There are situations in which d is not available at all times. In such situations, adaptation typically occurs only when d is available. When d is unavailable, we typically use our most-recent parameter estimates to compute y in an attempt to estimate the desired response signal d.

There are real-world situations in which d is never available. In such cases, one can use additional information about the characteristics of a “hypothetical” d, such as its predicted statistical behavior or amplitude characteristics, to form suitable estimates of d from the signals available to the adaptive ﬁlter. Such methods are collectively called blind adaptation algorithms. The fact that such schemes even work is a tribute both to the ingenuity of the developers of the algorithms and to the technological maturity of the adaptive ﬁltering ﬁeld

I will keep building on this answer when I get the time, in an attempt to improve the ECG example.

I found this set of lecture notes to be particularly good also: Advanced Signal Processing Adaptive Estimation and Adaptive Filters - Danilo Mandic

• Thanks for explanation. I have heard that adaptive filters are implemented through LMS algorithm. Can u give me a useful link so that I can implement it Feb 27, 2012 at 19:21
• Adaptive filter theory is complex and math-intensive. Just getting a pointer to what the LMS algorithm looks like won't tell you a whole lot. If you write some software to do it and it doesn't work, you'll be hard-pressed to figure out the problem. With that said, Wikipedia has a decent page on the LMS filter. Mar 1, 2012 at 13:40
• Thanks a lot ! I understood the working of LMS and implemented it :D Mar 5, 2012 at 9:02
• You say "to change the notch frequency of a notch filter according to the frequncy extracted from the mains signal" while the ECG example says "and subtract the noise from the recording" but notch filters are not subtractive, they are multiplicative, and null out all signal at a given frequency. So does it track the frequencies and phases of the mains signal and subtract them, leaving desired signals at those frequencies? Or does it null out anything at those frequencies with notch filters? Can you think of a better example? Oct 10, 2014 at 20:01

http://ezcodesample.com/UAF/UAF.html this is example with coding samples of nonlinear adaptive filtering.