In this section, the rank-deficient system of GPS observation equations is taken as a starting point, and then the two PPP models are presented (i.e., original and modified), focusing mainly on developing the functional model and interpreting the estimable parameters.

### GPS observation equations

Let us consider a scenario where \(m\) satellites, transmitting signals on \(f\) frequencies, are tracked by a single receiver over \(t\) epochs. Under this scenario, the system of observation equations has the following form (Leick et al. 2015),

$$\begin{aligned} & p_{r,j}^{s} \left( i \right) = l_{r}^{s} \left( i \right) + m_{r}^{s} \tau_{r} \left( i \right) + \text{d}t_{r} \left( i \right) - \text{d}t^{s} \left( i \right) + \mu_{j} \iota_{r}^{s} \left( i \right) + d_{r,j} - d_{j}^{s} \\ & \phi_{r,j}^{s} \left( i \right) = l_{r}^{s} \left( i \right) + m_{r}^{s} \tau_{r} \left( i \right) + \text{d}t_{r} \left( i \right) - \text{d}t^{s} \left( i \right) - \mu_{j} \iota_{r}^{s} \left( i \right) + a_{r,j}^{s} \\ \end{aligned}$$

(1)

with \(r\), \(s = 1, \ldots, m\), \(j = 1, \ldots, f\) and \(i = 1, \ldots, t\) being the receiver, satellite, frequency and epoch indices, respectively, and where \(p_{r,j}^{s} \left( i \right)\) and \(\phi_{r,j}^{s} \left( i \right)\) denote, respectively, the code and phase observables, \(l_{r}^{s} \left( i \right)\) the receiver-satellite range, \(\tau_{r}^{{}} \left( i \right)\) the zenith troposphere delay and \(m_{r}^{s}\) the corresponding troposphere mapping function, \(\text{d}t_{r} \left( i \right)\) and \(\text{d}t^{s} \left( i \right)\) the receiver and satellite clock offsets, \(d_{r,j}\) and \(d_{,j}^{s}\) the frequency-dependent receiver and satellite code biases, \(\iota_{r}^{s} \left( i \right)\) the (first-order) slant ionosphere delay on the first frequency (\(\mu_{j} = {{\lambda_{j}^{2} } \mathord{\left/ {\vphantom {{\lambda_{j}^{2} } {\lambda_{1}^{2} }}} \right. \kern-\nulldelimiterspace} {\lambda_{1}^{2} }}\)) and \(a_{r,j}^{s}\) the (non-integer) ambiguity with \(\lambda_{j}\) the wavelength of frequency \(j\). Note that all quantities are in unit of range, and the time-constant parameters do not have an epoch index \(i\).

For positioning purposes the primary parameter of interest is the three-dimensional receiver position vector. To employ the least squares adjustment one needs to linearize the above observation equations. The linearized form of Eq. (1) is as follows (Teunissen and Kleusberg 2012):

$$\begin{aligned} & \Delta p_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r} \left( i \right) + \text{d}t_{r} \left( i \right) + \mu_{j} \iota_{r}^{s} \left( i \right) + d_{r,j} - d_{j}^{s} + d_{IF}^{s} \\ & \Delta \phi_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r} \left( i \right) + \text{d}t_{r} \left( i \right) - \mu_{j} \iota_{r}^{s} \left( i \right) + a_{r,j}^{s} + d_{IF}^{s} \\ \end{aligned}$$

(2)

where \(\Delta p_{r,j}^{s} \left( i \right)\) and \(\Delta \phi_{r,j}^{s} \left( i \right)\) are the code and phase observables that are corrected for the approximate receiver-satellite ranges and the satellite clocks. Note that the satellite positions and clocks computed using the IGS final products are not part of the parameters, and the receiver coordinates are fixed to the values in the IGS Solution Independent Exchange (SINEX) product and do not need to be estimated. Also the derived model shall not change if one further considers the receiver positions as unknown parameters. The ionosphere-free satellite code bias, \(d_{,IF}^{s}\), appears in both code and phase observations, because of its presence in the introduced satellite clocks (Zumberge et al. 1997b).

In the following two sections, only the dual-frequency case is considered (that is, \(f = 2\)) to keep the presentation of the functional model as simple as possible.

### The original version of PPP

Equation (2) represents a rank-deficient system, implying that some of the parameters are not unbiased estimable, but only combinations of them. This becomes clearer if we write (Zhang et al. 2012),

$$d_{r,j} - d_{j}^{s} + d_{IF}^{s} = d_{r,IF} + \mu_{j} d_{r,GF} - \mu_{j} d_{GF}^{s}$$

(3)

with \(d_{r,IF}\) the ionosphere-free receiver code bias, \(d_{r,GF}\) and \(d_{,GF}^{s}\) the geometry-free receiver and satellite code biases. It then follows, \(d_{r,IF}\) is not separable from \(dt_{r} \left( i \right)\), and the \(\iota_{r}^{s} \left( i \right)\), \(d_{r,GF}\) and \(d_{,GF}^{s}\) are not separable from one another. The idea is therefore to reduce the number of parameters by lumping some of them together. For instance, with the lumped parameters,

$$\begin{aligned} & \text{d}\overline{t}_{r} \left( i \right) = \text{d}t_{r} \left( i \right) + d_{r,IF} \\ & \overline{\iota }_{r}^{s} \left( i \right) = \iota_{r}^{s} \left( i \right) + d_{r,IF} - d_{GF}^{s} \\ \end{aligned}$$

(4)

the code observation equation is of full-rank and reads,

$$\Delta p_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r}^{{}} \left( i \right) + \text{d}\overline{t}_{r} \left( i \right) + \mu_{j} \overline{\iota }_{r}^{s} \left( i \right)$$

(5)

with \(\text{d}\overline{t}_{r} \left( i \right)\) the biased receiver clock and \(\overline{\iota }_{r}^{s} \left( i \right)\) the biased slant ionosphere delay in (4).

Inserting \(\text{d}\overline{t}_{r} \left( i \right)\) and \(\overline{\iota }_{r}^{s} \left( i \right)\) into the phase observation equation and lumping \(a_{r,j}^{s}\) with \(d_{,IF}^{s}\), we eliminate the rank deficiency and then obtain

$$\Delta \phi_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r}^{{}} \left( i \right) + \text{d}\overline{t}_{r} \left( i \right) - \mu_{j} \overline{\iota }_{r}^{s} \left( i \right) + \overline{a}_{r,j}^{s}$$

(6)

with

$$\overline{a}_{r,j}^{s} = a_{r,j}^{s} + \left( {d_{IF}^{s} - d_{r,IF} } \right) - \mu_{j} \left( {d_{GF}^{s} - d_{r,GF} } \right)$$

(7)

being the biased ambiguity.

Equations (5) and (6) represent the full-rank functional model for the original PPP, in which all estimable parameters are interpreted by Eqs. (4) and (7). Recall that it is a common practice to use the (recursive) least-squares estimator to solve for the parameters. Bearing this in mind, a few remarks on the effects of time-varying receiver code biases are thus in order. Firstly, the time-constant of \(\overline{a}_{r,j}^{s}\), an implicit assumption made to exploit the very precise phase observable, becomes invalid. This, in turn, can introduce larger errors in comparison with the formal errors of all parameters. Secondly, the use of \(\text{d}\overline{t}_{r} \left( i \right)\) for timing and time transfer can be susceptible to batch boundary discontinuities (Collins et al. 2010; Defraigne and Bruyninx 2007), because time averaging of \(d_{r,IF}\) induces clock datum changes between batches. The variability of \(d_{r,IF}\), which does not average out to zero, limits the use of \(\text{d}\overline{t}_{r} \left( i \right)\) for frequency transfer, inducing worse frequency stability than one would expect theoretically (Bruyninx et al. 1999). Thirdly, when using the thin-layer ionosphere model for determining vertical TEC from \(\overline{\iota }_{r}^{s} \left( i \right)\), a temporal variation of \(d_{r,GF}\) is partially responsible for the occurrence of the model error effects (Brunini and Azpilicueta 2009).

### The modified version of PPP

Let us consider again Eq. (2), but replace \(d_{r,j}\) by \(d_{r,j} \left( i \right)\), implying that the receiver code bias is allowed to vary freely over time. Thus

$$\begin{aligned} & \Delta p_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r} \left( i \right) + \text{d}t_{r} \left( i \right) + \mu_{j} \iota_{r}^{s} \left( i \right) + d_{r,j} \left( 1 \right) + \tilde{d}_{r,j} \left( i \right) - d_{j}^{s} + d_{IF}^{s} \\ & \Delta \phi_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r} \left( i \right) + \text{d}t_{r} \left( i \right) - \mu_{j} \iota_{r}^{s} \left( i \right) + a_{r,j}^{s} + d_{IF}^{s} \\ \end{aligned}$$

(8)

where

$$d_{r,j} \left( i \right) = d_{r,j} \left( 1 \right) + \tilde{d}_{r,j} \left( i \right)$$

(9)

with \(\tilde{d}_{r,j} \left( i \right) = d_{r,j} \left( i \right) - d_{r,j} \left( 1 \right)\).

Note that if the \(\tilde{d}_{r,j} \left( i \right)\) is ignored, the (rank-deficient) design matrix of Eq. (8) turns out to be the same as that of Eq. (2). In the following \(\tilde{d}_{r,j} \left( i \right)\) is assumed as a time-varying parameter. But there will be a rank deficiency between \(\text{d}t_{r} \left( i \right)\), \(d_{r,j} (i)\) and \(a_{r,j}^{s}\) parameters. The receiver code biases at the first epoch are chosen as datum to eliminate the rank deficiency, thus the estimated \(\tilde{d}_{r,j} \left( i \right)\) are the variations of receiver code bias with respect to the first epoch, see Eq. (9). As for other parameters, the procedures described in the preceding subsection are closely followed to overcome the rank deficiency problem, thereby yielding

$$\begin{aligned} & \Delta p_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r} \left( i \right) + \tilde{d}{t}_{r} \left( i \right) + \mu_{j} \tilde{\iota }_{r}^{s} \left( i \right) + \tilde{d}_{r,j} \left( i \right) \\ & \Delta \phi_{r,j}^{s} \left( i \right) = m_{r}^{s} \tau_{r} \left( i \right) + \tilde{d}{t}_{r} \left( i \right) - \mu_{j} \tilde{\iota }_{r}^{s} \left( i \right) + \tilde{a}_{r,j}^{s} \\ \end{aligned}$$

(10)

with

$$\begin{aligned} & \tilde{{d}}{t}_{r} \left( i \right) = dt_{r} \left( i \right) + d_{r,IF} \left( 1 \right) \\ & \tilde{\iota }_{r}^{s} \left( i \right) = \iota_{r}^{s} \left( i \right) + d_{r,GF} \left( 1 \right) - d_{GF}^{s} \\ & \tilde{a}_{r,j}^{s} = a_{r,j}^{s} + \left[ {d_{IF}^{s} - d_{r,IF} \left( 1 \right)} \right] - \mu_{j} \left[ {d_{GF}^{s} - d_{r,GF} \left( 1 \right)} \right] \\ \end{aligned}$$

(11)

where a tilde marks the biased, but estimable parameters. Note the difference to the estimable parameters in Eqs. (5) and (6).

Equation (10) is a full-rank system, representing the full-rank functional model constructed for the modified PPP. Note that, the estimable receiver code biases \(\tilde{d}_{r,j} \left( i \right)\) only appear in the observation equations at the second epoch and beyond, i.e., \(i \ge 2\), for those at the first epoch get lumped with the parameters given in Eq. (11). The estimability of \(\tilde{d}_{r,j} \left( i \right)\) implies that any temporal variations in receiver code biases shall fully enter into \(\tilde{d}_{r,j} \left( i \right)\), and thus have no negative impacts on the estimation of remaining parameters.