iirhilbf

Infinite impulse response (IIR) Hilbert transform

Variants: iirhilbf

Public Functions

iirhilbf iirhilbf_create(liquid_iirdes_filtertype _ftype, unsigned int _n, float _ap, float _as)
iirhilbf iirhilbf_copy(iirhilbf _q)
iirhilbf iirhilbf_create_default(unsigned int _n)
void iirhilbf_destroy(iirhilbf _q)
void iirhilbf_print(iirhilbf _q)
void iirhilbf_reset(iirhilbf _q)
void iirhilbf_r2c_execute(iirhilbf _q, float _x, float complex * _y)
int iirhilbf_r2c_execute_block(iirhilbf _q, float * _x, unsigned int _n, float complex * _y)
void iirhilbf_c2r_execute(iirhilbf _q, float complex _x, float * _y)
int iirhilbf_c2r_execute_block(iirhilbf _q, float complex * _x, unsigned int _n, float * _y)
void iirhilbf_decim_execute(iirhilbf _q, float * _x, float complex * _y)
void iirhilbf_decim_execute_block(iirhilbf _q, float * _x, unsigned int _n, float complex * _y)
void iirhilbf_interp_execute(iirhilbf _q, float complex _x, float * _y)
void iirhilbf_interp_execute_block(iirhilbf _q, float complex * _x, unsigned int _n, float * _y)

Interfaces

iirhilbf iirhilbf_create(liquid_iirdes_filtertype _ftype, unsigned int _n, float _ap, float _as)

Create a iirhilb object with a particular filter type, order, and desired pass- and stop-band attenuation.

  • _ftype : filter type (e.g. LIQUID_IIRDES_BUTTER)
  • _n : filter order, 0 < _n
  • _ap : pass-band ripple [dB], 0 < _ap
  • _as : stop-band ripple [dB], 0 < _as

iirhilbf iirhilbf_copy(iirhilbf _q)

Copy object including all internal objects and state

iirhilbf iirhilbf_create_default(unsigned int _n)

Create a default iirhilb object with a particular filter order.

  • _n : filter order, 0 < _n

void iirhilbf_destroy(iirhilbf _q)

Destroy finite impulse response Hilbert transform, freeing all internally-allocted memory and objects.

void iirhilbf_print(iirhilbf _q)

Print iirhilb object internals to stdout

void iirhilbf_reset(iirhilbf _q)

Reset iirhilb object internal state

void iirhilbf_r2c_execute(iirhilbf _q, float _x, float complex * _y)

Execute Hilbert transform (real to complex)

  • _q : Hilbert transform object
  • _x : real-valued input sample
  • _y : complex-valued output sample

int iirhilbf_r2c_execute_block(iirhilbf _q, float * _x, unsigned int _n, float complex * _y)

Execute Hilbert transform (real to complex) on a block of samples

  • _q : Hilbert transform object
  • _x : real-valued input sample array, shape: (_n, 1)
  • _n : number of input,output samples
  • _y : complex-valued output sample array, shape: (_n, 1)

void iirhilbf_c2r_execute(iirhilbf _q, float complex _x, float * _y)

Execute Hilbert transform (complex to real)

  • _q : Hilbert transform object
  • _x : complex-valued input sample
  • _y : real-valued output sample

int iirhilbf_c2r_execute_block(iirhilbf _q, float complex * _x, unsigned int _n, float * _y)

Execute Hilbert transform (complex to real) on a block of samples

  • _q : Hilbert transform object
  • _x : complex-valued input sample array, shape: (_n, 1)
  • _n : number of input,output samples
  • _y : real-valued output sample array, shape: (_n, 1)

void iirhilbf_decim_execute(iirhilbf _q, float * _x, float complex * _y)

Execute Hilbert transform decimator (real to complex)

  • _q : Hilbert transform object
  • _x : real-valued input array, shape: (2, 1)
  • _y : complex-valued output sample

void iirhilbf_decim_execute_block(iirhilbf _q, float * _x, unsigned int _n, float complex * _y)

Execute Hilbert transform decimator (real to complex) on a block of samples

  • _q : Hilbert transform object
  • _x : real-valued input array, shape: (2*_n, 1)
  • _n : number of output samples
  • _y : complex-valued output array, shape: (_n, 1)

void iirhilbf_interp_execute(iirhilbf _q, float complex _x, float * _y)

Execute Hilbert transform interpolator (real to complex)

  • _q : Hilbert transform object
  • _x : complex-valued input sample
  • _y : real-valued output array, shape: (2, 1)

void iirhilbf_interp_execute_block(iirhilbf _q, float complex * _x, unsigned int _n, float * _y)

Execute Hilbert transform interpolator (complex to real) on a block of samples

  • _q : Hilbert transform object
  • _x : complex-valued input array, shape: (_n, 1)
  • _n : number of *input* samples
  • _y : real-valued output array, shape: (2*_n, 1)