DDS / NCO Calculator
Tuning word, frequency resolution and phase-truncation SFDR for a direct digital synthesizer.
How a DDS sets its frequency
A direct digital synthesizer (DDS), or numerically controlled oscillator (NCO), is an N-bit phase accumulator that adds a constant tuning word every clock. The accumulator's top bits index a sine lookup table, which feeds a DAC. Because the phase wraps after 2N, the output frequency is simply:
The frequency resolution is one LSB of tuning word — fclk/2³² at 100 MHz
is about 0.023 Hz, which is why DDS gives such fine, instantly-switchable steps.
A target frequency rarely lands on an exact word, so the tool rounds and reports the residual
error.
The catch is phase truncation: the accumulator is N bits but only the top
P bits address the LUT, and dropping the rest injects spurs. The worst-case
spurious-free dynamic range is approximately:
So more LUT phase bits buy a cleaner spectrum (the DAC's own quantization adds
~6.02·D + 1.76 dB on top). Keep fout below fclk/2
— and well below it in practice, to leave room for the reconstruction filter.