This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


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?