AF_sine_int(3)

NAME
AF_sine_int, AF_sine_float - sine wave tables, for frequency synthesis

SYNTAX
#include <AF/AFUtils.h>

extern int AF_sine_int[];

extern float AF_sine_float[];

DESCRIPTION
and are precomputed tables you can link with your application. Each table contains 1024 equally spaced samples of a single sine wave cycle. contains 16 bit integers scaled so that the peaks of the sine wave are at +32767 and -32767. contains single precision floating point numbers scaled so that the peaks of the sine wave are at +1.0 and -1.0.

The general idea of direct digital frequency synthesis is to step through the sine wave table using a phase accumulator. Each sample time, add into the phase accumulator a value (the phase increment) which is the desired frequency divided by the sample rate and multiplied by the number of samples in the sine table (1024). The phase accumulator must be wrapped MOD 1024. Each sample time the output value is the value in the sine table indexed by the integer part of the phase accumulator.

EXAMPLES
Typical usage is:

float frequency, sample_rate;    /* input parameters */
float phase_inc, phase; float output; /* first compute the phase increment */ phase_inc = (frequency / sample_rate) * 1024.0; phase = 0; /* then generate */ for (;;) {
  output = AF_sine_float[phase];
  phase += phase_inc;
  if (phase >= 1024.0) phase -= 1024.0; }

DIAGNOSTICS
If you index the table with an out-of-range value you may cause a protection fault and crash your application.

SEE ALSO
AF(1)

BUGS
If you encounter a reproducible bug, please submit a problem report to (af-bugs@crl.dec.com).

COPYRIGHT
Copyright 1990-1994, Digital Equipment Corporation.
See AF(1) for a full statement of rights and permissions.

AUTHORS
Larry Stewart, Digital Cambridge Research Lab