This month we turn to the topic of *adaptive digital
filters*. Just as we improved our ability to apply controls to
external process by introducing a *closed loop*, we will improve
our filtering by closing the
loop and using the filter output to modify the filter in real-time.

Adaptive filters can either be IIR (Infinite Impulse Response) or
FIR (Finite Impulse Response) type filters (there are also
*nonlinear* filter types, but we will not consider them here).
Generally the form of the filter remains fixed as it runs, but a
special output channel of the filter (usually called the error
output) is fed into a process which recalculates the filter
*coefficients* in order to produce an output that is closer to the
desired form (see Figure 1). If it is properly designed, the
result of such a
filter is an output that enhances the desired component over a
wide range of conditions.

As with ordinary digital filters, there is a vast amount of written material available on the topic of adaptive filters. We will only give a limited introduction to the topic here. You should also be aware that a proper treatement of adaptive filters requires a good deal of calculus and linear algebra; I will mostly spare you all the math in order to provide an introduction to the types of adaptive filters and their applications.