[sdiy] Variable rate waveform playback in NED synclavier
rburnett at richieburnett.co.uk
rburnett at richieburnett.co.uk
Mon Sep 3 11:38:01 CEST 2012
Hi Scott,
> Reading further, patent 4680479 describes an improved pulse generator
> with less jitter....
It is actually possible to almost completely eliminate the period
jitter from a variable-frequency clock produced by a Numerically
Controlled Oscillator. I don't know whether this technique was known
back in the days of PPG and Synclavier, or if it was just considered too
complex or not beneficial enough for the significant added cost. It is
used in modern laboratory function generators that are based on NCOs
(often called "Direct Digital Synthesis.") to get the square and pulse
waveform output's jitter specs down to pico-second figures without
needing ridiculous sample rates for the NCO.
It works like this...
An NCO running at 10MHz sample rate can only change its output every
100ns. A common sloppy way to produce a variable-frequency digital
clock from the NCO is either to generate a clock pulse every time the
phase accumulator overflows, or to simply take the MSB of the phase
accumulator to get a "square" wave output. The problem with these are
that the transitions are quantised to the 100ns master clock period.
And hence for all output frequencies that aren't exact sub-multiples of
the clock frequency the output clock waveform jitters between the two
closest periods. For instance generating a 3MHz clock would result in
alternating 300ns and 400ns periods. Quite a large period jitter, and
often with a complex pattern that has a low repetition frequency that's
audible!
In order to remove the jitter, high-performance DDS function generators
synthesise a sinewave from the NCO using a look-up-table in ROM. (A
sinewave because it is the only thing you can synthesise digitally over
the full frequency range without aliasing.) This sampled sinewave is
then passed through a steep low-pass filter with cutoff at half the NCO
master clock frequency. This is essentially just a reconstruction
filter that converts the discrete-time sampled sinewave back to a
continuous-time sinewave by removing the energy at the image frequencies
resulting from the sampling process. The resulting smooth sinewave is
then passed through a conventional level-comparator to turn it back into
a square wave. The difference is that this square wave was generated
from the smoothed continuous-time sinewave not directly from the NCO's
phase accumulator, and it's rising and falling edges are no longer
quantised to the 100ns master clock period. The period jitter is
removed and the resulting clock edges are asynchronous to the NCO's
master clock.
Many modern DDS chips like those from Analog Devices allow you to
generate variable digital clock signals both ways. The jitter resulting
from the quick and dirty way is very apparent when comparing the two
clock outputs side-by-side on an oscilloscope.
-Richie,
More information about the Synth-diy
mailing list