Professional Documents
Culture Documents
Introduction
Precise point positioning (PPP) is an innovative modelling and processing approach with which
one can compute positions with high accuracy anywhere on the globe using a single GNSS
receiver. It is another version of GNSS pseudo-range navigation with a slight difference. Here the
broadcast satellite orbits and clocks are replaced with precise estimates‚ and the Pseudo range
data is combined with the very precise carrier-phase observations. Moreover, usually two
frequencies are used in order to be able to eliminate the ionospheric delays. The precise orbits
and clocks are downloaded or obtained in real-time from a number of service providers, using
either the Internet or satellite links. PPP provides, in addition to accurate positioning solutions,
as well as accurate receiver clocks and tropospheric delay. To take advantage of the high PPP
accuracy, careful modelling of the local stations and environmental effects is required. Since PPP
does not rely on combining observations with simultaneous measurements from reference
stations, it offers greater operational flexibility and is suited for areas that lack dense GNSS
network infrastructure [1].
To delve deeper into this topic, in this exercise, we try to estimate the user position, receiver
clock error, zenith wet delay, and ambiguities from a given set of data—using both pre-
eliminations back substitution and one-step (batch) Least Squares Adjustment method.
Data
The given data contains Ionosphere free Pseudo range observation (IFCOMC), Ionosphere free
carrier phase observation (IFPOMC), satellite positions as (SATPOS), receiver coordinates as
(XYZ), and troposphere mapping function (MFW) with all units in meter. Elevation angle and
azimuth are given in radians. The data recorded is from the Javad TRE-G3T receiver which only
contains GPS satellite’s data with a 24h duration and 30s rate. In this exercise, we only deal with
4h of observation data which is sufficient to achieve centimetric level accuracy.
Methods
The computational part of the task was implemented in MATLAB. The commented code that
was written as a part of this exercise is presented as a mat file.
In the first step, one-step least square method is used to estimate the unknowns. As stated,
before these unknowns are receiver coordinates (XA, YA, ZA), atmospheric zenith wet delay
(ZWDA) receiver clock error(𝛿𝑡𝐴), and ambiguities (𝑏𝐴). Since we use both code and phase
observations there is no need to take Ionosphere correction into account (Ionosphere-free
linear combination).
In order to compute the aforementioned unknowns, we need a functional model that relates
these unknowns to the observations. The non-linear equations below with 𝜌𝐴𝑘 geometrical
distance between receiver (A) and satellite (k), Pseudo range observation equation(𝑃𝐴𝑘), and
carrier phase observation(𝐿𝐴𝑘) are what we need.
𝜌𝐴𝑘(𝑡,𝑡−𝜏) = Sqrt(𝑋𝑘(𝑡−𝜏)−𝑋𝐴(𝑡)2+𝑌𝑘(𝑡−𝜏)−𝑌𝐴(𝑡)2+𝑍𝑘(𝑡−𝜏)−𝑍𝐴(𝑡)2) ………………….. (1)
𝑃𝐴𝑘 = 𝜌𝐴𝑘(𝒙𝐴,𝒙𝑘)+𝑐(𝛿𝑡𝐴−𝛿𝑡𝑘)+𝑚𝑓𝐴𝑘𝑍𝑊𝐷𝐴+𝑒𝐴𝑘 ………………….. (2)
𝐿𝐴𝑘 = 𝜌𝐴𝑘(𝒙𝐴,𝒙𝑘)+𝛿(𝛿𝑡𝐴−𝛿𝑡𝑘)+𝑚𝑓𝐴𝑘𝑍𝑊𝐷𝐴+𝑏𝐴+𝑒𝐴𝑘… ………………….. (3)
Since our functional model is non-linear, we first have to linearize it using Taylor series expansion.
𝜕𝑓
AΔx = Δl ………………….. (4) 𝐴=[ ] ………………….. (5)
𝜕𝑥
Partial derivatives of the observation equation with respect to each parameter takes this form,
𝜕𝑃𝐴𝑘 𝜕𝑃𝐴𝑘
= −(𝑋 𝑘 − 𝑋𝐴 )/𝜌𝐴𝑘 =1
𝜕𝑋𝐴 𝜕𝛿𝑡𝑗
𝜕𝐿𝑘𝐴 𝜕𝐿𝑘𝐴
= −(𝑋 𝑘 − 𝑋𝐴 )/𝜌𝐴𝑘 =1
𝜕𝑋𝐴 𝜕𝛿𝑡𝑗
𝜕𝑃𝐴𝑘 𝜕𝑃𝐴𝑘
= −(𝑌 𝑘 − 𝑌𝐴 )/𝜌𝐴𝑘 = 𝑚𝑓𝑖
𝜕𝑌𝐴 𝜕𝑍𝑊𝐷
𝜕𝐿𝑘𝐴 𝜕𝐿𝑘𝐴
= −(𝑌 𝑘 − 𝑌𝐴 )/𝜌𝐴𝑘 = 𝑚𝑓𝑖
𝜕𝑌𝐴 𝜕𝑍𝑊𝐷
𝜕𝑃𝐴𝑘 𝜕𝑃𝐴𝑘
= −(𝑍 𝑘 − 𝑍𝐴 )/𝜌𝐴𝑘 =0
𝜕𝑍𝐴 𝜕𝑏𝐴𝑘
−1 −1 𝑇 −1
𝑄22 (𝑡𝑗 ) = 𝑁22 (𝑡𝑗 ) + 𝑁22 (𝑡𝑗 )𝑁12 (𝑡𝑗 )𝑄11 𝑁12 (𝑡𝑗 ) (𝑛2 (𝑡𝑗 )) 𝑁22 (𝑡𝑗 ) ………………….. (29)
The formulae below give standard deviation of topocentric coordinates both in static and
kinematic mode,
2 2 2
𝜎𝑁𝑁 𝜎𝑁𝐸 𝜎𝑁𝑈
𝑄𝑡𝑜𝑝𝑜 2
= [ 𝜎𝐸𝑁 2
𝜎𝐸𝐸 2
𝜎𝐸𝑈 ] = 𝑅𝑄𝐸𝐶𝐸𝐹 𝑅 𝑇 ………………….. (31)
2 2 2
𝜎𝑈𝑁 𝜎𝑈𝐸 𝜎𝑈𝑈
Results and Discussion
Task 1a
As it can be seen from Figure 1 during the four hours of observation the number of visible
satellites fluctuate from epoch to epoch, and this reaches a maximum of 17 visible satellites in
this period of observation. The reason behind this is the curvature of the earth (when the
satellites are on the other side of the earth, we can’t see them) or maybe some other obstructions
that block the signal from reaching the receiver, and thus no data is available for that period of
time.
Figure 2 DOP values
From time to time it is of great importance to have a measure of the accuracy of the data used
to describe the strength of the current satellite configuration, or geometry, collected by a GPS or
GNSS receiver at the time of use. This measure is nothing but Dilution of Precision (DOP). With
GPS receivers, when satellites are grouped together in the same general area of the sky, the
satellite geometry is considered to be weak (higher DOP value). When satellites are evenly
spread throughout the sky, their geometry is considered strong (lower DOP value) [2]. As Figure
2 shows, the DOP values for some epochs are less than 1 which represents the confidence level
to be used for applications demanding the highest possible precision at all times. We also have
values between 1-2, meaning we have excellent data quality while in some epochs the data
quality can only be considered good (DOP values between 2 and 5). Interestingly, we can see
some jumps in the DOP values the reason for these jumps are the satellites that are raising and
going down the horizon.
Task 1b
We have set up the design matrices for PPP: one for the whole 4 hours for the least square
approach and epoch wise for pre-elimination and back substitution approach. (The code for this
part can be found in the mat file).
The difference between static and kinematic mode is that in kinematic we compute the receiver
coordinates for each epoch while in the static mode we will compute only one set of coordinates
during the whole observation period. It is also worth mentioning that the quality of estimation is
directly related to the duration of the observation. Yet we can’t deny that we can do PPP for a
single epoch but the result will be inaccurate due to all the errors accumulated because we are
solely depending on the measurements of a single epoch. Zenith wet delay and receiver clock
error are highly correlated in this case.
Task 1c
The stochastic model (cofactor matrix, Qll = P-1) was set based on the elevation of the satellites
and the standard deviations of carrier and phase signals. Just one weight matrix was calculated
for the entire observation period for LSA, but for pre-elimination and back substitution, a weight
matrix was calculated for each epoch. (The code for this part can be found in the mat file)
Task 1d
After setting up the functional and stochastic model, solutions (∆𝑥) were computed for the
unknown parameters using LSA (Least Square Adjustment) approach. We get 17 ambiguities, 4
ZWD values for each hour, one set of coordinates for static, 480 sets of coordinates for kinematic
and 480 receiver clock errors. Our existing values were adjusted accordingly.
Task 1e
After setting up the functional and stochastic model, solutions (∆𝑥) were computed for the
unknown parameters using the pre-elimination and back substitution approach. We get 17
ambiguities, 4 ZWD values for each hour, one set of coordinates for static, 480 sets of coordinates
for kinematic and 480 receiver clock errors. Our existing coordinates were adjusted accordingly.
Task 2
After rotating the receiver coordinates with respect to given reference coordinates (X=
3843994.310 m, Y= 709940.399m, Z= 5023160.684 m, φ = 52° 17' 47.25", λ = 10° 27' 50.2"), we
find the mean, rms value and standard deviations of NEU coordinates and plot them.
In Figure 3, we see that we have a single set of coordinates for static mode and 480 sets of
coordinates for kinematic since we calculated it epoch wise. It is evident that the deviations of
the coordinates are at the centimeter level.
Figure 4 Mean, root-mean-square and standard deviation of topocentric coordinates
In Figure 4 we can clearly see the mean, the root-mean-square and the empirical standard
deviation of our estimated topocentric coordinates (kinematic) are centimetric and even at the
sub centimeter level. This suggests that our NEU values have a centimeter level of accuracy. We
can also notice that in the beginning the deviation is relatively higher than the end; this is because
PPP method’s accuracy depends on the duration of observation time (dm < 1h, 1-2 cm > 4h).
Task 3
Again, in Figure 5, we can clearly see that the formal standard deviation of our estimated
topocentric coordinates (kinematic) have a centimeter level of accuracy. The formal standard
deviation of topocentric coordinates (N, E, U) in static mode is 0.4812cm, 0.4443cm, 0.7882cm
respectively.
Task 4
The float combined ambiguity, 𝑏𝐴𝑘 = 𝑘1,0 (𝛼𝐴,1 − 𝛼1𝑘 + 𝜆1 𝑁1 ) + 𝑘2,0 (𝛼𝐴,2 − 𝛼2𝑘 + 𝜆2 𝑁2 ),
where 𝛼 is the hardware delay (initial phase-additional phase bias). Both 𝑘 and 𝛼 aren’t integers,
so ambiguities can’t be resolved to an integer value.
Figure 6 Receiver clock error for both Static and Kinematic mode
In Figure 6 we can see that the difference between receiver clock error values is within a
fraction of microseconds (0.01 microseconds), yet this can lead to a few meters of error when
this small amount is multiplied by the speed of light, and we have to take this into account
when we are talking about Precise Point Positioning.
From Figure 7 it's clear that for each hour we use a single value for Zenith Wet Delay (ZWD) and
the values of this delay is between (0.077-0.082 meter).
Tropospheric delays, dry and wet, are both elevation dependent, in higher elevations where
signal travels shorter path, we get small values of ZWD while in lower elevations, this value
increases.
Task 5
Figure 8 depicts how residuals are dependent on elevation. As one should expect, in lower
elevations the signal is more obstructed than the higher elevations due to the long distance
travelled and the obstructions that may be present, therefore, residuals increase as elevation
decreases.
Task 6
Considering the same standard deviation for code and carrier phase would definitely affect the
precision of estimated parameters because the observations from the carrier phase are more
precise, hence, we have to build our weight matrix accordingly.
Figure 9 Receiver clock error for Kinematic mode after considering same standard deviation
In Figure 9, we can see that the values of receiver clock error are varying rapidly with epoch i.e.,
there is a lot of noise, which is not in the case for different standard deviation for code and phase
observations. Here the difference between the receiver clock errors is in the range of few
microseconds (0.05 microseconds).
Figure 10 Zenith wet delay considering same standard deviation
We can see from Figure 10 that considering the same standard deviation affects zenith wet delay
values drastically, it’s very different from the actual values.
Figure 11 Residuals vector for Static and Kinematic mode
In Figure 11, it’s clear that deviations in the coordinates are in the range of 2.5 to -2.5m but in
the case of same standard deviations its between 0.03 to -0.02m. So same standard deviations
give imprecise values.
References
[1] Teunissen, P. Position, Navigation, and Timing Technologies in the 21st Century: Integrated
Satellite Navigation, Sensor Systems, and Civil Applications, Volume 1,First Edition. The Institute
of Electrical and Electronics Engineers, Inc. Published 2021 by John Wiley & Sons, Inc.
[2] Anatum GeoMobile Solutions. (2017). WHAT IS PDOP? AND WHY IT'S OBSOLETE. Retrieved
from: https://www.agsgis.com/What-is-PDOP-And-Why-its-
Obsolete_b_43.html?fbclid=IwAR1BnyJ2gDxLBD6P2gECAUYMpYQsIQHoSOH4OXILbpUhxSQfuIX
KHh9hi0I
[3] Breva, Y. (2021) formulae (1)-(31). Retrieved from U1_Adv_Conc_2021_Part_1 and
U1_Adv_Conc_2021_Part_2.