symtrack_rrrf

Variants: symtrack_cccf, symtrack_rrrf

Symbol synchronizer and tracking object

Public Functions

symtrack_rrrf symtrack_rrrf_create(int _ftype, unsigned int _k, unsigned int _m, float _beta, int _ms)
symtrack_rrrf symtrack_rrrf_create_default()
int symtrack_rrrf_destroy(symtrack_rrrf _q)
int symtrack_rrrf_print(symtrack_rrrf _q)
int symtrack_rrrf_reset(symtrack_rrrf _q)
int symtrack_rrrf_get_ftype(symtrack_rrrf _q)
unsigned int symtrack_rrrf_get_k(symtrack_rrrf _q)
unsigned int symtrack_rrrf_get_m(symtrack_rrrf _q)
float symtrack_rrrf_get_beta(symtrack_rrrf _q)
int symtrack_rrrf_get_modscheme(symtrack_rrrf _q)
int symtrack_rrrf_set_modscheme(symtrack_rrrf _q, int _ms)
float symtrack_rrrf_get_bandwidth(symtrack_rrrf _q)
int symtrack_rrrf_set_bandwidth(symtrack_rrrf _q, float _bw)
int symtrack_rrrf_adjust_frequency(symtrack_rrrf _q, float _dphi)
int symtrack_rrrf_adjust_phase(symtrack_rrrf _q, float _phi)
int symtrack_rrrf_set_eq_cm(symtrack_rrrf _q)
int symtrack_rrrf_set_eq_dd(symtrack_rrrf _q)
int symtrack_rrrf_set_eq_off(symtrack_rrrf _q)
int symtrack_rrrf_execute(symtrack_rrrf _q, float _x, float * _y, unsigned int * _ny)
int symtrack_rrrf_execute_block(symtrack_rrrf _q, float * _x, unsigned int _nx, float * _y, unsigned int * _ny)

Interfaces

symtrack_rrrf symtrack_rrrf_create(int _ftype, unsigned int _k, unsigned int _m, float _beta, int _ms)

Create symtrack object, specifying parameters for operation

  • _ftype : filter type (e.g. LIQUID_FIRFILT_RRC)
  • _k : samples per symbol, 2 <= _k
  • _m : filter delay [symbols], 0 < _m
  • _beta : excess bandwidth factor, 0 <= _beta <= 1
  • _ms : modulation scheme, default: LIQUID_MODEM_BPSK

symtrack_rrrf symtrack_rrrf_create_default()

Create symtrack object using default parameters. The default parameters are ftype = LIQUID_FIRFILT_ARKAISER (filter type), k = 2 (samples per symbol), m = 7 (filter delay), beta = 0.3 (excess bandwidth factor), and ms = LIQUID_MODEM_QPSK (modulation scheme)

int symtrack_rrrf_destroy(symtrack_rrrf _q)

Destroy symtrack object, freeing all internal memory

int symtrack_rrrf_print(symtrack_rrrf _q)

Print symtrack object's parameters

int symtrack_rrrf_reset(symtrack_rrrf _q)

Reset symtrack internal state

int symtrack_rrrf_get_ftype(symtrack_rrrf _q)

Get symtrack filter type

unsigned int symtrack_rrrf_get_k(symtrack_rrrf _q)

Get symtrack samples per symbol

unsigned int symtrack_rrrf_get_m(symtrack_rrrf _q)

Get symtrack filter semi-length [symbols]

float symtrack_rrrf_get_beta(symtrack_rrrf _q)

Get symtrack filter excess bandwidth factor

int symtrack_rrrf_get_modscheme(symtrack_rrrf _q)

Get symtrack modulation scheme

int symtrack_rrrf_set_modscheme(symtrack_rrrf _q, int _ms)

Set symtrack modulation scheme

  • _q : symtrack object
  • _ms : modulation scheme, default: LIQUID_MODEM_BPSK

float symtrack_rrrf_get_bandwidth(symtrack_rrrf _q)

Get symtrack internal bandwidth

int symtrack_rrrf_set_bandwidth(symtrack_rrrf _q, float _bw)

Set symtrack internal bandwidth

  • _q : symtrack object
  • _bw : tracking bandwidth, 0 < _bw

int symtrack_rrrf_adjust_frequency(symtrack_rrrf _q, float _dphi)

Adjust internal NCO by requested frequency

  • _q : symtrack object
  • _dphi : NCO frequency adjustment [radians/sample]

int symtrack_rrrf_adjust_phase(symtrack_rrrf _q, float _phi)

Adjust internal NCO by requested phase

  • _q : symtrack object
  • _phi : NCO phase adjustment [radians]

int symtrack_rrrf_set_eq_cm(symtrack_rrrf _q)

Set symtrack equalization strategy to constant modulus (default)

int symtrack_rrrf_set_eq_dd(symtrack_rrrf _q)

Set symtrack equalization strategy to decision directed

int symtrack_rrrf_set_eq_off(symtrack_rrrf _q)

Disable symtrack equalization

int symtrack_rrrf_execute(symtrack_rrrf _q, float _x, float * _y, unsigned int * _ny)

Execute synchronizer on single input sample

  • _q : synchronizer object
  • _x : input data sample
  • _y : output data array, shape: (2, 1)
  • _ny : number of samples written to output buffer (0, 1, or 2)

int symtrack_rrrf_execute_block(symtrack_rrrf _q, float * _x, unsigned int _nx, float * _y, unsigned int * _ny)

execute synchronizer on input data array

  • _q : synchronizer object
  • _x : input data array
  • _nx : number of input samples
  • _y : output data array, shape: (2 _nx, 1)
  • _ny : number of samples written to output buffer