You are on page 1of 16

Advanced Concepts for Positioning and Navigation

Exercise 1: Precise Point Positioning

Group members: Mohammad Shafi Nikzada, Mariya Jose 60 %


Matriculation number: 10043206, 1043341
Date: 21.11.2021

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
𝜕𝑍𝐴 𝜕𝑏𝐴𝑘

LSA (Least Square Adjustment)


After filling the design matrix, vector of estimated corrections is calculated as below:
𝛥𝑥 = (𝐴𝑇 𝑃𝐴)−1 𝐴𝑇 𝑃(𝑙 − 𝑎0) ………………….. (6)
And finally, the formula below gives us the estimated position,
𝑥 = 𝑥0 + 𝛥𝑥 ………………….. (7)
Cofactor matrix of the estimated parameters,
𝑄𝑥𝑥 = (𝐴𝑇 𝑃𝐴)−1 ………………….. (8)
As a measure of quality control, we can compute residual and a posteriori variance factor,
𝑣 = 𝐴𝛥𝑥 − 𝛥𝑙 ………………….. (9)
Design matrix in topocentric frame,
−𝑐𝑜𝑠𝐴𝑧1𝑐𝑜𝑠𝐸𝑙1 −𝑠𝑖𝑛𝐴𝑧1𝑐𝑜𝑠𝐸𝑙1 −𝑠𝑖𝑛𝐸𝑙1 1
𝐴=[ ⋮ ⋮ : :] ………………….. (10)
−𝑐𝑜𝑠𝐴𝑧𝑛𝑐𝑜𝑠𝐸𝑙𝑛 −𝑠𝑖𝑛𝐴𝑧𝑛𝑐𝑜𝑠𝐸𝑙𝑛 −𝑠𝑖𝑛𝐸𝑙𝑛 1
Cofactor matrix and dilution of precision (DOP) equations,
𝑄𝑁𝑁 𝑄𝑁𝐸 𝑄𝑁𝑈 𝑄𝑁𝑇
𝑄 𝑄𝐸𝐸 𝑄𝐸𝑈 𝑄𝐸𝑇
𝑄 = 𝐴𝑇 𝑃𝐴−1 = [ 𝐸𝑁 ] ………………….. (11)
𝑄𝑈𝑁 𝑄𝑈𝐸 𝑄𝑈𝑈 𝑄𝑈𝑇
𝑄𝑇𝑁 𝑄𝑇𝐸 𝑄𝑇𝑈 𝑄𝑇𝑇

𝐺𝐷𝑂𝑃 = √(𝑄𝑁𝑁 + 𝑄𝐸𝐸 + 𝑄𝑈𝑈 + 𝑄𝑇𝑇 ) ………………….. (12)

𝑃𝐷𝑂𝑃 = √(𝑄𝑁𝑁 + 𝑄𝐸𝐸 + 𝑄𝑈𝑈 ) ………………….. (13)

𝐻𝐷𝑂𝑃 = √(𝑄𝑁𝑁 + 𝑄𝐸𝐸 ) ………………….. (14)

𝑉𝐷𝑂𝑃 = √(𝑄𝑈𝑈 ) ………………….. (15)

Pre-elimination and Back substitution method


We have seen that in one step method the size of the design matrix grows larger after some
period of time. To deal with this issue we refer to some mathematical techniques that can reduce
the computation time and maintain the accuracy of our results. The difference of this method
with a one-step solution is that we have to separate the design matrix into two parts, the first
part for the global parameters and the second part for epoch-wise parameters.
Design matrix,
𝐴1(𝑡1) 𝐴2(𝑡1) 0 0 0
𝐴1(𝑡2) 0 𝐴2(𝑡2) 0 0
A=[ ] ………………... (16)
𝐴1(𝑡3) 0 0 ⋱ 0
𝐴1(𝑡𝑛) 0 0 0 𝐴2(𝑡𝑛)
The system of normal equations can be written in this form,
𝑇
[𝐴1𝑇 𝑃𝐴1 𝐴1𝑇 𝑃𝐴2] [𝑥1 ] = [𝐴1𝑇 𝑃ΔL] 𝑁
[ 11
𝑁12 𝑥1 𝑛1
] [ ] = [𝑛 ] ………………….. (17)
𝐴2 𝑃𝐴1 𝐴2𝑇 𝑃𝐴2 𝑥2 𝐴2𝑇 𝑃ΔL 𝑁21 𝑁22 𝑥2 2

with matrix elements as below,

N11 = AT1 PA1 ………………….. (18)

N12 = AT1 PA2 ………………….. (19)


T
N21 = N12 ………………….. (20)

N22 = AT1 PA1 ………………….. (21)

n1 = AT1 P∆l ………………….. (22)

n2 = AT2 P∆l ………………….. (23)


First global parameters are computed using pre-elimination method with Q11 as cofactor
matrix,
−1
𝑥̅1 = 𝑁11 𝑛1 ………………….. (24)
̅11 = 𝑁11 − 𝑁12 𝑁22
𝑁 −1
𝑁21 ………………….. (25)
−1
𝑛̅1 = (𝑛1 − 𝑁12 𝑁22 𝑛2 ………………….. (26)
̅11
𝑄11 = 𝑁 −1
………………….. (27)
Epoch-wise parameters, cofactor matrix, and residuals vector can be computed from the below
equations,
−1
𝑥̂2 (𝑡𝑗 ) = 𝑁22 (𝑡𝑗 ) (𝑛2 (𝑡𝑗 )) − 𝑁21 (𝑡𝑗 )𝑥̂1 ………………….. (28)

−1 −1 𝑇 −1
𝑄22 (𝑡𝑗 ) = 𝑁22 (𝑡𝑗 ) + 𝑁22 (𝑡𝑗 )𝑁12 (𝑡𝑗 )𝑄11 𝑁12 (𝑡𝑗 ) (𝑛2 (𝑡𝑗 )) 𝑁22 (𝑡𝑗 ) ………………….. (29)

𝑣(𝑡𝑗 ) = 𝐴1 (𝑡𝑗 )𝑥̂1 + 𝐴2 (𝑡𝑗 )𝑥̂2 (𝑡𝑗 ) − 𝛥𝑙(𝑡𝑗 ) ………………….. (30)

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

Figure 1 Satellite Visibility

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).

Table 1 Size of design matrices

LSA Pre elimination and back


substitution (epoch wise)

Static 9394 x 504 16-22 x 504

Kinematic 9394 x 1941 16-22 x 1941

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)

Table 2 Size of Weight matrix

LSA 9394 x 9394

Pre-elimination and back substitution 16 x 16 - 22 x 22

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.

Figure 3 Scatter plot of Static and Kinematic positions

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

Figure 5 Formal standard deviation of estimated topocentric coordinates in kinematic mode

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.

Figure 7 Zenith wet delay as a step function

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 Residuals vector for Static and Kinematic mode

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.

You might also like