Noise Cancellation Using Adapter Filter
Noise Cancellation Using Adapter Filter
We have selected LMS (Sign-Data) algorithm because t is less complex than all others and hence requires
less computations.
LMS Algorithm (Sign-Data):
When the amount of computation required to derive an adaptive filter drives your development process,
the sign-data variant of the LMS (SDLMS) algorithm may be a very good choice. Fortunately, the current
state of digital signal processor (DSP) design has relaxed the need to minimize the operations count by
making DSPs whose multiply and shift operations are as fast as add operations. Thus some of the impetus
for the sign-data algorithm (and the sign-error and sign-sign variations) has been lost to DSP technology
improvements. In the standard and normalized variations of the LMS adaptive filter, coefficients for the
adapting filter arise from the mean square error between the desired signal and the output signal from the
unknown system. Using the sign-data algorithm changes the mean square error calculation by using the
sign of the input data to change the filter coefficients. When the error is positive, the new coefficients are
the previous coefficients plus the error multiplied by the step size . If the error is negative, the new
coefficients are again the previous coefficients minus the error multiplied by --note the sign change.
When the input is zero, the new coefficients are the same as the previous set
In vector form, the sign-data LMS algorithm is
W(k+1)=w(k)+e(k)sgn[x(k)]
Sgn[x(k)]= 1, x(k)>0
Sgn[x(k)]= 0, x(k)=0
Sgn[x(k)]= -1, x(k)<0
with vector w containing the weights applied to the filter coefficients and vector x containing the
input data. e(k) (equal to desired signal - filtered signal) is the error at time k and is the quantity the
SDLMS algorithm seeks to minimize. (mu) is the step size. As mu specified smaller, the correction to
the filter weights gets smaller for each sample and the SDLMS error falls more slowly. Larger mu
changes the weights more for each step so the error falls more rapidly, but the resulting error does not
approach the ideal solution as closely. To ensure good convergence rate and stability, select mu within the
following practical bounds
Steps of Algorithm:
1.
2.
3.
4.
5.
6.
7.
8.
9.
For the noise cancellation, adaptfilt.sd requires two input data sets:
1. Data containing a signal corrupted by noise d(k), the desired signal. The noise cancellation
process removes the noise, leaving the signal.
2. Data containing noise noise(k) that is correlated with the noise that corrupts the signal data.
Without the correlation between the noise data, the adapting algorithm cannot remove the noise
from the signal.
ha = adaptfilt.sd(42,mu)
[handles.y,handles.e] = filter(ha,handles.signal1,handles.d);
Then after passing the desired signal from the filter we can now show the result by playing the original or
by displaying it on a 2D Graph.
We have created Simple GUI for the Noise Canceller,
Here is the GUI design.
Conclusion:
Noise Canceller application using adapter filter is successful in cancelling the additional noise
from the corrupted signal though its only applicable for DSP Processors but still its an efficient way of
noise reduction and widely used in sound and video applications.