FIR adaptive filter that uses householder sliding window RLS
adaptfilt.hswrls
will be removed in a future
release. Use dsp.RLSFilter
instead.
ha = adaptfilt.hswrls(l,lambda,sqrtinvcov,swblocklen,
dstates,coeffs,states)
ha = adaptfilt.hswrls(l,lambda,sqrtinvcov,swblocklen,
constructs an FIR householder
sliding window recursiveleastsquare adaptive filter
dstates,coeffs,states)ha
.
For information on how to run data through your adaptive filter
object, see the Adaptive Filter Syntaxes section of the reference
page for filter
.
Entries in the following table describe the input arguments
for adaptfilt.hswrls
.
Input Argument  Description 

 Adaptive filter length (the number of coefficients or
taps) and it must be a positive integer. 
 Recursive least square (RLS) forgetting factor. This
is a scalar and should lie in the range (0, 1]. 
 Squareroot of the inverse of the sliding window input signal covariance matrix. This square matrix should be fullranked. 
 Block length of the sliding window. This integer must
be at least as large as the filter length. 
 Desired signal states of the adaptive filter. 
 Vector of initial filter coefficients. It must be a length 
 Vector of initial filter states. It must be a length 
Since your adaptfilt.hswrls
filter is an
object, it has properties that define its behavior in operation. Note
that many of the properties are also input arguments for creating adaptfilt.hswrls
objects.
To show you the properties that apply, this table lists and describes
each property for the affine projection filter object.
Name  Range  Description 

 None  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  Desired signal states of the adaptive filter. 
 Any positive integer  Reports the length of the filter, the number of coefficients or taps 
 Scalar  Rootleastsquare (RLS) forgetting factor. This is a
scalar and should lie in the range (0, 1]. Same as input argument 
 (  Empty when you construct the object, this gets populated after you run the filter. 

 Determine whether the filter states get restored to their
starting values for each filtering operation. The starting values
are the values in place when you create the filter if you have not
changed the filter since you constructed it. 

 Squareroot of the inverse of the sliding window input signal covariance matrix. This square matrix should be fullranked. 
 Vector of elements, data type double  Vector of the adaptive filter states. 
 Integer  Block length of the sliding window. This integer must
be at least as large as the filter length. 
System Identification of a 32coefficient FIR filter.
x = randn(1,500); % Input to the filter b = fir1(31,0.5); % FIR system to be identified n = 0.1*randn(1,500); % Observation noise signal d = filter(b,1,x)+n; % Desired signal G0 = sqrt(10)*eye(32); % Initial sqrt correlation matrix inverse lam = 0.99; % RLS forgetting factor N = 64; % block length ha = adaptfilt.hswrls(32,lam,G0,N); [y,e] = filter(ha,x,d); subplot(2,1,1); plot(1:500,[d;y;e]); title('System Identification of an FIR Filter'); legend('Desired','Output','Error'); xlabel('Time Index'); ylabel('Signal Value'); subplot(2,1,2); stem([b.',ha.Coefficients.']); legend('Actual','Estimated'); grid on; xlabel('Coefficient #'); ylabel('Coefficient Value');
In the pair of plots shown in the figure you see the comparison of the desired and actual output for the adapting filter and the coefficients of both filters, the unknown and the adapted.