dds_cccf

Direct digital (up/down) synthesizer object

Public Functions

dds_cccf dds_cccf_create(unsigned int _num_stages, float _fc, float _bw, float _as)
dds_cccf dds_cccf_copy(dds_cccf _q)
int dds_cccf_destroy(dds_cccf _q)
int dds_cccf_print(dds_cccf _q)
int dds_cccf_reset(dds_cccf _q)
int dds_cccf_set_scale(dds_cccf _q, float complex _scale)
int dds_cccf_get_scale(dds_cccf _q, float complex * _scale)
unsigned int dds_cccf_get_num_stages(dds_cccf _q)
unsigned int dds_cccf_get_delay_interp(dds_cccf _q)
float dds_cccf_get_delay_decim(dds_cccf _q)
int dds_cccf_decim_execute(dds_cccf _q, float complex * _x, float complex * _y)
int dds_cccf_interp_execute(dds_cccf _q, float complex _x, float complex * _y)

Interfaces

dds_cccf dds_cccf_create(unsigned int _num_stages, float _fc, float _bw, float _as)

Create digital synthesizer object

  • _num_stages : number of half-band stages, 0 < _num_stages
  • _fc : signal relative center frequency, _fc \(\in\) {-0.5, 0.5}
  • _bw : signal relative bandwidth, _bw \(\in\) {0, 1}
  • _as : filter stop-band attenuation (dB), 0 < _as

dds_cccf dds_cccf_copy(dds_cccf _q)

Copy object including all internal objects and state

int dds_cccf_destroy(dds_cccf _q)

Destroy digital synthesizer object

int dds_cccf_print(dds_cccf _q)

Print synthesizer object internals

int dds_cccf_reset(dds_cccf _q)

Reset synthesizer object internals

int dds_cccf_set_scale(dds_cccf _q, float complex _scale)

Set output scaling for synthesizer

  • _q : synthesizer object
  • _scale : scaling factor to apply to each output sample

int dds_cccf_get_scale(dds_cccf _q, float complex * _scale)

Get output scaling for synthesizer

  • _q : synthesizer object
  • _scale : scaling factor to apply to each output sample

unsigned int dds_cccf_get_num_stages(dds_cccf _q)

Get number of half-band states in DDS object

unsigned int dds_cccf_get_delay_interp(dds_cccf _q)

Get delay (samples) when running as interpolator

float dds_cccf_get_delay_decim(dds_cccf _q)

Get delay (samples) when running as decimator

int dds_cccf_decim_execute(dds_cccf _q, float complex * _x, float complex * _y)

Run DDS object as decimator

  • _q : synthesizer object
  • _x : input data array, shape: ((1<<_num_stages), 1)
  • _y : output sample

int dds_cccf_interp_execute(dds_cccf _q, float complex _x, float complex * _y)

Run DDS object as interpolator

  • _q : synthesizer object
  • _x : input sample
  • _y : output data array, shape: ((1<<_num_stages), 1)