Recursive Discrete-Time Sinusoidal Oscillators

Every few years an article emerges that presents a method for generating sinusoidal functions with a digital signal processor (DSP). While each oscillator structure has been developed pretty much on its own, a simple overlying theory has not been presented that unifies all of the various oscillator structures and can easily allow one to look for other potential oscillator structures. We can find some guidance for our quest by first examining classical oscillators. The German physicist Heinrich Barkhausen, during the early 1900s, formulated the necessary requirements for oscillation. He modeled an oscillator as an amplifier with its output fed back to its input via a phase-shifting network. From this model, he deduced and stated two necessary conditions for oscillation. The Barkhausen criteria, as they are now known, require the total loop gain to be equal to one and the total loop phase shift needs to be a multiple of 2π radians. So, if we are to unify discrete-time oscillator designs into a single theory, we need to find the discrete-t ime equivalent of the Barkhausen criteria and use it to develop our theory. But first, we will look at how some very old trigonometric formulas, viewed in a not so usual way, can be utilized for sinusoidal generation. Several oscillators have been designed via this approach. A sum and difference of angles formula written explicitly in recursive form is