Filtered-X LMS Adaptive Noise Control Filter
This example shows how to use a Filtered-X LMS algorithm in Adaptive Noise Control (ANC).
Exploring the Example
In the Simulink model, the Noise Sources signal contains a superposition of white noise and sine waves. The model uses an adaptive filter to reduce the noise using a Filtered-X LMS algorithm. When you run the simulation, you may visualize both the noise and the resulting signal with the noise reduced. Over time, the Filtered-X LMS adaptive filter algorithm in the model filters out the noise by minimizing the error signal power via iteratively updating the filter weights.
Filtered-X LMS Algorithm
A typical LMS adaptive algorithm iteratively adjusts the filter coefficients to minimize the power of e(n). That is, you measure d(n) and y(n) separately and then compute e(n) = d(n) - y(n).
However, in real-world Adaptive Noise Control applications, e(n) is the sum of the primary noise d(n) and the secondary noise ys(n). The primary noise is an estimate; we cannot measure it directly. The secondary noise is from the signal phase shifts or delays due to the secondary path. In Adaptive Noise Control (ANC), you must take the secondary path into consideration. The secondary path is the path from the output of the adaptive filter to the error signal. The Filtered-X LMS algorithm may be used to create adaptive noise control adaptive filters, since conventional least mean squares (LMS) algorithms cannot compensate for these secondary path effects.
Filtered-X LMS signal and system definitions:
- x(n) - Synthesized input
- y(n) - Corresponding output
- d(n) - Primary noise input
- S(z) - Secondary path impulse response
- ys(n) - Secondary path output
- e(n) - Error signal, from d(n) and ys(n)
- S^(z) - Estimate of S(z)
- fx(n) - Filtered S^(z) estimate output
The Filtered-X LMS algorithm performs the following operations:
- Calculate the output y(n).
- Compute fx(n) by filtering x(n) with the S^(z) estimate.
- Update the filter coefficients using an LMS equation.
To summarize, the input signals to a Filtered-X adaptive filter are x(n) and e(n). Input x(n) is the synthesized reference signal produced by the sum of the measured error e(n) and the secondary signal y(n) filtered by the secondary path estimate, i.e., X(z) = E(z) + S(z)Y(z). To compensate for the effects of the secondary path, you must estimate the impulse response of the secondary path and take this estimate into consideration.