spandsp  0.0.6
dds_float.c File Reference
#include <stdio.h>
#include <inttypes.h>
#include "floating_fudge.h"
#include "spandsp/telephony.h"
#include "spandsp/complex.h"
#include "spandsp/dds.h"

Macros

#define SLENK   11
 
#define SINELEN   (1 << SLENK)
 

Functions

float dds_phase_to_radians (uint32_t phase)
 Convert a 32 bit phase angle to an angle in radians, between 0 and 2*PI. More...
 
int32_t dds_phase_ratef (float frequency)
 Find the phase rate equivalent to a frequency, in Hz. More...
 
float dds_frequencyf (int32_t phase_rate)
 Find the frequency, in Hz, equivalent to a phase rate. More...
 
float dds_scaling_dbm0f (float level)
 Find the scaling factor equivalent to a dBm0 value. More...
 
float dds_scaling_dbovf (float level)
 Find the scaling factor equivalent to a dBmov value. More...
 
void dds_advancef (uint32_t *phase_acc, int32_t phase_rate)
 Advance the phase, without returning any new signal sample. More...
 
float ddsf (uint32_t *phase_acc, int32_t phase_rate)
 Generate a floating point tone sample. More...
 
float dds_lookupf (uint32_t phase)
 Lookup the floating point value of a specified phase. More...
 
float dds_modf (uint32_t *phase_acc, int32_t phase_rate, float scale, int32_t phase)
 Generate a floating point tone sample, with modulation. More...
 
complexf_t dds_complexf (uint32_t *phase_acc, int32_t phase_rate)
 Generate a complex floating point tone sample. More...
 
complexf_t dds_lookup_complexf (uint32_t phase)
 Lookup the complex value of a specified phase. More...
 
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. More...
 

Function Documentation

◆ dds_advancef()

void dds_advancef ( uint32_t *  phase_acc,
int32_t  phase_rate 
)

Advance the phase, without returning any new signal sample.

Parameters
phase_accA pointer to a phase accumulator value.
phase_rateThe phase increment to be applied.

◆ dds_complex_modf()

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.

Parameters
phase_accA pointer to a phase accumulator value.
phase_rateThe phase increment to be applied.
scaleThe scaling factor.
phaseThe phase offset.
Returns
The complex signal amplitude, between (-1.0, -1.0) and (1.0, 1.0).

◆ dds_complexf()

complexf_t dds_complexf ( uint32_t *  phase_acc,
int32_t  phase_rate 
)

Generate a complex floating point tone sample.

Parameters
phase_accA pointer to a phase accumulator value.
phase_rateThe phase increment to be applied.
Returns
The complex signal amplitude, between (-1.0, -1.0) and (1.0, 1.0).

◆ dds_frequencyf()

float dds_frequencyf ( int32_t  phase_rate)

Find the frequency, in Hz, equivalent to a phase rate.

Parameters
phase_rateThe phase rate.
Returns
The equivalent frequency, in Hz.

Referenced by v17_rx_carrier_frequency(), v22bis_rx_carrier_frequency(), v27ter_rx_carrier_frequency(), and v29_rx_carrier_frequency().

◆ dds_lookup_complexf()

complexf_t dds_lookup_complexf ( uint32_t  phase_acc)

Lookup the complex value of a specified phase.

Parameters
phaseThe phase accumulator value to be looked up.
Returns
The complex signal amplitude, between (-1.0, -1.0) and (1.0, 1.0).

◆ dds_lookupf()

float dds_lookupf ( uint32_t  phase)

Lookup the floating point value of a specified phase.

Parameters
phaseThe phase accumulator value to be looked up.
Returns
The signal amplitude, between -1.0 and 1.0.

◆ dds_modf()

float dds_modf ( uint32_t *  phase_acc,
int32_t  phase_rate,
float  scale,
int32_t  phase 
)

Generate a floating point tone sample, with modulation.

Parameters
phase_accA pointer to a phase accumulator value.
phase_rateThe phase increment to be applied.
scaleThe scaling factor.
phaseThe phase offset.
Returns
The signal amplitude, between -1.0 and 1.0.

◆ dds_phase_ratef()

int32_t dds_phase_ratef ( float  frequency)

Find the phase rate equivalent to a frequency, in Hz.

Parameters
frequencyThe frequency, in Hz.
Returns
The equivalent phase rate.

◆ dds_phase_to_radians()

float dds_phase_to_radians ( uint32_t  phase)

Convert a 32 bit phase angle to an angle in radians, between 0 and 2*PI.

Parameters
phaseThe angle to convert.
Returns
The angle in radians.

◆ dds_scaling_dbm0f()

float dds_scaling_dbm0f ( float  level)

Find the scaling factor equivalent to a dBm0 value.

Parameters
levelThe signal level in dBm0.
Returns
The equivalent scaling factor.

◆ dds_scaling_dbovf()

float dds_scaling_dbovf ( float  level)

Find the scaling factor equivalent to a dBmov value.

Parameters
levelThe signal level in dBmov.
Returns
The equivalent scaling factor.

◆ ddsf()

float ddsf ( uint32_t *  phase_acc,
int32_t  phase_rate 
)

Generate a floating point tone sample.

Parameters
phase_accA pointer to a phase accumulator value.
phase_rateThe phase increment to be applied.
Returns
The signal amplitude, between -1.0 and 1.0.