[time-nuts] Short-Term Stability

Poul-Henning Kamp phk at phk.freebsd.dk
Thu Mar 16 12:32:32 EST 2006

In message <006901c6491d$73a48980$0201a8c0 at n4fs>, "Mike Feher" writes:

>OK, I glanced through the paper. Similar concept to what we used to do with
>adding analog noise prior to quantization to improve overall dynamic range.
>I do not understand however what this has to do with reducing spurious in a
>DDS. Are you saying that you need an extra bit in the wave shaping ROM that

Let me try to explain the principle:

When you truncate or round your "theoretical" bits in order to send
them to the DAC, you essentially add a +/- .5 bit random signal
which is the the rounding error.

This noise signal, like all signals, has a frequency spectrum,
which amongst other things, is where most of your spurious lines

So instead of just using an "arbitrary algorithm" such as "round to
nearest" or "truncation", you can choose to use your own bitstream.

You arrive at that bitstream by calculate the rounding error, and
filter it to optimize the desired frequency behaviour.

This filtered version will typically only differ from the "rounded"
or "truncated" version in few bits, but boy what a difference that
makes (ie: 20dB better stopband on 69 pole FIR).

For DDS, all you need is an extra bit to go along and say "round
the opposite way this time", and precompute that for the desired
DDS frequency.

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the time-nuts mailing list