Numerically Controlled Oscillator : Architecture, Working & Its Applications

A DSP system needs the sinusoidal waveform or other periodic waveform generation. One method used for generating these waveforms mainly involves “ NCOs (Numerically Controlled Oscillators), where a digital accumulator is utilized to produce the address into a sine LUT (lookup table). The system is very common in both software & hardware. So it allows immediate changes within the instant frequency/phase of the waveform generated while maintaining a constant phase property within the output. Once it is incorporated with a DAC to generate an analog o/p waveform, then the system is known as DDS or Direct Digital Synthesizer. So this article discusses an overview of a numerically controlled oscillator or NCO – working with applications.

What is a Numerically Controlled Oscillator?

A numerically controlled oscillator is a digital signal generator that generates a synchronous, discrete-time, and discrete-valued waveform which are generally sinusoidal where the frequency or phase of the signal is controlled in the design. These oscillators are frequently combined with a DAC (digital-to-analog converter) at the output to make a direct DDS or digital synthesizer. NCOs provide many benefits over other kinds of oscillators in terms of accuracy, agility, reliability & stability. So, class D audio amplifiers, tone generators, lighting control, fluorescent ballasts, and radio-tuning circuits all benefit from NCOs. A numerically controlled oscillator is used in various communications systems like radar systems, digital PLLs, radio systems, drivers multilevel PSK/ FSK modulators or demodulators, and many more.


The features of numerically controlled oscillators include the following.

Output Frequency

The output frequency generated by NCO is high which mainly depends on no. of bits For instance; a 20-bit size generates up to 32 MHZ, however, a 16-bit size can generate only 500 KHz.

Flexible Output


The output of NCO can be set to a stable duty cycle otherwise to a pulse-frequency form.

Works in Low-Power Sleep

The numerically controlled oscillator may run within sleep mode & is independent of the CPU.

Several Clock Sources

The numerically controlled oscillator can use a no. of clock sources both internal & external.

N-bit Timer/counter Functionality

The numerically controlled oscillator can also be utilized like a general-purpose 20-bit timer/ counter within a new working mode.

NCO Oscillator Architecture

The numerically controlled oscillator architecture is shown below. This architecture includes two main parts PA (phase accumulator) and PAC (phase-to-amplitude converter).

Numerically Controlled Oscillator Architecture
                 Numerically Controlled Oscillator Architecture

A phase accumulator adds a frequency control value to the value kept at its output at every CLK sample. A phase-to-amplitude converter provides a matching amplitude sample with the output word of phase accumulator like an index into a signal look-up table. Sometimes, interpolation is utilized in combination with the LUT to enhance the accuracy as well as reduce the error noise of the phase. In numerically controlled oscillator software, mathematical procedures such as power series can be used to translate phase into amplitude.

Once clocked, the PA or phase accumulator simply creates a modulo 2^N sawtooth signal after that it is changed through the PAC (phase to amplitude converter) to a sampled sinusoid. Here ‘N’ is the no. of carried bits within the phase accumulator.

The number of carried bits like ‘N’ sets the frequency resolution of the oscillator & is usually much higher as compared to the no. of bits describing the PAC look-up table’s memory space.

If the capacity of phase to amplitude converter is 2^M, then the output word of the phase accumulator should be reduced to M-bits as shown in the above figure. But, these bits are used for interpolation. The phase output word reduction does not change the accuracy of frequency but it generates a time-varying periodic phase error is the main source of spurious products.

The frequency accuracy relative to the CLK frequency is only limited by the accuracy of the mathematics used to calculate the phase. Because numerically controlled oscillators are phase & frequency aware and can be slightly modified to generate a frequency-modulated or phase-modulated output by summation at the suitable node, otherwise give quadrature outputs.

How Does a Numerically Controlled Oscillator Work?

The NCO module uses the overflow of an accumulator to generate an output signal. So, the overflow of the accumulator has controlled through a modifiable increment value instead of just a single CLK signal. This offers a benefit over a simple timer-driven counter in that the degree of division does not change by the limited Prescaler or postscaler divider value. The numerically controlled oscillator is very useful in applications where frequency accuracy & excellent resolution at a fixed duty cycle is necessary.

NCO Working
                                                NCO Working

The numerically controlled oscillator simply works by adding a fixed value frequently to an accumulator. So, additions will occur at the input CLK rate. Sometimes, the accumulator will overflow through a carry, which is the output of raw NCO. This efficiently decreases the input CLK through the ratio of the included value to the highest value of the accumulator.

Further, the output of NCO can be modified by simply stretching the pulse. After that, the modified output of NCO is internally distributed to other peripherals & optionally output to an input/output pin. The overflow of the accumulator can also produce an interruption.

The NCO period changes in separate steps to generate an average frequency. So this output mainly depends on the capacity of the receiving circuit to average the output of NCO to decrease uncertainty.
The NCO module’s overflow mainly depends on the following formula
Overflow Rate of Accumulator = Overflow Value of Accumulator/Input CLK Frequency + Increment Value.

What is a Phase Accumulator?

It is a modulo-N counter that includes 2^N digital conditions which are increased for every clock input signal of the system. The increment size mainly depends on the tuning word value and the M is applied to the adder stage of the accumulator. The tuning word simply fixes counter increments’ in the step size.

NCO Oscillator Advantages

The numerically controlled oscillator advantages include the following.

  • A numerically controlled oscillator offers many benefits compared to other oscillator types in terms of stability, accuracy & reliability.
  • These oscillators have a flexible architecture so they easily allow programmabilities like on-the-fly frequency or phase.
  • Numerically controlled oscillators offer several advantages over other types of oscillators in terms of agility, accuracy, stability, and reliability.
  • The benefits of NCO allow designers to design boards quicker, reduce power consumption, save on board real estate space & reduce cost.

NCO Oscillator Uses

The applications of numerically controlled oscillators include the following.

  • The numerically controlled oscillator is applicable where high-frequency accuracy, linear frequency control & excellent resolution at a fixed duty cycle is required like ballast & lighting control, resonant power supplies & tone generators.
  • NCOs are normal digital circuits that are utilized in a broad range of timing applications like rate conversion, frequency synthesis & CLK generation.
  • An NCO is mainly used for on-chip major signals generation like sine, cosine, LFM or linear frequency modulated, Gaussian in SoCs.
  • The NCO module is a timer that generates an output signal by using the overflow of an accumulator.
  • These are very significant in the applications of radio-tuning circuits, controlling lighting, fluorescent ballasts, tone generators & class-D audio amplifiers.
  • These are used often in combination with a DAC at the o/p to design a DDS (direct digital synthesizer).
  • This is a digital frequency generator, used for cleaning a noisy i/p signal of an oscillator.
    This is a linear frequency programmable generator used to produce up to 32 MHz frequencies.

Thus, this is all about an overview of a normally controlled oscillator which works by simply including an increment to an inside accumulator on the increasing edge of every input clock signal. So, the NCO’s output frequency is proportional to the no. of cycles it gets for the accumulator to overflow. Here is a question for you, what is an oscillator?