Generating sine waves with controlled frequencies over a wide range is difficult when using RC or LC sinusoidal oscillators. However, this performance can be simply created using a wideband digital squarewave oscillator, a counter, and a weighted summing network.

Using the circuit shown, a sinusoidal output signal with a 100,000,000+:1 frequency range from about 1 MHz to under 0.01 Hz can be obtained without need for any lowpass or high-pass filters. The circuit consists of two parts. The first part is a counter IC with a controlled inverter (IC2) that sequences the switching of input resistors of the second part—a summing amplifier (IC3). The EXOR gates are used to invert signals from four of IC1 counter’s outputs (Q0-Q3), depending on logical value at the fifth counter output (Q4). This operation creates the positive and negative halves of the sine waveform. Each of these halves consists of 24 = 16 parts.

The logical values at IC1’s Q0-Q4 outputs produce weightedsymmetrical currents at the summing junction of IC3. The amplifier adds all four weighted currents and generates an output signal with the desired sinusoidal waveform.

Every period of the output signal needs 16 * 2 = 32 periods of input signal, i.e. the frequency of input clock signal must be 32 times higher than the desired frequency of output analog signal:

fOUT-ANALOG = fIN-DIGITAL / 32

By changing the values of resistors R1-R4, other waveforms can be produced.

See associated figure