Documentation |
On this page… |
---|
Introduction to Adaptive Filtering Adaptive Filtering Methodology |
Adaptive filtering involves the changing of filter parameters (coefficients) over time, to adapt to changing signal characteristics. Over the past three decades, digital signal processors have made great advances in increasing speed and complexity, and reducing power consumption. As a result, real-time adaptive filtering algorithms are quickly becoming practical and essential for the future of communications, both wired and wireless.
For more detailed information about adaptive filters and adaptive filter theory, refer to the books listed in the Selected Bibliography.
This section presents a brief description of how adaptive filters work and some of the applications where they can be useful.
Adaptive filters self learn. As the signal into the filter continues, the adaptive filter coefficients adjust themselves to achieve the desired result, such as identifying an unknown filter or canceling noise in the input signal. In the figure below, the shaded box represents the adaptive filter, comprising the adaptive filter and the adaptive recursive least squares (RLS) algorithm.
Block Diagram That Defines the Inputs and Output of a Generic RLS Adaptive Filter
The next figure provides the general adaptive filter setup with inputs and outputs.
Block Diagram Defining General Adaptive Filter Algorithm Inputs and Outputs
DSP System Toolbox™ software includes adaptive filters of a broad range of forms, all of which can be worthwhile for specific needs. Some of the common ones are:
Adaptive filters based on least mean squares (LMS) techniques, such as adaptfilt.lms, adaptfilt.filtxlms, and adaptfilt.nlms
Adaptive filters based on recursive least squares (RLS) techniques. For example, adaptfilt.rls and adaptfilt.swrls
Adaptive filters based on sign-data (adaptfilt.sd), sign-error (adaptfilt.se), and sign-sign (adaptfilt.ss) techniques
Adaptive filters based on lattice filters. For example, adaptfilt.gal and adaptfilt.lsl
Adaptive filters that operate in the frequency domain, such as adaptfilt.fdaf and adaptfilt.pbufdaf.
Adaptive filters that operate in the transform domain. Two of these are the adaptfilt.tdafdft and adaptfilt.tdafdct filters
An adaptive filter designs itself based on the characteristics of the input signal to the filter and a signal that represents the desired behavior of the filter on its input.
Designing the filter does not require any other frequency response information or specification. To define the self-learning process the filter uses, you select the adaptive algorithm used to reduce the error between the output signal y(k) and the desired signal d(k).
When the LMS performance criterion for e(k) has achieved its minimum value through the iterations of the adapting algorithm, the adaptive filter is finished and its coefficients have converged to a solution. Now the output from the adaptive filter matches closely the desired signal d(k). When you change the input data characteristics, sometimes called the filter environment, the filter adapts to the new environment by generating a new set of coefficients for the new data. Notice that when e(k) goes to zero and remains there you achieve perfect adaptation, the ideal result but not likely in the real world.
The adaptive filter functions in this toolbox implement the shaded portion of the figures, replacing the adaptive algorithm with an appropriate technique. To use one of the functions, you provide the input signal or signals and the initial values for the filter.
Adaptive Filters in DSP System Toolbox Software offers details about the algorithms available and the inputs required to use them in MATLAB^{®}.
Selecting the adaptive filter that best meets your needs requires careful consideration. An exhaustive discussion of the criteria for selecting your approach is beyond the scope of this User's Guide. However, a few guidelines can help you make your choice.
Two main considerations frame the decision — how you plan to use the filter and the filter algorithm to use.
When you begin to develop an adaptive filter for your needs, most likely the primary concern is whether using an adaptive filter is a cost-competitive approach to solving your filtering needs. Generally many areas determine the suitability of adaptive filters (these areas are common to most filtering and signal processing applications). Four such areas are
Filter consistency — Does your filter performance degrade when the filter coefficients change slightly as a result of quantization, or you switch to fixed-point arithmetic? Will excessive noise in the signal hurt the performance of your filter?
Filter performance — Does your adaptive filter provide sufficient identification accuracy or fidelity, or does the filter provide sufficient signal discrimination or noise cancellation to meet your requirements?
Tools — Do tools exist that make your filter development process easier? Better tools can make it practical to use more complex adaptive algorithms.
DSP requirements — Can your filter perform its job within the constraints of your application? Does your processor have sufficient memory, throughput, and time to use your proposed adaptive filtering approach? Can you trade memory for throughput: use more memory to reduce the throughput requirements or use a faster signal processor?
Of the preceding considerations, characterizing filter consistency or robustness may be the most difficult.
The simulations in DSP System Toolbox software offers a good first step in developing and studying these issues. LMS algorithm filters provide both a relatively straightforward filters to implement and sufficiently powerful tool for evaluating whether adaptive filtering can be useful for your problem.
Additionally, starting with an LMS approach can form a solid baseline against which you can study and compare the more complex adaptive filters available in the toolbox. Finally, your development process should, at some time, test your algorithm and adaptive filter with real data. For truly testing the value of your work there is no substitute for actual data.
One common adaptive filter application is to use adaptive filters to identify an unknown system, such as the response of an unknown communications channel or the frequency response of an auditorium, to pick fairly divergent applications. Other applications include echo cancellation and channel identification.
In the figure, the unknown system is placed in parallel with the adaptive filter. This layout represents just one of many possible structures. The shaded area contains the adaptive filter system.
Using an Adaptive Filter to Identify an Unknown System
Clearly, when e(k) is very small, the adaptive filter response is close to the response of the unknown system. In this case the same input feeds both the adaptive filter and the unknown. If, for example, the unknown system is a modem, the input often represents white noise, and is a part of the sound you hear from your modem when you log in to your Internet service provider.
By placing the unknown system in series with your adaptive filter, your filter adapts to become the inverse of the unknown system as e(k) becomes very small. As shown in the figure the process requires a delay inserted in the desired signal d(k) path to keep the data at the summation synchronized. Adding the delay keeps the system causal.
Determining an Inverse Response to an Unknown System
Including the delay to account for the delay caused by the unknown system prevents this condition.
Plain old telephone systems (POTS) commonly use inverse system identification to compensate for the copper transmission medium. When you send data or voice over telephone lines, the copper wires behave like a filter, having a response that rolls off at higher frequencies (or data rates) and having other anomalies as well.
Adding an adaptive filter that has a response that is the inverse of the wire response, and configuring the filter to adapt in real time, lets the filter compensate for the rolloff and anomalies, increasing the available frequency output range and data rate for the telephone system.
In noise cancellation, adaptive filters let you remove noise from a signal in real time. Here, the desired signal, the one to clean up, combines noise and desired information. To remove the noise, feed a signal n'(k) to the adaptive filter that represents noise that is correlated to the noise to remove from the desired signal.
Using an Adaptive Filter to Remove Noise from an Unknown System
So long as the input noise to the filter remains correlated to the unwanted noise accompanying the desired signal, the adaptive filter adjusts its coefficients to reduce the value of the difference between y(k) and d(k), removing the noise and resulting in a clean signal in e(k). Notice that in this application, the error signal actually converges to the input data signal, rather than converging to zero.
Predicting signals requires that you make some key assumptions. Assume that the signal is either steady or slowly varying over time, and periodic over time as well.
Predicting Future Values of a Periodic Signal
Accepting these assumptions, the adaptive filter must predict the future values of the desired signal based on past values. When s(k) is periodic and the filter is long enough to remember previous values, this structure with the delay in the input signal, can perform the prediction. You might use this structure to remove a periodic signal from stochastic noise signals.
Finally, notice that most systems of interest contain elements of more than one of the four adaptive filter structures. Carefully reviewing the real structure may be required to determine what the adaptive filter is adapting to.
Also, for clarity in the figures, the analog-to-digital (A/D) and digital-to-analog (D/A) components do not appear. Since the adaptive filters are assumed to be digital in nature, and many of the problems produce analog data, converting the input signals to and from the analog domain is probably necessary.