symtrack_cccf

Variants: symtrack_cccf, symtrack_rrrf

Symbol synchronizer and tracking object

Public Functions

symtrack_cccf symtrack_cccf_create(int _ftype, unsigned int _k, unsigned int _m, float _beta, int _ms)
symtrack_cccf symtrack_cccf_create_default()
int symtrack_cccf_destroy(symtrack_cccf _q)
int symtrack_cccf_print(symtrack_cccf _q)
int symtrack_cccf_reset(symtrack_cccf _q)
int symtrack_cccf_get_ftype(symtrack_cccf _q)
unsigned int symtrack_cccf_get_k(symtrack_cccf _q)
unsigned int symtrack_cccf_get_m(symtrack_cccf _q)
float symtrack_cccf_get_beta(symtrack_cccf _q)
int symtrack_cccf_get_modscheme(symtrack_cccf _q)
int symtrack_cccf_set_modscheme(symtrack_cccf _q, int _ms)
float symtrack_cccf_get_bandwidth(symtrack_cccf _q)
int symtrack_cccf_set_bandwidth(symtrack_cccf _q, float _bw)
int symtrack_cccf_adjust_frequency(symtrack_cccf _q, float _dphi)
int symtrack_cccf_adjust_phase(symtrack_cccf _q, float _phi)
int symtrack_cccf_set_eq_cm(symtrack_cccf _q)
int symtrack_cccf_set_eq_dd(symtrack_cccf _q)
int symtrack_cccf_set_eq_off(symtrack_cccf _q)
int symtrack_cccf_execute(symtrack_cccf _q, float complex _x, float complex * _y, unsigned int * _ny)
int symtrack_cccf_execute_block(symtrack_cccf _q, float complex * _x, unsigned int _nx, float complex * _y, unsigned int * _ny)

Interfaces

symtrack_cccf symtrack_cccf_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_cccf symtrack_cccf_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_cccf_destroy(symtrack_cccf _q)

Destroy symtrack object, freeing all internal memory

int symtrack_cccf_print(symtrack_cccf _q)

Print symtrack object's parameters

int symtrack_cccf_reset(symtrack_cccf _q)

Reset symtrack internal state

int symtrack_cccf_get_ftype(symtrack_cccf _q)

Get symtrack filter type

unsigned int symtrack_cccf_get_k(symtrack_cccf _q)

Get symtrack samples per symbol

unsigned int symtrack_cccf_get_m(symtrack_cccf _q)

Get symtrack filter semi-length [symbols]

float symtrack_cccf_get_beta(symtrack_cccf _q)

Get symtrack filter excess bandwidth factor

int symtrack_cccf_get_modscheme(symtrack_cccf _q)

Get symtrack modulation scheme

int symtrack_cccf_set_modscheme(symtrack_cccf _q, int _ms)

Set symtrack modulation scheme

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

float symtrack_cccf_get_bandwidth(symtrack_cccf _q)

Get symtrack internal bandwidth

int symtrack_cccf_set_bandwidth(symtrack_cccf _q, float _bw)

Set symtrack internal bandwidth

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

int symtrack_cccf_adjust_frequency(symtrack_cccf _q, float _dphi)

Adjust internal NCO by requested frequency

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

int symtrack_cccf_adjust_phase(symtrack_cccf _q, float _phi)

Adjust internal NCO by requested phase

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

int symtrack_cccf_set_eq_cm(symtrack_cccf _q)

Set symtrack equalization strategy to constant modulus (default)

int symtrack_cccf_set_eq_dd(symtrack_cccf _q)

Set symtrack equalization strategy to decision directed

int symtrack_cccf_set_eq_off(symtrack_cccf _q)

Disable symtrack equalization

int symtrack_cccf_execute(symtrack_cccf _q, float complex _x, float complex * _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_cccf_execute_block(symtrack_cccf _q, float complex * _x, unsigned int _nx, float complex * _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