[time-nuts] Determining Allan Deviation From Interpolated Peak Frequency Readings

Mark Goldberg marklgoldberg at gmail.com
Fri Dec 15 12:08:29 EST 2017


Thanks for the detailed response.

On Fri, Dec 15, 2017 at 5:42 AM, Attila Kinali <attila at kinali.ch> wrote:

> Hey Mark
>
> On Wed, 6 Dec 2017 15:43:49 -0700
> Mark Goldberg <marklgoldberg at gmail.com> wrote:
>
> > https://sites.google.com/site/perseusmods/
> > and
> > https://sites.google.com/site/spectrumlabtesting/
> >
> > using wide FFT bins and Spectrum Lab's peak frequency interpolation
> > function. I would appreciate comments as to the effectiveness of this
> > approach. I have a thick skin, so any criticism is welcome if it improves
> > the process.
>
> The approach using FFT works, but just using the peak frequency, you throw
> away half of the data (the phase) and also limit yourself in precision
> to the bin width. It's not 100% clear that estimating the frequency
> using an FFT is unbiased in this case, thus you might get worse (or better)
> results than what the oscillator actually does.
>

Since I do not know the exact algorithm used to interpolate peak frequency,
I don't know the effect on precision. They do claim that the peak frequency
determination precision is much smaller than the bin width, which seems to
be shown by the data.

The results are good enough to discern between "bad" and "good" units under
test, but I have no way to compare my results to any other method of
measurement. This is all I have access to.


>
> What you are trying to do is spectral estimation from a limited number of
> samples. You want to have some kind of continuity, that might allow you to
> track minute changes from block you are processing to the next block.
> The easiest way to do this would be to downconvert the signal on the PC
> to zero Hz and take the phase information (simplest way: use a NCO as a
> reference, then pass the reference and signal into a CORDIC to get the
> phase
> difference). Recording this phase difference should give you a lower floor
> for *DEV than your FFT method. It will also alow you to track small phase
> changes (aka small frequency fluctuations) that happen over long periods.
> Sherman and Jördens[1] describe the approach in more detail.
>
> Other than that, the general approach looks ok.
>
>
>                         Attila Kinali
>
>
> [1] "Oscillator metrology with software defined radio",
> by Sherman and Jördens, 2016
> https://arxiv.org/abs/1605.03505
>

I have seen this paper before. Unfortunately, it is a lot more work to
implement than what I have already done. I am really a hardware engineer,
with decades old education in control systems that has not been used in a
long time. It would take getting my brain back in gear and re-studying, not
a bad thing actually!

The other issue is the Perseus drivers have issues under Windows 10 that
may or may not be solved. I was able to get it to work with Spectrum Lab,
but it does not work with many other tools that would be able to implement
this algorithm.

That said, I may look into it further in the future.

Mark


More information about the time-nuts mailing list