Fast transversal LMS adaptive filter
adaptfilt.ftf
will be removed in a future
release. Use dsp.FastTransversalFilter
instead.
ha = adaptfilt.ftf(l,lambda,delta,gamma,gstates,coeffs,
states)
ha = adaptfilt.ftf(l,lambda,delta,gamma,gstates,coeffs,
constructs a fast transversal least squares
adaptive filter object
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.ftf
.
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 that should lie
in the range (10.5/ 
 Softconstrained initialization factor. This scalar should
be positive and sufficiently large to prevent an excessive number
of Kalman gain rescues. 
 Conversion factor. 
 States of the Kalman gain updates. 
 Length 
 Vector of initial filter States. 
Since your adaptfilt.ftf
filter is an object,
it has properties that define its operating behavior. Note that many
of the properties are also input arguments for creating adaptfilt.ftf
objects.
To show you the properties that apply, this table lists and describes
each property for the fast transversal least squares filter object.
Name  Range  Description 

 None  Defines the adaptive filter algorithm the object uses during adaptation 
 Returns the predicted samples generated during adaptation. See References — Adaptive Filters for details about linear prediction.  
 Vector of elements  Vector containing the initial filter coefficients. It
must be a length 
 Conversion factor. Called  
 Any positive integer  Reports the length of the filter, the number of coefficients or taps 
 RLS forgetting factor. This is a scalar that should lie
in the range (10.5/  
 Contains the predicted values for samples during adaptation. Compare these to the actual samples to get the error and power.  
 Softconstrained initialization factor. This scalar should
be positive and sufficiently large to prevent an excessive number
of Kalman gain rescues.  
 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. 
 Vector of elements, data type double  Vector of the adaptive filter states. 
System Identification of a 32coefficient FIR filter by running the identification process for 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 N = 31; % Adaptive filter order lam = 0.99; % RLS forgetting factor del = 0.1; % Softconstrained initialization factor ha = adaptfilt.ftf(32,lam,del); [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');
For this example of identifying an unknown system, the figure shows that the adaptation process identifies the filter coefficients for the unknown FIR filter within the first 150 iterations.
D.T.M. Slock and Kailath, T., "Numerically Stable Fast Transversal Filters for Recursive Least Squares Adaptive Filtering," IEEE^{®} Trans. Signal Processing, vol. 38, no. 1, pp. 92114.