firdecim_cccf

Variants: firdecim_cccf, firdecim_crcf, firdecim_rrrf

Finite impulse response (FIR) decimator

Public Functions

firdecim_cccf firdecim_cccf_create(unsigned int _M, float complex * _h, unsigned int _h_len)
firdecim_cccf firdecim_cccf_create_kaiser(unsigned int _M, unsigned int _m, float _as)
firdecim_cccf firdecim_cccf_create_prototype(int _type, unsigned int _M, unsigned int _m, float _beta, float _dt)
firdecim_cccf firdecim_cccf_copy(firdecim_cccf _q)
int firdecim_cccf_destroy(firdecim_cccf _q)
int firdecim_cccf_print(firdecim_cccf _q)
int firdecim_cccf_reset(firdecim_cccf _q)
unsigned int firdecim_cccf_get_decim_rate(firdecim_cccf _q)
int firdecim_cccf_set_scale(firdecim_cccf _q, float complex _scale)
int firdecim_cccf_get_scale(firdecim_cccf _q, float complex * _scale)
int firdecim_cccf_freqresp(firdecim_cccf _q, float _fc, float complex * _H)
int firdecim_cccf_execute(firdecim_cccf _q, float complex * _x, float complex * _y)
int firdecim_cccf_execute_block(firdecim_cccf _q, float complex * _x, unsigned int _n, float complex * _y)

Interfaces

firdecim_cccf firdecim_cccf_create(unsigned int _M, float complex * _h, unsigned int _h_len)

Create decimator from external coefficients

  • _M : decimation factor, 2 <= _M
  • _h : filter coefficients, shape: (_h_len, 1)
  • _h_len : filter length, _M <= _h_len

firdecim_cccf firdecim_cccf_create_kaiser(unsigned int _M, unsigned int _m, float _as)

Create decimator from filter prototype prototype (Kaiser-Bessel windowed-sinc function)

  • _M : decimation factor, 2 <= _M
  • _m : filter delay [symbols], 1 <= _m
  • _as : stop-band attenuation [dB], 0 <= _as

firdecim_cccf firdecim_cccf_create_prototype(int _type, unsigned int _M, unsigned int _m, float _beta, float _dt)

Create decimator object from filter prototype

  • _type : filter type (e.g. LIQUID_FIRFILT_RCOS)
  • _M : interpolation factor, 1 < _M
  • _m : filter delay (symbols), 0 < _m
  • _beta : excess bandwidth factor, 0 <= _beta <= 1
  • _dt : fractional sample delay, -1 <= _dt <= 1

firdecim_cccf firdecim_cccf_copy(firdecim_cccf _q)

Copy object including all internal objects and state

int firdecim_cccf_destroy(firdecim_cccf _q)

Destroy decimator object, freeing all internal memory

int firdecim_cccf_print(firdecim_cccf _q)

Print decimator object properties to stdout

int firdecim_cccf_reset(firdecim_cccf _q)

Reset decimator object internal state

unsigned int firdecim_cccf_get_decim_rate(firdecim_cccf _q)

Get decimation rate

int firdecim_cccf_set_scale(firdecim_cccf _q, float complex _scale)

Set output scaling for decimator

  • _q : decimator object
  • _scale : scaling factor to apply to each output sample

int firdecim_cccf_get_scale(firdecim_cccf _q, float complex * _scale)

Get output scaling for decimator

  • _q : decimator object
  • _scale : scaling factor to apply to each output sample

int firdecim_cccf_freqresp(firdecim_cccf _q, float _fc, float complex * _H)

Compute complex frequency response \(H\) of decimator on prototype filter coefficients at a specific frequency \(f_c\)

  • _q : decimator object
  • _fc : normalized frequency for evaluation
  • _H : pointer to output complex frequency response

int firdecim_cccf_execute(firdecim_cccf _q, float complex * _x, float complex * _y)

Execute decimator on _M input samples

  • _q : decimator object
  • _x : input samples, shape: (_M, 1)
  • _y : output sample pointer

int firdecim_cccf_execute_block(firdecim_cccf _q, float complex * _x, unsigned int _n, float complex * _y)

Execute decimator on block of _n*_M input samples

  • _q : decimator object
  • _x : input array, shape: (_n*_M, 1)
  • _n : number of _output_ samples
  • _y : output array, [_size: _n x 1]