[time-nuts] Measure GPSDO stability with minimum resources?
bob at evoria.net
Wed Oct 5 22:56:00 EDT 2016
I'm using an interpolated RC/ADC TIC to measure the time interval between the 1PPS from the receiver to the next OCXO pulse. I also count the OCXO pulses between 1PPS ticks to make sure I'm on 10 MHz.
I've been developing and improving this GPSDO for over 2 years now, so I have a good understanding of the qualities of the OCXO, etc. But, what I know in general, and what each OCXO does in specific is a slightly different story. So, phase lock first: I have been checking to see if the phase error to target has remained less than +/- 13ns for 500 seconds before declaring "locked" with good success. So, lock detection is not critical, but being able to have more confidence, rather than using a set value like this would be nice. And that's the reason I mentioned the 5 minute circular queue experiment. It does seem to give me a nice low number when I can look at a plot and say "that's locked", so I may play with it some more.
As you say, aging is an entirely different question. The OCXOs I use eventually retrace out and age at about 1 (20-bit) DAC step per hour; some better, some worse, and not always in the same direction. Being able to project this before several months go by would be nice for holdover projections. Doesn't the KS-24361 GPSDO set start making holdover projections within a half our of being powered on? That's the sort of thing I was looking for.
After posting, I realized that integrating the DAC movement while in lock wasn't a very good idea, as eventually it's going to reach a rather large magnitude. And that number wouldn't be very useful, as it's not related to any time period, other than when time began. I also realized that since it is under PLL control, there aren't going to be any large swings, so I don't need any real sort of figure of merit that describes +/- swings, etc. So, I guess I was making this harder than it needed to be.
So, now I'm thinking about going to a 24-hour circular queue that samples every 5 minutes. That would be 288 slots, or 1152 bytes, which I can spare. With 24 hours of data, I should be able to get some idea as to how quickly it's settling down. The question is how to use that to project retrace and aging over the next 24 hours in case of a holdover event?
GFS GPSDO list:
From: Jim Harman <j99harman at gmail.com>
To: Bob Stewart <bob at evoria.net>; Discussion of precise time and frequency measurement <time-nuts at febo.com>
Sent: Wednesday, October 5, 2016 9:14 PM
Subject: Re: [time-nuts] Measure GPSDO stability with minimum resources?
On Wed, Oct 5, 2016 at 6:46 PM, Bob Stewart <bob at evoria.net> wrote:
What I'm really looking for is a way to do everything in the PIC. I've been experimenting with saving the DAC value in a circular queue every 20 seconds for 60 minutes, and plotting the difference value between the head and tail of the queue every second. After posting this question, I took another look at the overall behavior and decided to cut the queue size down from 60 minutes to 5.
Unless the oscillator is still warming up, 5 minutes or even 60 is way too short a time to look at aging. For aging, you will want to look at the change in DAC values over several days at least.
Looking at the current value and one in the past will give you a feel for what is going on, but then you are discarding all the intermediate data. You really want to do a least squares fit using as many data points as you can handle, Check Wikipedia under Linear Least Squares for an example.
What sort of phase detector are you using? If you want to see whether the system is locked, you may be better off looking at the phase detector signal.and declaring a lock if the low pass filtered phase error stays within a pre-determined range.
More information about the time-nuts