FIR adaptive filter that uses QRdecompositionbased RLS
adaptfilt.qrdrls
will be removed in a future
release. Use dsp.RLSFilter
instead.
ha = adaptfilt.qrdrls(l,lambda,sqrtcov,coeffs,states)
ha = adaptfilt.qrdrls(l,lambda,sqrtcov,coeffs,states)
constructs
an FIR QRdecompositionbased recursiveleast squares (RLS) adaptive
filter object 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.qrdrls
.
Input Argument  Description 

 Adaptive filter length (the number of coefficients or
taps) and it must be a positive integer. 
 RLS forgetting factor. This is a scalar and should lie
within the range (0, 1]. 
 Uppertriangular Cholesky (square root) factor of the input covariance matrix. Initialize this matrix with a positive definite upper triangular matrix. 
 Vector of initial filter coefficients. It must be a length 
 Vector of initial filter states. It must be a length 
Since your adaptfilt.qrdrls
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.qrdrls
objects.
To show you the properties that apply, this table lists and describes
each property for the filter object.
Name  Range  Description 

 None  Defines the adaptive filter algorithm the object uses during adaptation 
 Vector of length  Vector containing the initial filter coefficients. It
must be a length 
 Any positive integer  Reports the length of the filter, the number of coefficients or taps 
 Scalar  Forgetting factor of the adaptive filter. This is a
scalar and should lie in the range (0, 1]. It defaults to 1. Setting 

 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. 
 Square matrix with each dimension equal to the filter
length  Uppertriangular Cholesky (square root) factor of the input covariance matrix. Initialize this matrix with a positive definite upper triangular matrix. 
 Vector of elements  Vector of the adaptive filter states. 
System Identification of a 32coefficient FIR filter (500 iterations).
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(.1)*eye(32); % Initial sqrt correlation matrix lam = 0.99; % RLS forgetting factor ha = adaptfilt.qrdrls(32,lam,G0); [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');
Using this variant of the RLS algorithm successfully identifies the unknown FIR filter, as shown here.
adaptfilt.hrls
 adaptfilt.hswrls
 adaptfilt.rls
 adaptfilt.swrls