Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

The parameterisation problems of the bias parameters in the GPS observation model are outlined in Sect. 12.1 of the first edition of this book. The problems are then mostly solved, and the theory will be addressed here in detail (cf. Xu 2004; Xu et al. 2006b). The equivalence properties of the algorithms of GPS data processing are described, and the standard algorithms are outlined.

9.1 Parameterisation of the GPS Observation Model

The commonly used GPS data processing methods are the so-called uncombined and combining, and the undifferenced and differencing algorithms (e.g., Hofmann-Wellenhof et al. 2001; Leick 2004; Remondi 1984; Seeber 1993; Strang and Borre 1997; Blewitt 1998). The observation equations of the combining and differencing methods can be obtained by carrying out linear transformations of the original (uncombined and undifferenced) equations. As soon as the weight matrix is similarly transformed according to the law of variance–covariance propagation, all methods are theoretically equivalent. The equivalences of combining and differencing algorithms are discussed in Sects. 6.7 and 6.8, respectively. The equivalence of the combining methods is exact, whereas the equivalence of the differencing algorithms is slightly different (Xu 2004, cf. Sect. 9.2). The parameters are implicitly expressed in the discussions; therefore, the parameterisation problems of the equivalent methods have not been discussed in detail. At that time, this topic was considered one of the remaining GPS theoretical problems (Xu 2003, pp. 279–280; Wells et al. 1987, p. 34), and it will be discussed in the next subsection.

Three pieces of evidence of the parameterisation problem of the undifferenced GPS observation model are given first. Then the theoretical analysis and numerical derivation are made to show how to parameterise the bias effects of the undifferenced GPS observation model independently. A geometry-free illustration and a correlation analysis in the case of a phase–code combination are discussed. At the end, conclusions and comments are given.

9.1.1 Evidence of the Parameterisation Problem of the Undifferenced Observation Model

  • Evidence from Undifferenced and Differencing Algorithms

Suppose the undifferenced GPS observation equation and the related LS normal equation are

$$ V = L - \left( {\begin{array}{*{20}l} {A_{1} } \hfill & {A_{2} } \hfill \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right), \quad P $$
(9.1)
$$ \left( {\begin{array}{*{20}c} {M_{11} } & {M_{12} } \\ {M_{21} } & {M_{22} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {W_{1} } \\ {W_{2} } \\ \end{array} } \right), $$
(9.2)

where all symbols have the same meanings as that of Eqs. 7.117 and 7.118. Equation 9.2 can be diagonalised as (cf. Sect. 7.6.1)

$$ \left( {\begin{array}{*{20}c} {M_{1} } & 0 \\ 0 & {M_{2} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {B_{1} } \\ {B_{2} } \\ \end{array} } \right). $$
(9.3)

The related equivalent observation equation of the diagonal normal Eq. 9.3 can be written (cf. Sect. 7.6.1)

$$ \left( {\begin{array}{*{20}c} {U_{1} } \\ {U_{2} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} L \\ L \\ \end{array} } \right) - \left( {\begin{array}{*{20}c} {D_{1} } & 0 \\ 0 & {D_{2} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right), \quad \left( {\begin{array}{*{20}c} P & 0 \\ 0 & P \\ \end{array} } \right), $$
(9.4)

where all symbols have the same meanings as that of Eqs. 7.142 and 7.140. If X 1 is the vector containing all clock errors, then the second equation of Eq. 9.3 is the equivalent double-differencing GPS normal equation. It is well known that in a double-differencing algorithm, the ambiguity sub-vector contained in X 2 must be the double-differencing ambiguities; otherwise, the problem will be generally singular. It is notable that X 2 is identical with that of in the original undifferenced observation Eq. 9.1. Therefore, the ambiguity sub-vector contained in X 2 (in Eq. 9.1) must be a set of double-differencing ambiguities (or an equivalent set of ambiguities). This is the first piece of evidence (or indication) of the singularity of the undifferenced GPS observation model in which the undifferenced ambiguities are used.

  • Evidence from Uncombined and Combining Algorithms

Suppose the original GPS observation equation of one viewed satellite is (cf. Eq. 6.134)

$$ \left( {\begin{array}{*{20}c} {R_{1} } \\ {R_{2} } \\ {\lambda_{1} \varPhi_{1} } \\ {\lambda_{2} \varPhi_{2} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} 0 & 0 & {f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 0 & {f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ 1 & 0 & { - f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 1 & { - f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} } \\ {\lambda_{2} N_{2} } \\ {B_{1} } \\ {C_{\rho } } \\ \end{array} } \right), \quad P; $$
(9.5)

then the uncombined or combining algorithms have the same solution of (cf. Eq. 6.138)

$$ \left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} } \\ {\lambda_{2} N_{2} } \\ {B_{1} } \\ {C_{\rho } } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {1 - 2a} & { - 2b} & 1 & 0 \\ { - 2a} & {2a - 1} & 0 & 1 \\ {1/q} & { - 1/q} & 0 & 0 \\ a & b & 0 & 0 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {R_{1} } \\ {R_{2} } \\ {\lambda_{1} \varPhi_{1} } \\ {\lambda_{2} \varPhi_{2} } \\ \end{array} } \right), $$
(9.6)

where all symbols have the same meanings as that of Eqs. 6.134 and 6.138. Then one notices that the ionosphere (B 1) and geometry (C ρ ) are functions of the codes (R 1 and R 2) and are independent from phases (Φ 1 and Φ 2) in Eq. 9.6. In other words, the phase observables contribute nothing to the ionosphere and geometry, and this is not possible. Such an illogical conclusion is caused by the parameterisation of the ambiguities given in the observation model of Eq. 9.5. If one takes the first evidence discussed above into account, and defines that for each station one of the satellites in view must be selected as reference, and the related ambiguity must be merged into the clock parameter, then the phases do contribute to ionosphere and geometry. One can see again that parameterisation is a very important topic and must be discussed more specifically. An improper parameterisation of the observation model will lead to incorrect conclusions through the derivation from the model.

  • Evidence from Practice

Without using a priori information, a straightforward programming of the GPS data processing using an undifferenced algorithm leads to no results (i.e. the normal equation is singular, cf. Xu 2004). Therefore, an exact parameterisation description is necessary and will be discussed in the next section.

9.1.2 A Method of Uncorrelated Bias Parameterisation

Here we restrict our discussion to the parameterisation problem of the bias parameters (or constant effects, i.e. the clock errors and ambiguities).

Recall the discussions of the equivalence of undifferenced and differencing algorithms in Sect. 6.8. The equivalence property is valid under three conditions: observation vector L used in Eq. 9.1 is identical; parameterisation of X 2 is identical; and X 1 is able to be eliminated (cf. Sect. 6.8).

The first condition is necessary for the exactness of the equivalence because, through forming differences, the unpaired data will be cancelled out in the differencing.

The second condition states that the parameterisation of the undifferenced and differencing model should be the same. This may be interpreted as the following: the rank of the undifferenced and differencing equations should be the same if the differencing is formed by a full rank linear transformation . If only the differencing equations are taken into account, then the rank of the undifferenced model should equal the rank of the differencing model plus the number of eliminated independent parameters.

It is well known that one of the clock error parameters is linearly correlated with the others. This may be seen in the proof of the equivalence property of the double differences , where the two receiver clock errors of the baseline may not be separated from each other and have to be transformed to one parameter and then eliminated (Xu 2002, Sect. 6.8). This indicates that if in the undifferenced model all clock errors are modelled, the problem will be singular (i.e. rank defect). Indeed, Wells et al. (1987) noticed that the equivalence is valid if measures are taken to avoid rank defect in the bias parameterisation . Which clock error has to be kept fixed is arbitrary. Because of the different qualities of the satellite and receiver clocks, a good choice is to fix a satellite clock error (the clock is called a reference clock). In practice, the clock error is an unknown; therefore, there is no way to keep that fixed except to fix it to zero. In this case, the meaning of the other bias parameters will be changed and may represent the relative errors between the other biases.

The third condition is important to ensure a full-ranked parameterisation of the parameter vector X 1 which is going to be eliminated.

The undifferenced Eq. 9.1 is solvable if the parameters X 1 and X 2 are not over-parameterised. In the case of single differences, X 1 includes satellite clock errors and is able to be eliminated. Therefore, to guarantee that the undifferenced model Eq. 9.1 is not singular, X 2 in Eq. 9.1 must be not over-parameterised. In the case of double differences, X 1 includes all clock errors except the reference one. Here we notice that the second observation equation of 9.1 is equivalent to the double-differencing observation equation and the second equation of 9.2 is the related normal equation . In a traditional double-differencing observation equation, the ambiguity parameters are represented by double-differencing ambiguities. Recall that for the equivalence property, the number (or rank) of ambiguity parameters in X 2 that are not linearly correlated must be equal to the number of the double-differencing ambiguities. In the case of triple differences , X 1 includes all clock errors and ambiguities. The fact that X 1 should able to be eliminated leads again to the conclusion that the ambiguities should be linearly independent.

The two equivalent linear equations should have the same rank. Therefore, if all clock errors except the reference one are modelled, the number of independent undifferenced ambiguity parameters should be equal to the number of double-differencing ambiguities. According to the definition of the double-differencing ambiguity, one has for one baseline

$$ \begin{aligned} & N_{i1,i2}^{k1,k2} = N_{i2}^{k2} - N_{i1}^{k2} - N_{i2}^{k1} + N_{i1}^{k1} \\ & N_{i1,i2}^{k1,k3} = N_{i2}^{k3} - N_{i1}^{k3} - N_{i2}^{k1} + N_{i1}^{k1} \\ & N_{i1,i2}^{k1,k4} = N_{i2}^{k4} - N_{i1}^{k4} - N_{i2}^{k1} + N_{i1}^{k1} \\ & \ldots \ldots \\ & N_{i1,i2}^{k1,kn} = N_{i2}^{kn} - N_{i1}^{kn} - N_{i2}^{k1} + N_{i1}^{k1} , \\ \end{aligned} $$
(9.7)

where i1 and i2 are station indices, kj is the jth satellite’s identification, n is the common observed satellite number and is a function of the baseline, and N is ambiguity. Then there are n − 1 double-differencing ambiguities and 2n undifferenced ambiguities. Taking the connection of the baselines into account, there are n − 1 double-differencing ambiguities and n new undifferenced ambiguities for any further baseline. If i1 is defined as the reference station of the whole network and k1 as the reference satellite of station i2, then undifferenced ambiguities of the reference station cannot be separated from the others (i.e. they are linearly correlated with the others). The undifferenced ambiguity of the reference satellite of station i2 cannot be separated from the others (i.e. it is linearly correlated with the others). That is, the ambiguities of the reference station cannot be determined, and the ambiguities of the reference satellites of non-reference stations cannot be determined. Either they should not be modelled or they should be kept fixed. A straightforward parameterisation of all undifferenced ambiguities will lead to rank defect, and the problem will be singular and not able to be solved.

Therefore, using the equivalence properties of the equivalent equation of GPS data processing, we come to the conclusion that the ambiguities of the reference station and ambiguities of the reference satellite of every station are linearly correlated with the other ambiguities and clock error parameters. However, a general method of parameterisation should be independent of the selection of the references (station and satellite). Therefore, we use a two-baseline network to further our analysis. The original observation equation can be written as follows:

$$ \begin{aligned} L_{i1}^{k1} & = \cdots \delta_{i1} + \delta_{k1} + N_{i1}^{k1} + \cdots \\ L_{i1}^{k2} & = \cdots \delta_{i1} + \delta_{k2} + N_{i1}^{k2} + \cdots \\ L_{i1}^{k3} & = \cdots \delta_{i1} + \delta_{k3} + N_{i1}^{k3} + \cdots \\ L_{i1}^{k4} & = \cdots \delta_{i1} + \delta_{k4} + N_{i1}^{k4} + \cdots \\ L_{i1}^{k5} & = \cdots \delta_{i1} + \delta_{k5} + N_{i1}^{k5} + \cdots \\ L_{i1}^{k6} & = \cdots \delta_{i1} + \delta_{k6} + N_{i1}^{k6} + \cdots \\ \end{aligned} $$
(9.8)
$$ \begin{aligned} L_{i2}^{k1} & = \cdots \delta_{i2} + \delta_{k1} + N_{i2}^{k1} + \cdots \\ L_{i2}^{k2} & = \cdots \delta_{i2} + \delta_{k2} + N_{i2}^{k2} + \cdots \\ L_{i2}^{k3} & = \cdots \delta_{i2} + \delta_{k3} + N_{i2}^{k3} + \cdots \\ L_{i2}^{k4} & = \cdots \delta_{i2} + \delta_{k4} + N_{i2}^{k4} + \cdots \\ L_{i2}^{k5} & = \cdots \delta_{i2} + \delta_{k5} + N_{i2}^{k5} + \cdots \\ L_{i2}^{k7} & = \cdots \delta_{i2} + \delta_{k7} + N_{i2}^{k7} + \cdots \\ \end{aligned} $$
(9.9)
$$ \begin{aligned} L_{i3}^{k2} & = \cdots \delta_{i3} + \delta_{k2} + N_{i3}^{k2} + \cdots \\ L_{i3}^{k3} & = \cdots \delta_{i3} + \delta_{k3} + N_{i3}^{k3} + \cdots \\ L_{i3}^{k4} & = \cdots \delta_{i3} + \delta_{k4} + N_{i3}^{k4} + \cdots \\ L_{i3}^{k5} & = \cdots \delta_{i3} + \delta_{k5} + N_{i3}^{k5} + \cdots \\ L_{i3}^{k6} & = \cdots \delta_{i3} + \delta_{k6} + N_{i3}^{k6} + \cdots \\ L_{i3}^{k7} & = \cdots \delta_{i3} + \delta_{k7} + N_{i3}^{k7} + \cdots , \\ \end{aligned} $$
(9.10)

where only the bias terms are listed and L and δ represent observable and clock error, respectively. Observation equations of station i1, i2, and i3 are Eqs. 9.8, 9.9, and 9.10. Define that the baseline 1, 2 are formed by station i1 and i2, as well as i2 and i3, respectively. Select i1 as the reference station and then keep the related ambiguities fixed (set to zero for simplification). For convenience of later discussion, select δ i1 as the reference clock (set to zero, too) and select k1, k2 as reference satellites of the station i2, i3 (set the related ambiguities to zero), respectively. Then Eqs. 9.89.10 become

$$ \begin{aligned} L_{i1}^{k1} & = \cdots \delta_{k1} + \cdots \\ L_{i1}^{k2} & = \cdots \delta_{k2} + \cdots \\ L_{i1}^{k3} & = \cdots \delta_{k3} + \cdots \\ L_{i1}^{k4} & = \cdots \delta_{k4} + \cdots \\ L_{i1}^{k5} & = \cdots \delta_{k5} + \cdots \\ L_{i1}^{k6} & = \cdots \delta_{k6} + \cdots \\ \end{aligned} $$
(9.11)
$$ \begin{aligned} L_{i2}^{k1} & = \cdots \delta_{i2} + \delta_{k1} + \cdots \\ L_{i2}^{k2} & = \cdots \delta_{i2} + \delta_{k2} + N_{i2}^{k2} + \cdots \\ L_{i2}^{k3} & = \cdots \delta_{i2} + \delta_{k3} + N_{i2}^{k3} + \cdots \\ L_{i2}^{k4} & = \cdots \delta_{i2} + \delta_{k4} + N_{i2}^{k4} + \cdots \\ L_{i2}^{k5} & = \cdots \delta_{i2} + \delta_{k5} + N_{i2}^{k5} + \cdots \\ L_{i2}^{k7} & = \cdots \delta_{i2} + \delta_{k7} + N_{i2}^{k7} + \cdots \\ \end{aligned} $$
(9.12)
$$ \begin{aligned} L_{i3}^{k2} & = \cdots \delta_{i3} + \delta_{k2} + \cdots \\ L_{i3}^{k3} & = \cdots \delta_{i3} + \delta_{k3} + N_{i3}^{k3} + \cdots \\ L_{i3}^{k4} & = \cdots \delta_{i3} + \delta_{k4} + N_{i3}^{k4} + \cdots \\ L_{i3}^{k5} & = \cdots \delta_{i3} + \delta_{k5} + N_{i3}^{k5} + \cdots \\ L_{i3}^{k6} & = \cdots \delta_{i3} + \delta_{k6} + N_{i3}^{k6} + \cdots \\ L_{i3}^{k7} & = \cdots \delta_{i3} + \delta_{k7} + N_{i3}^{k7} + \cdots \\ \end{aligned} $$
(9.13)

Differences can be formed through linear operations. The total operation is a full rank linear transformation , which does not change the least squares solution of the original equations. Single differences can be formed by the following (Eq. 9.11 remains unchanged and, therefore, will not be listed again):

$$ \begin{aligned} L_{i2}^{k1} - L_{i1}^{k1} & = \cdots \delta_{i2} + \cdots \\ L_{i2}^{k2} - L_{i1}^{k2} & = \cdots \delta_{i2} + N_{i2}^{k2} + \cdots \\ L_{i2}^{k3} - L_{i1}^{k3} & = \cdots \delta_{i2} + N_{i2}^{k3} + \cdots \\ L_{i2}^{k4} - L_{i1}^{k4} & = \cdots \delta_{i2} + N_{i2}^{k4} + \cdots \\ L_{i2}^{k5} - L_{i1}^{k5} & = \cdots \delta_{i2} + N_{i2}^{k5} + \cdots \\ L_{i2}^{k7} & = \ldots \delta_{i2} + \delta_{k7} + N_{i2}^{k7} + \cdots \\ \end{aligned} $$
(9.14)
$$ \begin{aligned} L_{i3}^{k2} - L_{i2}^{k2} & = \cdots \delta_{i3} - \delta_{i2} - N_{i2}^{k2} + \cdots \\ L_{i3}^{k3} - L_{i2}^{k3} & = \cdots \delta_{i3} - \delta_{i2} + N_{i3}^{k3} - N_{i2}^{k3} + \cdots \\ L_{i3}^{k4} - L_{i2}^{k4} & = \cdots \delta_{i3} - \delta_{i2} + N_{i3}^{k4} - N_{i2}^{k4} + \cdots \\ L_{i3}^{k5} - L_{i2}^{k5} & = \cdots \delta_{i3} - \delta_{i2} + N_{i3}^{k5} - N_{i2}^{k5} + \cdots \\ L_{i3}^{k6} & = \cdots \delta_{i3} + \delta_{k6} + N_{i3}^{k6} + \cdots \\ L_{i3}^{k7} - L_{i2}^{k7} & = \cdots \delta_{i3} - \delta_{i2} + N_{i3}^{k7} - N_{i2}^{k7} + \cdots \\ \end{aligned} $$
(9.15)

where two observations are unpaired due to the baseline definitions. Double differences can be formed by

$$ \begin{aligned} L_{i2}^{k1} - L_{i1}^{k1} & = \cdots \delta_{i2} + \cdots \\ L_{i2}^{k2} - L_{i1}^{k2} - L_{i2}^{k1} + L_{i1}^{k1} & = \cdots N_{i2}^{k2} + \cdots \\ L_{i2}^{k3} - L_{i1}^{k3} - L_{i2}^{k1} + L_{i1}^{k1} & = \cdots N_{i2}^{k3} + \cdots \\ L_{i2}^{k3} - L_{i1}^{k3} - L_{i2}^{k1} + L_{i1}^{k1} & = \cdots N_{i2}^{k3} + \cdots \\ L_{i2}^{k4} - L_{i1}^{k4} - L_{i2}^{k1} + L_{i1}^{k1} & = \cdots N_{i2}^{k4} + \cdots \\ L_{i2}^{k5} - L_{i1}^{k5} - L_{i2}^{k1} + L_{i1}^{k1} & = \cdots N_{i2}^{k5} + \cdots \\ L_{i2}^{k7} - L_{i2}^{k1} + L_{i1}^{k1} & = \cdots \delta_{k7} + N_{i2}^{k7} + \cdots \\ \end{aligned} $$
(9.16)
$$ \begin{aligned} L_{i3}^{k2} - L_{i2}^{k2} & = \cdots \delta_{i3} - \delta_{i2} - N_{i2}^{k2} + \cdots \\ L_{i3}^{k3} - L_{i2}^{k3} - L_{i3}^{k2} + L_{i2}^{k2} & = \cdots N_{i3}^{k3} - N_{i2}^{k3} + N_{i2}^{k2} + \cdots \\ L_{i3}^{k4} - L_{i2}^{k4} - L_{i3}^{k2} + L_{i2}^{k2} & = \cdots N_{i3}^{k4} - N_{i2}^{k4} + N_{i2}^{k2} + \cdots \\ L_{i3}^{k5} - L_{i2}^{k5} - L_{i3}^{k2} + L_{i2}^{k2} & = \cdots N_{i3}^{k5} - N_{i2}^{k5} + N_{i2}^{k2} + \cdots \\ L_{i3}^{k6} & = \cdots \delta_{i3} + \delta_{k6} + N_{i3}^{k6} + \cdots \\ L_{i3}^{k7} - L_{i2}^{k7} - L_{i3}^{k2} + L_{i2}^{k2} & = \cdots N_{i3}^{k7} - N_{i2}^{k7} + N_{i2}^{k2} + \cdots \\ \end{aligned} $$
(9.17)

Using Eqs. 9.16 and 9.11, Eq. 9.17 can be further modified to

$$ \begin{aligned} L_{i3}^{k2} - L_{i2}^{k2} + (L_{i2}^{k1} - L_{i1}^{k1} ) + (L_{i2}^{k2} - L_{i1}^{k2} - L_{i2}^{k1} + L_{i1}^{k1} ) & = \cdots \delta_{i3} + \cdots \\ L_{i3}^{k3} - L_{i2}^{k3} - L_{i3}^{k2} + L_{i2}^{k2} + (L_{i2}^{k3} - L_{i1}^{k3} - L_{i2}^{k1} + L_{i1}^{k1} ) - (L_{i2}^{k2} - L_{i1}^{k2} - L_{i2}^{k1} + L_{i1}^{k1} ) & = \cdots N_{i3}^{k3} + \cdots \\ L_{i3}^{k4} - L_{i2}^{k4} - L_{i3}^{k2} + L_{i2}^{k2} + (L_{i2}^{k4} - L_{i1}^{k4} - L_{i2}^{k1} + L_{i1}^{k1} ) - (L_{i2}^{k2} - L_{i1}^{k2} - L_{i2}^{k1} + L_{i1}^{k1} ) & = \cdots N_{i3}^{k4} + \cdots \\ L_{i3}^{k5} - L_{i2}^{k5} - L_{i3}^{k2} + L_{i2}^{k2} + (L_{i2}^{k5} - L_{i1}^{k5} - L_{i2}^{k1} + L_{i1}^{k1} ) - (L_{i2}^{k2} - L_{i1}^{k2} - L_{i2}^{k1} + L_{i1}^{k1} ) & = \cdots N_{i3}^{k5} + \cdots \\ L_{i3}^{k6} - L_{i1}^{k6} & = \cdots \delta_{i3} + N_{i3}^{k6} + \cdots \\ L_{i3}^{k7} - L_{i2}^{k7} - L_{i3}^{k2} + L_{i2}^{k2} + (L_{i2}^{k7} - L_{i2}^{k1} + L_{i1}^{k1} ) - (L_{i2}^{k2} - L_{i1}^{k2} - L_{i2}^{k1} + L_{i1}^{k1} ) & = \cdots - \delta_{k7} + N_{i3}^{k7} + \cdots \\ \end{aligned} $$
(9.18)

or

$$ \begin{aligned} L_{i3}^{k2} - L_{i1}^{k2} & = \cdots \delta_{i3} + \cdots \\ L_{i3}^{k3} - L_{i1}^{k3} - L_{i3}^{k2} + L_{i1}^{k2} & = \cdots N_{i3}^{k3} + \cdots \\ L_{i3}^{k4} - L_{i1}^{k4} - L_{i3}^{k2} + L_{i1}^{k2} & = \cdots N_{i3}^{k4} + \cdots \\ L_{i3}^{k5} - L_{i1}^{k5} - L_{i3}^{k2} + L_{i1}^{k2} & = \cdots N_{i3}^{k5} + \cdots \\ L_{i3}^{k6} - L_{i1}^{k6} - L_{i3}^{k2} + L_{i1}^{k2} & = \cdots N_{i3}^{k6} + \cdots \\ L_{i3}^{k7} - L_{i3}^{k2} + L_{i1}^{k2} & = \cdots - \delta_{k7} + N_{i3}^{k7} + \cdots \\ \end{aligned} $$
(9.19)

From the last equation of Eqs. 9.16 and 9.19, it is obvious that the clock error and the ambiguities of satellite k7, which is not observed by the reference station, are linearly correlated. Keeping one of the ambiguities of the satellite k7 at station i2 or i3 is necessary and equivalent. Therefore, for any satellite that is not observed by the reference station , one of the related ambiguities should be kept fixed (station selection is arbitrary). In other words, one of the ambiguities of all satellites has to be kept fixed. In this way, every transformed equation includes only one bias parameter and the bias parameters are linearly independent (regular). Furthermore, the differencing cannot be formed for the unpaired observations of every baseline. However, in the case of an undifferenced adjustment, the situation would be different. We notice that the equation for k6 in Eq. 9.18 can be transformed to a double-differencing one in Eq. 9.19. If more data is used in the undifferenced algorithm than in the differencing method, the number of undifferenced ambiguity parameters will be larger than that of double-differencing parameters. Therefore, we must drive the so-called data condition to guarantee that the data are able to be differenced, or equivalently, we must extend the method of double-difference formation such that the differencing will not be limited by special baseline design. Both will be discussed in Sect. 9.2.

The meanings of the parameters are changed by independent parameterisation , and they can be read from Eqs. 9.119.13. The clock errors of the satellites observed by the reference station include the errors of receiver clock and ambiguities. The receiver clock errors include the error of ambiguity of the reference satellite of the same station. Due to the inseparable property of the bias parameters, the clock error parameters no longer represent pure clock errors, and the ambiguities represent no longer pure physical ambiguity. Theoretically speaking, the synchronisation applications of GPS may not be realised using the carrier-phase observations. Furthermore, Eq. 9.19 shows that the undifferenced ambiguities of i3 have the meaning of double-differencing ambiguities of the station i3 and i1 in this case.

Up to now, we have discussed the correlation problem of the bias parameters and found a method of how to parameterise the GPS observations regularly to avoid the problem of rank defect. Of course, many other ways to parameterise the GPS observation model can be similarly derived. However, the parameter sets should be equivalent to each other and can be transformed from one set to another uniquely as long as the same data is used.

9.1.3 Geometry-Free Illustration

The reason why the reference parameters have to be fixed lies in the nature of range measurements, which cannot provide information of the datum origin (cf., e.g., Wells et al. 1987, p. 9). Suppose d is the direct measurement of clock errors of satellite k and receiver i, i.e. \( d_{i}^{k} = \delta_{i} + \delta_{k} \), no matter how many observations were made and how the indices were changed, one parameter (i.e. reference clock) is inseparable from the others and has to be fixed. Suppose h is the direct measurement of ambiguity N and clock errors of satellite k and receiver i, i.e. \( h_{i}^{k} = \delta_{i} + \delta_{k} + N_{i}^{k} \), the number of over-parameterised biases is exactly the number of total observed satellites and used receivers. This ensures again that our parameterisation method to fix the reference clock and one ambiguity of every satellite as well as one ambiguity of the reference satellite of every non-reference station is reasonable. The case of combination of d and h (as code and phase observations) will be discussed in the next section.

9.1.4 Correlation Analysis in the Case of Phase–Code Combinations

A phase–code combined observation equation can be written by (cf. Sect. 7.5.2)

$$ \left( \begin{aligned} V_{1} \hfill \\ V_{2} \hfill \\ \end{aligned} \right) = \left( \begin{aligned} L_{1} \hfill \\ L_{2} \hfill \\ \end{aligned} \right) - \left( {\begin{array}{*{20}c} {A_{11} } & {A_{12} } \\ {A_{11} } & 0 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right)\quad {\text{and}}\quad P = \left( {\begin{array}{*{20}c} {w_{\text{p}} P_{0} } & 0 \\ 0 & {w_{\text{c}} P_{0} } \\ \end{array} } \right), $$
(9.20)

where L 1 and L 2 are the observational vectors of phase (scaled in length) and code, respectively; V 1 and V 2 are related residual vectors; X 2 and X 1 are unknown vectors of ambiguity and others; A 12 and A 11 are related coefficient matrices; P 0 is a symmetric and definite weight matrix ; and w p and w c are weight factors of the phase and code observations.

The phase, code and phase–code normal equations can be formed respectively by

$$ \begin{aligned} \left( {\begin{array}{*{20}c} {N_{11} } & {N_{12} } \\ {N_{21} } & {N_{22} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right) & = \left( {\begin{array}{*{20}c} {R_{1} } \\ {R_{2} } \\ \end{array} } \right), \\ N_{11} X_{1} & = R_{\text{c}} ,\quad {\text{and}} \\ \left( {\begin{array}{*{20}c} {M_{11} } & {M_{12} } \\ {M_{21} } & {M_{22} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right) & = \left( {\begin{array}{*{20}c} {B_{1} } \\ {B_{2} } \\ \end{array} } \right), \\ \end{aligned} $$
(9.21)

where

$$ \begin{aligned} M_{11} & = (w_{\text{p}} + w_{\text{c}} )A_{11}^{\text{T}} P_{0} A_{11} = (w_{\text{p}} + w_{\text{c}} )N_{11} , \\ M_{12} & = M_{21}^{\text{T}} = w_{\text{p}} A_{11}^{\text{T}} P_{0} A_{12} = w_{\text{p}} N_{12} , \\ M_{22} & = w_{\text{p}} A_{12}^{\text{T}} P_{0} A_{12} = w_{\text{p}} N_{22} , \\ B_{1} & = A_{11}^{\text{T}} P_{0} (w_{\text{p}} L_{1} + w_{\text{c}} L_{2} ) = w_{\text{p}} R_{1} + w_{\text{c}} R_{\text{c}} ,\quad {\text{and}} \\ B_{2} & = w_{\text{p}} A_{12}^{\text{T}} P_{0} L_{1} = w_{\text{p}} R_{2} . \\ \end{aligned} $$
(9.22)

The covariance matrix Q is denoted

$$ Q = \left( {\begin{array}{*{20}c} {M_{11} } & {M_{12} } \\ {M_{21} } & {M_{22} } \\ \end{array} } \right)^{ - 1} = \left( {\begin{array}{*{20}c} {Q_{11} } & {Q_{12} } \\ {Q_{21} } & {Q_{22} } \\ \end{array} } \right), $$
(9.23)

where (Gotthardt 1978; Cui et al. 1982)

$$ \begin{aligned} Q_{11} & = (M_{11} - M_{12} M_{22}^{ - 1} M_{21} )^{ - 1} , \\ Q_{22} & = (M_{22} - M_{21} M_{11}^{ - 1} M_{12} )^{ - 1} , \\ Q_{12} & = M_{11}^{ - 1} ( - M_{12} Q_{22} )\quad {\text{and}} \\ Q_{21} & = M_{22}^{ - 1} ( - M_{21} Q_{11} ). \\ \end{aligned} $$
(9.24)

i.e.

$$ \begin{aligned} Q_{11} & = ((w_{\text{p}} + w_{\text{c}} )N_{11} - w_{\text{p}} N_{12} N_{22}^{ - 1} N_{21} )^{ - 1} , \\ Q_{22} & = (w_{\text{p}} N_{22} - w_{\text{p}}^{2} (w_{\text{p}} + w_{\text{c}} )^{ - 1} N_{21} N_{11}^{ - 1} N_{12} )^{ - 1} \quad {\text{and}} \\ Q_{21} & = - N_{22}^{ - 1} N_{21} ((w_{\text{p}} + w_{\text{c}} )N_{11} - w_{\text{p}} N_{12} N_{22}^{ - 1} N_{21} )^{ - 1} . \\ \end{aligned} $$
(9.25)

Thus the correlation coefficient C ij is a function of w p and w c, i.e.

$$ C_{ij} = f(w_{\text{p}} ,w_{\text{c}} ), $$
(9.26)

where indices i and j are the indices of unknown parameters in X 1 and X 2. For w c = 0 (only phase is used, X 1 and X 2 are partly linear correlated) and w c = w p (X 1 and X 2 are uncorrelated), there exists indices ij, so that

$$ C_{ij} = f(w_{\text{p}} ,w_{\text{c}} = 0) = 1\quad {\text{and}}\quad C_{ij} = f(w_{\text{p}} ,w_{\text{c}} = w_{\text{p}} ) = 0. $$
(9.27)

In other words, there exists indices i and j, the related unknowns are correlated if w c = 0 and uncorrelated if w c = w p. In the case of a phase–code combination , w c = 0.01w p can be selected, and one has

$$ C_{ij} = f(w_{\text{p}} ,w_{\text{c}} = 0.01w_{\text{p}} ) $$
(9.28)

whose value is very close to 1 (strongly correlated) in the discussed case. Equations 9.26, 9.27, and 9.28 indicate that for the correlated unknown pair ij the correlation situation may not change much by combining the code to the phase because of the lower weight of the code related to the phase. A numerical test confirmed this conclusion (Xu 2004).

9.1.5 Conclusions and Comments

In this section, the singularity problem of the undifferenced GPS data processing is pointed out and an independent parameterisation method is proposed for bias parameters of the GPS observation model. The method is implemented into software, and the results confirm the correctness of the theory and algorithm. Conclusions can be summarised by the following:

  1. 1.

    Bias parameterisation of undifferenced GPS phase observations with all clock errors except the reference one, and all undifferenced ambiguities are linearly correlated. The linear equation system of undifferenced GPS is then singular and cannot be solved theoretically.

  2. 2.

    A linear independent bias parameterisation can be reached by fixing the reference clock of the reference station, fixing one of the ambiguities of every satellite of arbitrary station (called reference station of every satellite), and fixing the ambiguities of the reference satellite of every non-reference station . The selections of the references are arbitrary; however, the selections are not allowed to be duplicated.

  3. 3.

    The linear independent ambiguity parameter set is equivalent to the parameter set of double-differencing ambiguities, and they can be transformed from one to another uniquely if the same data is used.

  4. 4.

    The physical meanings of the bias parameters are varied depending on the way of parameterisation. Because of the inseparable property of the bias parameters, the synchronisation applications of GPS may not be realised using the carrier-phase observations.

  5. 5.

    The phase–code combination does not change the correlation relation between the correlated biases significantly.

It is noteworthy to comment on the use of the undifferenced algorithm:

  1. 1.

    In the undifferenced algorithm , the observation equation is rank defect if the over-parameterisation problem has not been taken into account. The numerical inexactness introduced by eliminating the clock error parameters and the use of a priori information of some other parameters are the reason why the singular problem is solvable in practice thus far.

  2. 2.

    Using the undifferenced and differencing methods, solutions of the common parameters must be the same if the undifferenced GPS data modelling is really an equivalent one and not over-parameterised.

  3. 3.

    A singular undifferenced parameterisation may become regular by introducing conditions or by fixing some of the parameters through introducing a priori information.

9.2 Equivalence of the GPS Data Processing Algorithms

The equivalence theorem , an optimal method for forming an independent baseline network, and a data condition , as well as the equivalent algorithms using secondary observables are discussed in this section (cf. Xu et al. 2006c).

9.2.1 Equivalence Theorem of GPS Data Processing Algorithms

In Sect. 6.7, the equivalence properties of uncombined and combining algorithms of GPS data processing are given. Whether uncombined or combining algorithms are used, the results obtained are identical and the precisions of the solutions are identical, too. It is notable that the parameterisation is very important. The solutions depend on the parameterisation. For convenience, the original GPS observation equation and the solution are listed as (cf. Sect. 6.7)

$$ \left( {\begin{array}{*{20}c} {R_{1} } \\ {R_{2} } \\ {\lambda_{1} {\varPhi }_{1} } \\ {\lambda_{2} {\varPhi }_{2} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} 0 & 0 & {f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 0 & {f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ 1 & 0 & { - f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 1 & { - f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} } \\ {\lambda_{2} N_{2} } \\ {B_{1} } \\ {C_{\rho } } \\ \end{array} } \right),\quad P = \left( {\begin{array}{*{20}c} {\sigma_{\text{c}}^{2} } & 0 & 0 & 0 \\ 0 & {\sigma_{\text{c}}^{2} } & 0 & 0 \\ 0 & 0 & {\sigma_{\text{p}}^{2} } & 0 \\ 0 & 0 & 0 & {\sigma_{\text{p}}^{2} } \\ \end{array} } \right)^{ - 1} , $$
(9.29)

and

$$ \left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} } \\ {\lambda_{2} N_{2} } \\ {B_{1} } \\ {C_{\rho } } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {1 - 2a} & { - 2b} & 1 & 0 \\ { - 2a} & {2a - 1} & 0 & 1 \\ {1/q} & { - 1/q} & 0 & 0 \\ a & b & 0 & 0 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {R_{1} } \\ {R_{2} } \\ {\lambda_{1} \varPhi_{1} } \\ {\lambda_{2} \varPhi_{2} } \\ \end{array} } \right) $$
(9.30)

where the meanings of the symbols are the same as that of Eqs. 6.134 and 6.138.

In Sect. 6.8, the equivalence properties of undifferenced and differencing algorithms of GPS data processing are given. Whether undifferenced or differencing algorithms are used, the results obtained are identical and the precisions of the solutions are equivalent. It is notable that the equivalence here is slightly different from the equivalence in combining algorithms. To distinguish them, we call the equivalence in the differencing case a soft equivalence. The soft equivalence is valid under three so-called conditions. The first is a data condition , which guarantees that the data used in undifferenced or differencing algorithms are the same. The data condition will be discussed in the next section. The second is a parameterisation condition, i.e. the parameterisation must be the same. The third is the elimination condition, i.e. the parameter set to be eliminated should be able to be eliminated. (Implicitly, the parameter set of the problem should be a regular one). Because of the process of elimination, the cofactor matrices of the undifferenced and differencing equations are different. If the cofactor of an undifferenced normal equation has the form of

$$ \left( {\begin{array}{*{20}c} {M_{11} } & {M_{12} } \\ {M_{21} } & {M_{22} } \\ \end{array} } \right)^{ - 1} = Q = \left( {\begin{array}{*{20}c} {Q_{11} } & {Q_{12} } \\ {Q_{21} } & {Q_{22} } \\ \end{array} } \right), $$
(9.31)

then we call the diagonal part of the cofactor

$$ Q_{\text{e}} = \left( {\begin{array}{*{20}c} {M_{1} } & 0 \\ 0 & {M_{2} } \\ \end{array} } \right)^{ - 1} = \left( {\begin{array}{*{20}c} {Q_{11} } & 0 \\ 0 & {Q_{22} } \\ \end{array} } \right) $$
(9.32)

an equivalent cofactor. The equivalent cofactor has the same diagonal element blocks as the original cofactor matrix Q and guarantees that the precision relation between the unknowns remains the same. The soft equivalence is defined as follows: the solutions are identical and the covariance matrices are equivalent. This definition is implicitly used in the traditional block-wise least squares adjustment . It is notable that the parameterisation is very important and the rank of the normal equation of the undifferenced observation equation must be equal to the rank of the normal equation of the differencing observation equation plus the number of the eliminated independent parameters. For convenience, the original GPS observation equation and the equivalent differencing equation can be generally written as (cf. Eqs. 9.1 and 9.4)

$$ V = L - \left( {\begin{array}{*{20}c} {A_{1} } & {A_{2} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right), \quad P $$
(9.33)
$$ \left( {\begin{array}{*{20}c} {U_{1} } \\ {U_{2} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} L \\ L \\ \end{array} } \right) - \left( {\begin{array}{*{20}c} {D_{1} } & 0 \\ 0 & {D_{2} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ \end{array} } \right), \quad \left( {\begin{array}{*{20}c} P & 0 \\ 0 & P \\ \end{array} } \right). $$
(9.34)

In Sect. 9.1 the way to parameterise the GPS observables independently is proposed. A correct and reasonable parameterisation is the key to a correct conclusion by combining and differencing derivations. An example is given in Sect. 6.7 where an illogical conclusion is derived due to the inexact parameterisation.

For any GPS survey with a definitive space-time configuration, observed GPS data can be parameterised (or modelled) in a suitable way and listed together in a form of linear equations for processing. Combining and differencing are two linear transformations. Because the uncombined and combining data (or equations) are equivalent, differencing the uncombined or combining equations is (soft) equivalent. Inversely, the combining operator is an invertible transformation; making or not making the combination operation on the equivalent undifferenced or differencing equations (Eqs. 9.33 and 9.34) is equivalent. That is, the mixtures of the combining and differencing algorithms are also equivalent to the original undifferenced and uncombined algorithms. The equivalence properties can be summarised in a theorem as follows.

  • Equivalence Theorem of GPS Data Processing Algorithms

Under the three so-called equivalence conditions and the definition of the so-called soft equivalence, for any GPS survey with definitive space-time configuration, GPS data processing algorithms—uncombined and combining algorithms, undifferenced and differencing algorithms, as well as their mixtures—are at least soft equivalent. That is, the results obtained by using any algorithm or any mixture of the algorithms are identical. The diagonal elements of the covariance matrix are identical. The ratios of the precisions of the solutions are identical. None of the algorithms are preferred in view of the results and precisions. Suitable algorithms or mixtures of the algorithms will be specifically advantageous for special kinds of data dealings.

The implicit condition of this theorem is that the parameterisation must be the same and regular. The parameterisation depends on different configurations of the GPS surveys and strategies of the GPS data processing. The theorem says that if the data used are the same and the model is parameterised identically and regularly, then the results must be identical and the precision should be equivalent. This is a guiding principle for the GPS data processing practice.

9.2.2 Optimal Baseline Network Forming and Data Condition

It is well known that for a network with n stations there are n − 1 independent baselines . An independent baseline network can be stated in words: all stations are connected through these baselines, and the shortest way from one station to any other stations is unique. Generally speaking, a shorter baseline leads to a better common view of the satellites. Therefore, the baseline should be formed so that the length of the baseline falls as short as possible. For a network, an optimal choice should be that the summation of weighted lengths of all independent baselines should be minimal. This is a specific mathematic problem called a minimum spanning tree (cf., e.g., Wang et al. 1979).

Algorithms exist to solve this minimum spanning tree problem with software. Therefore, we will just show an example here. An IGS network with ca. 100 stations and the related optimal and independent baseline tree is shown in Fig. 9.1. The average length of the baselines is ca. 1300 km. The maximum distance is ca. 3700 km.

Fig. 9.1
figure 1

Independent and optimal IGS GPS baseline network (100 stations)

In the traditional double-differencing model, the unpaired GPS observations of every designed baseline have to be omitted because of the requirement of differencing (in the example of Sect. 1.2, two observations of k6 will be omitted. However, if the differencing is not limited by baseline design, no observations have to be cancelled out). Therefore, an optimal means of double differencing should be based on an optimal baseline design to form the differencing first, then, without limitation of the baseline design, to check for the unpaired observations in order to form possible differencing. This measure is useful for raising the rate of data used by the differencing method. An example of an IGS network with 47 stations and a 1-day observations has shown (Xu 2004) that 87.9 % of all data is used in difference forming based on the optimal baseline design, whereas 99.1 % of all data is used in the extended method of difference forming without limitation of the baseline design. That is, the original data may be nearly 100 % used for such a means of double differencing.

In the undifferenced model, in order to be able to eliminate the clock error parameters, it is sufficient that every satellite is observed at least at two stations (for eliminating the satellite clock errors) and at every station there is a satellite combined with one of the other satellites that are commonly viewed by at least one of the other stations (for eliminating the receiver clock errors). The condition ensures that extended double differencing can be formed from the data. The data has to be cancelled out if the condition is not fulfilled or the ambiguities including in the related data have to be kept fixed.

For convenience, we state the data condition as follows.

  • Data Condition : All satellites must be observed at least twice (for forming single differences) and one satellite combined with one of the other satellites should be commonly viewed by at least one of the other stations (for forming double differences).

It is notable that the data condition above is valid for single and double differencing. For triple differencing and user defined differencing the data condition may be similarly defined. The data condition is one of the conditions of the equivalence of the undifferenced and differencing algorithms. The data condition is derived from the difference forming ; however, it is suggested to use it also in undifferenced methods to reduce the singular data. The optimal baseline network forming is beneficial for differencing methods to raise the rate of used data.

9.2.3 Algorithms Using Secondary GPS Observables

As stated in Sects. 6.7 and 9.2, the uncombined and combining algorithms are equivalent. A method of GPS data processing using secondary data is outlined in Sect. 6.7.3. However, a concrete parameterisation of the observation model is only possible after the method of independent parameterisation is discussed in Sect. 9.1. The data processing using secondary observables leads to equivalent results of any combining algorithms. Therefore, the concrete parameterisation of the GPS observation model has to be specifically discussed again. The observation model of m satellites viewed at one station is (cf. Eqs. 6.134 and 9.5)

$$ \left( {\begin{array}{*{20}c} {R_{1} (k)} \\ {R_{2} (k)} \\ {\lambda_{1} \varPhi_{1} (k)} \\ {\lambda_{2} \varPhi_{2} (k)} \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} 0 & 0 & {f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 0 & {f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ 1 & 0 & { - f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 1 & { - f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} (k)} \\ {\lambda_{2} N_{2} (k)} \\ {B_{1} (k)} \\ {C_{\rho } (k)} \\ \end{array} } \right),\quad k = 1, \ldots m, $$
(9.35)

where the relation

$$ B_{1}^{z} = \frac{1}{m}\sum\limits_{k = 1}^{m} {B_{1} (k)} /F_{k} $$
(9.36)

can be used to map the ionospheric parameters in the path directions to the parameter in the zenith direction. The meanings of the symbols are the same as stated in Sect. 6.7. Solutions of Eq. 9.35 are (similar to Eq. 9.6)

$$ \left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} (k)} \\ {\lambda_{2} N_{2} (k)} \\ {B_{1} (k)} \\ {C_{\rho } (k)} \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {1 - 2a} & { - 2b} & 1 & 0 \\ { - 2a} & {2a - 1} & 0 & 1 \\ {1/q} & { - 1/q} & 0 & 0 \\ a & b & 0 & 0 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {R_{1} (k)} \\ {R_{2} (k)} \\ {\lambda_{1} \varPhi_{1} (k)} \\ {\lambda_{2} \varPhi_{2} (k)} \\ \end{array} } \right), \quad Q(k),\; k = 1, \ldots ,m, $$
(9.37)

where the covariance matrix Q(k) can be obtained by variance-covariance propagation law. The vector on the left side of Eq. 9.37 is called the secondary observation vector. In the case where K satellites are viewed, the traditional combinations of the observation model and the related secondary solutions are the same as the Eqs. 9.35 and 9.37, where the m = K. However, taking the parameterisation method into account, at least one satellite has to be selected as reference and the related ambiguities cannot be modelled. If one were to suppose that the satellite of index K is the reference, then the first m = K − 1 observation equations are the same as Eq. 9.35. The satellite K related observation equations can be written as

$$ \left( {\begin{array}{*{20}c} {R_{1} (k)} \\ {R_{2} (k)} \\ {\lambda_{1} \varPhi_{1} (k)} \\ {\lambda_{2} \varPhi_{2} (k)} \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} 0 & 0 & {f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 0 & {f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ 0 & 0 & { - f_{\text{s}}^{2} /f_{1}^{2} } & 1 \\ 0 & 0 & { - f_{\text{s}}^{2} /f_{2}^{2} } & 1 \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} (k)} \\ {\lambda_{2} N_{2} (k)} \\ {B_{1} (k)} \\ {C_{\rho } (k)} \\ \end{array} } \right), \quad k = K, $$
(9.38)

where the ambiguities are not modelled and the constant effects will be absorbed by the clock parameters. Solutions of Eq. 9.38 are

$$ \left( {\begin{array}{*{20}c} {\lambda_{1} N_{1} (k)} \\ {\lambda_{2} N_{2} (k)} \\ {B_{1} (k)} \\ {C_{\rho } (k)} \\ \end{array} } \right) = \frac{1}{2}\left( {\begin{array}{*{20}c} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ {1/q} & { - 1/q} & { - 1/q} & {1/q} \\ {1/2} & {1/2} & {1/2} & {1/2} \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {R_{1} (k)} \\ {R_{2} (k)} \\ {\lambda_{1} \varPhi_{1} (k)} \\ {\lambda_{2} \varPhi_{2} (k)} \\ \end{array} } \right), \quad Q(K). $$
(9.39)

It is notable that the solutions of the traditional combinations are Eq. 9.37 with m = K, whereas for the combinations with independent bias parameterisation, the solutions are the combinations of the Eq. 9.37 with m = K − 1 and Eq. 9.39. It is obvious that the two solutions are different. Because the traditional observation model used is inexact, the solutions of the traditional combinations are also inexact. The bias effects (of ambiguities) that are not modelled are merged into the clock bias parameters. Because the bias effects cannot be absorbed into the non-bias parameters, only the clock error parameters will be different in the results and the clock errors will have the different meanings. Further, the ionosphere-free and geometry-free combinations are correct under the independent parameterisation .

It shows that through exact parameterisation, the combinations are no longer independent from satellite to satellite. For surveys with multiple stations, through correct parameterisation the combinations will no longer be independent from station to station. Therefore, traditional combinations will lead to incorrect results because of the inexact parameterisation.

The so-called secondary observables on the left-hand side of Eqs. 9.37 and 9.39 can be further processed. The original observables can be uniquely transformed to secondary observables. The secondary observables are equivalent and direct measurements of the ambiguities and ionosphere as well as geometry. Any further GPS data processing can be based on the secondary observables (cf. Sect. 6.7).

9.2.4 Simplified Equivalent Representation of GPS Observation Equations

The GPS observation models, the data differentiation (single, double, and triple differences ) and the equivalent property between un-differenced and differencing algorithms were discussed in Chap. 6. According to the theorem of equivalent property, Shen and Xu (2008) developed the simplified equations which equivalently represent the single and double-differenced observation equations using corresponding pseudo-observations in single or multi-baseline solutions. However, this study was based on the assumption of all stations tracking the same satellites with identical weights, thus the simplified equations were expanded in the case of each station tracking different satellites with elevation-dependent weights (Shen et al. 2009). The derived simplified equivalent algorithm was shown to be very convenient for programming and efficient in computation, which would potentially aid the development of efficient GNSS software and benefit the local, regional and even global GNSS multi-baseline solutions. The specific algorithm is emphatically introduced in this section.

  • Single-Differenced Simplified Equivalent Observation Equations

The GNSS observation equations for one epoch can be symbolically expressed as

$$ \varepsilon = Ax + By + Cz - l, \quad P, $$
(9.40)

where y and z are the vectors of station and satellite biases, B and C denote the respective coefficient matrices with full column rank; x is a column vector with t parameters, A is its coefficient matrix also with full column rank; l and \( \varepsilon \) are the column vectors of observables and normally distributed observation errors; P is the weight matrix of observations. Here elevation-dependent weights are used and different stations can track the different satellites, but the correlations among the observables (temporal, cross, and channel) are not considered. Thus, the weight matrix P is diagonal with varying elements. Refer to Leick (2004) for the detailed interpretation of these parameters. If there are total of k stations and each station only tracks the subset of the total n satellites, then y = (y 1 y 2y k )T and z = (z 1 z 2z n )T. The coefficient matrices, vector of observables and weight matrix are grouped with the following sub-blocks in the order of satellites as

$$ \begin{aligned} A & = \left( {\begin{array}{*{20}c} {A^{1} } \\ {A^{2} } \\ \vdots \\ {A^{n} } \\ \end{array} } \right),B = \left( {\begin{array}{*{20}c} {B^{1} } \\ {B^{2} } \\ \vdots \\ {B^{n} } \\ \end{array} } \right),C = \left( {\begin{array}{*{20}c} {e_{{k_{1} }} } & {} & {} & {} \\ {} & {e_{{k_{2} }} } & {} & {} \\ {} & \cdots & \vdots & {} \\ {} & {} & {} & {e_{{k_{n} }} } \\ \end{array} } \right), \\ {\kern 1pt} l & = \left( {\begin{array}{*{20}c} {l^{1} } \\ {l^{2} } \\ \vdots \\ {l^{n} } \\ \end{array} } \right),P = \left( {\begin{array}{*{20}c} {P^{1} } & {} & {} & {} \\ {} & {P^{2} } & {} & {} \\ {} & {} & \ddots & {} \\ {} & {} & {} & {P^{n} } \\ \end{array} } \right) \\ \end{aligned} $$
(9.41)

where

$$ A^{j} = \left( {\begin{array}{*{20}c} {a_{{S^{j} (1)}}^{j} } \\ {a_{{S^{j} (2)}}^{j} } \\ \vdots \\ {a_{{S^{j} (k_{j} )}}^{j} } \\ \end{array} } \right),l^{j} = \left( {\begin{array}{*{20}c} {l_{{S^{j} (1)}}^{j} } \\ {l_{{S^{j} (2)}}^{j} } \\ \vdots \\ {l_{{S^{j} (k_{j} )}}^{j} } \\ \end{array} } \right),{\kern 1pt} P = \left( {\begin{array}{*{20}c} {P_{{S^{j} (1)}}^{j} } & {} & {} & {} \\ {} & {P_{{S^{j} (2)}}^{j} } & {} & {} \\ {} & {} & \ddots & {} \\ {} & {} & {} & {P_{{S^{j} (k_{j} )}}^{j} } \\ \end{array} } \right). $$

The symbols \( a_{{S^{j} (i)}}^{j} \) and \( l_{{S^{j} (i)}}^{j} \) denote respectively the coefficient row vector and observable of the satellite j tracked by the station \( S^{j} (i) \), \( P_{{S^{j} (i)}}^{j} \) is its weight. The symbol \( S^{j} \) represents the set of all stations that simultaneously track the satellite j and \( S^{j} (i) \) is the order of the ith station in the total set. The letter \( k_{j} \) denotes the number of stations that track the satellite j, \( e_{{k_{j} }} = \left( {\begin{array}{*{20}c} 1 & 1 & \cdots & 1 \\ \end{array} } \right)^{\text{T}} \) is a \( k_{j} \) vector. The coefficient for the jth satellite is a \( k_{j} \times k \) matrix \( B^{j} \) consisting of \( k_{j} \) canonical row vectors, in each canonical row vector all elements are zeros expect the element associated with the tracking receiver is one. For example, if there are five stations and the 2nd station does not track the 3rd satellite, then the matrix \( B^{3} \) is

$$ B^{3} = \left( {\begin{array}{*{20}c} 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ \end{array} } \right). $$

The satellite-specific parameter vector z can be eliminated by single differencing in the station domain or by right-multiplying the original observation equations with the transformation matrix R. The transformation matrix is (Teunissen 1997a, b; Shen and Xu 2008)

$$ R = I_{\sum k} - C\left( {C^{\text{T}} PC} \right)^{ - 1} C^{\text{T}} P = \left( {\begin{array}{*{20}c} {R_{{k_{1} }} } & {} & {} & {} \\ {} & {R_{{k_{2} }} } & {} & {} \\ {} & {} & \ddots & {} \\ {} & {} & {} & {R_{{k_{n} }} } \\ \end{array} } \right), $$
(9.42)

where the dimension of identity matrix \( I_{\sum k} \) is \( \sum k = \sum_{j = 1}^{n} k_{j} \), and

$$ R_{{k_{j} }} = I_{{k_{j} }} - \frac{1}{{\sum\nolimits_{{i \in S^{j} }} {p_{i}^{j} } }}e_{{k_{j} }} e_{{k_{j} }}^{\text{T}} P^{j} = I_{{k_{j} }} - \frac{1}{{p^{\sum j} }}P^{j} \otimes e_{{k_{j} }}^{\text{T}} , $$
(9.43)

where \( p^{\sum j} = \sum\nolimits_{{i \in S^{j} }} {p_{i}^{j} } \) being the sum of weights of observables for all stations that tack the jth satellites.

Multiplying Eq. 9.40 with matrix R, we obtain the equivalently transformed observation equations

$$ \tilde{\varepsilon } = \tilde{A}x + \tilde{B}y - \tilde{l}, \quad P, $$
(9.44)

where \( \tilde{A} = RA \), \( \tilde{B} = RB \), \( \tilde{l} = Rl \), and \( \tilde{\varepsilon } = R\varepsilon \). As shown in Eq. 9.42, the matrix R is diagonal with sub-matrix \( R_{{k_{j} }} \). Therefore, Eq. 9.44 can be further simplified as

$$ \tilde{\varepsilon }^{j} = \tilde{A}^{j} x + \tilde{B}^{j} y - \tilde{l}^{j} , \quad P^{j}, \; j = 1,2, \ldots ,n, $$
(9.45)

with

$$ \tilde{A}^{j} = R_{{k_{j} }} A^{j} , \quad \tilde{B}^{j} = R_{{k_{j} }} B^{j} , \quad \tilde{l}^{j} = R_{{k_{j} }} l^{j} , $$
(9.46)

It is obvious that \( R_{{k_{j} }} \) has a rank defect of one. This means that one station-specific parameter can be linearly represented with the others, i.e. only k − 1 station-specific parameters can be independently parameterised.

In the single-differenced equivalent observation equations, the independent parameterised station-specific parameters are generally merged into x, and Eq. 9.45 becomes

$$ \tilde{\varepsilon }^{j} = \tilde{A}^{j} x - \tilde{l}^{j} , \quad P^{j} ,\; j = 1,2, \ldots ,n , $$
(9.47)

where the transformed coefficient matrix and observation vector can also be further simplified as

$$ \tilde{A}^{j} = R_{{k_{j} }} A^{j} = A^{j} - \frac{1}{{p^{\sum j} }}e_{{k_{j} }} e_{{k_{j} }}^{\text{T}} P^{j} A^{j} = A^{j} - \delta A^{j} , $$
(9.48)
$$ \tilde{l}^{j} = R_{{k_{j} }} l^{j} = l^{j} - \frac{1}{{p^{\sum j} }}e_{{k_{j} }} e_{{k_{j} }}^{\text{T}} P^{j} l^{j} = l^{j} - \delta l^{j} , $$
(9.49)

with

$$ \delta A^{j} = \frac{1}{{p^{\sum j} }}e_{{k_{j} }} e_{{k_{j} }}^{\text{T}} P^{j} A^{j} = \frac{1}{{p^{\sum j} }}e_{{k_{j} }} \sum\limits_{{i \in S^{j} }} {(p_{i}^{j} a_{i}^{j} )} = \frac{1}{{p^{\sum j} }}e_{{k_{j} }} [a^{j} ], $$
(9.50)
$$ \delta l^{j} = \frac{1}{{p^{\sum j} }}e_{{k_{j} }} e_{{k_{j} }}^{\text{T}} P^{j} l^{j} = \frac{1}{{p^{\sum j} }}e_{{k_{j} }} \sum\limits_{{i \in S^{j} }} {(p_{i}^{j} l_{i}^{j} )} = \frac{1}{{p^{\sum j} }}e_{{k_{j} }} [l^{j} ], $$
(9.51)

where \( [a^{j} ] = \sum\nolimits_{{i \in S^{j} }} {(p_{i}^{j} a_{i}^{j} )} \) and \( [l^{j} ] = \sum\nolimits_{{i \in S^{j} }} {(p_{i}^{j} l_{i}^{j} )} \). Each element of the column vector \( \delta l^{j} \) and each column vector of \( \delta A^{j} \) are the weighted means of their corresponding column vectors. Therefore, the transformed vector \( \tilde{l}^{j} \) is the centrobaric vector of \( l^{j} \), and the transformed matrix \( \tilde{A}^{j} \) is the column centrobaric matrix of \( A^{j} \). In other words, the equivalent observation Eq. 9.47 can also be simply obtained through the centrobaric operation to the column vectors of \( A^{j} \) and \( l^{j} \).

In addition, the Eq. 9.47 can alternatively be expanded in the same way as described by Shen and Xu (2008) in the form of pseudo-observations,

$$ \tilde{\varepsilon }^{j} = A^{j} x - l^{j} , \quad P^{j} ,\; j = 1,2, \ldots ,n, $$
(9.52)
$$ [\varepsilon^{j} ] = [a^{j} ]x - [l^{j} ],{\kern 1pt} - 1/p^{\sum j} ,\quad j = 1,2, \ldots ,n, $$
(9.53)

where \( [\tilde{\varepsilon }^{j} ] \) denotes the residual of the jth sum pseudo-observation. The same normal equations can be obtained by the equivalent observation Eqs. 9.47, 9.52, and 9.53. Once the unknown parameter vector \( \hat{x} \) is solved, the residual vector is computed by

$$ v^{j} = \tilde{A}^{j} \hat{x} - \tilde{l}^{j} , \quad P^{j} ,\; j = 1,2, \ldots ,n, $$
(9.54)
  • Double-Differenced Simplified Equivalent Observation Equations

If there are more than two stations and each station tracks a subset of the total n satellites, the double-differenced equivalent observation equations for multi-baseline solutions will be much more complicated than single-differenced ones. In order to derive the simplified double-differenced equivalent observation equations, we rearrange Eq. 9.44 with the sub-blocks in the order of receivers and use the same symbols as used in Eq. 9.44 to represent the rearranged single-differenced observation equations as

$$ \tilde{\varepsilon } = \tilde{A}x + \tilde{B}y - \tilde{l}, \quad P, $$
(9.55)

where

$$ \tilde{A} = \left( {\begin{array}{*{20}c} {\tilde{A}_{1} } \\ {\tilde{A}_{2} } \\ \vdots \\ {\tilde{A}_{k} } \\ \end{array} } \right), \quad \tilde{A}_{i} = \left( {\begin{array}{*{20}c} {\tilde{a}_{i}^{{S_{i} (1)}} } \\ {\tilde{a}_{i}^{{S_{i} (2)}} } \\ \vdots \\ {\tilde{a}_{i}^{{S_{i} (n_{i} )}} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {a_{i}^{{S_{i} (1)}} - [a^{{S_{i} (1)}} ]/p^{{\sum S_{i} (1)}} } \\ {a_{i}^{{S_{i} (2)}} - [a^{{S_{i} (2)}} ]/p^{{\sum S_{i} (2)}} } \\ \vdots \\ {a_{i}^{{S_{i} (n_{i} )}} - [a^{{S_{i} (n_{i} )}} ]/p^{{\sum S_{i} (n_{i} )}} } \\ \end{array} } \right). $$

n i is the number of satellites tracked by the station i and S i denotes a set comprising these n i satellites. S i (l) is the order of the lth satellite in the total set, that

$$ \begin{aligned} & \tilde{l} = \left( {\begin{array}{*{20}c} {\tilde{l}_{1} } \\ {\tilde{l}_{2} } \\ \vdots \\ {\tilde{l}_{k} } \\ \end{array} } \right),\tilde{l}_{i} = \left( {\begin{array}{*{20}c} {\tilde{l}_{i}^{{S_{i} (1)}} } \\ {\tilde{l}_{i}^{{S_{i} (2)}} } \\ \vdots \\ {\tilde{l}_{i}^{{S_{i} (n_{i} )}} } \\ \end{array} } \right), \hfill \\ & P = \left( {\begin{array}{*{20}c} {P_{1} } & {} & {} & {} \\ {} & {P_{2} } & {} & {} \\ {} & {} & \ddots & {} \\ {} & {} & {} & {P_{k} } \\ \end{array} } \right),P_{i} = \left( {\begin{array}{*{20}c} {p_{i}^{{S_{i} (1)}} } & {} & {} & {} \\ {} & {p_{i}^{{S_{i} (2)}} } & {} & {} \\ {} & {} & \ddots & {} \\ {} & {} & {} & {p_{i}^{{S_{i} (n_{i} )}} } \\ \end{array} } \right) \hfill \\ \end{aligned} $$

and \( \tilde{B} = \left( {\begin{array}{*{20}c} {\tilde{b}_{2} } & {\tilde{b}_{3} } & \ldots & {\tilde{b}_{k} } \\ \end{array} } \right) \). The first element in y is fixed to zero to achieve independent parameterisation. According to Eqs. 9.45 and 9.46, we can determine the rearranged column vector \( \tilde{b}_{i} \) as

$$ \tilde{b}_{i} = \left( {\begin{array}{*{20}c} { - (Q_{1} G_{i} \alpha_{i} )^{\text{T}} } & \ldots & { - (Q_{i - 1} G_{i} \alpha_{i} )^{\text{T}} } & {(Q_{1} (e_{n} - \alpha_{i} ))^{\text{T}} } & { - (Q_{i + 1} G_{i} \alpha_{i} )^{\text{T}} } & \cdots & { - (Q_{k} G_{i} \alpha_{i} )^{\text{T}} } \\ \end{array} } \right)^{\text{T}} $$
(9.56)

where \( \alpha_{i} = \left( {\begin{array}{*{20}c} {\frac{{p_{i}^{1} }}{{p^{\sum 1} }}} & {\frac{{p_{i}^{2} }}{{p^{\sum 2} }}} & \cdots & {\frac{{p_{i}^{n} }}{{p^{\sum n} }}} \\ \end{array} } \right)^{\text{T}} \), G i is a \( n \times n \) diagonal matrix and its diagonal element is equal to either one (corresponding to tracked satellite) or zero (corresponding to non-tracked satellite). The \( n_{i} \) non-zero row vectors of \( G_{i} \) construct the \( n_{i} \times n \) matrix \( Q_{i} \). If there are six satellites and the 3rd station does not track the 2nd and 5th satellites, the matrices \( G_{3} \) and \( Q_{3} \) are expressed as

$$ G_{3} = \left( {\begin{array}{*{20}c} 1 & {} & {} & {} & {} & {} \\ {} & 0 & {} & {} & {} & {} \\ {} & {} & 1 & {} & {} & {} \\ {} & {} & {} & 1 & {} & {} \\ {} & {} & {} & {} & 0 & {} \\ {} & {} & {} & {} & {} & 1 \\ \end{array} } \right), \quad Q_{3} = \left( {\begin{array}{*{20}c} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 \\ \end{array} } \right), $$
(9.57)
$$ G_{i} = Q_{i}^{\text{T}} Q_{i} , \quad Q_{i} G_{i} = Q_{i} , \quad G_{i} = G_{i}^{\text{T}} , \quad G_{i} G_{i} = G_{i} , $$
(9.58)

In order to determine the transformation matrix \( \tilde{R} \) for eliminating station-specific parameters, the following matrix is computed

$$ \tilde{B}^{\text{T}} P\tilde{B} = \left( {\begin{array}{*{20}c} {\tilde{b}_{2}^{\text{T}} P\tilde{b}_{2} } & {\tilde{b}_{2}^{\text{T}} P\tilde{b}_{3} } & \cdots & {\tilde{b}_{2}^{\text{T}} P\tilde{b}_{k} } \\ {\tilde{b}_{2}^{\text{T}} P\tilde{b}_{2} } & {\tilde{b}_{3}^{\text{T}} P\tilde{b}_{3} } & \cdots & {\tilde{b}_{3}^{\text{T}} P\tilde{b}_{k} } \\ \vdots & \vdots & \ddots & \vdots \\ {\tilde{b}_{k}^{\text{T}} P\tilde{b}_{2} } & {\tilde{b}_{k}^{\text{T}} P\tilde{b}_{3} } & \cdots & {\tilde{b}_{k}^{\text{T}} P\tilde{b}_{k} } \\ \end{array} } \right), $$
(9.59)

According to Eqs. 9.56 and 9.58, the expressions for the submatrices of \( \tilde{B}^{\text{T}} P\tilde{B} \) are

$$ \tilde{b}_{i}^{\text{T}} P\tilde{b}_{i} = p^{\sum i} - \sum\limits_{{l \in S_{i} }} {\frac{{p_{i}^{l} p_{i}^{l} }}{{p^{\sum l} }}} , $$
(9.60)
$$ \tilde{b}_{i}^{\text{T}} P\tilde{b}_{j} = - \sum\limits_{{l \in S_{ij} }} {\frac{{p_{i}^{l} p_{j}^{l} }}{{p^{\sum l} }}} , $$
(9.61)

where \( p^{\sum i} = \sum\nolimits_{{j \in S_{i} }} {p_{i}^{j} } \) is the sum of weights of observables for all satellites tracked by the ith station. \( S_{ij} \) is an intersection set of \( S_{i} \) and \( S_{j} \), denoted by \( S_{ij} = S_{i} \cap S_{j} \) and refers to the set of satellites that are simultaneously tracked by both station i and station j. The matrix \( \tilde{B}^{\text{T}} P\tilde{B} \) can be efficiently computed by Eqs. 9.60 and 9.61, but its inverse is rather complicated and not symbolically expressible. Therefore, the transformation matrix is numerically computed by

$$ \tilde{R} = I_{\sum k} - \tilde{B}(\tilde{B}^{\text{T}} P\tilde{B})^{ - 1} \tilde{B}^{\text{T}} P = I_{\sum k} - \tilde{J}, $$
(9.62)

Analogously, multiplying the transformation matrix \( \tilde{R} \) by Eq. 9.55, the double-differenced equivalent equations are obtained as

$$ \bar{\bar{\varepsilon }} = \bar{\bar{A}}x - \bar{\bar{l}}, \quad P, $$
(9.63)

with

$$ \bar{\bar{A}} = \tilde{R}\tilde{A} = \tilde{A} - \tilde{J}\tilde{A}, $$
(9.64)
$$ \bar{\bar{l}} = \tilde{R}\tilde{l} = \tilde{l} - \tilde{J}\tilde{l}, $$
(9.65)

where the arrays \( \tilde{A} \) and \( \tilde{l} \) consist of all sub-matrices \( \tilde{A}^{j} \) and sub-vectors \( \tilde{l}^{j} \), respectively, and can be very efficiently computed by centrobaric operation to their column vectors. The \( (k - 1) \times (k - 1) \) square matrix \( \tilde{B}^{\text{T}} P\tilde{B} \) and its inverse are needed to determine the transformation matrix \( \tilde{R} \). The matrix \( \tilde{B}^{\text{T}} P\tilde{B} \) can be efficiently implemented by Eqs. 9.60 and 9.61, its inverse matrix can be trivially computed, which is certainly more efficient than computing the weight matrix of double-differenced observables for multi-baseline solutions. Once the least squares solution to parameter vector \( \hat{x} \) is obtained, the residuals can be exactly computed by

$$ v = \bar{\bar{A}}\hat{x} - \bar{\bar{l}}, $$
(9.66)

The simplified equivalent algorithm and its efficiency for computation have been verified by numerical examples; the details can be referred to Shen et al. (2009).

9.3 Non-equivalent Algorithms

As stated in the equivalence theorem of GPS algorithms , the equivalence properties are valid for GPS surveys with definitive space-time configuration. As long as the measures are the same and the parameterisation is identical and regular, the GPS data processing algorithms are equivalent. It is notable that if the surveys and the parameterisation are different, then the algorithms are not equivalent to each other. For example, algorithms of single point positioning and multi-points positioning, algorithms of orbit-fixed and orbit co-determined positioning, algorithms of static and kinematic, as well as dynamic applications, etc., are non-equivalent algorithms.

9.4 Reference Changing in GPS Difference Algorithm

9.4.1 Changing Reference Satellite

The single baseline solution with single reference station is the most simplified and commonly used processing mode in the GPS kinematic relative positioning. Compared to network solutions with multiple reference stations, a single baseline solution has advantages of fewer unknown parameters, simple weight determination method, no baseline correlation, and a small amount of data processing. However, it can hardly meet the requirement of long endurance and long range airborne GNSS kinematic positioning . The problem of reference satellite changing is inevitable in the long time airborne relative positioning. This problem was studied by Wang et al. (2010) and Wang (2013). The details of the method are introduced in this section.

The main idea of the reference satellite changing method is that when the old reference satellite is disappeared or in the case that the reference satellite should be changed since cycle slip happens in its observation data, the double-differenced ambiguity after reference satellite changing can be obtained through multiplying the double-differenced ambiguity before changing reference satellite by a transform matrix.

Assuming the relationship between un-differenced ambiguity and double-differenced ambiguity before changing reference satellite can be expressed as

$$ \nabla {\Delta} N = AN_{0} , $$
(9.67)

where \( \nabla {\Delta} N \) denotes the double-differenced ambiguity before changing reference satellite, N 0 denotes the un-differenced ambiguity, A is the transform matrix.

The double-differenced ambiguity after changing the reference satellite can be expressed as

$$ \nabla {\Delta} \bar{N} = BN_{0} , $$
(9.68)

where \( \nabla {\Delta} \bar{N} \) denotes the new double-differenced ambiguity after changing reference satellite, B is the new transform matrix.

Thus, the relationship between the new double-differenced ambiguity and the old double-differenced ambiguity can be assumed as:

$$ \nabla {\Delta} \bar{N} = C\nabla {\Delta} N, $$
(9.69)

where C is the transform matrix between old and new double-differenced ambiguities.

Therefore, how to get the matrix C is the key problem to deal with the reference satellite changing. Substituting Eqs. 9.67 and 9.68 into Eq. 9.69 and dividing out N 0, one has

$$ CA = B, $$
(9.70)

Multiplying the both sides of Eq. 9.70 by \( A^{\text{T}} (AA^{\text{T}} )^{ - 1} \), one has

$$ C = BA^{\text{T}} (AA^{\text{T}} )^{ - 1} , $$
(9.71)

Therefore it can be inferred that through multiplying the double-differenced ambiguity before changing reference satellite by the transform matrix of Eq. 9.71, the double-differenced ambiguity after reference satellite changing can be obtained. The numerical example of this method can be referred to Wang (2013).

9.4.2 Changing Reference Station

Although the single baseline solution has been widely applied in the kinematic relative positioning, it is generally not appropriate for the case of long range airborne positioning. Because of the long distance between the reference station and kinematic station, many types of common errors cannot be eliminated directly by the difference method. And the number of common satellites will be reduced with the increase of baseline length. If a closer reference station can be used in place of the original reference station, these problems may be well solved. Therefore, a method for adaptively changing reference station for long distance airborne GPS applications developed by Wang et al. (2010, 2011) is introduced in this section.

The basic idea of the adaptively changing reference station method is that the positioning model always keeps the single baseline model during the whole solution. When the distance between kinematic station and reference station is longer than the maximum distance, which is defined by the user, the new reference station is used to replace the old one. At the same time, all information of old observation equation including covariance matrix will be transferred to the new observation equation based on the equivalent eliminated parameter method. The calculation steps of adaptively changing reference station are described below.

Suppose that the observation equations before and after changing reference station can be respectively expressed as follows:

$$ L - A\left[ {\begin{array}{*{20}c} {X_{1} } \\ {X_{2} } \\ {\nabla {\Delta} N_{i1,i2} } \\ \end{array} } \right] = V, \quad P, $$
(9.72)
$$ L^{\prime } - B\left[ {\begin{array}{*{20}c} {X_{2} } \\ {X_{3} } \\ {\nabla {\Delta} N_{i3,i2} } \\ \end{array} } \right] = V^{\prime } , \quad P^{\prime } , $$
(9.73)

where L and \( L^{\prime} \) are the double-differenced observations, A and B are the design matrices, X 1 and X 3 are the position parameters of the old and new reference stations, respectively, X 2 is the position parameter of the kinematic station, ∇∆N i1,i2 is the double-differenced ambiguities between old reference station i1 and kinematic station i2, ∇∆N i3,i2 is the double-differenced ambiguities between new reference station i3 and kinematic station i2, V, \( V^{\prime}, \) P, \( P^{\prime} \) are the residual vectors and weight matrices respectively.

The Eq. 9.72 can be rewritten as

$$ L - \left[ {\begin{array}{*{20}c} {A_{1} } & {A_{2} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {X_{2} } \\ {\bar{X}} \\ \end{array} } \right] = V, \quad P, $$
(9.74)

where \( \bar{X} \) includes X 1 and \( \nabla {\Delta} N_{i1,i2} \).

The normal equation of Eq. 9.74 can be formed as

$$ \left[ {\begin{array}{*{20}c} {M_{11} } & {M_{12} } \\ {M_{21} } & {M_{22} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {X_{2} } \\ {\bar{X}} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {U_{1} } \\ {U_{2} } \\ \end{array} } \right], $$
(9.75)

where

$$ \left[ {\begin{array}{*{20}c} {M_{11} } & {M_{12} } \\ {M_{21} } & {M_{22} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {A_{1}^{\text{T}} PA_{1} } & {A_{1}^{\text{T}} PA_{2} } \\ {A_{2}^{\text{T}} PA_{1} } & {A_{2}^{\text{T}} PA_{2} } \\ \end{array} } \right],\left[ {\begin{array}{*{20}c} {U_{1} } \\ {U_{2} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {A_{1}^{\text{T}} PL} \\ {A_{2}^{\text{T}} PL} \\ \end{array} } \right], $$
(9.76)

The equivalently eliminated equation (cf. Sect. 7.6) of Eq. 9.75 can be formed as

$$ \left[ {\begin{array}{*{20}c} {M_{1} } & 0 \\ {M_{21} } & {M_{22} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {X_{2} } \\ {\bar{X}} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {R_{1} } \\ {U_{2} } \\ \end{array} } \right], $$
(9.77)

where \( M_{1} = A_{1}^{\text{T}} (E - J)^{\text{T}} P(E - J)A_{1} \), \( R_{1} = A_{1}^{\text{T}} (E - J)^{\text{T}} PL \), \( J = A_{2} M_{22}^{ - 1} A_{2}^{\text{T}} P \).

Let \( D_{1} = (E - J)A_{1} \), the first equation of Eq. 9.77 can be expressed as

$$ D_{1}^{\text{T}} PD_{1} X_{2} = D_{1}^{\text{T}} PL, $$
(9.78)

Therefore the equivalent observation equation of Eq. 9.78 is

$$ L - D_{1} X_{2} = V, \quad P, $$
(9.79)

The normal equation of Eq. 9.73 can be formed as

$$ B^{\text{T}} P^{\prime } B\left[ {\begin{array}{*{20}c} {X_{2} } \\ {X_{3} } \\ {\nabla {\Delta} N_{i3,i2} } \\ \end{array} } \right] = B^{\text{T}} P^{\prime } L^{\prime } , $$
(9.80)

Since the Eqs. 9.78 and 9.80 have the same position parameter X 2, the corresponding element of the two normal equations can be accumulated directly, then one has

$$ \bar{B}^{\text{T}} \bar{P}^{\prime } \bar{B}\left[ {\begin{array}{*{20}c} {X_{2} } \\ {X_{3} } \\ {\nabla {\Delta} N_{i3,i2} } \\ \end{array} } \right] = \bar{B}^{\text{T}} \bar{L}^{\prime } \bar{L}^{\prime } , $$
(9.81)

where \( \bar{B} \) and \( \bar{L}^{\prime } \) are the design matrix and observation matrix after accumulation, \( \bar{P}^{\prime } \) is the weight matrix .

Therefore using the sequential least squares , the position parameter and ambiguity parameter of the kinematic station can be estimated based on the Eq. 9.81.

The numerical example for validation of this method can be found in Wang et al. (2011).

9.5 Standard Algorithms of GPS Data Processing

9.5.1 Preparation of GPS Data Processing

Preparation of GPS data processing can be carried out either in pre-processing or in the main data processing. It depends on the strategy and the purpose of the data processing. Only in the case of data post-processing (i.e. data are available before the processing) is pre-processing possible. In the case of data quasi real time or real time processing, usually data are only available up to the instantaneous epoch. Data availability also causes different strategies of the data processing.

Data preparation may include raw GPS data decoding. ASCII code data are usually given in RINEX format (Gurthner 1994). Even in the unified format , different decoders may work a little bit differently from one another. This has to be noted only if one is going to process the data decoded by using different decoders. Usually, most GPS data processing software has its own internal input data format. Transforming the data from the RINEX format (maybe also from multiple stations) into the internal input data format should be no principle problem.

Cycle slip detection is one of the most important works in data preparation. Marks are given for further use in the data where the cycle slips are detected. There are two types of cycle slips; one is repairable, and another is not repairable. Non-repairable cycle slips have to be modelled by new ambiguity unknowns. Repairing and setting new unknowns are equivalent if the repair is made correctly and the new unknown is well-solved. By real time data processing, this process has to be done in the main data processing process.

Orbit data are also needed. Depending on the purposes of the data processing, broadcast navigation data, IGS precise orbits, and IGS predicted orbits can be used where the satellite clock error model is also included. In broadcast data, there is also an ionospheric model available. Even for the GPS precise orbit determination , initial orbits are still needed.

Further preparations depend on the organisation and purpose of the data processing. Generally speaking, standard tropospheric models are needed for use (cf. Sect. 5.2). An ionospheric model (from broadcast) can be used as an initial model (cf. Sect. 5.1) if the non-ionosphere-free combination is used. An ionospheric model can be also obtained from the ambiguity-ionospheric equations (see discussions in Sect. 6.5.2). Earth tide and ocean loading tide , as well as relativistic effects have to be computed for use (cf. Sect. 5.4).

In the case of orbit determination and/or geopotential determination, an initial geopotential model is needed. The initial models of the solar radiation and air drag have to be computed. All corrections can be computed in real time or in advance and then listed in tables for use. Coordinate transformations between the ECEF system and the ECSF system are also needed.

9.5.2 Single Point Positioning

Single point positioning is a sub-process of GPS data processing, which is needed in almost all GPS data processing. Station coordinates and receiver clock error are determined with such a sub-process. Depending on the accuracy requirement, single point positioning can be done with single frequency code or phase data, dual-frequency code or phase data, and combined code-phase data. Generally speaking, single point positioning has a lower accuracy than that of relative positioning, where systematic errors are reduced (through keeping the reference fixed). However, the receiver clock bias determined by single point positioning is accurate enough to correct the second type of clock error influence (the influence scaled by the velocity of the satellite, cf. Sect. 5.5).

  • Code Data Single Point Positioning

The GPS code pseudorange model is (cf. Sect. 6.1):

$$ R_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) - (\delta t_{\text{r}} - \delta t_{\text{k}} )c + \delta_{\text{ion}} + \delta_{\text{trop}} + \delta_{\text{tide}} + \delta_{\text{rel}} + \varepsilon , $$
(9.82)

where R is the observed pseudorange , t e denotes the GPS signal emission time of the satellite k, t r denotes the GPS signal reception time of the receiver i, c is the speed of light , subscript i and superscript k denote the receiver and satellite, and δt r and δt k are the clock errors of the receiver and satellite at the times t r and t e, respectively. The terms δ ion, δ trop, δ tide, and δ rel denote the ionospheric, tropospheric, tidal, and relativistic effects, respectively. The multipath effect is omitted here. The remaining error is denoted as ε. \( \rho_{i}^{k} \) is the geometric distance. The computed value (denoted as C) of the pseudorange is

$$ C = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) + \delta t_{k} c + \delta_{\text{ion}} + \delta_{\text{trop}} + \delta_{\text{tide}} + \delta_{\text{rel}} , $$
(9.83)

where the clock error of the satellites can be interpolated from the IGS orbit data or broadcast navigation message , models of other effects can be found in Chap. 5, and the initial value of receiver clock error is assumed to be zero. It should be emphasised that the earth rotation correction has to be taken into account by the geometric distance computation no matter if it is done in the Earth or space fixed coordinate systems (cf. Sect. 5.3.2).

The linearised observation Eq. 9.82 is then (cf. Sects. 6.2 and 6.3)

$$ l_{k} = \frac{ - 1}{{\rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} )}}\left( {\begin{array}{*{20}c} {x_{k} - x_{i0} } & {y_{k} - y_{i0} } & {z_{k} - z_{i0} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\Delta x} \\ {\Delta y} \\ {\Delta z} \\ \end{array} } \right) -\Delta t + v_{k} , $$
(9.84)

where l k is the so-called OC (observed minus computed pseudorange), v k is the residual, vector (Δx Δy Δz)T is the difference between the coordinate vector (x i y i z i )T and the initial coordinate vector (x i0 y i0 z i0)T, Δt is the receiver clock error in length (i.e. Δt = δt r c), and the initial coordinate vector is used for computing the geometric distance. Equation 9.84 can be written in a more general form as

$$ l_{k} = \left( {\begin{array}{*{20}c} {a_{k1} } & {a_{k2} } & {a_{k3} } & { - 1} \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\Delta x} \\ {\Delta y} \\ {\Delta z} \\ {\Delta t} \\ \end{array} } \right) + v_{k} , $$
(9.85)

where a kj is the related coefficient given in Eq. 9.84. Putting all of the equations from all observed satellites together, we find the single point positioning equation system has a general form of

$$ L = AX + V, \quad P, $$
(9.86)

where L is called the observation vector, X is the unknown vector, A is the coefficient matrix, V is the residual vector, and P is the weight matrix of the observation vector. The least squares solution of observational Eq. 9.86 is then (cf. Sect. 7.2)

$$ X = \left( {A^{\text{T}} PA} \right)^{ - 1} A^{\text{T}} PL. $$
(9.87)

The formulas for computing the precision vector of the solved X can be found in Sect. 7.2. It is notable that the coefficients of the equation are computed using the initial coordinate vector, and the initial coordinate vector is usually not (exactly) known; therefore, an iterative process has to be carried out to solve the single point positioning problem. For the given initial vector, a modified one can be obtained by solving the above problem; the modified initial vector can be used in turn as the initial vector to form the equations, and the problem can be solved again until the process converges. Because there are four unknowns in the single point positioning equation, at least four observables are needed to make the problem solvable. In other words, as soon as four or more satellites are observed, single point positioning is always possible.

For static reference stations, as soon as the coordinates are known with sufficient accuracy , the unknown vector (Δx Δy Δz)T can be considered zero. Then the Eq. 9.85 turns out to be

$$ l_{k} = -\Delta t + v_{k} , $$
(9.88)

and the receiver clock error can be computed directly by

$$ \Delta t = \frac{ - 1}{K}\sum\limits_{k = 1}^{K} {l_{k} } , $$
(9.89)

where K is the total number of observed satellites at this epoch. Equation 9.89 can be used to compute the receiver clock error of the static reference.

  • Dual-Code Ionosphere-Free Single Point Positioning

The above-mentioned single point positioning (using single frequency code data) is accurate enough for correcting the second type of clock error influence (the influence scaled by the velocity of the satellite). For more precise single point positioning, dual-frequency code data can be used to form the ionosphere-free combinations (cf. Sect. 6.5). Assuming that for frequencies 1 and 2, the single point positioning equation of Eq. 9.86 can be formed as

$$ L_{ 1} = AX + V_{ 1} , \quad P_{ 1} $$
(9.90)
$$ L_{2} = AX + V_{2} , \quad P_{2} , $$

then the ionosphere-free combination can be formed by (cf. Sect. 6.5.1)

$$ \frac{{f_{1}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}L_{1} - \frac{{f_{2}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}L_{2} = AX + V, \quad P, $$
(9.91)

where

$$ P = Q^{ - 1} , \quad Q = \left( {\frac{{f_{1}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}} \right)^{2} P_{1}^{ - 1} + \left( {\frac{{f_{2}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}} \right)^{2} P_{2}^{ - 1} , $$

and V is the residual vector. Because the ionospheric effects have been cancelled out of Eq. 9.91, the ionospheric model can be also omitted by computing L 1 and L 2 in Eq. 9.90. The solution of Eq. 9.91 is then the solution to the dual-code ionosphere-free single point positioning problem.

  • Phase Single Point Positioning

GPS carrier phase model is (cf. Sect. 6.1)

$$ \lambda \varPhi_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) - (\delta t_{\text{r}} - \delta t_{k} )c + \lambda N_{i}^{k} - \delta_{\text{ion}} + \delta_{\text{trop}} + \delta_{\text{tide}} + \delta_{\text{rel}} + \varepsilon , $$
(9.92)

where λΦ is the observed phase in length, Φ is the phase in cycle, wave length is denoted as λ, and \( N_{i}^{k} \) is the ambiguity related to receiver i and satellite k, except for the ambiguity term and the sign difference of the term of ionospheric effect; other terms are the same as that of the pseudorange discussed at the beginning of this section.

The computed value (denoted as C) of phase is

$$ C = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) + \delta t_{k} c + \lambda N_{i0}^{k} - \delta_{\text{ion}} + \delta_{\text{trop}} + \delta_{\text{tide}} + \delta_{\text{rel}} , $$
(9.93)

where \( N_{i0}^{k} \) is the initial ambiguity parameter related to the receiver i and satellite k. Scaling the ambiguity parameter in length and denoting

$$ \Delta N_{i}^{k} = \lambda N_{i}^{k} - \lambda N_{i0}^{k} , $$
(9.94)

the phase single point positioning equation is (very similar to Eq. 9.85)

$$ l_{k} = \left( {\begin{array}{*{20}c} {a_{k1} } & {a_{k2} } & {a_{k3} } & { - 1} \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\Delta x} \\ {\Delta y} \\ {\Delta z} \\ {\Delta t} \\ \end{array} } \right) +\Delta N_{i}^{k} + v_{k} . $$
(9.95)

Putting all equations related to all observed satellites together, the single point positioning equation system has a general form of

$$ L = AX + EN + V, \quad P, $$
(9.96)

where L is called the observation vector, X is the unknown vector of coordinates and clock error, A is the X related coefficient matrix, E is an identity matrix of order K, K is the number of observed satellites, N is the unknown vector of ambiguity parameters \( \Delta N_{i}^{k}, V \) is the residual vector, and P is the weight matrix . If K satellites are observed, then there are K ambiguity parameters, three coordinate parameters and one clock parameter, so that the phase single point positioning problem is not solvable at the first few epochs. Using the ambiguity parameters obtained from the ambiguity-ionospheric equations (cf. Sect. 6.5) as the initial ambiguity values, N is then zero (can be cancelled), and Eq. 9.96 has the same form as that of Eq. 9.86. In this way, the equation system of single-frequency phase point positioning can be formed and solved every epoch. Even the codes are used in the ambiguity-ionospheric equations , ambiguity parameters can be obtained with high accuracy through a reasonable weight and instrumental bias model (cf. Sects. 6.7 and 9.2).

  • Dual-Phase Ionosphere-Free Single Point Positioning

The single point positioning equation of the dual-phase observables for frequencies 1 and 2 can be formed as

$$ \begin{aligned} L1 & = AX + EN1 + V1, \quad P1\; {\text{and}} \\ L2 & = AX + EN2 + V2, \quad P2. \\ \end{aligned} $$
(9.97)

Then the ionosphere-free combinations can be formed by (cf. Sect. 6.5.1)

$$ \frac{{f_{1}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}L_{1} - \frac{{f_{2}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}L_{2} = AX + EN_{\text{c}} + V, \quad P, $$
(9.98)

where

$$ N_{\text{c}} = \frac{{f_{1}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}N_{1} - \frac{{f_{2}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}N_{2} \quad {\text{and}} $$
(9.99)
$$ P = Q^{ - 1} , \quad Q = \left( {\frac{{f_{1}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}} \right)^{2} P_{1}^{ - 1} + \left( {\frac{{f_{2}^{2} }}{{f_{1}^{2} - f_{2}^{2} }}} \right)^{2} P_{2}^{ - 1} . $$
(9.100)

V is the residual vector, and index c is used to denote the ionosphere-free combinations. Equation 9.98 is the dual-phase ionosphere-free single point positioning equation system. The solution of Eq. 9.98 is then the solution of the dual-phase ionosphere-free single point positioning problem.

  • Phase–Code Combined Single Point Positioning

Phase and code ionosphere-free single point positioning Eqs. 9.98 and 9.91 can be written in more compact form as

$$ \begin{aligned} L_{\text{p}} & = A_{11} X_{1} + A_{12} N + V_{\text{p}} , \quad P_{\text{p}} \; {\text{and}} \\ L_{\text{c}} & = A_{11} X_{1} + V_{\text{c}} , \quad P_{\text{c}} , \\ \end{aligned} $$
(9.101)

where index p and c denote the phase and code related variables, X 1 is the vector of the coordinate and receiver clock error, N is the ambiguity vector, P is the weight matrix , and V is the residual vector. To guarantee the same coefficient matrix A 11 for both the phase and code observation equations, data of commonly observed satellites have to be used.

Usually the code single point positioning problem (second equation system of Eq. 9.101) is always solvable (as soon as more than four satellites are observed). And the ambiguity parameter number is equal to the number of phase observables. Therefore, the phase–code combined single point positioning problem in Eq. 9.101 is usually solvable at every epoch.

Block-wise least squares adjustment for solving the phase–code combined problem has been discussed in Sect. 7.5.2. The algorithm can be used directly to solve the combined Eq. 9.101.

  • Precise Point Positioning

The availability of precise GPS satellite orbit and clock products from the International GNSS Service (IGS) has enabled) the development of a positioning technology known as precise point positioning (PPP). Based on the processing of un-differenced pseudorange and carrier phase observations from a single GPS receiver, this approach effectively eliminates the inter-station limitations introduced by differential GPS processing as no base station is necessary. As a result, it offers an alternative to differential GPS that is logistically simpler and almost as accurate (Zumberge et al. 1997; Kouba and Héroux 2001). Although PPP does not require any base station, it requires accurate knowledge of the GPS satellite coordinates and the state of their clocks. The algorithm of PPP is described in the following.

With a single GPS dual-frequency receiver, the following ionosphere-free combinations can be applied to facilitate PPP positioning using un-differenced observations.

$$ P_{\text{IF}} = \frac{{f_{1}^{2} \cdot P_{1} - f_{2}^{2} \cdot P_{2} }}{{f_{1}^{2} - f_{2}^{2} }} = \rho + c \cdot {dt} + d_{\text{trop}} + {dm}_{\text{IF}} + \varepsilon_{{P_{\text{IF}} }} , $$
(9.102)
$$ \varPhi_{\text{IF}} = \frac{{f_{1}^{2} \cdot \varPhi_{1} - f_{2}^{2} \cdot \varPhi_{2} }}{{f_{1}^{2} - f_{2}^{2} }} = \rho + c \cdot {dt} + d_{\text{trop}} + \frac{{cf_{1} N_{1} - cf_{2} N_{2} }}{{f_{1}^{2} - f_{2}^{2} }} + \delta m_{\text{IF}} + \varepsilon_{{\varPhi_{\text{IF}} }} , $$
(9.103)

where P IF is the ionosphere-free code observation, Φ IF is the ionosphere-free phase observation, P i and Φ i (i = 1, 2) are the pseudorange observation and phase observation on L i , respectively, f i is the frequency of L i , ρ is the geometric distance between the satellite and the receiver, c is the speed of light , dt denotes the receiver clock error , d trop denotes the tropospheric delay , N i is the integer phase ambiguity on L i , dm IF, and δm IF denote a series of error corrections including relativistic effect, earth tide, ocean tide , and hardware delay in pseudorange observation and phase observation, respectively, ε P and ε Φ denote the remaining errors not modelled such as multipath and observation noise of code and phase, respectively. Satellite orbit and clock errors are not present in Eqs. 9.102 and 9.103 since they can be removed by the use of precise orbit and clock products. The remaining receiver clock and tropospheric delays in Eqs. 9.102 and 9.103 will be estimated in PPP.

The potential impact of PPP on the positioning community is expected to be significant. It brings great flexibility to field operations and also reduces labour and equipment cost and simplifies operational logistics by eliminating the need for base stations. The performance of PPP for positioning determination has been demonstrated in various papers—for example, Zumberge et al. (1997), Kouba and Héroux (2001), Gao and Shen (2002), Gao et al. (2003)—using post-mission precise orbit and clock from IGS . Following the availability of real-time precise GPS satellite orbit and clock products, PPP has also been applied to real-time kinematic positioning (Gao and Chen 2004; Chen et al. 2013).

9.5.3 Standard Un-differential GPS Data Processing

In single point positioning, un-differenced GPS data are used. Usually, only four unknowns are solved for, as discussed in Sect. 5.2. Single point positioning has also a speciality of epoch-wise solution. Based on the algorithms of single point positioning , standard static un-differential GPS data processing should take more unknown models and more station data into account. In a kinematic case, because of the movement of the receiver, coordinates of the receiver are time variables; therefore, model parameters are usually pre-determined or determined with another algorithm in order to reduce the number of the unknowns.

The GPS code pseudorange and carrier phase are modelled as (cf. Sect. 6.1, Eqs. 6.1 and 6.2, or Eqs. 9.82 and 9.92)

$$ R_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) - (\delta t_{\text{r}} - \delta t_{k} )c + \delta_{\text{ion}} + \delta_{\text{trop}} + \delta_{\text{tide}} + \delta_{\text{rel}} + \varepsilon_{\text{c}} \quad {\text{and}} $$
(9.104)
$$ \lambda \varPhi_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) - (\delta t_{\text{r}} - \delta t_{k} )c + \lambda N_{i}^{k} - \delta_{\text{ion}} + \delta_{\text{trop}} + \delta_{\text{tide}} + \delta_{\text{rel}} + \varepsilon_{\text{p}} . $$
(9.105)

Except for the ambiguity parameter and the sign of the ionospheric effect term, the other terms on the right sides of Eqs. 9.104 and 9.105 are the same.

For any standard data combinations (cf. Sect. 6.5 for details) as given in Eqs. 6.48 and 6.51, the above models of Eqs. 9.104 and 9.105 are still valid. Of course, on the left sides of Eqs. 9.104 and 9.105 the combined pseudorange and combined phase (scaled by wavelength) are used, and on the right side the ambiguity and ionospheric effect are combined ones respectively. Exactly, for combinations of

$$ R = \frac{{n_{1} R_{1} + n_{2} R_{2} }}{{n_{1} + n_{2} }}, $$
(9.106)
$$ \varPhi = n_{1} \varPhi_{1} + n_{2} \varPhi_{2} , $$
(9.107)

or

$$ \lambda \varPhi = \frac{1}{f}(n_{1} f_{1} \lambda_{1} \varPhi_{1} + n_{2} f_{2} \lambda_{2} \varPhi_{2} ), $$
(9.108)

where the combined signal has the frequency and wavelength

$$ f = n_{1} f_{1} + n_{2} f_{2} ,\quad {\text{and}}\quad \lambda = c/f, $$
(9.109)

the combined ambiguity and ionospheric effects are

$$ N_{\text{com}} = n_{1} N_{1} + n_{2} N_{2} , $$
(9.110)
$$ \begin{aligned} \delta_{{{\text{ion}}\_{\text{comc}}}} & = \frac{{n_{1} \delta_{\text{ion1}} + n_{2} \delta_{\text{ion2}} }}{{n_{1} + n_{2} }}\quad {\text{and}} \\ \delta_{{{\text{ion}}\_{\text{comp}}}} & = \frac{ - 1}{f}\left( {n_{1} f_{1} \delta_{{{\text{ion}}1}} + n_{2} f_{2} \delta_{{{\text{ion}}2}} } \right), \\ \end{aligned} $$
(9.111)

where n 1 and n 2 are the selected real constants, indices 1 and 2 are referred to frequencies 1 and 2, and indices comc and comp denote the code and phase combined terms.

The computed pseudorange and phase range are

$$ C_{\text{c}} = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) - (\delta t_{\text{r}} - \delta t_{k} )c + \delta_{{{\text{ion}}\_{\text{comc}}}}^{0} + \delta_{\text{trop}}^{0} + \delta_{\text{tide}}^{0} + \delta_{\text{rel}} \quad {\text{and}} $$
(9.112)
$$ C_{\text{p}} = \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} ) - (\delta t_{\text{r}} - \delta t_{\text{k}} )c + \lambda N_{{i0\_{\text{com}}}}^{k} - \delta_{{{\text{ion}}\_{\text{comp}}}}^{0} + \delta_{\text{trop}}^{0} + \delta_{\text{tide}}^{0} + \delta_{\text{rel}} , $$
(9.113)

where superscript 0 denotes the initial values of individual models , indices c and p denote the terms related to the code and phase measurements, and index com denotes the combined terms. In the case of ionosphere-free combinations , the ionospheric effect terms will vanish. Otherwise, we should assume that the ionospheric effects are known by the given model or by the ambiguity-ionospheric equations .

The linearisation of GPS observation equations is generally discussed in Sect. 6.2, and the related partial derivatives are given in Sect. 6.3. Equations 9.106 and 9.108 can be linearised as

$$ \begin{aligned} L_{\text{c}} & = A_{11} X_{\text{coor}} + A_{12} X_{\text{clock}} + A_{13} X_{\text{trop}} + A_{14} X_{\text{tide}} + V_{\text{c}} , \quad P_{\text{c}} \; {\text{and}} \\ L_{\text{p}} & = A_{11} X_{\text{coor}} + A_{12} X_{\text{clock}} + A_{13} X_{\text{trop}} + A_{14} X_{\text{tide}} + A_{15} N + V_{\text{p}} , \quad P_{\text{p}} , \\ \end{aligned} $$
(9.114)

where X coor is the coordinate vector, X clock is clock error vector, indices trop and tide are used to denote the related unknown vectors, N is the ambiguity vector, P is the weight matrix , V is the residual vector, and A is the related coefficient matrix. The data of commonly observed satellites have to be used to guarantee the common coefficient matrices A for both phase and code observation equations.

To process the data of more stations, Eq. 9.114 shall be formed station by station and then combine them together. It is notable that some of the parameters are common ones for all stations, such as satellite clock errors and Love numbers of the earth tide. In the case of orbit determination (cf. Chap. 11 for details), the orbit parameters and force model parameters are also common ones. The total observation equations of the un-differential GPS can then be written symbolically as

$$ \begin{aligned} L_{\text{c}} & = A_{1} X_{1} + A_{4} X_{4} + V_{\text{c}} , \quad P_{\text{c}} \; {\text{and}} \\ L_{\text{p}} & = A_{1} X_{1} + A_{4} X_{4} + A_{5} X_{5} + V_{\text{p}} , \quad P_{\text{p}} \\ \end{aligned} $$
(9.115)

where X 1 is a sub-vector of the common variables of the both equations, X 4 is the other variable vector of the both equations, and X 5 is the ambiguity vector. Adding 0X 5 to the first equation and denoting \( X_{2} = [\begin{array}{*{20}l} {X_{4} } \hfill & {X_{5} } \hfill \\ \end{array} ]^{\text{T}} \), Eq. 9.115 can be further simplified as

$$ \begin{aligned} L_{\text{c}} & = A_{1} X_{1} + A_{2} X_{2} + V_{\text{c}} , \quad P_{\text{c}} \; {\text{and}} \\ L_{\text{p}} & = A_{1} X_{1} + A_{3} X_{2} + V_{\text{p}} , \quad P_{\text{p}} . \\ \end{aligned} $$
(9.116)

Equation 9.116 can be considered an epoch-wise formed observation equation or observation equation of all observed epochs. Most adjustment algorithms discussed in Chap. 7 can be used directly to solve the above equation system.

9.5.4 Equivalent Method of GPS Data Processing

As already discussed in Sect. 6.8, the equivalently eliminated equations of Eq. 9.16 can be formed as (cf. Sects. 6.8 and 7.6 for details)

$$ \begin{aligned} U_{\text{c}} & = L_{\text{c}} - (E - J_{\text{c}} )A_{2} X_{2} , \quad P_{\text{c}} \; {\text{and}} \\ U_{\text{p}} & = L_{\text{p}} - (E - J_{\text{p}} )A_{3} X_{2} , \quad P_{\text{p}} , \\ \end{aligned} $$
(9.117)

where

$$ \begin{aligned} J_{\text{c}} & = A_{1} M_{{11{\text{c}}}}^{ - 1} A_{1}^{\text{T}} P_{\text{c}} , \\ J_{\text{p}} & = A_{1} M_{{11{\text{p}}}}^{ - 1} A_{1}^{\text{T}} P_{\text{p}} , \\ M_{{ 1 1 {\text{c}}}} & = A_{1}^{\text{T}} P_{\text{c}} A_{1} ,\quad {\text{and}} \\ M_{{11{\text{p}}}} & = A_{1}^{\text{T}} P_{\text{p}} A_{1} . \\ \end{aligned} $$
(9.118)

E is an identity matrix of size J, L, and P are the original observation vector and weight matrix , and U is the residual vector, which has the same statistic property as V in Eq. 9.116. As soon as the X 1 in Eq. 9.116 is able to be eliminated, the equivalent Eq. 9.117 can be formed whether Eq. 9.116 is an epoch-wise equation or an all epoch equation.

Equation 9.117 is the zero-difference (un-differential) GPS observation equation system if the variable vector X 1 in Eq. 9.116 is considered a zero vector.

Equation 9.117 is the equivalent single-difference GPS observation equation system if the variable vector X 1 in Eq. 9.116 is considered an unknown vector of satellite clock errors.

Equation 9.117 is the equivalent double-difference GPS observation equation system if the variable vector X 1 in Eq. 9.116 is considered an unknown vector of satellite and receiver clock errors.

The second equation of 9.117 is the equivalent triple-difference GPS observation equation system if the variable vector X 1 in the second equation of 9.116 is considered an unknown vector of all clock errors and ambiguities.

The un-differential and differential GPS data processing can be dealt with in an equivalent and unified way. The advantages of this method are:

  1. 1.

    The weight remains the original one, so one does not have to deal with the correlation problem;

  2. 2.

    The original data are used, so one does not need to form the differences;

  3. 3.

    The un-differential and differential GPS data processing can be easily selected by a switch or can be used in a combined way, so that the number of unknowns (i.e. matrix size) of the whole adjustment and filtering problem can be greatly reduced.

The combinative way of using the equivalent method can be realised as follows. First, equivalent triple differences are used to determine the unknowns other than the clock error and ambiguity parameters. Taking these parameters as known, the observation equation system 9.116 can be reduced so that only the clock error and ambiguity parameters are included. Then second, equivalent double differences are used to determine the ambiguity vector. Again, taking the ambiguity vector as known, Eq. 9.116 can be further reduced so that only the clock error parameters are included. Then third, equivalent single differences are used to determine the receiver clock errors. At the end, Eq. 9.116 can be reduced so that only satellite clock errors are included in the equations, and they can be determined. The last two steps can be also done together in one step.

By the way, the ambiguity parameters are usually dealt with in an un-differential form for all methods, so that the problems caused by changing the reference satellite in a double-difference case can be avoided. This is especially important for kinematic GPS applications.

9.5.5 Relative Positioning

Relative positioning is traditionally carried out with differential positioning . The key point of relative positioning is to keep the coordinates of the reference station fixed. In other words, the initial coordinate values of the reference station are considered true values so that the related unknowns are either not necessary to be adjusted or equal to zero. Therefore, the following two methods outline how relative positioning can be done. (1) Cancelling the reference coordinate unknowns out of Eq. 9.116; (2) The a priori datum method discussed in Sects. 7.8.2 and 6.8.6 is used to keep the coordinates fixed on the initial values . Both methods are equivalent. The a priori datum method (cf. Sects. 7.8.2 and 6.8.6) can be also used to keep some of the un-differential ambiguity parameters and clock parameters fixed. Keeping the reference coordinates fixed in relative positioning may lead to a better determination of the other parameters in the reference-related equations and, therefore, may lead to an indirect reduction of the residuals.

9.5.6 Velocity Determination

  • Single Point Velocity Determination

Analogous to the single point positioning discussed in Sect. 5.2, single point velocity determination can be carried out by using Doppler data . The GPS Doppler observation is modelled as (cf. Eq. 6.46)

$$ D = \frac{{{\text{d}}\rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} )}}{{\lambda {\text{d}}t}} - f\frac{{{\text{d}}(\delta t_{\text{r}} - \delta t_{\text{k}} )}}{{{\text{d}}t}} + \delta_{{{\text{rel}}\_f}} + \varepsilon , $$
(9.119)

where D is the observed Doppler measurement , t e denotes the GPS signal emission time of the satellite k, t r denotes the GPS signal reception time of the receiver i, subscript i and superscript k denote receiver and satellite, and δt r and δt k denote the clock errors of the receiver and satellite at the time t r and t e, respectively. The remaining error is denoted as ε, f is the frequency, wavelength is denoted as λ, δ rel_f is the frequency correction of the relativistic effects, \( \rho_{i}^{k} \) is the geometric distance, and \( {\text{d}}_{l}^{k} /{\text{d}}t \) denotes the time derivation of the radial distance between satellite and receiver at the time t r.

The computed value (denoted as C) of Doppler is

$$ C = \frac{{{\text{d}}\rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} )}}{{\lambda {\text{d}}t}} + f\frac{{{\text{d}}(\delta t_{k} )}}{{{\text{d}}t}} + \delta_{{{\text{rel}}\_f}} , $$
(9.120)

where the first term on the right-hand side can be computed by using Eqs. 6.14 and 6.15.

The time derivative of the satellite clock error and the satellite position as well as velocity can be computed from the IGS orbit data or broadcast navigation message ; the relativistic effect on frequency can be found in Chap. 5. It is obvious that the initial position of the receiver is also needed for computing Eq. 9.120. Initial velocity of the receiver is assumed zero. It should be emphasised that the earth rotation correction has to be taken into account by the geometric distance computation (cf. Sect. 5.3.2).

The linearised observation Eq. 9.120 is then (cf. Sects. 6.2 and 6.3 as well as partial derivative Eq. 6.20)

$$ l_{k} = \frac{ - 1}{{\lambda \rho_{i}^{k} (t_{\text{r}} ,t_{\text{e}} )}}\left( {\begin{array}{*{20}c} {x_{k} - x_{i} } & {y_{k} - y_{i} } & {z_{k} - z_{i} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\dot{x}_{i} } \\ {\dot{y}_{i} } \\ {\dot{z}_{i} } \\ \end{array} } \right) -\Delta D + v_{k} , $$
(9.121)

where l k is the OC (observed minus computed Doppler), v k is the residual, the receiver’s velocity vector is \( \left( {\dot{x},\dot{y},\dot{z}} \right)^{\text{T}} ,\left( {\begin{array}{*{20}c} x & y & z \\ \end{array} } \right)^{\text{T}} \) is the coordinate vector with index k for satellite and i for receiver. ΔD is the receiver clock drift in cycle/second (i.e. ΔD = f(dδt r/dt). Equation 9.121 can be written in a more general form as

$$ l_{k} = \left( {\begin{array}{*{20}c} {a_{k1} } & {a_{k2} } & {a_{k3} } & { - 1} \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\dot{x}} \\ {\dot{y}} \\ {\dot{z}} \\ {\Delta D} \\ \end{array} } \right) + v_{k} , $$
(9.122)

where a kj is the related coefficient given in Eq. 9.122. If one puts all of the equations that are related to all of the observed satellites together, the equation system of single point velocity determination has a general form of

$$ L = AX + V, \quad P, $$
(9.123)

where L is called the observation vector, X is the unknown velocity vector including clock drift, A is the coefficient matrix, V is the residual vector, and P is the weight matrix of observation vector. The least squares solution of observation Eq. 9.123 is then (cf. Sect. 7.2)

$$ X = \left( {A^{\text{T}} PA} \right)^{{{-} 1}} A^{\text{T}} PL. $$
(9.124)

The formulas for computing the precision vector of the solved X can be found in Sect. 7.2. It is notable that the coefficients of the equation are computed using the initial velocity vector , and the initial velocity vector is usually not known; therefore, an iterative process has to be carried out to solve the single point velocity determining problem. For the given initial velocity vector, a modified one can be obtained by solving the problem; the modified initial velocity vector can be used in turn to form the equation and solve it again until the process converges. This iterative process is needed if the kinematic motion is very fast. Because there are four unknowns in the single velocity determining equation, at least four observables are needed to make the problem solvable; in other words, when four or more satellites are observed, it is always possible to determine the single point velocity.

For static stations, the unknown velocity vector \( \left( {\dot{x},\dot{y},\dot{z}} \right) \) T can be considered the zero one. Then the Eq. 9.121 turns out to be

$$ l_{k} = -\Delta D + v_{k} , $$
(9.125)

and the receiver frequency error can be computed directly by

$$ \Delta D = \frac{ - 1}{K}\sum\limits_{k = 1}^{K} {l_{k} } , $$
(9.126)

where K is the total number of observed satellites. Equation 9.126 can be used to compute the frequency drift of the static reference receiver . The frequency drift of kinematic receiver can be also computed by static initialisation.

  • Differential Doppler Data Processing

A more general model of Doppler data processing takes the satellite clock frequency bias (clock drift) into account:

$$ l_{k} = \left( {\begin{array}{*{20}c} {a_{k1} } & {a_{k2} } & {a_{k3} } & { - 1} \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {\dot{x}} \\ {\dot{y}} \\ {\dot{z}} \\ {\Delta D_{i} } \\ \end{array} } \right) +\Delta D_{k} + v_{k} , $$
(9.127)

where index i and k denote the receiver and satellite, and ΔD is the related frequency bias. For the satellite frequency bias, the initial value from the IGS data or navigation data can be used. If one puts together all of the equations related to all observed satellites of all of the stations, Eq. 9.127 has a general form of

$$ L_{\text{D}} = A_{1} X_{1} + A_{2} X_{2} + V_{\text{D}} , \quad P_{\text{D}} . $$
(9.128)

where X 1 is a sub-vector of the common variables, X 2 is the vector of the other variable, and A is the related coefficient matrix. The equivalently eliminated equations of Eq. 9.128 can be formed as (cf. Sect. 6.8 for details)

$$ U_{\text{D}} = L_{\text{D}} - (E - J_{\text{D}} )A_{2} X_{2} , \quad P_{\text{D}} , $$
(9.129)

where

$$ \begin{aligned} J_{\text{D}} & = A_{1} M_{{11{\text{D}}}}^{ - 1} A_{1}^{\text{T}} P_{\text{D}} \quad {\text{and}} \\ M_{{11{\text{D}}}} & = A_{1}^{\text{T}} P_{\text{D}} A_{1} . \\ \end{aligned} $$
(9.130)

E is an identity matrix of size J D, L, and P are the original observation vector and weight matrix , and U is the residual vector, which has the same property as V in Eq. 9.128.

Equation 9.129 is the equivalent single-difference GPS Doppler observation equation if the variable vector X 1 in Eq. 9.128 is considered a vector of satellite clock frequency bias.

Equation 9.129 is the equivalent double-difference GPS Doppler observation equation if the variable vector X 1 in Eq. 9.128 is considered a vector of the satellite and receiver clock frequency bias.

  • Relative Velocity Determination

Relative velocity determining is usually carried out with a differential method. The key point of relative velocity determination is to keep the velocity of the reference station as fixed or zero. Therefore, relative velocity determination can be done the following two ways: (1) Cancel the reference velocity unknowns out of the Eq. 9.128; (2) Use the method of a priori datum discussed in Sect. 7.8.2 to keep the reference velocity fixed on the initial values .

9.5.7 Kalman Filtering Using Velocity Information

As already discussed in Sect. 6.5.5, velocity information from the differential Doppler can be used to describe the system that is needed in Kalman filtering. Whether the receiver is moving or resting, the differential Doppler includes information about the motion state of the receiver. Therefore, using velocity information as a system description should be better than any empirical model.

The principle of Kalman filtering using velocity information can be outlined as follows (cf. also Sect. 7.7).

For the initial (or predicted) vector Z, the normal equation of the phase observation equation can be formed by

$$ M_{z} Z = B_{z} , \quad Z = \left( {\begin{array}{*{20}c} X \\ N \\ \end{array} } \right), $$
(9.131)

where M z is the normal matrix, and B z is the vector on the right side of the equation. These are formed by using initial vector Z; Z includes sub-vector X (coordinates) and N (ambiguities). The estimated solution of Eq. 9.131 is then

$$ \tilde{Z} = \tilde{Q}_{z} B_{z} , \quad \tilde{Q}_{z} = M_{z}^{ - 1} . $$
(9.132)

The normal equation of the differential Doppler observation equation (cf. Eq. 9.129, only the velocity vector is unknown) can be formed by

$$ M_{{\dot{x}}} \dot{X} = B_{{\dot{x}}} , $$
(9.133)

where \( \dot{X} \) is the velocity vector of the receiver; it is also used as an index to denote the related normal matrix and vector on the right side of the equation. The solution of Eq. 9.133 is then

$$ \dot{X} = Q_{{\dot{x}}} B_{{\dot{x}}} , \quad Q_{{\dot{x}}} = M_{{\dot{x}}}^{ - 1} . $$
(9.134)

Thus for the next epoch, denoted as k, the predicted vector turns out to be

$$ \bar{Z}(k) = \tilde{Z}(k - 1) + \dot{Z}(k - 1) \cdot\Delta t, $$
(9.135)

where Δt is the time interval of the epoch k–1 and k, and

$$ \dot{Z}(k - 1) = \left( {\begin{array}{*{20}c} {\dot{X}(k - 1)} \\ 0 \\ \end{array} } \right). $$
(9.136)

Equation 9.135 indicates that the differential Doppler has to be used in Eq. 9.134 as observations, because the velocity is considered an average one here. The related covariance matrix of the predicted vector is then

$$ \bar{Q}_{z} (k) = \tilde{Q}_{z} (k - 1) + (\Delta t)^{2} \left( {\begin{array}{*{20}c} {Q_{{\dot{x}}} } & 0 \\ 0 & 0 \\ \end{array} } \right). $$
(9.137)

The weight matrix is

$$ \bar{P}_{z} (k) = \bar{Q}_{z}^{ - 1} (k). $$
(9.138)

The normal Eq. 9.131 of epoch k is

$$ M_{z} (k)Z(k) = B_{z} (k), $$
(9.139)

and the Kalman filter solution of Eq. 9.139 is then

$$ \tilde{Z}(k) = \tilde{Q}_{z} (k)B_{z} (k), \quad \tilde{Q}_{z} (k) = (M_{z} (k) + \bar{P}_{z} (k))^{ - 1} . $$
(9.140)

It is notable that the normal equation 9.139 must be computed using the predicted vector Z(k) of Eq. 9.135.

Repeating the steps from Eqs. 9.133 to 9.140 for the further epoch is a process of Kalman filtering using velocity information. The algorithm outlined above is suitable both for the kinematic and static data processing. This is true especially for static data processing, because the station has not been exactly assumed as fixed (as described by Eq. 9.133); such an algorithm will modify the property of the strong dependency on the initial value of the Kalman filter. The forming of normal Eq. 9.133 is an iterative process (cf. Sect. 5.6), i.e. the velocity information has to be used for forming the equation. Equation 9.89 represents a realistic system description.

9.6 Accuracy of the Observational Geometry

Recalling the discussions made in the adjustment of Chap. 7, the precision vector of the solved vector is usually represented as (cf., e.g., Eq. 7.8)

$$ p [i ]= m_{0} \sqrt {\text{Q[i][i]}} \quad {\text{and}} $$
(9.141)
$$ m_{ 0} = \sqrt {\frac{{V^{\text{T}} PV}}{m - n}} ,\quad {\text{if}}\;(m > n). $$

where i is the element index, m 0 is the so-called standard deviation (or sigma), p[i] is the ith element of the precision vector, Q[i][i] is the ith diagonal element of the quadratic matrix Q (the inverse of the normal matrix), V is the residual vector, superscript T is the transpose of the vector, P is the weight matrix , n is the unknown number, and m is the observation number.

Equation 9.141 is used to describe the precision of the individual parameter of the unknown vector X. The parameters can be usually classified into several groups according to their physical properties, e.g., position unknowns and clock unknowns; in turn the position unknowns can be classified by stations, and the clock errors can be classified by satellites and receivers, etc. To describe the precision of a group of unknowns, a so-called mean-squares-root precision can be defined as

$$ p_{jJ} = \sqrt {\frac{1}{n}\sum\limits_{i = j}^{J} {p[i]^{2} } } , $$
(9.142)

where j is the first index and J is the last index of the parameters of the discussed group, and n is the total parameter number of the group. Of course, here we assume the parameters are ordered in groups. Putting Eq. 9.141 into above, one has

$$ p_{jJ} = \frac{{m_{0} }}{\sqrt n }{\text{DOP}},\quad {\text{DOP}} = \sqrt {\sum\limits_{i = j}^{J} {Q[i][i]} } , $$
(9.143)

where DOP is the shortening of the Dilution of Precision factor. So we see that the DOP factor is a very important factor to describe the precision of a group of parameters that are the same type. Supposing in the unknown vector X[i], i = 1, 2, 3 are coordinate x, y, z of a receiver, and i = 4 is the receiver clock error , then the Position DOP (PDOP) is defined by j = 1, J = 3 in Eq. 9.143, and the Time DOP (TDOP) is defined by j = J = 4 in Eq. 9.143. The Geometric DOP (GDOP) is defined by j = 1, J = 4 in Eq. 9.143 (cf. Hofmann-Wellenhof et al. 1997). For the case of multiple stations, the definition can be similarly extended.

The PDOP is a factor that indicates the factor of precision of the position. Quite often, one would prefer to express the position precision in a local coordinate system , i.e. in horizontal and vertical components. Recalling the relation between the global and local coordinates (cf. Sect. 2.3), there are

$$ X_{\text{local}} = RX_{\text{global}} ,\quad {\text{and}}\quad X_{\text{global}} = RTX_{\text{local}} , $$
(9.144)

where X local and X global are identical vectors represented in local and global coordinate systems. R is the rotation matrix given in Eq. 2.11. According to the covariance propagation theorem, one has then

$$ Q_{\text{local}} = RQ_{\text{global}} R^{\text{T}} ,\quad {\text{and}}\quad Q_{\text{global}} = RTQ_{\text{local}} R, $$
(9.145)

where Q global is the sub-matrix of Q, which is related to the coordinates part. Supposing in the unknown vector X local[i], i = 1, 2, 3 are coordinates of horizontal x, y, and vertical z of a receiver, then the Horizontal Dilution of Precision (HDOP) and Vertical Dilution of Precision (VDOP) are defined as

$$ {\text{HDOP}} = \sqrt {\sum\limits_{i = 1}^{2} {Q_{\text{local}} [i][i]} } ,\quad {\text{and}}\quad {\text{VDOP}} = \sqrt {\sum\limits_{i = 3}^{3} {Q_{\text{local}} [i][i]} } . $$
(9.146)

For many stations, the definition can be similarly given.

9.7 Introduction to the Real-Time Positioning System

Nowadays, real-time positioning is a hotspot in the GNSS field. Two of the main methods for precise real-time positioning, Network RTK (NRTK) and PPP-RTK, are introduced in this section.

9.7.1 Network RTK

In the traditional RTK a single reference station is used, and the rover station needs to work within a short range from the reference station because of the distance limit of radio communication and the spatial decorrelation of distance-dependent errors caused by the orbital ionosphere and troposphere errors. Thus, the operating area of RTK positioning is dependent on the atmospheric conditions and is usually limited to a distance of 10–20 km. Network RTK (NRTK) is a method that can overcome the restraint of the limited range of classic RTK. The range of each station in network is usually less than 100 km, and each reference station sends the observations to a processing centre, where the observations are processed with a network adjustment and both errors and corrections of observation are computed. Then the observation corrections are sent to the users through a satellite link or the Internet. Users in the coverage area of the network can mitigate their observation errors with these corrections (Mowafy 2012).

The principle of Network RTK begins with all reference stations within the RTK Network continuously streaming satellite observations to a central server running Network RTK software, such as Trimble RTKNet, Leica GNSS Spider, and Geo++. The aim of Network RTK is to minimise the influence of the distance dependent errors on the rovers computed position within the bounds of the network. NRTK usually requires a minimum of three reference stations to generate corrections for the network area. In general there is no restriction concerning the network size, it can be regional, national, or even global.

In principle, the RTK network approach consists of four basic steps (cf. Fig. 9.2): data collection at the reference stations ; manipulation of the data and generation of corrections at the network processing centre; broadcasting the corrections, and finally positioning at the rover using information from the NRTK. In the first step, multiple reference stations simultaneously collect GNSS satellite observations and send them to the control centre where ambiguity fixing is performed. Only observations with fixed ambiguities can be used for the precise modelling of the distance-dependent biases. The rather long distances between each reference station and the requirement to fix the ambiguities in real-time makes this step as the main challenge of Network RTK.

Fig. 9.2
figure 2

Principle of network RTK

Normally, a NRTK server system would consist of the following components (Leica Geo. systems 2011):

  • A station server managed and connected to each reference station receiver.

  • A network server that acquires the data from the station servers and sends it to the processing centre.

  • A cluster server that hosts the network processing software. The software performs several tasks including: quality check of data, apply antenna phase centre corrections, ambiguity fixing, modelling, and estimation of systematic errors, interpolation of errors (corrections) in some techniques (e.g., VRS, PRS) and generation of virtual observations, or model coefficients in other techniques (e.g., FKP, Mac).

  • A firewall is usually established to protect the above servers from being accessed by a user.

  • RTK proxy server to deal with requests from the users and send back network information.

  • The user interface to send/receive data from the NRTK centre.

The most significant advantages of the Network RTK can be summarised as follows:

  • Compared with single reference station RTK, cost and labour are both reduced, as there is no need to set up a base reference station for each user.

  • Accuracy of the computed rover positions are more homogeneous and consistent as error mitigation refers to one processing software, which uses the same functional and stochastic modelling and assumptions and use the same data.

  • Accuracy is maintained over larger distances between the reference stations and the rover.

  • The same area can be covered with fewer reference stations compared to the number of permanent reference stations required using single reference RTK. The separation distances between network stations are tens of kilometres, usually kept less than 100 km.

  • NRTK provides higher reliability and availability of RTK corrections with improved redundancy, such that if one station suffers from malfunctioning a solution can still be obtained from the rest of the reference stations.

  • Network RTK is capable of supporting multiple users and applications.

However, Network RTK has some disadvantages, which are:

  • The cost of subscription with a NRTK provider.

  • The cost of wireless communication with the network (typically via a wireless mobile using for example GPRS technology).

  • The dependence on an external source to provide essential information.

9.7.2 PPP-RTK

PPP is limited in accuracy since the ionosphere-free linear combination is currently mandatory. Accurate ionospheric models are generally not available. Since the ionosphere-free linear combination is not based on integer coefficients and the state information currently does not preserve the integer nature of ambiguities, it is not possible to resolve ambiguities adequately to access the full GNSS carrier phase accuracy levels. Therefore, long integration or observation times are required for PPP. The limitations of PPP can be overcome with RTK (Real-Time Kinematic) networks using state space modelling. These RTK networks can consistently derive all individual GNSS errors in real time. The atmospheric GNSS effects are modelled and state information is also present for ionosphere and troposphere. The complete state information is ready for distribution to users in real time. So users are capable to resolve ambiguities and to achieve the known RTK accuracy level. This concept of precise point positioning enabling ambiguity resolution is PPP-RTK (Wübbena et al. 2005).

In a PPP mode, un-differenced observations are used and the satellite related errors are reduced by using precise satellite clock corrections and employing precise orbits to avoid the orbital errors. These precise satellite products are normally provided from a processing centre analysing global data such as the International GNSS Service (IGS) . Since only one receiver is used in PPP, the ambiguities are solved as part of the unknowns with float numbers and not fixed. As a result, several minutes of data are needed when processing to achieve a reliable convergence of the solution. As the ambiguities are solved as float numbers, the PPP accuracy can only reach at the level of sub-decimetre. However, it is possible to integrate PPP and NRTK into a seamless positioning service, which can provide an accuracy of a few centimetres. The concept of PPP-RTK is to augment PPP estimation with precise un-differenced atmospheric corrections and satellite clock corrections from a reference network, so that instantaneous ambiguity fixing is available for users within the network coverage.