28#if !defined(_SPANDSP_DDS_H_) 
   29#define _SPANDSP_DDS_H_ 
   31#define DDS_PHASE_RATE(frequency) (int32_t) ((frequency)*65536.0f*65536.0f/SAMPLE_RATE) 
   32#define DDS_PHASE(angle) (int32_t) ((uint32_t) (((angle < 0.0f)  ?  (360.0f + angle)  :  angle)*65536.0f*65536.0f/360.0f)) 
   34#if defined(__cplusplus) 
   73SPAN_DECLARE(int16_t) 
dds_lookup(uint32_t phase);
 
   80SPAN_DECLARE(int16_t) 
dds_offset(uint32_t phase_acc, int32_t phase_offset);
 
   86SPAN_DECLARE(
void) 
dds_advance(uint32_t *phase_acc, int32_t phase_rate);
 
   93SPAN_DECLARE(int16_t) 
dds(uint32_t *phase_acc, int32_t phase_rate);
 
   99SPAN_DECLARE(int16_t) 
dds_lookup(uint32_t phase);
 
  108SPAN_DECLARE(int16_t) 
dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
 
  215SPAN_DECLARE(
void) 
dds_advancef(uint32_t *phase_acc, int32_t phase_rate);
 
  222SPAN_DECLARE(
float) 
ddsf(uint32_t *phase_acc, int32_t phase_rate);
 
  237SPAN_DECLARE(
float) 
dds_modf(uint32_t *phase_acc, int32_t phase_rate, 
float scale, int32_t phase);
 
  261#if defined(__cplusplus) 
int16_t dds_scaling_dbov(float level)
Find the scaling factor needed to achieve a specified level in dBmov.
Definition dds_int.c:334
int16_t dds_scaling_dbm0(float level)
Find the scaling factor needed to achieve a specified level in dBm0.
Definition dds_int.c:328
float dds_phase_to_radians(uint32_t phase)
Convert a 32 bit phase angle to an angle in radians, between 0 and 2*PI.
Definition dds_float.c:2103
complexf_t dds_complexf(uint32_t *phase_acc, int32_t phase_rate)
Generate a complex floating point tone sample.
Definition dds_float.c:2165
int16_t dds_offset(uint32_t phase_acc, int32_t phase_offset)
Find the amplitude for a particular phase offset from an accumulated phase.
Definition dds_int.c:356
float dds_scaling_dbovf(float level)
Find the scaling factor equivalent to a dBmov value.
Definition dds_float.c:2127
float dds_frequencyf(int32_t phase_rate)
Find the frequency, in Hz, equivalent to a phase rate.
Definition dds_float.c:2115
complexi_t dds_complexi(uint32_t *phase_acc, int32_t phase_rate)
Generate a complex integer tone sample.
Definition dds_int.c:394
void dds_advance(uint32_t *phase_acc, int32_t phase_rate)
Advance the phase, without returning any new signal sample.
Definition dds_int.c:362
complexf_t dds_complex_modf(uint32_t *phase_acc, int32_t phase_rate, float scale, int32_t phase)
Generate a complex floating point tone sample, with modulation.
Definition dds_float.c:2183
complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
Generate a complex 16bit integer tone sample, with modulation.
Definition dds_int.c:431
int32_t dds_phase_rate(float frequency)
Find the phase rate value to achieve a particular frequency.
Definition dds_int.c:316
complexi16_t dds_lookup_complexi16(uint32_t phase)
Generate a complex 16 bit integer tone sample.
Definition dds_int.c:415
complexi32_t dds_complexi32(uint32_t *phase_acc, int32_t phase_rate)
Generate a complex 32 bit integer tone sample.
Definition dds_int.c:448
complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
Generate a complex 32 bit integer tone sample, with modulation.
Definition dds_int.c:458
int32_t dds_phase_ratef(float frequency)
Find the phase rate equivalent to a frequency, in Hz.
Definition dds_float.c:2109
void dds_advancef(uint32_t *phase_acc, int32_t phase_rate)
Advance the phase, without returning any new signal sample.
Definition dds_float.c:2133
float ddsf(uint32_t *phase_acc, int32_t phase_rate)
Generate a floating point tone sample.
Definition dds_float.c:2139
int16_t dds(uint32_t *phase_acc, int32_t phase_rate)
Generate an integer tone sample.
Definition dds_int.c:368
complexi32_t dds_lookup_complexi32(uint32_t phase)
Generate a complex 32 bit integer tone sample.
Definition dds_int.c:442
float dds_lookupf(uint32_t phase)
Lookup the floating point value of a specified phase.
Definition dds_float.c:2149
int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
Generate an integer tone sample, with modulation.
Definition dds_int.c:378
complexi16_t dds_complexi16(uint32_t *phase_acc, int32_t phase_rate)
Generate a complex 16 bit integer tone sample.
Definition dds_int.c:421
float dds_frequency(int32_t phase_rate)
Find the frequency, in Hz, equivalent to a phase rate.
Definition dds_int.c:322
complexf_t dds_lookup_complexf(uint32_t phase_acc)
Lookup the complex value of a specified phase.
Definition dds_float.c:2176
float dds_modf(uint32_t *phase_acc, int32_t phase_rate, float scale, int32_t phase)
Generate a floating point tone sample, with modulation.
Definition dds_float.c:2155
complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
Generate a complex integer tone sample, with modulation.
Definition dds_int.c:404
int16_t dds_lookup(uint32_t phase)
Find the amplitude for a particular phase.
Definition dds_int.c:340
float dds_scaling_dbm0f(float level)
Find the scaling factor equivalent to a dBm0 value.
Definition dds_float.c:2121
complexi_t dds_lookup_complexi(uint32_t phase)
Lookup the complex integer value of a specified phase.
Definition dds_int.c:388