SbComplexFIR
Overview
Sub-band Complex FIR Filter module
Discussion
Part of DSP Concepts IP for implementing long FIR filters in the frequency domain. This module implements a complex FIR filter within each subband of a filterbank. At instantiation time, you specify the number of taps in each complex filter The complex coefficients array (coeffs) will be sized as FFTSize * numTaps, so each bin has its own set of coefficients of length numTaps. The coeffs array requires all the real coefficients in the first half of the array, followed by the imaginary coefficients. The ordering of the coeff array is:
[realTap0Bin0, realTap0Bin1... realTap0BinM, realTap1Bin0, realTap1Bin1... realTapNBinM, imagTap0Bin0... imagTap0BinM, imagTap1Bin0... imagTapNBinM]
The module allocates memory for the complex FIR coefficients and state variables and at run-time implements the complex convolutions
Module Pack
Advanced
ClassID
classID = 1322
Type Definition
typedef struct _ModuleSbComplexFIR
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
INT32 numTaps; // Length of each complex FIR filter
INT32 stateIndex; // Write index in to current complex state variables
FLOAT32* state; // FIR filter state memory
FLOAT32* coeffs; // FIR filter coeffs array
} ModuleSbComplexFIRClass;
Variables
Properties
| Name | Type | Usage | isHidden | Default Value | Range | Units |
|---|---|---|---|---|---|---|
| numTaps | int | const | 1 | 8 | Unrestricted | |
| stateIndex | int | state | 1 | 0 | Unrestricted | |
| state | float* | state | 1 | [512 x 1] | Unrestricted | |
| coeffs | float* | parameter | 0 | [512 x 1] | Unrestricted |
Pins
Input Pins
| Name | in |
| Description | complex input |
| Data type | float |
| Channel range | 1 |
| Block size range | Unrestricted |
| Sample rate range | Unrestricted |
| Complex support | Complex |
Output Pins
| Name | out |
| Description | complex output |
| Data Type | float |
Matlab Usage
File Name: sb_complex_fir_module.m
M = sb_complex_fir_module(NAME, NUMTAPS, FFTSIZE)
Creates a module which perform complex FIR filtering. The module operates on
complex subband data. Arguments:
NAME - name of the module.
NUMTAPS - Number of taps in each complex FIR filter.
FFTSIZE - optional argument which sets the default size of the IO pins.
By default, FFTSIZE = 256 and it will be overwritten in pre-build
function.
This module is part of DSPC IP for efficient fast convolution.
Copyright (c) 2026 DSP Concepts, Inc.