FIR adaptive filter that uses filtered-x LMS
adaptfilt.filtxlms will be removed in a
future release. Use
ha = adaptfilt.filtxlms(l,step,leakage,pathcoeffs,
ha = adaptfilt.filtxlms(l,step,leakage,pathcoeffs, constructs
an filtered-x LMS adaptive filter
For information on how to run data through your adaptive filter
object, see the Adaptive Filter Syntaxes section of the reference
Entries in the following table describe the input arguments
Adaptive filter length (the number of coefficients or
taps) and it must be a positive integer.
Filtered LMS step size. it must be a nonnegative scalar.
is the filtered-x LMS leakage factor. it must be a scalar
between 0 and 1. If it is less than
one, a leaky version of
is the secondary path filter model. this vector should contain the coefficient values of the secondary path from the output actuator to the error sensor.
is the estimate of the secondary path filter model.
is a vector of filtered input states of the adaptive
are the secondary path FIR filter states. it must be
a vector of length equal to the (
is a vector of initial filter coefficients. it must
be a length
Vector of initial filter states.
In the syntax for creating the
the input options are properties of the object created. This table
lists the properties for the adjoint LMS object, their default values,
and a brief description of the property.
Defines the adaptive filter algorithm the object uses during adaptation
Vector of elements
Vector containing the initial filter coefficients. It
must be a length
Vector of filtered input states with length equal to
Any positive integer
Reports the length of the filter, the number of coefficients or taps
Vector of elements
Vector of the adaptive filter states.
A vector that contains the coefficient values of your secondary path from the output actuator to the error sensor
An estimate of the secondary path filter model
Vector of size (
The states of the secondary path FIR filter — the unknown system
Sets the filtered-x algorithm step size used for each iteration of the adapting algorithm. Determines both how quickly and how closely the adaptive filter converges to the filter solution.
Demonstrate active noise control of a random noise signal over 1000 iterations.
As the figure that follows this code demonstrates, the filtered-x LMS filter successfully controls random noise in this context.
x = randn(1,1000); % Noise source g = fir1(47,0.4); % FIR primary path system model n = 0.1*randn(1,1000); % Observation noise signal d = filter(g,1,x)+n; % Signal to be cancelled b = fir1(31,0.5); % FIR secondary path system model mu = 0.008; % Filtered-X LMS step size ha = adaptfilt.filtxlms(32,mu,1,b); [y,e] = filter(ha,x,d); plot(1:1000,d,'b',1:1000,e,'r'); title('Active Noise Control of a Random Noise Signal'); legend('Original','Attenuated'); xlabel('Time Index'); ylabel('Signal Value'); grid on;
Kuo, S.M., and Morgan, D.R. Active Noise Control Systems: Algorithms and DSP Implementations, New York, N.Y: John Wiley & Sons, 1996.
Widrow, B., and Stearns, S.D. Adaptive Signal Processing, Upper Saddle River, N.J: Prentice Hall, 1985.