LMSNormFract32
Overview
LMS Norm fract32 filter
Discussion
The LMS fract32 module implements a single channel, N-order FIR adaptive filter
using a Normalized Least Means Squares algorithm.
The module takes 2 single channel inputs: desired filter output and filter input (the reference signal).
For every data sample the filter output is compared to the desired output and this information is used to
update the filter taps according to the normalized LMS algorithm. The module always has 2 single channel ouputs: adaptive
filter output and error signal, (desired filter output - actual filter output.
The adaptation constant mu is visible as a user variable.
Module Pack
Advanced
ClassID
classID = 1293
Type Definition
typedef struct _ModuleLMSNormFract32
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
INT32 numTaps; // Length of the filter
FLOAT32 mu; // mu Step size
INT32 stateIndex; // Index of the oldest state variable in the array of state variables
INT32 prev_stateptr; // Index of the oldest state variable in the array of state variables
INT32 postShift; // Coefficient Scaling
fract32 mufract32; // mu Step size
fract32 E; // saves previous frame energy
fract32 x0; // saves previous input sample
fract32* coeffsfract32; // Coefficient array
fract32* state; // State variable array
} ModuleLMSNormFract32Class;
Variables
Properties
| Name | Type | Usage | isHidden | Default Value | Range | Units |
|---|---|---|---|---|---|---|
| numTaps | int | const | 0 | 31 | 1:1:5000 | samples |
| mu | float | parameter | 0 | 0.02 | 0:0.999 | linear |
| stateIndex | int | state | 1 | 0 | Unrestricted | |
| prev_stateptr | int | state | 1 | 0 | Unrestricted | |
| postShift | int | derived | 1 | 0 | Unrestricted | |
| mufract32 | fract32 | derived | 1 | 0.02 | Unrestricted | |
| E | fract32 | state | 1 | 0 | Unrestricted | |
| x0 | fract32 | state | 1 | 0 | Unrestricted | |
| coeffsfract32 | fract32* | derived | 0 | [31 x 1] | Unrestricted | |
| state | fract32* | state | 1 | [62 x 1] | Unrestricted |
Pins
Input Pins
| Name | in1 |
| Description | audio input |
| Data type | fract32 |
| Channel range | 1 |
| Block size range | Unrestricted |
| Sample rate range | Unrestricted |
| Complex support | Real |
| Name | in2 |
| Description | desired input |
| Data type | fract32 |
| Channel range | 1 |
| Block size range | Unrestricted |
| Sample rate range | Unrestricted |
| Complex support | Real |
Output Pins
| Name | out1 |
| Description | audio output |
| Data Type | fract32 |
| Name | out2 |
| Description | error output |
| Data Type | fract32 |
Matlab Usage
File Name: lms_norm_fract32_module.m
M=lms_norm_fract32_module(NAME, MAXTAPS)
Creates a normalized LMS FIR filter for use in the Audio Weaver environment.
The module has 2 single channel input pins and 2 single channel
output pins:
Input Pin 1: dataIn - Adaptive filter desired output
Input Pin 2: reference - Adaptive filter input
Output Pin 1: dataOut - output of the adaptive filter
Output Pin 2: errorSignal - difference between dataIn and dataOut
Copyright (c) 2026 DSP Concepts, Inc.