Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Scroll Documents: Update page title prefix

Overview

Frequency domain subband adaptive filter

Discussion

Subband based mono echo canceler / adaptive filter. This module works in conjunction with the WOLA filterbank modules and implements an adaptive filter within each subband. Each subband operates independently which provides fast adaptation time and excellent cancellation.

...

The module also has an optional output pin that is enabled by the module argument RNSPIN. When this pin exists, the module outputs the RNS weights on the second pin. The RNS output data is real and of dimension 1 x numBins, where numBins is the number of FFT bins.

Type Definition

Code Block
typedef struct _ModuleSbMonoAECRNSOut
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    INT32 maxTaps;                                // Maximum length of the filter
    INT32 numTaps;                                // Current length of the filter
    FLOAT32 V;                                    // Adaptation constant
    FLOAT32 smoothingTime;                        // Time constant of the smoothing process.
    FLOAT32 A;                                    // Smoothing factor
    FLOAT32 p0;                                   // Starting value for covariance estimate
    INT32 numIter;                                // Number of iterations of adaptive loop
    INT32 enableRNS;                              // Enable residual noise suppression
    INT32 stateIndex;                             // Circular buffer index. [0 numTaps-1]
    INT32 RNS_numPoints;                          // Number of values in the lookup table. The total table size is [maxPoints 2].
    INT32 RNS_order;                              // Order of the interpolation. This can be either 2 (for linear) or 4 (for pchip).
    FLOAT32* WW1;                                 // Adaptive filter coefficients.
    FLOAT32* P;                                   // Real estimation error covariance matrix.
    FLOAT32* CC;                                  // Complex state variables (previous inputs).
    FLOAT32* Pplus;                               // Intermediate result (real scratch).
    FLOAT32* Wplus;                               // Intermediate result (complex scratch).
    FLOAT32* energyC;                             // Intermediate result (real scratch).
    FLOAT32* mu;                                  // Intermediate result (real scratch).
    FLOAT32* W2;                                  // Residual noise suppression weights.
    FLOAT32* RNS_table;                           // Lookup table. The first row is the X values and the second row is the Y values.
    FLOAT32* RNS_polyCoeffs;                      // Interpolation coefficients returned by the grid control.
} ModuleSbMonoAECRNSOutClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

maxTaps

int

const

0

8

Unrestricted

samples

numTaps

int

parameter

0

8

1:1:8

samples

V

float

const

0

0.5

Unrestricted

smoothingTime

float

parameter

0

10

0.1:1000

sec

A

float

derived

0

1

0:1

p0

float

parameter

0

1

Unrestricted

numIter

int

parameter

0

1

1:20

enableRNS

int

parameter

0

1

0:1:1

stateIndex

int

state

1

0

Unrestricted

RNS_numPoints

int

const

1

7

4:1:1000

RNS_order

int

const

1

2

2:2:4

WW1

float*

state

0

[8 x 32]

Unrestricted

P

float*

state

0

[8 x 32]

Unrestricted

CC

float*

state

0

[8 x 32]

Unrestricted

Pplus

float*

state

0

[1 x 8]

Unrestricted

Wplus

float*

state

0

[1 x 8]

Unrestricted

energyC

float*

state

0

[8 x 1]

Unrestricted

mu

float*

state

0

[1 x 8]

Unrestricted

W2

float*

state

0

[32 x 1]

Unrestricted

RNS_table

float*

parameter

0

[2 x 7]

Unrestricted

RNS_polyCoeffs

float*

state

1

[4 x 6]

Unrestricted

Pins

Input Pins

Name: dataIn

Description: Micro input

...

Sample rate range: Unrestricted

Complex support: Complex

Output Pins

Name: errorSignal

Description: Error signal = difference between filter output and dataIn

...

Description: Weights from the residual noise suppressor

Data type: float

MATLAB Usage

File Name: sb_mono_aec_rns_out_module.m

...