fdelay_rrrf

Finite impulse response (FIR) filter

Variants: fdelay_crcf, fdelay_rrrf

Public Functions

fdelay_rrrf fdelay_rrrf_create(unsigned int _nmax, unsigned int _m, unsigned int _npfb)
fdelay_rrrf fdelay_rrrf_create_default(unsigned int _nmax)
int fdelay_rrrf_destroy(fdelay_rrrf _q)
int fdelay_rrrf_reset(fdelay_rrrf _q)
int fdelay_rrrf_print(fdelay_rrrf _q)
float fdelay_rrrf_get_delay(fdelay_rrrf _q)
int fdelay_rrrf_set_delay(fdelay_rrrf _q, float _delay)
int fdelay_rrrf_adjust_delay(fdelay_rrrf _q, float _delta)
unsigned int fdelay_rrrf_get_nmax(fdelay_rrrf _q)
unsigned int fdelay_rrrf_get_m(fdelay_rrrf _q)
unsigned int fdelay_rrrf_get_npfb(fdelay_rrrf _q)
int fdelay_rrrf_push(fdelay_rrrf _q, float _x)
int fdelay_rrrf_write(fdelay_rrrf _q, float * _x, unsigned int _n)
int fdelay_rrrf_execute(fdelay_rrrf _q, float * _y)
int fdelay_rrrf_execute_block(fdelay_rrrf _q, float * _x, unsigned int _n, float * _y)

Interfaces

fdelay_rrrf fdelay_rrrf_create(unsigned int _nmax, unsigned int _m, unsigned int _npfb)

Create a delay object with a maximum offset and filter specification

  • _nmax : maximum integer sample offset
  • _m : polyphase filter-bank semi-length, 0 < _m
  • _npfb : number of filters in polyphase filter-bank, 0 < _npfb

fdelay_rrrf fdelay_rrrf_create_default(unsigned int _nmax)

Create a delay object with a maximum offset and default filter parameters (_m = 8, _npfb = 64)

  • _nmax : maximum integer sample offset

int fdelay_rrrf_destroy(fdelay_rrrf _q)

Destroy delay object and free all internal memory

int fdelay_rrrf_reset(fdelay_rrrf _q)

Reset delay object internals

int fdelay_rrrf_print(fdelay_rrrf _q)

Print delay object internals

float fdelay_rrrf_get_delay(fdelay_rrrf _q)

Get current delay (accounting for _m?)

int fdelay_rrrf_set_delay(fdelay_rrrf _q, float _delay)

  • _q :
  • _delay :

int fdelay_rrrf_adjust_delay(fdelay_rrrf _q, float _delta)

  • _q :
  • _delta :

unsigned int fdelay_rrrf_get_nmax(fdelay_rrrf _q)

unsigned int fdelay_rrrf_get_m(fdelay_rrrf _q)

unsigned int fdelay_rrrf_get_npfb(fdelay_rrrf _q)

int fdelay_rrrf_push(fdelay_rrrf _q, float _x)

Push sample into filter object's internal buffer

  • _q : filter object
  • _x : single input sample

int fdelay_rrrf_write(fdelay_rrrf _q, float * _x, unsigned int _n)

Write a block of samplex into filter object's internal buffer

  • _q : filter object
  • _x : buffer of input samples, shape: (_n, 1)
  • _n : number of input samples

int fdelay_rrrf_execute(fdelay_rrrf _q, float * _y)

Execute vector dot product on the filter's internal buffer and coefficients

  • _q : filter object
  • _y : pointer to single output sample

int fdelay_rrrf_execute_block(fdelay_rrrf _q, float * _x, unsigned int _n, float * _y)

Execute the filter on a block of input samples; in-place operation is permitted (_x and _y may point to the same place in memory)

  • _q : filter object
  • _x : pointer to input array, shape: (_n, 1)
  • _n : number of input, output samples
  • _y : pointer to output array, shape: (_n, 1)