A discrete time oscillator for a DSP based radio

Several oscillator forms are described along with sample code and a continuously variable frequency, amplitude stabilized quadrature oscillator is developed. While this last form seems to be a bit convoluted, its execution is straight forward. It needs only four memory locations, two for the outputs and two for the feedback values. These four locations may be combined into two long memory locations as is done in the sample macros. The quadrature oscillator is not only extremely flexible in that it finds numerous uses in modulators and demodulators, but this implementation also allows for easy control. Also, the efficiency of the oscillators allows one to design a radio with a general purpose DSP with an IF in the 100 kHz range. An ASIC could execute the algorithm at a much higher rate.