[time-nuts] Short-Term Stability

Mike Feher mfeher at eozinc.com
Thu Mar 16 12:50:11 EST 2006

Poul -

OK, so we do not bore every one else to death on this, this will be my last
post on this matter. I understand the principle behind the FIR. Like I said
I did a similar thing for the front end of an FFT spectrum analyzer back in
1974, but that was by adding analog noise. Certainly not optimum as having
an algorithm and doing it on the fly sample by sample. I can see how this
would also work in a DDS by finding the optimum LSB in the DAC for each
output sample. For a typical accumulator length of 30 bits or so, jittering
the LSB of the memory, for every new frequency word, could become really
tricky very quickly. Non the less, for a typical DDS running with a clock of
1 GHz or above, with a state of the art DAC clocking at the same rate, 6 dB
is the best you can hope for per DAC input bit.- Mike  

Mike B. Feher, N4FS
89 Arnold Blvd.
Howell, NJ, 07731

-----Original Message-----
From: time-nuts-bounces at febo.com [mailto:time-nuts-bounces at febo.com] On
Behalf Of Poul-Henning Kamp
Sent: Thursday, March 16, 2006 12:33 PM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] Short-Term Stability

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.

time-nuts mailing list
time-nuts at febo.com

More information about the time-nuts mailing list