GPS Composite Clock Analysis

The GPS Composite Clock defines GPS Time, the timescale used today in GPS operations. GPS Time is illuminated by examination of its role in the complete estimation and control problem relative to UTC/TAI. Simulated GPS clock phase and frequency deviations, and simulated GPS pseudo-range measurements, are used to understand GPS Time in terms of Kalman filter estimation errors.


INTRODUCTION
GPS time is created by processing GPS pseudorange measurements with the operational GPS Kalman filter. Brown [2] refers to the object created by the Kalman filter as the GPS composite clock, and to GPS time as the implicit ensemble mean phase of the GPS composite clock. The fundamental goal by the USAF and the USNO is to control GPS time to within a specified bound of UTC/TAI. (I refer to TAI/UTC understanding that UTC has an accumulated discontinuity (a sum of leap seconds) when compared to TAI. But unique two-way transformations between TAI and UTC have been in successful operational use since 1972. I have no need herein to further distinguish between TAI and UTC.) I present here a quantitative analysis of the GPS composite clock, derived from detailed simulations and associated graphics. GPS clock diffusion coefficient values used here were derived from Allan deviation graphs presented by Oaks et al. [12] in 1998. I refer to them as "realistic," and in the sequel I claim "realistic" results from their use. Figure 1 presents their diffusion coefficient values and my derivation of associated Allan deviation lines.
My interest in the GPS composite clock derives from my interest in performing real-time orbit determination for GPS NAVSTAR spacecraft from ground receiver pseudorange measurements. (James R Wright is the architect of ODTK (Orbit Determination Tool Kit), a commercial software product offered by Analytical Graphics, Inc. (AGI).) The estimation of NAVSTAR orbits would be incomplete without the simultaneous estimation of GPS clock parameters. I use simulated GPS clock phase and frequency deviations, and simulated GPS pseudorange measurements, to study Kalman filter estimation errors.
This paper was first prepared for TimeNav'07 [20]. I am indebted to Charles Greenhall (JPL) for encouragement and help in this work.

THE COMPLETE ESTIMATION AND CONTROL PROBLEM
The USNO operates two UTC/TAI master clocks, each of which provides access to an estimate of UTC/TAI in real time (1 pps). One of these clocks is maintained at the USNO, and the other is maintained at Schriever Air Force Base in Colorado Springs. This enables the USNO to compare UTC/TAI to the phase of each GPS orbital NAVSTAR clock via GPS pseudorange measurements, by using a UTC/TAI master clock in a USNO GPS ground receiver. Each GPS clock is a member of (internal to) the GPS ensemble of clocks, but the USNO master clock is external to the GPS ensemble of clocks. Because of this, the difference between UTC/TAI and the phase of each NAVSTAR GPS clock is observable. This difference can be (and is) estimated and quantified. The root mean square (RMS) on these differences quantifies the difference between UTC/TAI and GPS time. Inspection of the differences between UTC/TAI and the phase of each NAVSTAR  Figure 1: Allan deviation lines for S1, S2, N1, and N2.
GPS clock enables the USNO to identify GPS clocks that require particular frequency-rate control corrections. Use of this knowledge enables the USAF to adjust frequency rates of selected GPS clocks. Currently, the USAF uses an automated bang-bang controller on frequency-rate. (According to Bill Feess, an improvement in control can be achieved by replacing the existing "bang-bang controller" with a "proportional controller.")

KALMAN FILTERS
I present my approach for the optimal sequential estimation of clock deviation states and their error covariance functions. Sequential state estimates are generated recursively from two multidimensional stochastic update functions, the time update (TU) and the measurement update (MU). The TU moves the state estimate and covariance forward with time, accumulating integrals of random clock deviation process noise in the covariance. The MU is performed at a fixed measurement time where the state estimate and covariance are corrected with new observation information.
The sequential estimation of GPS clock deviations requires the development of a linear TU and nonlinear MU. The nonlinear MU must be linearized locally to enable application of the linear Kalman MU. Kalman's MU [9] derives from Sherman's theorem [11,15,16], Sherman's theorem derives from Anderson's theorem [1], and Anderson's theorem derives from the Brunn-Minkowki inequality theorem [5,17]. The theoretical foundation for my linearized MU derives from these theorems.

Initial conditions
Initialization of all sequential estimators requires the use of an initial state estimate column matrix X 0|0 and an intial state estimate error covariance matrix P 0|0 for time t 0 .

Kalman filter: linear TU and linear MU
Derivation and calculation for the discrete-time Kalman filter, linear in both TU and MU, is best presented by Meditch [11,Chapter 5].

Linear TU and nonlinear MU
The simultaneous sequential estimation of GPS clock phase and frequency deviation parameters can be studied with the development of a linear TU and nonlinear MU for the clock state estimate subset. This is useful to study clock parameter estimation, as demonstrated in Section 6.
Let X j|i denote an n × 1 column matrix of state estimate components, where the left subscript j denotes state epoch t j and the right subscript i denotes time-tag t i for the last observation processed, where i, j ∈ {0, 1, 2, . . . }. Let P j|i denote an associated n × n square symmetric state estimate error covariance matrix (positive eigenvalues).

Linear TU
For k ∈ {0, 1, 2, 3, . . . , M}, the propagation of the true unknown n × 1 matrix state X k is given by where J k+1,k is called the process noise matrix. Propagation of the known n × 1 matrix state estimate X k|k is given by because the conditional mean of J k+1,k is zero. Propagation of the known n × n matrix state estimate error covariance matrix P k|k is given by where the n × n matrix Q k+1,k is called the process noise covariance matrix (see [19] for concrete clock examples of J k+1,k and Q k+1,k ).

Nonlinear MU
Calculate the n × 1 matrix filter gain K k+1 : The filter measurement update state estimate n × 1 matrix X k+1|k+1 , due to the observation y k+1 , is calculated with where R k+1 is the scalar variance on the observation residual y k+1 − y( X k+1|k ), and y( X k+1|k ) is a nonlinear function of X k+1|k . Define the error Δ X k+1|k+1 in X k+1|k+1 : Define the n × n state estimate error covariance matrix P k+1|k+1 with Bucy and Joseph [3, page 141] recommend that P k+1|k+1 should be calculated with where Equations (8) and (9) reduce to the form given by Kalman: Calculation of P k+1|k+1 by (8) and (9) is numerically stable, whereas the Kalman form calculation is not.

Nonlinear TU and nonlinear MU
Refer to Section 4.3.2 for the nonlinear MU.

Nonlinear TU
The nonlinear TU always spans a nonempty time interval and requires the use of a numerical state estimate integrator ϕ x . Given an initial time t 0 , a final time t f , and a force model u( X(t), t), then ϕ x propagates the state estimate X(t 0 ) from t 0 to t f using forces u( X(τ), τ) to get X(t f ). That is, This can be shortened to write where the use of forces u( X(τ), τ) is tacitly implied. Thus, ϕ x is a column matrix with n elements:

Kalman filter advantage
Severe computational problems are incurred in any attempt to estimate unobservable states using iterated batch least squares methods or iterated maximum likelihood methods for navigation, because state-sized inversions of singular matrices are required. Here the Kalman filter is distinguished in that estimates of unobservable states can be created and used without matrix inversion problems because the Kalman filter MU is free of state-sized matrix inversions. By design, one typically estimates observable states. But the Kalman filter enables one to create unobservable states. The USAF chose to create unobservable GPS clock parameter states for construction of GPS time.

OBSERVABILITY
I have defined observability in terms of a Kalman filter formulation, and I have proved simple theorems related thereto. My definition of observability is different than Kalman's definition and, unlike Kalman's definition, is directly applicable to covariance matrices derived from a Kalman filter.

Definition
If the state estimate error variance of a particular state estimate component is reduced by processing an observation, then that state estimate component is observable to that observation. Otherwise, that state estimate component is not observable (unobservable) to that observation. Proof. H k+1 = 0 implies that P k+1|k+1 = P k+1|k according to (10). Thus none of the variances of P k+1|k are reduced due to processing the observation y k+1 . Then by definition, X k+1 is unobservable in every component.

Theorem 2. Given values for scalars
Multiply through by −1: Add 1: 4 International Journal of Navigation and Observation Multiply through by P k+1|k : Now use (4) and (10) to write Insert (18) into the inequality (17) to get the result: Thus the variance P k+1|k is reduced due to processing the observation y k+1 . Then the scalar state X k+1 is observable by definition.

Theoretical foundation
These theorems are referred to expressions given by Kalman for filter gain K k+1 and covariance P k+1|k+1 , see (4) and (10).
Kalman's expressions are derived from the rigorous theorem chain provided by Sherman, Anderson, and Brunn-Minkowski-the theoretical foundation is deep.

Determine observability directly
Given an optimal sequential estimator, given a particular collection of applicable observations (real or simulated), and given realistic state estimate error covariance matrices P k+1|k and P k+1|k+1 at each time t k+1 , apply the definition of observability directly (note that this is impossible using Kalman's definition of observability) to distinguish between observable and unobservable state elements. An optimal sequential estimator is designed to eliminate significant aliasing between estimated state elements, and thus enables this distinction.

UNOBSERVABLE GPS CLOCK STATES
GPS time is created by the operational USAF Kalman filter by processing GPS pseudorange observations. GPS time is the mean phase of an ensemble of many GPS clocks, and yet the clock phase of every operational GPS clock is unobservable from GPS pseudorange observations, as demonstrated below. GPS NAVSTAR orbit parameters are observable from GPS pseudorange observations. The USAF Kalman filter simultaneously estimates orbit parameters and clock parameters from GPS pseudorange observations, so the state estimate is partitioned in this manner into a subset of unobservable clock parameters and a subset of observable orbit parameters. This partition is performed by application of Sherman's theorem in the MU.

GPS pseudorange representation
Let t Nh T denote time of radio wave transmission for the hth NAVSTAR clock, and let t Gi R denote time of radio wave receipt for the ith ground station clock. (Refer all times to a coordinate time, e.g., to GPS time. Appropriate transformations between proper time and coordinate time must be performed in the operational algorithms, but state estimate observability is independent of relativity, so observability can be defined and discussed independent of relativity.) Let δ x Nh T and δ x Gi R denote Kalman filter estimation errors in clock phase for t Nh T and t Gi R . Define time of transmission difference t Dh T and time of receipt difference t Di R : Thus, Equation (21) Insert (21) into (22): where c is speed of light in vacuum. Define Then, where Δt is deterministic and δt is random.

Partition of Kalman filter estimation errors
Let x C denote the phase component of Kalman filter estimation error that is common to every GPS ensemble clock, when it exists. Define phase differences x Gi OR and x Nh OT with

The common random phase component is unobservable
Insert (28) into (25): Insert (29) into (26): Thus, the random phase component x C that is common to the Kalman filter estimation error for every ensemble clock has vanished in the range representation ρ NhGi . Variations Δx C in x C cannot cause variations Δρ NhGi in ρ NhGi : because the partial derivative H = ∂ρ NhGi /∂x C is zero: An application of Theorem 1 to (32) demonstrates that x C is unobservable from ρ NhGi . But the architect who designs the complete estimator must design an optimal NAVSTAR orbit estimator to prevent aliasing from NAVSTAR orbit estimation errors into x C . It helps to know that there is no coupling between the orbit and x C in the complete state transition function. I have provided a new method herein to identify this aliasing, and I have provided suggestions on where to look for inadequate modeling that would be the source of this aliasing. See Section 9.

Independent random phase components are observable
The independent phase deviations x Gi OR and x Nh OT are observable to GPS pseudorange observations because their partial derivatives are nonzero: (33)

Estimation of x Gi
OR and x Nh OT by the Kalman filter will reduce their error variances.

Partition of KF1 estimation errors
Subtract estimated clock deviations from simulated (true) clock deviations to define and quantify Kalman filter (KF1) estimation errors. Adopt Brown's additive partition of KF1 estimation errors into two components. I refer to the first component as the unobservable error common to each clock (UECC), and to the second component as the observable error independent for each clock (OEIC). (Observability is meaningful here only when processing simulated GPS pseudorange data.) See (28). x C is the UECC, x Gi OR is the OEIC for ground station clocks and x Nh OT is the OEIC for NAVS-TAR clocks. On initialization of KF1, the variances on the UECC and OEIC are identical. On processing the first GPS pseudorange measurements with KF1 the variances on both fall quickly. But with continued measurement processing the variances on the UECC increase without bound while the variances on the OEIC appoach zero asymptotically.
For simulated GPS pseudorange data I create an optimal sequential estimate of the UECC by application of a second Kalman filter KF2 to pseudomeasurements defined by the phase components of KF1 estimation errors.
Since there is no physical process noise on the UECC, an estimate of the UECC can also be achieved using a batch least squares estimation algorithm on the phase components of KF1 estimation errors-demonstrated previously by Greenhall [7]. (I apply sufficient process noise covariance for KF2 to mask the effects of double-precision computer word truncation. Without this, KF2 does diverge.)

Unobservable error common to each clock
There are at least four techniques to estimate the UECC when simulating GPS pseudorange data. First, one could take the sample mean of KF1 estimation errors across the clock ensemble at each time and form a sample variance about the mean; this would yield a sequential sampling procedure, but where each mean and variance is sequentially unconnected. Second, one can employ Ken Brown's implicit ensemble mean (IEM) and covariance; this is a batch procedure requiring an inversion of the KF1 covariance matrix followed by a second matrix inversion of the modified covariance matrix inverse; this is not a sequential procedure. Third, one can adopt the new procedure by Greenhall [7] wherein KF1 phase estimation errors are treated as pseudomeasurements, and are processed by a batch least squares estimator to obtain optimal batch estimates and covariance matrices for the UECC. Fourth, one can treat the KF1 phase estimation errors as pseudomeasurements, invoke a second Kalman filter (KF2), and process these phase pseudomeasurements with KF2 to obtain optimal sequential estimates and variances for the UECC. I have been successful with this approach. Figure 3 presents an ensemble of "realistic" KF1 phase estimation errors, overlaid with "realistic" KF2 sequential estimates of UECC in phase. (By "realistic" I refer to realistic clock diffusion coefficient values.)

Observable error independent for each clock
At each applicable time subtract the estimate of the UECC from the KF1 phase deviation estimate, for each particular GPS clock, to estimate the OEIC in phase for that clock. During measurement processing, the OEIC is contained within an envelope of a few parts of a nanosecond (see Figure 4). Figure 4 presents a graph of two cases of the OEIC for ground station clock S1. For the blue line of Figure 4,  intervals of link visibility and KF1 range measurement processing are clearly distinguished from propagation intervals with no measurements. During measurement processing, the observable component of KF1 estimation error is contained within an envelope of a few parts of a nanosecond. Calculation of the sequential covariance for the OEIC requires a matrix value for the cross-covariance between the KF1 phase deviation estimation error and the UECC estimation error at each time. I have not yet been able to calculate this cross-covariance.

Proportionate process noise (PPN)
Let α denote a variable α ∈ {1, 2, 3, . . . , N} to identify each GPS clock in an ensemble of N clocks. For each clock α define the ratio S α between diffusion coefficients σ 1α and σ 2α : Then PPN is defined when, for each GPS clock α and each associated ratio S α , we have

KALMAN FILTERS KF1 AND KF2
I have simulated GPS pseudorange measurements for two GPS ground station clocks S1 and S2, and for two GPS NAVSTAR clocks N1 and N2. Here I set simulated measurement time granularity to 30 s for the set of all visible link intervals. Visible and non-visible intervals are clearly evident in the blue line of Figure 4. I set the scalar root-variance √ R for both measurement simulations and Kalman filter KF1 to √ R = 1 cm. Typically √ R∼1 m for GPS pseudorange, but when carrier phase measurements are processed simultaneously with pseudorange, the root-variance is reduced by two orders of magnitude. So the use of √ R = 1 cm enables me to quantify lower performance bounds for the simultaneous processing of both measurement types.

Create GPS clock ensemble
Typically, one processes measurements with a Kalman filter to derive sequential estimates of a multidimensional observable state. Instead, here I imitate the GPS operational procedure and process simulated GPS pseudorange measurements with KF1 to create a sequence of unobservable multidimensional clock state estimates. Clock state components  Figure 4: S1 observable component phase error.
are unobservable from GPS pseudorange measurements. See Figure 2 for an example of an ensemble of estimated unobservable clock phase deviation state components created by KF1.

Sherman's theorem
GPS time, the unobservable GPS clock ensemble mean phase, is created by the use of Sherman's theorem [11,18] Figure 3 for an example.

Initial condition errors
A significant result emerges due to the modeling of Kalman filter (KF1) initial condition errors in phase and frequency. Initial estimated clock phase deviations are significantly displaced by the KF1 initial condition errors in phase. As time evolves estimated clock phase deviation magnitudes diverge continuously and increasingly when referred to true (simulated) phase deviations, and this is due to filter initial condition errors in frequency. See Figure 2 for an example.

IDENTIFY NONCLOCK MODELING ERRORS
My interest in the GPS NAVSTAR (SV) orbit determination problem, combined with that of the clock parameter estimation problem, has enabled the identification of a useful diagnostic tool: given realistic values for diffusion coefficients for each of the real GPS clocks, then quantitative upper bounds can be calculated on OEIC magnitudes. These calculations require the use of a rigorous simulator. Existence of significant cross-correlations between GPS clock phase errors and other nonclock GPS estimation modeling errors enables significant aliasing into GPS clock phase estimates during operation of KF1 on real data. But given rigorous quantitative upper bounds on OEIC magnitudes, then significant violation of these bounds when processing real GPS pseudorange and carrier phase data identifies nonclock modeling errors related to the GPS estimation model. Modeling error candidates here include NAVSTAR orbit force modeling errors, ground antenna modeling errors (multipath), and tropospheric modeling errors. NAVSTAR orbit force modeling errors include those of solar photon pressure, albedo, thermal dump, and propellant outgassing. The accuracy of this diagnostic tool depends on the use of realistic clock diffusion coefficient values and a rigorous clock model simulation capability.

OBSERVABLE CLOCKS
In an earlier version of my paper, I reported on KF1 validation results where clock S1 was specified as a TAI/UTC clock, external to the GPS clock ensemble consisting of S2, N1, and N2. This brought observablity (see Sections 5 and 6 herein) to S2, N1, and N2 clock states from GPS pseudorange measurements, drove clocks S2, N1, and N2 immediately to the TAI/UTC timescale, and enabled a clean validation of my filter implementation. Also it raised the question: why not the same thing for the real GPS clock ensemble? Discussions with Ed Powers (USNO) and Bill Feess (Aerospace Corporation) reveal that this approach was tried and discarded after the difficulty in recovery from an uplink hardware failure was blamed on the use of a single TAI/UTC Master Clock. This issue was resolved with Kenneth Brown's introduction of the implicit ensemble mean. The mean phase (GPS time) of the GPS clock ensemble will remain unobservable to GPS pseudorange measurements in the USAF Kalman filter for the foreseeable future.