ΣSigmaStudio Русский

NLMS Adaptive Filter


The Normalized Least Mean Squares (NLMS) adaptive filter is an FIR based adaptive filter. The filter update equation is given by

     w(n+1) = w(n) +[(μ * e(n) * x(n)) / Eng] \\
     

Where:

     w(n+1) = New filter coefficient set
     w(n) = Current filter coefficient set
     μ      = Learning rate
     x(n)  = Input signal
     e(n)  = Error  = d(n)-y(n)
     d(n)  = Desired signal
     y(n)  = Output signal
     Eng = Average energy over the duration of the filter = (1/M)*Σx(m) 2      

NLMS Adaptive Filter

NLMS Adaptive Filter

Input Pins

NameFormat [int/dec/float] - [control/audio]Function Description
Pin 0: InputFloat- audioInput signal to FIR filter
Pin 1: InputFloat- audioThe desired audio output signal
Pin 2: InputFloat- controlSignal which indicates whether FIR filter weights are to be updated or not

Output Pins

NameFormat [int/dec/float] - [control/audio]Function Description
Pin 0: OutputFloat - audioThe filtered output
Pin 1: OutputFloat - controlError Signal - Difference signal between desired signal and the filtered output

Grow Algorithm

The module does not support growth and add functionality.

GUI Controls

GUI Control NameDefault ValueRangeFunction Description
Alpha0.10.000001-1.0 in steps of 0.000001Filter learning rate

DSP Parameter Information

GUI Control NameCompiler NameFunction Description
AlphaNLMSFiltBlkAlg1lms_alphaFilter learning rate

Here,

  • Green - Algorithm Name
  • Red - Instance Number (Changes for each instance)
  • Blue - Parameter Name

Algorithm Description

This implementation of NLMS is a block based implementation. The weight update happens at the end of every processing block. The weight update equation is given below:

w(m+1) = w(m) + μ * Err * x(m) / Eng
Where:

          w(m+1) = New filter coefficient set
          w(m) = Current filter coefficient set
          μ      = Learning rate
          Err = RMS error over the block duration = sqrt(∑e(n)2/N)
              e(n) = d(n)-y(n)
              d(n)  = Desired signal
              y(n)  = Output signal
         x(m)  = Samples within the filter state
         Eng = Average energy over the duration of the filter = Σx(m)2/M

Note:

  N = Block Size and n varies over 0-(N-1)
  M = Filter tap length and m varies over 0-(M-1)
  

Supported IC's

1. ADSP-213xx
2. ADSP-214xx
3. ADSP-215xx
4. ADSP-SC5xx