If you wish to contribute or participate in the discussions about articles you are invited to contact the Editor

PPP Fundamentals

From Navipedia
Revision as of 15:44, 18 December 2021 by Forrest.Voight (talk | contribs) (added missing plus sign)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Title PPP Fundamentals
Edited by GMV
Level Basic
Year of Publication 2011
Logo GMV.png

Precise Point Positioning (PPP) is a global precise positioning service using all the available GNSS constellations. PPP requires the availability of precise reference satellite orbit and clock products using a network of GNSS reference stations distributed worldwide. Combining the precise satellite positions and clocks with a dual-frequency GNSS receiver, PPP is able to provide position solutions at centimeter level. Accuracy performance can be even better, e.g., sub-centimeter level, in post-processing and in static mode.[1]

PPP Algorithm

The PPP algorithm uses as input both code and phase observations from a dual-frequency receiver. These are then combined with precise satellite orbits/clocks and with additional very accurate error models in order to calculate precise receiver coordinates and clock. The dual frequency observables are used un-differenced and combined into the so-called ionosphere-free combination, which allows for the removal of the first order effect of the ionosphere. The highlights of the algorithm are described next. Traditionally, L1 and L2 observables have been used for the PPP ionosphere-free combination in GPS. However, as modernized GPS and Galileo provide carrier-phase observables also in the L5/E5 frequency bands, the following mathematical details have been described for two generic carrier frequencies [math]\displaystyle{ f_A }[/math] and [math]\displaystyle{ f_B }[/math]. At a given epoch, and for a given satellite, the simplified observation equations are presented next:

[math]\displaystyle{ l_P = \rho + c(b_{Rx} - b_{Sat}) + T_r + \varepsilon_P }[/math]
[math]\displaystyle{ l_\phi =\rho + c(b_{Rx}-b_{Sat} )+T_r+ N\lambda + \varepsilon_\phi }[/math]


  • [math]\displaystyle{ l_P }[/math] is the ionosphere-free combination of [math]\displaystyle{ f_A }[/math] and [math]\displaystyle{ f_B }[/math] pseudoranges [math]\displaystyle{ l_{P,A} }[/math] and [math]\displaystyle{ l_{P,B} }[/math], respectively, as:
[math]\displaystyle{ l_P = (f_A^2 l_{P,A} - f_B^2 l_{P,B}) / (f_A^2 - f_B^2) }[/math]
  • [math]\displaystyle{ l_\phi }[/math] is the ionosphere-free combination of [math]\displaystyle{ f_A }[/math] and [math]\displaystyle{ f_B }[/math] carrier-phase measurements [math]\displaystyle{ l_{ϕ,A} }[/math] and [math]\displaystyle{ l_{ϕ,B} }[/math], respectively, as:
[math]\displaystyle{ l_\phi = (f_A^2 l_{\phi,A} - f_B^2 l_{\phi,B}) / (f_A^2 - f_B^2) }[/math]
  • [math]\displaystyle{ \rho }[/math] is the geometrical range between the satellite and the receiver, computed as a function of the satellite ([math]\displaystyle{ x_{Sat} }[/math],[math]\displaystyle{ y_{Sat} }[/math],[math]\displaystyle{ z_{Sat} }[/math]) and receiver ([math]\displaystyle{ x_{Rx} }[/math],[math]\displaystyle{ y_{Rx} }[/math],[math]\displaystyle{ z_{Rx} }[/math]) coordinates as:
[math]\displaystyle{ \rho = \sqrt{(x_{Sat} - x_{Rx})^2 + (y_{Sat} - y_{Rx})^2 + (z_{Sat} - z_{Rx})^2} }[/math]
  • [math]\displaystyle{ b_{Rx} }[/math] is the receiver clock offset from the reference GNSS time;
  • [math]\displaystyle{ b_{Sat} }[/math] is the satellite clock offset from the reference GNSS time;
  • [math]\displaystyle{ c }[/math] is the vacuum speed of light;
  • [math]\displaystyle{ T_r }[/math] is the signal path delay due to the troposphere;
  • [math]\displaystyle{ \lambda }[/math] is the combination of the wavelengths corresponding to the frequency carriers [math]\displaystyle{ f_A }[/math] and [math]\displaystyle{ f_B }[/math];
  • [math]\displaystyle{ N }[/math] is the ambiguity of the carrier-phase ionosphere-free combination (it is not an integer number);
  • [math]\displaystyle{ \varepsilon_P }[/math] and [math]\displaystyle{ \varepsilon_\phi }[/math] are the measurement noise components, including multipath and other effects.

The above observations coming from all the satellites in view are processed together by adjustment and filtering algorithms that solve for the different unknowns, namely the receiver coordinates, the receiver clock, the Zenith Tropospheric Delay (ZTD) and the initial phase ambiguities.

Most implementations of PPP algorithms are based on the sequential filtering of the available pseudorange and carrier-phase observables (e.g., by a least-square or a Kalman filter approach). In this case, the process noise for the coordinates is adjusted depending on the receiver dynamics, the time evolution of the clock is more or less unconstrained (white noise with a high sigma), and the process noise for the tropospheric delay is adjusted to standard tropospheric activity. Concerning phase ambiguities, they are considered as a constant per pass.

Other implementations feature a batch algorithm instead, and therefore no process noise has to be modeled. In this case, the receiver clock offset is estimated at every measurement epoch, the coordinates are adjusted for all the observation interval (static mode) or per epoch (kinematic mode), the troposphere is estimated at regular fixed intervals and the ambiguities are also estimated per pass. PPP algorithms based on batch adjustment are generally less efficient than those based on sequential adjustment, as they have to process a larger amount of data (especially for a large number of un-differenced observations).

PPP Correction Models and Performance Driving Factors

In order to achieve the expected centimeter-level accuracy, PPP relies on very accurate error models that are not generally required when processing pseudorange observables for meter-level accuracy positioning. For instance, these models include an accurate estimation of the slant tropospheric delay [math]\displaystyle{ T_r }[/math], which is expressed as a function of the ZTD (this parameter is actually estimated in PPP) through the use of accurate mapping functions such as the Vienna Mapping Function 1 (VMF1[2]). In addition to that, higher-order ionospheric delay corrections need to be considered as well. The precise modeling of Earth dynamics, which causes variations of the static receiver coordinates with respect to the terrestrial reference frame, is normally based on the International Earth Rotation and Reference Systems Service(IERS) recommendations [3]. For the required PPP precision, the latter should also comprise the effect of solid Earth tides, ocean loading and Earth rotation. Furthermore, the modeling of the observables needs to include the offset between the antenna phase center and the satellite center of mass, as well as the so-called phase wind-up at the receiver. Finally, differential code biases corrections also need to be taken into consideration in the observation model (see PPP Standards).

The accuracy of the satellite clocks and orbits is one of the most important factors affecting the quality of the PPP Solution. Traditionally, the International GNSS Service (IGS) products were used due to their high accuracy, mainly for post-processed PPP solutions [4]. Nowadays, there exists a variety of providers achieving similar accuracy performance for both post-processed and real-time PPP implementations (see PPP Systems).

Another relevant factor that affects PPP performances is the amount (number of satellites in view at each epoch) and quality (noise, multipath) of the observations. For instance, more satellites in view improve the observability of the zenith tropospheric delay. Therefore, a possible way to increase the reliability of this technique is to jointly process observations coming from all the available constellations (GPS, Galileo, GLONASS, QZSS, etc.).

Given that PPP is not based on a differential approach, it cannot inherently resolve carrier-phase ambiguities, which in turn need to be estimated with the aid of code measurements. This makes the initial convergence period of conventional PPP longer as compared with other techniques (RTK, for instance), thus requiring longer observation times for static positioning. Nevertheless, recently, much research efforts have been devoted to the investigation and development of novel techniques addressing this issue. These ambiguity resolution techniques (e.g., based on decoupled clocks, pseudorange or carrier-phase biases corrections, etc.) generally require external information to identify and isolate the integer contribution of the carrier-phase ambiguities [5]. In this way, PPP algorithms with ambiguity resolution are capable to achieve few-centimeters accuracy in about 15 minutes or even less [6]. Another possibility is to abandon the dual-frequency ionospheric-free combination in favor of the application of ionospheric corrections onto the original measurements relying on external a priori information. This approach, which is similar to the RTK concept, enables to shorten even more the initial convergence time, if not to completely eliminate it [7].

Related Articles


  1. ^ M.D. Laínez Samper et al, Multisystem real time precise-point-positioning, Coordinates, Volume VII, Issue 2, February 2011
  2. ^ J. Boehm, et al: Troposphere mapping functions for GPS and very long baseline interferometry from European centre for medium-range weather forecasts operational analysis data, J. Geophys. Res. 111(B02406), 1–9 (2006)
  3. ^ International Earth Rotation and Reference Systems Service (IERS)
  4. ^ International GNSS Service (IGS)
  5. ^ GPSworld: Clarifying the ambiguities, 2016
  6. ^ GPSworld: Examining precise point positioning now and in the future,2018
  7. ^ Kouba, Jan (et al.), Precise Point Positioning, Chapter 25, Handbook of Global Navigation Satellite Systems, 2017