# [time-nuts] Ebay FE-5680A Rb

Hal Murray hmurray at megapathdsl.net
Thu Dec 15 15:40:38 EST 2011

```>> [~]\$ factor 63897600
>> 63897600: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 5 5 13

> Not fair.  You added two zeros on the end and then got to add two more 2s
> and 5s.

I converted 63.8976 MHz to Hz.

> What is the "target frequency"?   If you are building a radio or a signal
> generator you will tune around all over the band.

There are two ideas tangled up in here.  I missed one the last try.  Sorry
for the confusion.

Think of a DDS as a N bit register R, and a constant K.
Each clock cycle, R = R+K
The register has high bits and low bits.  The high bits feed the ROM.

The output frequency is
Out = In * K/2^N

The first quirk is that if the input frequency is not "good", you can't get
an exact hit on the output frequency.  Usually, N is big enough so that the
nearest available frequency is good enough.

For example, suppose N is 20, your input frequency is 10 MHz, and you want 1
KHz out.
A K of 104 produces 991.821 Hz.
A K of 105 produces 1001.358 Hz.

If your input frequency is 16.384 MHz, a K of 64 produces 1000.000 Hz.

The other quirk is spurs.  The spurs will be closer in if you need a bigger
N.  In that context, the bottom 0s of K effectively make N smaller.  (I don't
have any good examples.)

If your application is tuning a general purpose radio, the input frequency

If your application is a specific target frequency, a "good" input frequency
will give a cleaner output frequency.

One of these days, when I run out of other things to play with, I want to
build a DDS in a FPGA.  The idea is to do decimal addition rather than
binary.  That will turn the 10 MHz from a GPSDO into a "good" frequency for
an audio signal generator.   It will hit any integral Hz exactly.  (Well,
this is time-nuts so it's only as close as the accuracy of the input signal.)

--
These are my opinions, not necessarily my employer's.  I hate spam.

```