What is modelled. Site locations are the publicly listed ones, placed at city level. Each satellite's true orbit and clock drift away from what it broadcasts through random unmodelled forces and clock noise. The master control station runs a standard 8-state Kalman filter per satellite, and uploads follow a fixed interval. The real operational estimator, noise levels and schedules are not public, so those parts are a model, tuned to broadcast errors of the size GPS publicly reports (about 0.6 m typical).
The ground segment
A master control station in Colorado with a backup in California, monitor stations around the world, and ground antennas that can transmit to the satellites. Dashed lines are live tracking links from monitor stations to the selected satellite. An S-band upload link lights up when it passes over a ground antenna.
Monitor stations, –
Each monitor station has a precise clock and a known position. It tracks every satellite in view and records its pseudorange (code) and carrier phase. The residual is what the station measures minus what the satellite's current broadcast message predicts. That difference is the error the master control station has to estimate.
| Station | Elevation | Pseudorange | Carrier phase | Residual vs broadcast |
|---|
Carrier phase is far more precise than the code, but it's ambiguous by a whole number of cycles (19 cm each at L1). Stations smooth the code with the carrier, and the filter uses the smoothed ranges.
Master control station estimation, –
Every five minutes the master control station folds the new residuals into a Kalman filter per satellite. Its state is the error of the current broadcast: position error in radial, along-track and cross-track, their rates, and the clock's bias and drift. From the estimate it builds corrected ephemeris and clock terms for the next upload.
1Collected measurements
2Kalman filter state
| Error | Estimate ± 1σ | Truth |
|---|
3Last generated corrections
| Term | Correction |
|---|
Ground stations sit almost directly under each satellite, so radial orbit error and clock error look alike: both mostly change the range. The filter pins down their difference well, which is what users feel (the radial and clock part of the signal-in-space range error). It resolves them individually only loosely.
Upload, –
A satellite can only receive new navigation data while a ground antenna can see it. When one is due for an upload (here, once every upload interval, or right away after a fault), the next ground antenna it passes over sends the new ephemeris, clock terms and health over the S-band link, and a new issue of data (IODE) starts.
Contact windows, next 24 hours
Error growth between uploads
Right after an upload the broadcast is as good as the estimate. From then on the satellite keeps transmitting the same prediction while the real orbit and clock wander away, so the error grows until the next upload resets it.
Signal-in-space range error
Clock error of the broadcast, selected satellite ns
Faults and the health flag
Inject a fault on the selected satellite. A clock jump shows up as a burst of large residuals at every monitor station. The master control station flags the satellite and uploads an unhealthy flag at the next contact. Receivers read the 6-bit health field in subframe 1 and stop using the satellite. The flag is cleared after the clock has been re-estimated and verified.
Contact timeline
For every satellite: when it was last uploaded, and when it next passes over a ground antenna in the next 24 hours. Select a row to select that satellite.