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. NCOs are often used in conjunction with a digital-to-analog converter (DAC) at the output to create a direct digital synthesizer (DDS). Numerically controlled oscillators offer several advantages over other types of oscillators in terms of agility, accuracy, stability and reliability. NCOs are used in many communications systems including digital up/down converters used in 3G wireless and software radio systems, digital phase-locked loops, radar systems, drivers for optical or acoustic transmissions, and multilevel FSK/PSK modulators/demodulators.
Operation An NCO generally consists of two parts:
A phase accumulator (PA), which sums an input frequency control word to its stored output value (the "phase word") every clock cycle. A phase-to-amplitude converter (PAC), which maps the phase word to a corresponding amplitude value. This mapping is typically implemented by using the phase word as an address for a waveform look-up table (LUT). Sometimes interpolation is used with the look-up table to provide better accuracy and reduce phase error noise. Other mapping methods, including mathematical algorithms such as power series may be used, particularly in software NCOs.
When clocked, the phase accumulator (PA) outputs a sequence of samples from a modulo-2N sawtooth waveform, which are converted by the phase-to-amplitude converter (PAC) to sinusoid samples, where N is the number of bits carried in the phase accumulator. N sets the NCO frequency resolution and is normally much larger than the address width of the PAC look-up table. For a PAC address width of M, the PA output word must be truncated to M bits as shown in Figure 1. However, the truncated bits can be used for interpolation. Truncation of the phase output word does not affect frequency accuracy, but it does produce a time-varying, periodic phase error, which is a primary source of spurious products. Spurious products also result from the finite word length of the PAC output (amplitude) word. The frequency accuracy relative to the clock frequency is limited only by the precision of the arithmetic used to compute the phase. NCOs are phase- and frequency-agile, and can be trivially modified to produce a phase-modulated or frequency-modulated output by summation at the appropriate node, or provide quadrature outputs as shown in the figure.
Phase accumulator A binary phase accumulator consists of an N-bit binary adder and a register configured as shown in Figure 1. Each clock cycle produces a new N-bit output consisting of the previous output obtained from the register summed with the frequency control word (FCW) which is constant for a given output frequency. The resulting output waveform is a staircase with step size Δ F {\displaystyle \Delta F} , the integer value of the FCW. In some configurations the phase output is taken from the output of the register, which introduces a one clock cycle latency but allows the adder to operate at a higher clock rate.
The adder is designed to overflow when the sum of the absolute value of its operands exceeds its capacity (2N−1). The overflow bit is discarded so the output word width is always equal to its input word width. The remainder ϕ n {\displaystyle \phi _{n}} , called the residual, is stored in the register and the cycle repeats, starting this time from ϕ n {\displaystyle \phi _{n}} (see figure 2). Since a phase accumulator is a finite-state machine, eventually the residual at some sample K must return to the initial value ϕ 0 {\displaystyle \phi _{0}} . The interval K is referred to as the grand repetition rate (GRR) given by
GRR = 2 N GCD ( Δ F , 2 N ) {\displaystyle {\mbox{GRR}}={\frac {2^{N}}{{\mbox{GCD}}(\Delta F,2^{N})}}}
where GCD is the greatest common divisor function. The GRR represents the true periodicity for a given Δ F {\displaystyle \Delta F} which for a high resolution NCO can be very long. Usually we are more interested in the operating frequency determined by the average overflow rate, given by
F o u t = Δ F 2 N F c l o c k {\displaystyle F_{out}={\frac {\Delta F}{2^{N}}}F_{clock}} (1) The frequency resolution, defined as the smallest possible incremental change in frequency, is given by
F r e s = F c l o c k 2 N {\displaystyle F_{res}={\frac {F_{clock}}{2^{N}}}} (2) Equation (1) shows that the phase accumulator can be thought of as a programmable non-integer frequency divider of divide ratio Δ F / 2 N {\displaystyle \Delta F/2^{N}} .
… excerpt ends here. Continue reading the full article.


