# maxstep

Maximum step size for LMS adaptive filter convergence

## Syntax

``mumax = maxstep(lmsFilt,x)``
``[mumax,mumaxmse] = maxstep(lmsFilt,x)``

## Description

example

````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.```

## 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<\mu <{\mu }_{\mathrm{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:

`${\mu }_{\mathrm{max}}=\frac{2}{\text{mean}\left(xt\circ xt\right)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:

`${\mu }_{\text{maxMSE}}=\frac{2}{{\lambda }_{\text{max}}\left(Kurt+2\right)+\text{sum}\left(\lambda \right)}$`

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:

`${\mu }_{\mathrm{max}}=\frac{2}{\text{mean}\left(xt\circ xt\right)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:

`${\mu }_{\text{maxMSE}}=\frac{{\mu }_{\mathrm{max}}}{3}$`

## References

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

### Objects

Introduced in R2012a

Get trial now