Numerically controlled oscillator

A numerically controlled oscillator (NCO) is a digital signal generator which creates a synchronous (i.e., clocked), discrete-time, discrete-valued representation of a waveform, usually sinusoidal.

[1] NCOs are often used in conjunction with a digital-to-analog converter (DAC) at the output to create a direct digital synthesizer (DDS).

N sets the NCO frequency resolution and is normally much larger than the number of bits defining the memory space of the PAC look-up table.

[5] Since a phase accumulator is a finite-state machine, eventually the residual at some sample K must return to the initial value

The interval K is referred to as the grand repetition rate (GRR) given by where GCD is the greatest common divisor function.

[4] The phase-amplitude converter creates the sample-domain waveform from the truncated phase output word received from the PA.

The PAC can be a simple read only memory containing 2M contiguous samples of the desired output waveform which typically is a sinusoid.

[8] Alternatively, the PAC may consist of random access memory which can be filled as desired to create an arbitrary waveform generator.

Spurious products are the result of harmonic or non-harmonic distortion in the creation of the output waveform due to non-linear numerical effects in the signal processing chain.

If the PA output word were used directly to index the PAC look-up table an untenably high storage capacity in the ROM would be required.

In calculating the spurious-free dynamic range, we are interested in the spurious product with the largest amplitude relative to the carrier output level given by: where P is the size of the phase-to-amplitude converter's lookup table in bits, i.e., M in Figure 1.

Another source of spurious products is the amplitude quantization of the sampled waveform contained in the PAC look up table(s).

The so-called dither noise is summed into the lower W+1 bits of the PA output word to linearize the truncation operation.

Introduction of noise into the static values held in the PAC ROMs would not eliminate the cyclicality of the truncation error terms and thus would not achieve the desired effect.

Figure 1: Numerically controlled oscillator with optional quadrature output
Figure 2: Normalized phase accumulator output