[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