# The Implementation of Precise Point Positioning (PPP): A Comprehensive Review
## 3 PPP Models
### Standard PPP  
The standard PPP model is constructed based on IF combinations of DF GNSS pseudorange and carrier-phase measurements, employing float-ambiguity resolution [63]. The IF observations of a GNSS satellite can be obtained using (1), (27), and (28)  
\[P_{IF} =\rho^{\prime}+c(dt^{\prime}-dt^{\prime})+b^{\prime}_{P_{IF}}-b^{ \prime}_{P_{IF}}+T-v+PCV^{s}_{IF}+APC^{r}_{IF}+\epsilon_{P_{IF}} \tag{32}\] \[\Phi_{IF} =\rho^{\prime}+c(dt^{\prime}-dt^{\prime})+b^{\prime}_{\Phi_{IF}}- b^{\prime}_{\Phi_{IF}}+T-v+PCV^{s}_{IF}+APC^{r}_{IF}+\lambda_{IF}N_{IF}\] \[\qquad+\frac{\lambda_{w_{IF}}}{2\pi}\phi_{w}+\epsilon_{\Phi_{IF}} \tag{33}\]  
These equations demonstrate that IF combinations maintain the values of frequency-independent quantities, such as geometric range and tropospheric delay, while altering the frequency-dependent terms. The IF wavelength \(\lambda_{IF}\) of two combined signals with frequencies \(f_{A}\) and \(f_{B}\) can be calculated using [74]  
\[\lambda_{IF}=\frac{\lambda_{A}\lambda_{B}}{i_{A}\lambda_{B}+i_{B}\lambda_{A}} \tag{34}\]  
where \(i_{A}\) and \(i_{B}\) are two integers satisfying \(i_{A}/i_{B}=-f_{A}/f_{B}\). For example, for the GPS L1 and L2 frequencies, \(i_{A}=77\) and \(i_{B}=-60\) result in \(\lambda_{IF}\approx 6.3\) mm. For GLONASS, \(i_{A}=9\) and \(i_{B}=-7\) result in \(\lambda_{IF}\approx 5.3\) cm for channel 0 (the central frequency of GLONASS FDMA channels). On the other hand, the wavelength of the phase wind-up term \(\lambda_{w_{IF}}\) is directly computed as  
\[\lambda_{w_{IF}}=\alpha_{IF}\lambda_{A}+\beta_{IF}\lambda_{B}=\frac{c}{f_{A}+f _{B}} \tag{35}\]  
The satellite clock corrections, derived from precise or broadcast ephemeris, are generated relative to a reference GNSS signal. For example, the clock reference is the IF P1/P2 code observations in GPS and GLONASS. The satellite code biases \(b^{s}_{P_{IF}}\) for this combination are incorporated into these corrections. In the standard PPP model, the IF code satellite clock correction \(dt^{s}_{PI_{IE}}\) can be applied directly to both code and carrier-phase observations as long as integer ambiguity resolution is not required. The same concept can be applied to the receiver clock term, where the code clock term \(dt^{r}_{PI_{IE}}\) is employed. The float-ambiguity term \(A_{IF}\) absorbs the difference between phase and code biases. Thus, for GPS, the IF observations can be rewritten as  
\[P_{IF} =\rho^{\prime}+c(dt^{r}_{PI_{IE}}-dt^{s}_{PI_{IF}})+T-v+PCV^{s}_{IF} +APC^{r}_{IF}+\epsilon_{PI_{IF}} \tag{36}\] \[\Phi_{IF} =\rho^{\prime}+c(dt^{r}_{PI_{IF}}-dt^{s}_{PI_{IF}})+T-v+PCV^{s}_{IF} +APC^{r}_{IF}+\lambda_{IF}A_{IF}+\frac{\lambda_{up_{IE}}}{2\pi}\phi_{w}+\epsilon _{\Phi_{IF}} \tag{37}\]  
where  
\[A_{IF}=N_{IF}+\frac{(b^{r}_{\Phi_{IF}}-b^{r}_{PI_{IF}})-(b^{s}_{\Phi_{IF}}-b^{ s}_{PI_{IF}})}{\lambda_{IF}} \tag{38}\]  
Finally, the PPP observations are corrected using the error models in Section 2 and the network precise corrections. The correction is performed as follows:  
\[P_{IF_{corr}} =P_{IF}+c(dt^{s}_{PI_{IF}})-M_{h}Z_{h}+v-PCV^{s}_{IF}-APC^{r}_{IF}\] \[=\rho+cdt^{r}_{PI_{IF}}+M_{w}Z_{w}+\epsilon_{PI_{IF}} \tag{39}\] \[\Phi_{IF} =\rho^{\prime}+c(dt^{\prime}-dt^{\prime})+b^{\prime}_{\Phi_{IF}}- b^{\prime}_{\Phi_{IF}}+T-v+PCV^{s}_{IF}+APC^{r}_{IF}+\lambda_{IF}N_{IF}\]0 \[\Phi_{IF} =\rho^{\prime}+c(dt^{\prime}-dt^{\prime})+b^{\prime}_{\Phi_{IF}}- b^{\prime}_{\Phi_{IF}}+T-v+PCV^{s}_{IF}+APC^{r}_{IF}+\lambda_{IF}N_{IF}\]1  
The system of equations in (39) and (40) is used to estimate the PPP positioning solution. The unknowns include three position states, the receiver clock error, the wet tropospheric delay, and float ambiguities (one per satellite). For other GNSSs, the ISB term has to be added separately to the previous equations because it cannot be lumped into the receiver clock. An example of a Multi-GNSS is GPS/GLONASS PPP, which is employed in the experimental results in Section 4.