[sdiy] Variable rate waveform playback in NED synclavier

Tom Wiltshire tom at electricdruid.net
Mon Sep 3 11:55:37 CEST 2012


This technique is essentially using a lowpass filter to interpolate between the pulse positions. The benefit of using an analog filter being that it has unlimited resolution.

I like it. Very sneaky.

Tom

On 3 Sep 2012, at 10:38, rburnett at richieburnett.co.uk wrote:

> 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,
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy




More information about the Synth-diy mailing list