firinterp_crcf
Variants: firinterp_cccf, firinterp_crcf, firinterp_rrrf
Finite impulse response (FIR) interpolator
Public Functions
firinterp_crcf | firinterp_crcf_create( |
firinterp_crcf | firinterp_crcf_create_kaiser( |
firinterp_crcf | firinterp_crcf_create_prototype( |
firinterp_crcf | firinterp_crcf_create_linear( |
firinterp_crcf | firinterp_crcf_create_window( |
firinterp_crcf | firinterp_crcf_copy( |
int | firinterp_crcf_destroy( |
int | firinterp_crcf_print( |
int | firinterp_crcf_reset( |
unsigned int | firinterp_crcf_get_interp_rate( |
unsigned int | firinterp_crcf_get_sub_len( |
int | firinterp_crcf_set_scale( |
int | firinterp_crcf_get_scale( |
int | firinterp_crcf_execute( |
int | firinterp_crcf_execute_block( |
int | firinterp_crcf_flush( |
Interfaces
firinterp_crcf firinterp_crcf_create(
Create interpolator from external coefficients. Internally the interpolator creates a polyphase filter bank to efficiently realize resampling of the input signal. If the input filter length is not a multiple of the interpolation factor \(M\), the object internally pads the coefficients with zeros to compensate.
- _interp : interpolation factor \(M\), 2 <= _interp
- _h : filter coefficients, shape: (_h_len, 1)
- _h_len : filter length, _interp <= _h_len
firinterp_crcf firinterp_crcf_create_kaiser(
Create interpolator from filter prototype prototype (Kaiser-Bessel windowed-sinc function)
- _interp : interpolation factor \(M\), 2 <= _interp
- _m : filter delay [symbols], 1 <= _m
- _as : stop-band attenuation [dB], 0 <= _as
firinterp_crcf firinterp_crcf_create_prototype(
Create interpolator object from filter prototype
- _type : filter type (e.g. LIQUID_FIRFILT_RCOS)
- _interp : interpolation factor \(M\), 2 <= _interp
- _m : filter delay (symbols), 0 < _m
- _beta : excess bandwidth factor, 0 <= _beta <= 1
- _dt : fractional sample delay, -1 <= _dt <= 1
firinterp_crcf firinterp_crcf_create_linear(
Create linear interpolator object
- _interp : interpolation factor \(M\), 2 <= _interp
firinterp_crcf firinterp_crcf_create_window(
Create window interpolator object
- _interp : interpolation factor \(M\), 2 <= _interp
- _m : filter semi-length, 0 < _m
firinterp_crcf firinterp_crcf_copy(
Copy object including all internal objects and state
int firinterp_crcf_destroy(
Destroy firinterp object, freeing all internal memory
int firinterp_crcf_print(
Print firinterp object's internal properties to stdout
int firinterp_crcf_reset(
Reset internal state
unsigned int firinterp_crcf_get_interp_rate(
Get interpolation rate
unsigned int firinterp_crcf_get_sub_len(
Get sub-filter length (length of each poly-phase filter)
int firinterp_crcf_set_scale(
Set output scaling for interpolator
- _q : interpolator object
- _scale : scaling factor to apply to each output sample
int firinterp_crcf_get_scale(
Get output scaling for interpolator
- _q : interpolator object
- _scale : scaling factor to apply to each output sample
int firinterp_crcf_execute(
Execute interpolation on single input sample and write \(M\) output samples (\(M\) is the interpolation factor)
- _q : firinterp object
- _x : input sample
- _y : output sample array, shape: (M, 1)
int firinterp_crcf_execute_block(
Execute interpolation on block of input samples, increasing the sample rate of the input by the interpolation factor \(M\).
- _q : firinterp object
- _x : input array, shape: (_n, 1)
- _n : size of input array
- _y : output sample array, shape: (M*_n, 1)
int firinterp_crcf_flush(
Execute interpolation with zero-valued input (e.g. flush internal state)
- _q : firinterp object
- _y : output sample array, shape: (M, 1)