nco_crcf
Numerically-controlled oscillator object
Public Functions
nco_crcf | nco_crcf_create( |
nco_crcf | nco_crcf_copy( |
int | nco_crcf_destroy( |
int | nco_crcf_print( |
int | nco_crcf_reset( |
float | nco_crcf_get_frequency( |
int | nco_crcf_set_frequency( |
int | nco_crcf_adjust_frequency( |
float | nco_crcf_get_phase( |
int | nco_crcf_set_phase( |
int | nco_crcf_adjust_phase( |
void | nco_crcf_get_vcodirect_frequency( |
void | nco_crcf_set_vcodirect_frequency( |
int | nco_crcf_step( |
float | nco_crcf_sin( |
float | nco_crcf_cos( |
int | nco_crcf_sincos( |
int | nco_crcf_cexpf( |
int | nco_crcf_pll_set_bandwidth( |
int | nco_crcf_pll_step( |
int | nco_crcf_mix_up( |
int | nco_crcf_mix_down( |
int | nco_crcf_mix_block_up( |
int | nco_crcf_mix_block_down( |
Interfaces
nco_crcf nco_crcf_create(
Create nco object with either fixed-point or floating-point phase
- _type : oscillator type
nco_crcf nco_crcf_copy(
Copy object including all internal objects and state
int nco_crcf_destroy(
Destroy nco object, freeing all internally allocated memory
int nco_crcf_print(
Print nco object internals to stdout
int nco_crcf_reset(
Set phase/frequency to zero and reset the phase-locked loop filter state
float nco_crcf_get_frequency(
Get frequency of nco object in radians per sample
int nco_crcf_set_frequency(
Set frequency of nco object in radians per sample
- _q : nco object
- _dtheta : input frequency [radians/sample]
int nco_crcf_adjust_frequency(
Adjust frequency of nco object by a step size in radians per sample
- _q : nco object
- _step : input frequency step [radians/sample]
float nco_crcf_get_phase(
Get phase of nco object in radians
int nco_crcf_set_phase(
Set phase of nco object in radians
- _q : nco object
- _phi : input phase of nco object [radians]
int nco_crcf_adjust_phase(
Adjust phase of nco object by a step of \(\Delta \phi\) radians
- _q : nco object
- _dphi : input nco object phase adjustment [radians]
void nco_crcf_get_vcodirect_frequency(
Get frequency of nco object as fraction of sample rate (n/m)
- _q : nco object
- _n : pointer to output multiplier coefficient (normalized)
- _m : pointer to output divider coefficient (normalized)
void nco_crcf_set_vcodirect_frequency(
Set frequency of nco object as fraction of sample rate (n/m)
- _q : nco object
- _n : input multiplier coefficient
- _m : input divider coefficient
int nco_crcf_step(
Increment phase by internal phase step (frequency)
float nco_crcf_sin(
Compute sine output given internal phase
float nco_crcf_cos(
Compute cosine output given internal phase
int nco_crcf_sincos(
Compute sine and cosine outputs given internal phase
- _q : nco object
- _s : output sine component of phase
- _c : output cosine component of phase
int nco_crcf_cexpf(
Compute complex exponential output given internal phase
- _q : nco object
- _y : output complex exponential
int nco_crcf_pll_set_bandwidth(
Set bandwidth of internal phase-locked loop
- _q : nco object
- _bw : input phase-locked loop bandwidth, 0 <= _bw
int nco_crcf_pll_step(
Step internal phase-locked loop given input phase error, adjusting internal phase and frequency proportional to coefficients defined by internal PLL bandwidth
- _q : nco object
- _dphi : input phase-locked loop phase error
int nco_crcf_mix_up(
Rotate input sample up by nco angle. Note that this does not adjust the internal phase or frequency.
- _q : nco object
- _x : input complex sample
- _y : pointer to output sample location
int nco_crcf_mix_down(
Rotate input sample down by nco angle. Note that this does not adjust the internal phase or frequency.
- _q : nco object
- _x : input complex sample
- _y : pointer to output sample location
int nco_crcf_mix_block_up(
Rotate input vector up by NCO angle (stepping) Note that this *does* adjust the internal phase as the signal steps through each input sample.
- _q : nco object
- _x : array of input samples, shape: (_n, 1)
- _y : array of output samples, shape: (_n, 1)
- _n : number of input (and output) samples
int nco_crcf_mix_block_down(
Rotate input vector down by NCO angle (stepping) Note that this *does* adjust the internal phase as the signal steps through each input sample.
- _q : nco object
- _x : array of input samples, shape: (_n, 1)
- _y : array of output samples, shape: (_n, 1)
- _n : number of input (and output) samples