[time-nuts] Re: Phase coherence with 2x GPSDO

Lux, Jim jim at luxfamily.com
Sun Mar 6 23:58:39 UTC 2022


On 3/6/22 1:36 PM, Krishna Makhija wrote:
> Hello Tom,
>
> Yes, the GPSDOs are working well. However, when I use each as a reference
> to a separate radio, I find there is a slow phase change over time between
> said radios. I imagine this is expected since there will always be some
> error between two discrete oscillators. However, I am hoping to use the PPS
> and FEE metadata to compute what the phase *should* have been in
> post-processing. So far, it is not working out for me. I am wondering if
> that is even possible or if my math is just wrong.
>
> Bob,
>
> The SDRs have an LO running at 150 MHz (~6.66 ns) so a PPS wander of +- 10
> ns is >360 deg. With a common-mode reference I see a small phase change (+-
> 3-4 deg) but that is not an option for my application.
>
> Where does the PPS offset come from? Isn't it from the positioning error?
> Typical GPS receivers have 1-3 m of positioning error which should give
> you +- 10 ns. Why is this a "dream" performance? It should be expected from
> any modern GPS receiver.
>
> Thanks for your inputs so far.
>
> Krishna

The PPS offset can come from multiple sources - At some point, the GPS 
receiver has an oscillator and counts down to generate the PPS, so any 
given PPS transition is going to be synced to the edges of that internal 
oscillator.  That leads to things like hanging bridges and wander 
between the time quantization of the PPS and the actual GPS epoch.  A 
typical spec is that the 1pps is within 20-50 ns of "true" (e.g. 
corresponding to an internal clock of 50-20 MHz), but the statistics of 
that error are dependent on the receiver.

Very few GPS receivers these days actually lock an internal oscillator 
to the GPS signal - rather they compute observables like code phase and 
epoch phase in terms of the local reference, then compute what the 1pps 
should be (solving for position, etc.) and then set a register so that 
the receiver puts out a pulse at the right time.  On *some* receivers, 
they'll put out estimates of the difference between the 1pps time and 
their current estimate of code "true" 1pps.  After all, the actual 
signal from the satellites are all skewed from each other, so the "true 
epoch" is a mathematical construct.

You've got two 1pps sources - so as a first step, you might hook them up 
to a counter and look at their relative performance.

Indeed, if you are not moving, and you've got two receivers side by side 
(so ionospheric effects, and solid earth tides, and all the other "less 
than a meter" phenomena are common) you should be able to get a 
*calculated* uncertainty in the single digit nanoseconds between the 
receivers.

But you don't just have receivers - you've got GPSDOs, so what you're 
seeing is an oscillator, divided down to 1Hz, with the oscillator pushed 
around to match GPS.  The 1pps from this will have different statistics 
than a 1pps from a bare receiver.  Think of it as the 1pps from GPS 
(with its 20-50 ns somewhat uniformly distributed uncertainty) run 
through a not necessarily linear filter.

You sort of have two choices in front of you:

Understand the nature of the GPSDO filters and be able to de-embed their 
contribution algorithmically - this is not easy.

Measure the instantaneous output of the GPSDO against GPS observables, 
and use some post processing to figure out what it really is. Then you 
can remove the delta between "true" estimated time and "GPSDO estimated 
time"







More information about the Time-nuts_lists.febo.com mailing list