Main Content

maxstep

Maximum step size for LMS adaptive filter convergence

Description

mumax = maxstep(lmsFilt,x) predicts a bound on the step size to provide convergence of the mean values of the coefficients of the adaptive filter, lmsFilt.

example

[mumax,mumaxmse] = maxstep(lmsFilt,x) predicts a bound, in mean squared sense, on the adaptive filter step size to provide convergence of the adaptive filter coefficients.

example

Examples

collapse all

The maxstep function computes the maximum step size of the adaptive filter. This step size keeps the filter stable at the maximum possible speed of convergence. Create the primary input signal, x, by passing a signed random signal to an IIR filter. Signal x contains 50 frames of 2000 samples each frame. Create an LMS filter with 32 taps and a step size of 0.1.

x = zeros(2000,50);
IIRFilter = dsp.IIRFilter('Numerator',sqrt(0.75),...
    'Denominator',[1 -0.5]);
for k = 1:size(x,2)   
  x(:,k) = IIRFilter(sign(randn(size(x,1),1))); 
end
mu = 0.1;     
LMSFilter = dsp.LMSFilter('Length',32,...
    'StepSize',mu);

Compute the maximum adaptation step size and the maximum step size in mean-squared sense using the maxstep function.

[mumax,mumaxmse] = maxstep(LMSFilter,x)
mumax = 
0.0625
mumaxmse = 
0.0536

Input Arguments

collapse all

LMS adaptive filter, specified as either a dsp.LMSFilter System object or a dsp.BlockLMSFilter System object.

Columns of the matrix x contain individual input signal sequences. The signal set is assumed to have zero mean or close to zero mean.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
Complex Number Support: Yes

Output Arguments

collapse all

Maximum step size value, returned as a scalar. This is the step size you can specify for the adaptive filter without causing the filter to become unstable. For details on how this parameter is calculated, see Algorithms.

Data Types: double

Maximum adaptive filter step size to provide convergence of the LMS adaptive filter coefficients in the mean squared sense, returned as a scalar. For details on how this parameter is calculated, see Algorithms.

Data Types: double

Algorithms

collapse all

The step size of the adaptive filter must satisfy the following equation in order for the adaptive filter to be stable:

0<μ<μmax

where, μmax is the maximum step size.

The value of μmax depends on the LMS filter System object and the adaptive filter algorithm the object uses.

dsp.LMSFilter

LMS

When the Method property of the dsp.LMSFilter object is set to 'LMS', maximum step size μmax is calculated using the following equation:

μmax=2mean(xtxt)L

where,

  • xt –– Concatenated columns of the input matrix, x(:).

  • xtxt –– Hadamard or entrywise product of the two vectors.

  • L –– Length of the filter coefficients.

The maximum step size in mean-square sense, μmaxMSE is computed using the following equation:

μmaxMSE=2λmax(Kurt+2)+sum(λ)

where,

  • sum(λ) –– Sum of the eigenvalues of the input auto correlation matrix.

  • λmax –– Maximum eigenvalue of the input auto correlation matrix.

  • Kurt –– Average kurtosis value of eigenvector-filtered signals.

Normalized LMS

When the Method property of the dsp.LMSFilter System object is set to 'Normalized LMS':

  • Maximum step size, μmax = 2.

  • Maximum step size in mean-square sense, μmaxMSE = 2.

For Other Methods

For all other methods such as Sign-Data LMS, Sign-Error LMS, and Sign-Sign LMS:

  • μmax = ∞.

  • μmaxMSE = ∞.

dsp.BlockLMSFilter

The maximum step size for dsp.BlockLMSFilter is computed using the following equation:

μmax=2mean(xtxt)L

where,

  • xt –– Concatenated columns of the input matrix, x(:).

  • xtxt –– Hadamard or entrywise product of the two vectors.

  • L –– Length of the filter coefficients.

The maximum step size in mean-square sense, μmaxMSE is computed using the following equation:

μmaxMSE=μmax3

References

[1] Hayes, M.H. Statistical Digital Signal Processing and Modeling. New York: John Wiley & Sons, 1996.

Version History

Introduced in R2012a