Maximum step size for adaptive filter convergence

maxstep will be removed in a future release. Use dsp.LMSFilter or dsp.BlockLmsFilter instead.


mumax = maxstep(ha,x)
[mumax,mumaxmse] = maxstep(ha,x)


mumax = maxstep(ha,x) predicts a bound on the step size to provide convergence of the mean values of the adaptive filter coefficients. The columns of the matrix x contain individual input signal sequences. The signal set is assumed to have zero mean or nearly so.

[mumax,mumaxmse] = maxstep(ha,x) predicts a bound on the adaptive filter step size to provide convergence of the LMS adaptive filter coefficients in the mean-square sense. maxstep issues a warning when ha.stepsize is outside of the range 0 < ha.stepsize < mumaxmse/2.

maxstep is available for the following adaptive filter objects:

    Note   With adaptfilt.nlms filter objects, maxstep uses the following slightly different syntax:

    mumax = maxstep(ha)
    [mumax,mumaxmse] = maxstep(ha)

    The maximum step size for convergence is fully defined by the filter object ha. Matrix x is not necessary. If you include an x input matrix, MATLAB returns an error.


Analyze and simulate a 32-coefficient (31st-order) LMS adaptive filter object. To demonstrate the adaptation process, run 2000 iterations and 50 trials.

% Specify [numiterations,numexamples] = size(x);
x = zeros(2000,50);
d = x;
obj = fdesign.lowpass('n,fc',31,0.5);
hd = design(obj,'window'); % FIR filter to identified.
coef = cell2mat(hd.coefficients); % Convert cell array to matrix.

for k=1:size(x,2);   % Create input and desired response signal 
                     % matrices.
% Set the (k)th input to the filter.
  x(:,k) = filter(sqrt(0.75),[1 -0.5],sign(randn(size(x,1),1))); 
  n = 0.1*randn(size(x,1),1);  % (k)th observation noise signal.
  d(:,k) = filter(coef,1,x(:,k))+n; % (k)th desired signal end.
mu = 0.1;                       % LMS step size.
ha = adaptfilt.lms(32,mu);
[mumax,mumaxmse] = maxstep(ha,x);

Warning: Step size is not in the range 0 < mu < mumaxmse/2: 
Erratic behavior might result.


mumax =



mumaxmse =


See Also

| |

Introduced in R2011a

Was this topic helpful?