Document toolboxDocument toolbox

(8.D.2.7) FilterbankFIRV2

Overview

Efficient filterbank based FIR filter

Discussion

DSP Concepts Proprietary IP.

This module implements a long FIR filter using filterbank processing. This yields a significant reduction in the processing load and allows much longer filters to be implemented. The filterbank reduces computation by breaking a large convolution into multiple smaller independent convolutions. The implementation supports mono audio channels and an arbitrary block size.

When you instantiate the module you specify the blockSize and the length of the filter L. The larger the blockSize the more efficient the processing. The latency through the filter is zero and is numerically equivalent to having a time domain FIR filter.

On the Inspector (or Numeric Inspector) you specify the time domain FIR filter coefficients. The module will automatically take care of converting the time domain coefficients into the appropriate frequency domain coefficients. For ease of use, it is better to use the Numeric Inspector and then load the coefficients from a text file.

Type Definition

-Not Shown-

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

L

int

const

0

1024

Unrestricted

 

FFTSize

int

const

0

256

Unrestricted

 

numBlocks

int

const

0

4

Unrestricted

 

coeffs

float*

parameter

0

[1024 x 1]

Unrestricted

 

Pins

Input Pins

Name: in

Description: Time domain input

Data type: float

Channel range: 1

Block size range: 256

Sample rate range: Unrestricted

Complex support: Real

Output Pins

Name: out

Description: Time domain output

Data type: float

Scratch Pins

Channel count: 1

Block size: 256

Sample rate: 48000

 

Channel count: 1

Block size: 256

Sample rate: 48000

 

Channel count: 1

Block size: 257

Sample rate: 48000

 

Channel count: 1

Block size: 256

Sample rate: 48000

 

Channel count: 1

Block size: 256

Sample rate: 48000

 

Channel count: 1

Block size: 256

Sample rate: 48000

 

Channel count: 1

Block size: 512

Sample rate: 48000

MATLAB Usage

File Name: filterbank_fir_v2_subsystem.m

SYS = filterbank_fir_v2_subsystem(NAME, L, BLOCKSIZE) Creates a subsystem which implements a long FIR filter efficiently using a filterbank based algorithm. Arguments: NAME - name of the subsystem L - length of the time domain FIR filter BLOCKSIZE - time domain block size. This allocates sizes of internal modules and the prebuild function checks that this matches the actual block size. This v2 version of the module no longer requires that the input block size is a power of 2. The function internally uses a combination of Audio Weaver blocks in order to achieve the desired filtering. The input and output

Â