Document toolboxDocument toolbox

(8.D.2.4) FIRReader

Overview

FIR filter which works together with the DelayStateWriter module

Discussion

This module implements an FIR filter which works in conjunction with an upstream delay_state_writer_module.m. The delay_state_writer_module.m holds the state variables and can be shared by multiple FIRReader modules.

You need to make sure that the maximum number of coefficients does not exceed the allocated size of the upstream state buffer and that the number of channels match those from the state's buffer input pin. Checkings are made though at run-time and provided in the error code state: 0 = OK; -23 = channel count do not match; -67 = numTaps > (maxDelay-blockSize)); -79 = input ptr NULL; Output will be muted in case one of the above errors have occurred.

Type Definition

typedef struct _ModuleFIRReader { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 numTaps; // Length of the filter. INT32 errorCode; // Captures errors that could arise at run-time and which appears on the inspector INT32 dswObjectID; // Object ID of the upstream DelayStateWriter module FLOAT32* coeffs; // Filter coefficient array in normal order void * dswObjectPtr; // Points to the upstream DelayStateWriter module void * hardware_specific_struct_pointer; // This is the internal TCB array used for ADI FIR accelerator } ModuleFIRReaderClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

numTaps

int

const

0

20

Unrestricted

 

errorCode

int

state

0

0

Unrestricted

 

dswObjectID

int

state

1

-1

Unrestricted

 

coeffs

float*

parameter

0

[20 x 1]

Unrestricted

 

dswObjectPtr

void *

state

1

 

Unrestricted

 

hardware_specific_struct_pointer

void *

state

1

 

Unrestricted

 

Pins

Input Pins

 Name: ID

 Description: delayStateWriter instance input

 Data type: int

 Channel range: 1

 Block size range: 1

 Sample rate range: Unrestricted

 Complex support: Real

Output Pins

Name: out

Description: audio output

Data type: float

MATLAB Usage

File Name: fir_reader_module.m

M = fir_reader_module(NAME, NUMTAPS, NUMCHAN, BLOCKSIZE, SAMPLERATE) Creates an FIR filter which works in conjunction with the delay_state_writer_module.m. The "writer" module stores the circular state buffer while this "reader" module does the actual processing. The "writer" module output is a pointer to its instance structure. The "reader" module uses the instance pointer to read data out of the state buffer. Arguments: NAME - name of the module. NUMTAPS - length of the filter (number of taps) NUMCHAN - output channel count. By default, NUMCHAN = 1. BLOCKSIZE - output block size (number of samples to generate). If this is empty then we use the blockSize from the system input. By default, BLOCKSIZE = []. SAMPLERATE - sample rate of the output data. If this is empty then we use the sample rate of the first input pin of the containing system. By default, SAMPLERATE = [].