The problem that triggered this was to determine if a 48-bit dds was good enough to generate the offset frequencies to detect the center frequency of a Rubidium clock at 6,834,682,610.904 Hz.
If we start with a 200 Mhz, clock, the step size is
200e6/2^48 = 0.000000710542735760100185871124268 HzNow generate a clock at 68.34682610904 MHz and add the offset
0.000000710542735760100185871124268 + 68.34682610904e6 = 68346826.1090407105427357601 HzMultiply by 100 in an integer pll such as the ADF4108 to excite the Rubidium atoms in the microwave cavity
68346826.1090407105427357601 * 100 = 6.83468261090407105427357601e+9 HzNow subtract the Rubidium target frequency
6.83468261090407105427357601e+9 - 6834682610.904 = 0.0000710542735760100185871124268Compare to the decimal portion of the target frequency
0.0000710542735760100185871124268 / 0.904 = 0.00007859Yes, it looks like a 48-bit dds is good enough, so this approach will not require the conventional 127Hz phase modulator to detect the resonance.
This shows the required offset frequencies can be generated in the dds with sufficient accuracy after multiplication up to the target frequency. This eliminates the drift in the phase modulator, and the phase noise from the SRD comb generator and following amplifier stages.
Now, I realize the above calculation could be simplified, but I want to see the actual frequencies at each step in the process. Also, the C-Field required to see the dip at the Rubidium resonance and the buffer gas in the Rubidium cell will shift the frequency 3 or 4 KHz. But that's ok. I just want to see if the dds approach is worth investigating, and yes, it is. But the calculations are not possible in an ordinary calculator since it truncates the result.
One thing that helps the calculation is the Calcpad editor in TTCalc. You can copy and paste back and forth to a plain text editor to document each step in the calculation and figure what to do next, then save everything to a text file for later reference.
The next step is to repeat the calculation to see if a 32-bit dds would work. The ability to cut and paste makes the calculation quick and easy.
Here's the quick result
200e6/2^32 0.04656612873077392578125 + 68.34682610904e6 68346826.1556061287307739258 * 100 6.83468261556061287307739258e+9 - 6834682610.904 4.65661287307739258007656391 / 0.904 5.15112043482012453548292468The result shows a 32-bit dds would not work.