qdsync_cccf

Frame detector and synchronizer; uses a novel correlation method to detect a synchronization pattern, estimate carrier frequency and phase offsets as well as timing phase, then correct for these impairments in a simple interface suitable for custom frame recovery.

Public Functions

typedef int (* qdsync_cccf_callback)(float complex * _buf, unsigned int _buf_len, void * _context)
qdsync_cccf qdsync_cccf_create_linear(float complex * _s, unsigned int _s_len, int _ftype, unsigned int _k, unsigned int _m, float _beta, QDSYNC(_callback) _callback, void * _context)
qdsync_cccf qdsync_cccf_copy(qdsync_cccf _q)
int qdsync_cccf_destroy(qdsync_cccf _q)
int qdsync_cccf_reset(qdsync_cccf _q)
int qdsync_cccf_print(qdsync_cccf _q)
int qdsync_cccf_is_detected(qdsync_cccf _q)
float qdsync_cccf_get_threshold(qdsync_cccf _q)
int qdsync_cccf_set_threshold(qdsync_cccf _q, float _threshold)
float qdsync_cccf_get_range(qdsync_cccf _q)
int qdsync_cccf_set_range(qdsync_cccf _q, float _dphi_max)
int qdsync_cccf_set_callback(qdsync_cccf _q, QDSYNC(_callback) _callback)
int qdsync_cccf_set_context(qdsync_cccf _q, void * _context)
int qdsync_cccf_set_buf_len(qdsync_cccf _q, unsigned int _buf_len)
int qdsync_cccf_execute(qdsync_cccf _q, float complex * _buf, unsigned int _buf_len)
int qdsync_cccf_is_open(qdsync_cccf _q)
float qdsync_cccf_get_rxy(qdsync_cccf _q)
float qdsync_cccf_get_tau(qdsync_cccf _q)
float qdsync_cccf_get_gamma(qdsync_cccf _q)
float qdsync_cccf_get_dphi(qdsync_cccf _q)
float qdsync_cccf_get_phi(qdsync_cccf _q)

Interfaces

typedef int (* qdsync_cccf_callback)(float complex * _buf, unsigned int _buf_len, void * _context)

synchronization callback, return 0:continue, 1:reset

  • _buf :
  • _buf_len :
  • _context :

qdsync_cccf qdsync_cccf_create_linear(float complex * _s, unsigned int _s_len, int _ftype, unsigned int _k, unsigned int _m, float _beta, QDSYNC(_callback) _callback, void * _context)

create detector with generic sequence

  • _s : sample sequence
  • _s_len : length of sample sequence
  • _ftype : filter type
  • _k : samples per symbol
  • _m : filter semi-length
  • _beta : filter excess bandwidth factor
  • _callback : user-defined callback
  • _context : user-defined context

qdsync_cccf qdsync_cccf_copy(qdsync_cccf _q)

Copy object recursively including all internal objects and state

int qdsync_cccf_destroy(qdsync_cccf _q)

Destroy synchronizer object and free all internal memory

int qdsync_cccf_reset(qdsync_cccf _q)

Reset synchronizer object's internal buffer

int qdsync_cccf_print(qdsync_cccf _q)

Print synchronizer object information to stdout

int qdsync_cccf_is_detected(qdsync_cccf _q)

Get detection state

float qdsync_cccf_get_threshold(qdsync_cccf _q)

Get detection threshold

int qdsync_cccf_set_threshold(qdsync_cccf _q, float _threshold)

Set detection threshold

  • _q :
  • _threshold :

float qdsync_cccf_get_range(qdsync_cccf _q)

Get carrier offset search range

int qdsync_cccf_set_range(qdsync_cccf _q, float _dphi_max)

Set carrier offset search range

  • _q :
  • _dphi_max :

int qdsync_cccf_set_callback(qdsync_cccf _q, QDSYNC(_callback) _callback)

Set callback method

  • _q :
  • _callback :

int qdsync_cccf_set_context(qdsync_cccf _q, void * _context)

Set context value

  • _q :
  • _context :

int qdsync_cccf_set_buf_len(qdsync_cccf _q, unsigned int _buf_len)

Set callback buffer size (the number of symbol provided to the callback whenever it is invoked).

  • _q :
  • _buf_len :

int qdsync_cccf_execute(qdsync_cccf _q, float complex * _buf, unsigned int _buf_len)

execute block of samples

  • _q :
  • _buf :
  • _buf_len :

int qdsync_cccf_is_open(qdsync_cccf _q)

Return flag indicating if synchronizer actively running.

float qdsync_cccf_get_rxy(qdsync_cccf _q)

Get synchronizer correlator output after frame was detected

float qdsync_cccf_get_tau(qdsync_cccf _q)

Get synchronizer fractional timing offset after frame was detected

float qdsync_cccf_get_gamma(qdsync_cccf _q)

Get synchronizer channel gain after frame was detected

float qdsync_cccf_get_dphi(qdsync_cccf _q)

Get synchronizer frequency offset estimate after frame was detected

float qdsync_cccf_get_phi(qdsync_cccf _q)

Get synchronizer phase offset estimate after frame was detected