Download as pdf or txt
Download as pdf or txt
You are on page 1of 120

gAGE

research group of Astronomy and Geomatics

Lecture 3
Position estimation with
pseudoranges

Contact: jaume.sanz@upc.edu
gAGE/UPC

Web site: http://www.gage.upc.edu

Master of Science in GNSS @ J. Sanz & J.M. Juan


1
gAGE
research group of Astronomy and Geomatics

Authorship statement

The authorship of this material and the Intellectual Property Rights are owned by
J. Sanz Subirana and J.M. Juan Zornoza.

These slides can be obtained either from the server http://www.gage.upc.edu,


or jaume.sanz@upc.edu. Any partial reproduction should be previously
authorized by the authors, clearly referring to the slides used.

This authorship statement must be kept intact and unchanged at all times.

24 April 2014
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


2
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


3
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


4
gAGE
research group of Astronomy and Geomatics
Introduction: Linear model and Prefit-residual

Input:
- Pseudoranges (receiver-satellite j): P j
- Navigation message. In particular:
• satellite position when transmitting signal: r j = (x j , y j , z j )
• offsets of satellite clocks: dt j
(j = 1,2,…n) (n>=4)
gAGE/UPC

Unknowns:
- receiver position : r = (x , y, z)
- receiver clock offset: DT

Master of Science in GNSS @ J. Sanz & J.M. Juan


5
gAGE
For each satellite in view Iono+Tropo+TGD…

= ρ rec + c ⋅ ( dtrec − dt sat ) + ∑ δ k + ε


research group of Astronomy and Geomatics

sat sat
C1rec
Linearising ρ around an ‘a priori’ receiver position ( x0,rec , y0,rec , z0,rec )

x0,rec − x sat y0,rec − y sat z0,rec − z sat


= ρ0,satrec + ∆xrec + ∆yrec + ∆zrec + c ( dtrec − dt sat ) + ∑ δ k
ρ sat
0, rec ρ sat
0, rec ρ sat
0, rec

where:
∆xrec =xrec − x0,rec ; ∆yrec =yrec − y0, rec ; ∆zrec = zrec − z0, rec

Prefit-residuals (Prefit)
x0,rec − x sat y0,rec − y sat z0,rec − z sat
sat
C1rec ∑δk
− ρ0,satrec + c dt sat −=
ρ sat
∆xrec +
ρ sat
∆yrec +
ρ sat
∆zrec + c dtrec
gAGE/UPC

0, rec 0, rec 0, rec

measurement computed unknown


Master of Science in GNSS @ J. Sanz & J.M. Juan
6
For all satellites
gAGE  x0,rec − x sat1 y0,rec − y sat1 z0,rec − z sat1 
in view 
ρ0,satrec1 ρ0,satrec1 ρ0,satrec1
1
 
Prefit
Prefit  ∆∆xxrec
11
x  rec 

research group of Astronomy and Geomatics

 22 

− x sat 2 y0,rec − y sat 2 z0,rec − z sat 2 ∆y 
 Prefit
Prefit 
0, rec
1  ∆yrec
rec 
=  ρ 0,satrec2 ρ0,satrec2 ρ0,satrec2 
 ........
........    ∆∆zzrec 
    rec 
 .......... 
Prefit
Prefit nn
x  ccdt
dtrec 
rec 
0, rec − x y0,rec − y sat n z0,rec − z sat n
sat n
 1
 ρ 0,satrecn ρ0,satrecn ρ0,satrecn 

Observations Unknowns
(measured/computed)

Measurements modelling:
Prefit residual is the difference between measured and modeled
pseudorange:
=
Prefit rec C1rec [measured] − C1rec [modelled]
sat sat sat

where:
gAGE/UPC

sat
C1rec = ρ rec
[modelled] sat
,0 − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat

Master of Science in GNSS @ J. Sanz & J.M. Juan


7
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


8
gAGE
research group of Astronomy and Geomatics Code Pseudorange modeling

C1

The pseudorange modeling is based in the GPS Standard


Positioning Service Signal Specification (GPS/SPS-SS).
gAGE/UPC

sat
C1rec = ρ rec
[modelled] sat
,0 − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat

Master of Science in GNSS @ J. Sanz & J.M. Juan


9
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

sat
C1rec = ρ rec
[modelled] sat
,0 − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat

Master of Science in GNSS @ J. Sanz & J.M. Juan


10
gAGE
research group of Astronomy and Geomatics Geometric range

ρ rec
sat

Euclidean distance between satellite coordinates at emission time


and receiver coordinates at reception time.

(x − x0,rec ) + ( y − y0,rec ) + ( z − z0,rec )


2 2 2
ρ sat
0, rec = sat sat sat

Of course, receiver coordinates are not known (is the target of this
gAGE/UPC

problem). But ....


sat
C1rec = ρ rec
[modelled] sat
,0 − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat

Master of Science in GNSS @ J. Sanz & J.M. Juan


11
(x − x0,rec ) + ( y − y0,rec ) + ( z − z0,rec )
gAGE 2 2 2
ρ sat
0, rec = sat sat sat
research group of Astronomy and Geomatics

Of course, receiver coordinates ( xrec , yrec , zrec ) are not known (they are
the target of this problem). But, we can always assume that an
“approximate position ( x0,rec , y0,rec , z0,rec ) is known”.

Thence, as it will be shown in next lesson, the navigation problem will


consist on:
1.- To start from an approximate value for receiver position
( x0,rec , y0,rec , z0,rec )(e.g. the Earth’s centre ) to linearise the equations.
2.- With the pseudorange measurements and the navigation
equations, compute the correction ( ∆xrec , ∆yrec , ∆zrec ) to have
improved estimates:= ( xrec , yrec , zrec ) ( x0,rec , y0,rec , z0,rec ) + ( ∆xrec , ∆yrec , ∆zrec )
3.- Linearise the equations again, about the new improved estimates,
gAGE/UPC

and iterate until the change in the solution estimates is sufficiently


small. The estimates converges quickly. Generally in two to four
Master of Science in GNSS iterations, even if starting from the Earth’s @Centre.
J. Sanz & J.M. Juan
12
gAGE
research group of Astronomy and Geomatics Satellite coordinates at emission time (rec2ems.f)

•The GPS signal travels from


satellite coordinates at
emission time (tems) to
receiver coordinates at
reception time (trec).

•The satellite can move


several hundreds of meters
from tems to trec.

The receiver time-tags are


given at reception time and
in the receiver clock time.
gAGE/UPC

An algorithm is needed to compute the satellite


coordinates at emission time “in the GPS system time”
from reception
Master of Science in GNSS time in the receiver time tags.
@ J. Sanz & J.M. Juan
13
gAGE T[em s]
The satellite offset
clock dt S can
Geomatics

C1 be
computed from the
time

navigation message
systemand

C1= c ∆t = c [trec(TR)-tems(TS)]
of Astronomy

As it is known, the pseudorange measurements link the “emission


GPS

time (tems)” in satellite clock (TS) with reception time (trec) in


group

receiver clock (TR) (receiver time tags).


in the

Thence, the emission time in the satellite clock is:


research

tems(TS) = trec(TR)-C1/c
Emission time
gAGE/UPC

Finally, since dt S = t S –T is the time offset between satellite clock (tS)


and GPS system time (T), thence:

T[ems]= tems(TS)-dtS = trec(TR)-(C1/c+dtS)


Master of Science in GNSS @ J. Sanz & J.M. Juan
14
gAGE
research group of Astronomy and Geomatics Distance: ∆r

Distance ∆r
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


15
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Variation in range: ∆ρ= ρemission − ρreception

Master of Science in GNSS @ J. Sanz & J.M. Juan


16
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Vertical error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


17
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Horizontal error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


18
gAGE Satellite coordinates computation at emission time

The algorithm provided by the GPS/SPS-SS (orbit.f) supplies satellite


research group of Astronomy and Geomatics

coordinates in an Earth-Fixed reference frame. To compute the


satellite coordinates
ρ’ See rec2ems.f
At the emission time, the following algorithm can be applied:
1. From receiver time-tags, compute emission time in GPS system
time:
T[ems]= trec(TR)-(C1/c+dt )
S

2. Compute satellite coordinates at emission time T[ems]

T[ems] [orbit]  (Xsat,Ysat,Zsat)CTS[emission]


3. Account for Earth rotation during traveling time from emission to
reception “∆t“ (CTS reference system at reception time is used to
gAGE/UPC

build the navigation equations).

(Xsat,Ysat,Zsat)CTS[reception] =R3(ωE ∆t).(Xsat,Ysat,Zsat)CTS[emission]


Master of Science in GNSS @ J. Sanz & J.M. Juan
19
gAGE
research group of Astronomy and Geomatics Variation in range: ∆ρ= ρ’ – ρemission

ρ’
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


20
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Vertical error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


21
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Horizontal error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


22
gAGE
research group of Astronomy and Geomatics Satellite and receiver clock offsets

• They are time-offsets between satellite/receiver time and GPS


system time (provided by the ground control segment):

- The receiver clock offset (dtrec) is estimated together with receiver


coordinates.

- Satellite clock offset (dtsat) may be computed from navigation


message plus a Relativistic clock correction

dtsat=a0 + a1(t-t0) + a2(t-t0)2 + ∆rel


gAGE/UPC

sat
C1rec = ρ rec
[modelled] sat
,0 − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat

Master of Science in GNSS @ J. Sanz & J.M. Juan


23
gAGE
a0 + a1(t-t0) + a2(t-t0)2
research group of Astronomy and Geomatics

t0 a0 a1 a2
YY MM DD H M S

PRN

2 NAVIGATION DATA GPS RINEX VERSION / TYPE


srx/v1.8.1.4 BAI 95/10/19 03:18:35 PGM / RUN BY / DATE
CASA COMMENT
-2444431.2031 -4428688.6270 3875750.1442 COMMENT
END OF HEADER
14 95 10 18 00 51 44.0 1.129414886236D-05 1.136868377216D-13 0.000000000000D+00
1.730000000000D+02-5.175000000000D+01 4.375182243902D-09-5.836427291652D-01
-2.712011337280D-06 2.427505562082D-03 8.568167686462D-06 5.153718931198D+03
2.623040000000D+05 4.470348358154D-08 1.698435481558D+00 1.676380634308D-08
9.636381916043D-01 2.153437500000D+02 3.056960010495D+00-8.030691653399D-09
gAGE/UPC

-5.178787145843D-11 1.000000000000D+00 8.230000000000D+02 0.000000000000D+00


3.200000000000D+01 0.000000000000D+00 1.396983861923D-09 1.730000000000D+02
2.592180000000D+05 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00

Master of Science in GNSS @ J. Sanz & J.M. Juan


24
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Range variation: satellite clocks

Master of Science in GNSS @ J. Sanz & J.M. Juan


25
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Vertical error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


26
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Horizontal error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


27
gAGE
research group of Astronomy and Geomatics Relativistic clock correction (∆rel)

• A constant component depending only on nominal value of satellite’s


orbit major semi-axis, being corrected modifying satellite’s clock
oscillator frequency*:
f 0' − f 0 1  v  ∆U
2
−10
=   + 2  −4.464 ⋅ 10
f0 2c c

• A periodic component due to orbit eccentricity (to be corrected by user


receiver):
µa r⋅v
∆ rel =−2 2 e sin( E ) = −2 2 ( seconds )
c c

Being µ=3.986005 1014 (m3/s2) universal gravity constant, c =299792458


(m/s) light speed in vacuum, a is orbit’s major semi-axis, e is its eccentricity,
E is satellite’s eccentric anomaly, and r and v are satellite’s geocentric position
and speed in an inertial system.
gAGE/UPC

*being f0 = 10.23 MHz, we have ∆f=4.464 10-10 f0= 4.57 10-3 Hz


so satellite should use f’o=10.22999999543 MHz.

Master of Science in GNSS @ J. Sanz & J.M. Juan


28
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Range variation: relativistic correction

Master of Science in GNSS @ J. Sanz & J.M. Juan


29
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Vertical error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


30
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Horizontal error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


31
gAGE Ionospheric Delay Ion f sat
rec

The ionosphere extends from about 60 km in height until more than


research group of Astronomy and Geomatics

2000 km, with a sharp electron density maximum at around 350 km.
The ionosphere delays code and advances carrier by the same amount
The ionospheric delay depends on sat = 40.3 I
Ion1 rec
signal frequency as given by: f12

Where I is number of electrons per area unit


in the direction of observation, or STEC (Slant
Total Electron Content) sat
I = ∫ N e ds
rec

• For two-frequency receivers, it may be cancelled (99.9%) using


ionosphere-free combination f12 L1 − f 22 L 2
LC = 2 2
f1 − f 2
• For one-frequency receivers, it may be corrected (about 60%)
gAGE/UPC

using Klobuchar model (defined in GPS/SPS-SS), whose


parameters are sent in navigation message. (See program klob.f)
sat
CMaster
1rec [modelled] =
of Science in GNSS
ρ sat
0, rec − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat
@ J. Sanz & J.M. Juan
32
gAGE Klobuchar model (klob.f)
Vertical delay

It was designed to minimize user


research group of Astronomy and Geomatics

IPP
computational complexity.
Slant delay
• Minimum user computer storage
• Minimum number of coefficients
transmitted on satellite-user link
• At least 50% overall RMS ionospheric
error reduction worldwide.
Obliquity factor
• It is assumed that the electron IonSLANT = IonVERT m (elev)
content is concentrated in a thin   R 2

−1/ 2

layer at 350 Km in height. ) 1 − 
m (elev= E
cos (elev)  
  RE + h  
• The slant delay is computed
from the vertical delay at the
ionospheric Pierce Point (IPP),
gAGE/UPC

multiplying by the obliquity factor.

Master of Science in GNSS @ J. Sanz & J.M. Juan


33
gAGE
IONOSPHERIC PIERCE
research group of Astronomy and Geomatics

POINTS (IPP)

IPPs trajectories Vertical Delay


for a receiver in Slant Delay
Barcelona, Spain

IPP

IonSLANT = IonVERT m (elev)


−1/ 2
  R  
2

) 1 − 
m (elev= E
cos (elev)  
  RE + h  
gAGE/UPC

Ionospheric Layer
(350 Km in height)

Master of Science in GNSS @ J. Sanz & J.M. Juan


34
gAGE
research group of Astronomy and Geomatics Klobuchar model
Klobuchar
30
coefficients
25
Time Delay (ns at 1.6 GHz)

20   2π (t − Φ ) 
 DC + A cos   (day )
  P 
Amplitude IonVERT =
15  DC ; if  2π (t − Φ )  > π (night )
  P  2
10
Being :
3 3
5
½*Period
=A
=
n
n 0=
∑=
α φ ; P ∑β φ
n
n
n

Dc=5ns n 0

φ = Geomagnetic Latitude
4 8 12 16 18 24
Local Time (hours) Where:
IonSLANT = IonVERT m (elev)
gAGE/UPC

DC= 5ns
−1/ 2
  R 
2
 Φ= 14 (ctt. phase offset)
) 1 − 
m (elev= E
cos (elev)  
  E R + h   t = Local Time

Master of Science in GNSS @ J. Sanz & J.M. Juan


35
gAGE

(time, rsta, rsat,α0,α1,α2,α3,β0,β1,β2,β3) [Klob]  Iono


research group of Astronomy and Geomatics

elev, φ

2 NAVIGATION DATA RINEX VERSION / TYPE


CCRINEXN V1.5.2 UX CDDIS 24-MAR- 0 00:23 PGM / RUN BY / DATE
IGS BROADCAST EPHEMERIS FILE COMMENT
0.3167D-07 0.4051D-07 -0.2347D-06 0.1732D-06 ION ALPHA
-0.2842D+05 -0.2150D+05 -0.1096D+06 0.4301D+06 ION BETA
-0.121071934700D-07-0.488498130835D-13 319488 1002 DELTA-UTC: A0,A1,T,W
13 LEAP SECONDS
END OF HEADER
1 99 3 23 0 0 0.0 0.783577561379D-04 0.113686837722D-11 0.000000000000D+00
0.191000000000D+03-0.106250000000D+01 0.487163149444D-08-0.123716752769D+01
-0.540167093277D-07 0.476544268895D-02 0.713579356670D-05 0.515433833885D+04
0.172800000000D+06-0.260770320892D-07-0.850753478531D+00 0.763684511185D-07
gAGE/UPC

0.957259887797D+00 0.241437500000D+03-0.167990552187D+01-0.823998608564D-08
0.174650132022D-09 0.100000000000D+01 0.100200000000D+04 0.000000000000D+00
0.320000000000D+02 0.000000000000D+00 0.465661287308D-09 0.191000000000D+03
0.172800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00

Master of Science in GNSS @ J. Sanz & J.M. Juan


36
gAGE
research group of Astronomy and Geomatics Range variation: Ionospheric correction

Klobuchar model
STEC: I ON SLANT

TEC: I on VER T
gAGE/UPC

IonSLANT = IonVERT m (elev)


−1/ 2
  R 
2

m (elev= ) 1 −  E
cos (elev)  
Master of Science in GNSS R + h
  E   @ J. Sanz & J.M. Juan
37
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Vertical error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


38
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Horizontal error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


39
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS


Backup @ J. Sanz & J.M. Juan
40
gAGE
Tropospheric Delay
Troposphere is the atmospheric layer placed between Earth’s surface
research group of Astronomy and Geomatics

and an altitude of about 60km.


The tropospheric delay does not depend on frequency and affects
both the code and carrier phases in the same way. It can be
modeled (about 90%) as:
- ddry corresponds to the vertical delay of the dry atmosphere
(basically oxygen and nitrogen in hydrostatical equilibrium)
 It can be modeled as an ideal gas.
- dwet corresponds to the vertical delay of the wet component
(water vapor)  difficult to model.
A simple model is:

Trop sat
= (d dry + d wet ) ⋅ m(elev) d dry= 2.3exp(−0.116 ⋅10−3 H ) meters
rec
d wet = 0.1m ; [ H : heigh ] over the sea level
gAGE/UPC

1.001
m(elev) =
0.002001 + sin 2 (elev)

sat
C1Master
rec [modelled] =
of Science in GNSS ρ sat
0, rec − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat
@ J. Sanz & J.M. Juan
41
gAGE
research group of Astronomy and Geomatics

1.001
m(elev) =
0.002001 + sin 2 (elev)
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


42
gAGE
research group of Astronomy and Geomatics Range variation: Tropospheric correction
Trop SLANT
gAGE/UPC

Trop VER TiCAL


RTCA-Do229C model

Master of Science in GNSS @ J. Sanz & J.M. Juan


43
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Vertical error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


44
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Horizontal error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


45
gAGE Instrumental Delays
Some sources for these delays are antennas, cables, as well as
research group of Astronomy and Geomatics

several filters used in both satellites and receivers.


They are composed by a delay corresponding to satellite and
other to receiver, depending on frequency:

K=sat
1, rec K1,rec + TGD sat
f12
K= K 2,rec + 2 TGD sat
sat
2, rec
f2

• K1rec may be assumed as zero (including it in receiver clock offset).


• TGDsat is transmitted in satellite’s navigation message (Total Group Delay).

According to ICD GPS-2000, control segment monitors satellite


gAGE/UPC

timing, so TGD cancels out when using free-ionosphere


combination. That is why we have that particular equation for K2.

sat
CMaster
1rec [modelled]
of = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
Science in GNSS
sat
+ Ion1rec
sat
+ TGD sat
@ J. Sanz & J.M. Juan
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Range variation: Instrumental delays (TGD)

Master of Science in GNSS @ J. Sanz & J.M. Juan


47
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Vertical error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


48
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Horizontal error comparison

Master of Science in GNSS @ J. Sanz & J.M. Juan


49
gAGE
research group of Astronomy and Geomatics
Measurement noise (thermal noise)

Antispoofing (A/S):
The code P is encrypted to Y. Wavelength σ noise Main
 Only theGPS
code Csignal
at (chip-length) (1% of λ) [*] characteristics
frequency L1 is available.
Code measurements
C1 300 m 3m
Unambiguous
P1 (Y1): encrypted 30 m 30 cm
but noisier
P2 (Y2): encrypted 30 m 30 cm
Phase measurements
L1 19.05 cm 2 mm Precise
L2 24.45 cm 2 mm but ambiguous

[*] codes may be smoothed with the phases in order to reduce noise
gAGE/UPC

(i.e., C1 smoothed with L1  50 cm noise)

Master of Science in GNSS @ J. Sanz & J.M. Juan


gAGE
Multipath
• One or more reflected signals reach the antenna in addition to the
direct signal. Reflective objects can be earth surface (ground and
research group of Astronomy and Geomatics

water), buildings, trees, hills, etc.

• It affects both code and carrier phase measurements, and it is more


important at low elevation angles.

Butterfly shape

• Code: up to 1.5 chip-length  up to 450m for C1 [theoretically]


gAGE/UPC

Typically: less than 2-3 m.


• Phase: up to λ/4  up to 5 cm for L1 and L2 [theoretically]
Typically: less than 1 cm
Master of Science in GNSS @ J. Sanz & J.M. Juan
51
gAGE
research group of Astronomy and Geomatics
gAGE/UPC Receiver and multipath noise

GPS standalone (C1 code) 10,000 €


Master of Science in GNSS @ J. Sanz & J.M. Juan
52
gAGE
research group of Astronomy and Geomatics Receiver and multipath noise

Same environment!
gAGE/UPC

GPS standalone (C1 code) 100 €


Master of Science in GNSS @ J. Sanz & J.M. Juan
53
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


54
gAGE
Example of Computation of modeled pseudorange
research group of Astronomy and Geomatics

Using data of files gage2860.98o and brdc2860.98n,


compute “by hand” the modeled pseudorange for
satellite PRN 14 at t=38230 sec (10h37m10s).
sat
C1rec = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
[modelled] sat
+ Ion1rec
sat
+ TGD sat

Follow these steps:

See also exercise 5, Session 5.2 in [RD-2]


gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


55
gAGE
1. Select orbital elements closer to 38230
research group of Astronomy and Geomatics

2. Compute satellite clock offset


3. Compute satellite-receiver aprox. geometric range
3.1 Compute emission time from receiver (reception) time-tags
and code pseudorange.
3.2 Compute satellite coordinates at emission time
3.3 Compute approximate geometric range.
4. Compute satellite Instrumental delay (TGD):
5. Compute relativistic satllite clock correction
6. Compute tropospheric delay
7. Compute ionospheric delay
8. Compute modeled pseudorange from previous values:
gAGE/UPC

sat
C1rec = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
[modelled] sat
+ Ion1rec
sat
+ TGD sat
Master of Science in GNSS @ J. Sanz & J.M. Juan
56
gAGE

1. Selection of orbital elements: From file brdc2860.98n,


research group of Astronomy and Geomatics

select the last transmitted navigation message block before instant


t=38230 s (10h37m10s).

Transmission time:
979 208818  10h 0m 18s

PRN
14 98 10 13 12 0 0 +5.65452501178E-06 +9.09494701773E-13 +0.000000000000E+00
+1.28000000000E+02 -6.10000000000E+01 +4.38125402624E-09 +8.198042513605E-01
-3.31364572048E-06 +1.09227513894E-03 +5.67547976971E-06 +5.153795101166E+03
+2.16000000000E+05 -6.33299350738E-08 +1.00409621952E+00 -3.725290298462E-09
+9.73658001335E-01 +2.74031250000E+02
GPS week
+2.66122811383E+00 -8.081050495434E-09

GPS sec of week


-1.45720352451E-10 +1.00000000000E+00 +9.79000000000E+02 +0.000000000000E+00
+3.20000000000E+01 +0.00000000000E+00 -2.32830643654E-09 +1.280000000000E+02
+2.08818000000E+05 +0.00000000000E+00 +0.00000000000E+00 +0.000000000000E+00
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


57
gAGE
2. Satellite clock offset computation: From file
brdc2860.98n, compute satellite clock offset at time t=3830
research group of Astronomy and Geomatics

s for PRN14:
PRN t0 a0 a1 a2
14 98 10 13 12 0 0 +5.65452501178E-06 +9.09494701773E-13 +0.000000000000E+00
+1.28000000000E+02 -6.10000000000E+01 +4.38125402624E-09 +8.198042513605E-01
-3.31364572048E-06 +1.09227513894E-03 +5.67547976971E-06 +5.153795101166E+03
+2.16000000000E+05 -6.33299350738E-08 +1.00409621952E+00 -3.725290298462E-09
+9.73658001335E-01 +2.74031250000E+02 +2.66122811383E+00 -8.081050495434E-09
-1.45720352451E-10 +1.00000000000E+00 +9.79000000000E+02 +0.000000000000E+00
+3.20000000000E+01 +0.00000000000E+00 -2.32830643654E-09 +1.280000000000E+02
+2.08818000000E+05 +0.00000000000E+00 +0.00000000000E+00 +0.000000000000E+00

t = 38230 sec
t0= 12h 0m 0s= 43200 s

dt sat = a0 + a1 (t − t0 ) + a2 (t − t0 ) 2 = 5.65 ⋅10−6 s


gAGE/UPC

sat
C1rec = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
[modelled] sat
+ Ion1rec
sat
+ TGD sat
Master of Science in GNSS @ J. Sanz & J.M. Juan
58
gAGE
3. Satellite-receiver geometric range computation:
Use the following values (4789031, 176612, 4195008) as
research group of Astronomy and Geomatics

approximate coordinates.

3.1: Emission time computation from receiver time-tag and code


pseudorange: T[ems]= t (T )-(C1/c + dtsat)
rec R

Measurement Pseudorange C1 at receiver time-tag


file gage2860.98o  t=38230: C1= 23585247.70 m

Ephemeris file Satellite clock offset at t=38230 sec


brdc2860.98n  dtsat= 5.65 10-6 sec (see previous
results)

Thence, the emission time in GPS satellite clock is:


gAGE/UPC

T[em s] = 38230 – (23585247.70/c + 5.65 10-6) =


= 38229.9213224 (where c=299792458 )

Master of Science in GNSS @ J. Sanz & J.M. Juan


59
gAGE Note:
From RINEX measurement file gage2860.98o, select the C1
research group of Astronomy and Geomatics

pseudorange measurement at receiver time-tag for PRN14:

PRN 14
t = 38230 sec= 10h 37m 10s

4 L1 L2 C1 P2 # / TYPES OF OBSERV

98 10 13 10 37 10.0000000 0 5G18G14G16G 4G19


5007753.999 0.000 20143892.105 0.000
-220595.001 0.000 23585247.703 0.000
1305085.999 0.000 23146887.826 0.000
6246118.999 0.000 20798091.711 0.000
-19853878.999 0.000 22235319.057 0.000

Thence:
gAGE/UPC

Measurement Pseudorange C1 at receiver time-tag


file gage2860.98o  t=38230: C1= 23585247.70 m

Master of Science in GNSS @ J. Sanz & J.M. Juan


60
gAGE 3.2: Satellite coordinates at emission time pseudorange:
X= 11453479.346
research group of Astronomy and Geomatics

T[emission]= Y= 122468524.004
38229.921 sec
 Orbit.f  Z= 8245076.145
CTS [emission]


Use the selected
ephemeris for PRN14
(from file brdc2860.98n)

The previous coordinates are given in an Earth-fixed


reference frame (CTS) at t=T[emission]= 38229.921 s.
This reference frame rotates by un amount “ωE ∆t” during
traveling time ∆t=T[reception]-T[emission].
gAGE/UPC

(Xsat,Ysat,Zsat)CTS[reception] =R3(ωE ∆t).(Xsat,Ysat,Zsat)CTS[emission]

Master of Science in GNSS @ J. Sanz & J.M. Juan


61
gAGE
research group of Astronomy and Geomatics (Xsat,Ysat,Zsat)CTS[reception] =R3(ωE ∆t).(Xsat,Ysat,Zsat)CTS[emission]

 11453350.377   cos(ωE ∆t ) sin(ωE ∆t ) 0  11453479.346 


    
 122468589.797 =
  − sin(ω E ∆t ) cos(ω E ∆t ) 0  122468524.004 
 8245076.145    8245076.145 
   0 0 1  
CTS [ reception ] CTS [ emission ]

ωE ∆t =−5.74 ⋅10−6 rad . ( where ωE =7.2921151467 ⋅10−5 rad / sec)


ρ0,satrec
∆t =− =−0.079sec
c

( x sat − x0,rec ) + ( y sat − y0,rec ) + ( z sat − z0,rec )  23616673.3m


2 2 2
ρ0,satrec =
( x, y, z ) satellite ≈ (11453479, 22468524, 8245076) An approximate value
( x0 , y0 , z0 ) receiver ≈ (4789031, 176612, 4195008) is enough to compute
∆t.
gAGE/UPC

Note: Both satellite and receiver coordinates must be given in the


same reference system!
the CTS[reception]
Master of Science in GNSS will be used to build navigation equations.
@ J. Sanz & J.M. Juan
62
gAGE 3.2: Geometric range computation
The geometric range between satellite coordinates at
research group of Astronomy and Geomatics

emission time and the “approximate position of the


receiver” at reception time (both coordinates given in
the same reference system [for instance the CTS
system at reception time]) is computed by:

(x − x0,rec ) + ( y − y0,rec ) + ( z − z0,rec ) = 23616699.124m


2 2 2
ρ satellite
0, receiver = sat sat sat

( x, y, z ) satellite = (11453350.2771, 22468589.7975, 8245076.1448)CTS [ reception ]


( x0 , y0 , z0 ) receiver = (4789031, 176612, 4195008)CTS [ reception ]
gAGE/UPC

“Approximate” receiver coordinates


at reception time.

sat
CMaster
1rec [modelled] = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
of Science in GNSS
sat
+ Ion
@
1rec + TGD
sat sat
J. Sanz & J.M. Juan
63
gAGE 4. Satellite Instrumental delay (TGD): From file
brdc2860.98n, compute the Total Group Delay for PRN14:
research group of Astronomy and Geomatics

PRN TGD (in sec)


14 98 10 13 12 0 0 +5.65452501178E-06 +9.09494701773E-13 +0.000000000000E+00
+1.28000000000E+02 -6.10000000000E+01 +4.38125402624E-09 +8.198042513605E-01
-3.31364572048E-06 +1.09227513894E-03 +5.67547976971E-06 +5.153795101166E+03
+2.16000000000E+05 -6.33299350738E-08 +1.00409621952E+00 -3.725290298462E-09
+9.73658001335E-01 +2.74031250000E+02 +2.66122811383E+00 -8.081050495434E-09
-1.45720352451E-10 +1.00000000000E+00 +9.79000000000E+02 +0.000000000000E+00
+3.20000000000E+01 +0.00000000000E+00 -2.32830643654E-09 +1.280000000000E+02
+2.08818000000E+05 +0.00000000000E+00 +0.00000000000E+00 +0.000000000000E+00

TGD= -2.32830643654E-09 * c= -0.69801 m


gAGE/UPC

sat
C1rec = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
[modelled] sat
+ Ion1rec
sat
+ TGD sat
Master of Science in GNSS @ J. Sanz & J.M. Juan
64
gAGE5. Relativistic clock correction:
PRN e sqrt(a)
research group of Astronomy and Geomatics

14 98 10 13 12 0 0 +5.65452501178E-06 +9.09494701773E-13 +0.000000000000E+00


+1.28000000000E+02 -6.10000000000E+01 +4.38125402624E-09 +8.198042513605E-01
-3.31364572048E-06 +1.09227513894E-03 +5.67547976971E-06 +5.153795101166E+03
+2.16000000000E+05 -6.33299350738E-08 +1.00409621952E+00 -3.725290298462E-09
+9.73658001335E-01 +2.74031250000E+02 +2.66122811383E+00 -8.081050495434E-09
-1.45720352451E-10 +1.00000000000E+00 +9.79000000000E+02 +0.000000000000E+00
+3.20000000000E+01 +0.00000000000E+00 -2.32830643654E-09 +1.280000000000E+02
+2.08818000000E+05 +0.00000000000E+00 +0.00000000000E+00 +0.000000000000E+00

T[em ission] = E = 0.095 rad.


38229.921 s
 Orbi t .f  (eccentric anom aly)

µa =µ 3.986005 ⋅1014 m3 s −2
∆rel sat =
−2 −2.3 ⋅10−10 s
e sin( E ) =
c2 c = 299792458 m s −1
gAGE/UPC

sat
C1rec = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
[modelled] sat
+ Ion1rec
sat
+ TGD sat
Master of Science in GNSS @ J. Sanz & J.M. Juan
65
gAGE
6. Tropospheric correction

( ddry + d wet ) m(elev) =


research group of Astronomy and Geomatics

sat
Troprec = 6.76m

−0.116⋅10−3 H
d dry = 2.3m
2.3e
See klob.f
d wet = 0.1m
1.001 π
m(elev) = =elev =
20.57 0.359rad
0.002001 + sin (elev)
2 180
H = 160m (heigh over the ellipsoid )

(x,y,z)rec [car2geo]  (Lon, Lat, H)rec


gAGE/UPC

sat
C1rec = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
[modelled] sat
+ Ion1rec
sat
+ TGD sat
Master of Science in GNSS @ J. Sanz & J.M. Juan
66
gAGE
7. Ionospheric correction

(time, rsta, rsat,α0,α1,α2,α3,β0,β1,β2,β3) [Klob]  Iono=10.26m


research group of Astronomy and Geomatics

2 NAVIGATION DATA GPS RINEX VERSION/ TYPE


XPRINT v1.1 gAGE 00/06/04 17:36:23 PGM / RUN BY / DATE
gAGE BROADCAST EPHEMERIS FILE COMMENT
+1.9558E-08 +0.0000E+00 -1.1921E-07 +0.0000E+00 ION ALPHA
+1.2288E+05 -1.6384E+04 -2.6214E+05 +1.9661E+05 ION BETA
-8.381903171539E-09-1.421085471520E-14 405504 979 DELTA_UTC: A0,A1,T,W
12 LEAP SECONDS
END OF HEADER

t = 38230sec
( x, y, z ) satellite = (11453350.2771, 22468589.7975, 8245076.1448)CTS [ reception ]
( x0 , y0 , z0 ) receiver = (4789031, 176612, 4195008)CTS [ reception ]
Approximate values for
receiver or satellite
gAGE/UPC

coordinates are enough

sat
C1rec = ρ0,satrec − c ( dt sat + ∆rel sat ) + Troprec
[modelled] sat
+ Ion1rec
sat
+ TGD sat
Master of Science in GNSS @ J. Sanz & J.M. Juan
67
gAGE
research group of Astronomy and Geomatics
7. Compute the modeled pseudorange.

sat
C1rec = ρ rec
[modelled] sat
,0 − c ( 
dt sat
+ ∆rel sat
) + Trop sat
rec + Ion sat
1rec + TGD sat

ρ0,satrec = 23616699.124 m
c dt sat =5.65 ⋅10-6 c =1693.828 m
c ∆rel sat =
−2.33 ⋅10-10 c =
−0.071m
 rec [modelled] = 23615021.689m
sat
Trop sat
= 6.760 m C1
rec
sat
Ion1rec = 10.260 m
TGD sat = −0.698 m
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


68
gAGE
Prefit residual:
Is the difference between measured and modeled pseudorange
research group of Astronomy and Geomatics

sat
Pref rec =C1rec
sat
− C1[mod]rec
sat
=ρ rec
sat
− ρ0,satrec + c dtrec + K1rec + ε

In the previous example (PRN14 at t = 38230 s):


Pref= 23585247.703 - 23615021.689 = -29773.986 m

Previously calculated
gAGE/UPC

From measurement file


Master of Science in GNSS @ J. Sanz & J.M. Juan
69
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


70
gAGE
research group of Astronomy and Geomatics Solving navigation equations

Input:
- Pseudoranges (receiver-satellite j): P j
- Navigation message. In particular:
• satellite position when transmitting signal: r j = (x j , y j , z j )
• offsets of satellite clocks: dt j
(j = 1,2,…n) (n>=4)
gAGE/UPC

Unknowns:
- receiver position : r = (x , y, z)
- receiver clock offset: DT

Master of Science in GNSS @ J. Sanz & J.M. Juan


71
gAGE
For each satellite in view Iono+Tropo+TGD…

= ρ rec + c ⋅ ( dtrec − dt sat ) + ∑ δ k + ε


research group of Astronomy and Geomatics

sat sat
C1rec
Linearising ρ around an ‘a priori’ receiver position ( x0,rec , y0,rec , z0,rec )

x0,rec − x sat y0,rec − y sat z0,rec − z sat


= ρ0,satrec + ∆xrec + ∆yrec + ∆zrec + c ( dtrec − dt sat ) + ∑ δ k
ρ sat
0, rec ρ sat
0, rec ρ sat
0, rec

where:
∆xrec =xrec − x0,rec ; ∆yrec =yrec − y0, rec ; ∆zrec = zrec − z0, rec

Prefit-residuals (Prefit)
x0,rec − x sat y0,rec − y sat z0,rec − z sat
sat
C1rec ∑δk
− ρ0,satrec + c dt sat −=
ρ sat
∆xrec +
ρ sat
∆yrec +
ρ sat
∆zrec + c dtrec
gAGE/UPC

0, rec 0, rec 0, rec

measurement computed unknown


Master of Science in GNSS @ J. Sanz & J.M. Juan
72
gAGE For all sat.  x0,rec − x sat1 y0,rec − y sat1 z0,rec − z sat1 
in view 
 ρ0,satrec1 ρ0,satrec1 ρ0,satrec1
1

Prefit
Prefit  ∆∆xxrec
11
x  rec 

research group of Astronomy and Geomatics

 22 

− x sat 2 y0,rec − y sat 2 z0,rec − z sat 2 ∆y 
 Prefit
Prefit 
0, rec
1  ∆yrec
rec 
=  ρ 0,satrec2 ρ0,satrec2 ρ0,satrec2 
 ........
........    ∆∆zzrec 
    rec 
 .......... 
Prefit
Prefit nn
x  ccdt
dtrec 
rec 
0, rec − x y0,rec − y sat n z0,rec − z sat n
sat n
 1
 ρ 0,satrecn ρ0,satrecn ρ0,satrecn 

Observations Geometry of rays


(measured/computed)

 T sat n
ρ0 rec

ρ0 sat
rec
n

ρ
ˆ 0 sat
gAGE/UPC

rec
 sat n
ρT0 rec
ρˆ T0 rec
sat n
≡ Unitary Line-Of-Sight
ρ sat 1
0 rec vector from receiver
to satellite
Master of Science in GNSS @ J. Sanz & J.M. Juan
73
(x,y,z) coordinates
gAGE  x0,rec − x sat1 y0,rec − y sat1 z0,rec − z sat1 
 1
 ρ0,satrec1 ρ0,satrec1 ρ0,satrec1 
Prefit
Prefit  ∆∆xxrec
11
x  rec 

research group of Astronomy and Geomatics

 22 

− x sat 2 y0,rec − y sat 2 z0,rec − z sat 2 ∆y 
 Prefit
Prefit 
0, rec
1  ∆yrec
rec 
=  ρ 0,satrec2 ρ0,satrec2 ρ0,satrec2 
 ........
........    ∆∆zzrec 
    rec 
 .......... 
Prefit
Prefit nn
x  ccdt
dtrec 
rec 
0, rec − x y0,rec − y sat n z0,rec − z sat n
sat n
 1
 ρ 0,satrecn ρ0,satrecn ρ0,satrecn 

Observations Geometry of rays


(measured/computed)
 Prefit1   −ρˆ T0 rec
sat 1
1
 2
 T sat 2 
−ρˆ T0 rec
sat n  Prefit
 ........ 
  −ρˆ
=  0 rec
1

 ∆rrec 
c dt 
   .... ...   rec 
 Prefit 
n  −ρˆ T sat n 1
(e,n,u) coordinates  0 rec

 Prefit1   − cos el1 sin az1 − cos el1 cos az1 − sin el1 1   ∆erec 
 2  
gAGE/UPC

 ∆n 
  − 2 2
− 2 2
− 2
= 
Prefit cos el sin az cos el cos az sin el 1  rec 
 ........   ..........   ∆urec 
     
 Prefit  − cos el sin az − cos el cos az − sin el 1  rec 
n n n n n n
c dt

Master of Science in GNSS @ J. Sanz & J.M. Juan


74
gAGE
research group of Astronomy and Geomatics
gAGE/UPC From ECEF (x,y,z) to Local (e,n,u) coordinates

Master of Science in GNSS


Backup @ J. Sanz & J.M. Juan
75
 x0,rec − x sat1 y0,rec − y sat1 z0,rec − z sat1 

COMMENTS:
 1
gAGE  ρ0,satrec1 ρ sat1
0, rec ρ sat1
0, rec 
 Prefit1  x   ∆xrec 
 2
− x sat 2 y0,rec − y sat 2
z0,rec − z sat 2  ∆y 
 0,rec 1
 Prefit  =  ρ 0,satrec2 ρ0,satrec2 ρ0,satrec2   rec 
 ........   ∆zrec 
research group of Astronomy and Geomatics

 
   ..........   
 Prefit n  x  c dtrec 
− x sat n y0,rec − y sat n z0,rec − z sat n
 0,rec 1
 ρ 0,satrecn ρ0,satrecn ρ0,satrecn 

Of course, receiver coordinates ( xrec , yrec , zrec ) are not known (they are
the target of this problem). But, we can always assume that an
“approximate position ( x0,rec , y0,rec , z0,rec ) is known”.
Thence, as it will be shown in next lesson, the navigation problem will
consist on:
1.- To start from an approximate value for receiver position
( x0,rec , y0,rec , z0,rec )( e.g. the Earth’s centre ) to linearise the equations
2.- With the pseudorange measurements and the navigation
equations, compute the correction ( ∆xrec , ∆yrec , ∆zrec ) to have
improved estimates:= ( x , y , z ) ( x , y , z ) + ( ∆x , ∆y , ∆z )
gAGE/UPC

rec rec rec 0, rec 0, rec 0, rec rec rec rec

3.- Linearise the equations again, about the new improved estimates,
and iterate until the change in the solution estimates is sufficiently
small.
Master of Science in GNSS @ J. Sanz & J.M. Juan
76
gAGE For all sat.  x0,rec − x sat1 y0,rec − y sat1 z0,rec − z sat1 
in view 
 ρ0,satrec1 ρ0,satrec1 ρ0,satrec1
1

Prefit
Prefit  ∆∆xxrec
11
x  rec 

research group of Astronomy and Geomatics

 22 

− x sat 2 y0,rec − y sat 2 z0,rec − z sat 2 ∆y 
 Prefit
Prefit 
0, rec
1  ∆yrec
rec 
=  ρ 0,satrec2 ρ0,satrec2 ρ0,satrec2 
 ........
........    ∆∆zzrec 
    rec 
 .......... 
Prefit
Prefit nn
x  ccdt
dtrec 
rec 
0, rec − x y0,rec − y sat n z0,rec − z sat n
sat n
 1
 ρ 0,satrecn ρ0,satrecn ρ0,satrecn 

Observations Geometry of rays


(measured/computed)

Thence, the basic linearized GPS measurement


equation can be written as:

yy = G x
gAGE/UPC

This is a linear system with, in general, n ≥ 4 equations which we can


solve using LS, WLS, Kalman filter,…

Master of Science in GNSS @ J. Sanz & J.M. Juan


77
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


78
gAGE Least Squares solution (conceptual review)
As a driving problem, let us consider the problem of fitting a set of
research group of Astronomy and Geomatics

points (noisy measurements) to a straight line y=m x+n.


y
x y
x1 y1
x2 y2
yi
 
xN yN
xi x

 y1  m x1 + n  y1   x1 1 
 y  mx +n y   x 1 m
 2  2   2  +ε ⇒ y Gp+ε
=
gAGE/UPC


2
=

         n 
    N ×1 N × 2 2 ×1
 yN  m xN + n  yN   N 
x 1
Master of Science in GNSS @ J. Sanz & J.M. Juan
79
gAGE  y1  m x1 + n  y1   x1 1 
 y  mx +n y   x 1 m
 2
=
⇒  2   2  +ε ⇒ y Gp+ε
=
research group of Astronomy and Geomatics

2
        n 
 
    N ×1 N × 2 2 ×1
 yN  m xN + n  yN   N 
x 1
This is an over-determined (incompatible) system of equations
(due to the measurement noise ε).
It is evident that there is no straight line passing over all the data
points (red points). Thence, we have to look for a solution that
fits the measurements best in some sense.
y Note that, as G is not an squared
matrix (N>2), we cannot try:

y= G p ⇒ p= G −1y
But, GTG is a squared (N x N)
gAGE/UPC

yi
matrix, thence, we can try:

xi x G=
T
y GT G p ⇒
= pˆ (G T G ) −1 G T y
Master of Science in GNSS @ J. Sanz & J.M. Juan
80
gAGE
Results from Linear Algebra:
research group of Astronomy and Geomatics

1) ∃ (G T G ) −1 ⇔ The columns of matrix G are linearly independents.

 N 2  Least Squares
=
2) p (G G ) G y ⇔ min=
ˆ T
y − y min  ∑ ( yi − yi ) 
ˆ −1 T
ˆ
 i =1  solution
where
yˆ = G pˆ

But, what is the physical meaning


of the least square solution?
yˆi What does it mean the condition
yi
 N 2
gAGE/UPC

y − yˆ min  ∑ ( yi − yˆi )  ?
min=
xi x  i =1 

Master of Science in GNSS @ J. Sanz & J.M. Juan


81
What is the physical meaning of the least square solution?
gAGE
y What does it mean to minimize
 N 2
research group of Astronomy and Geomatics

y − yˆ min  ∑ ( yi − yˆi )  ?
min=
 i =1 

yˆi
yi − yˆi
yi
gAGE/UPC

xi x
Master of Science in GNSS @ J. Sanz & J.M. Juan
82
The Least Squares solution gives the solution of equilibrium
gAGE
of the following physical system, in which the red dots (i.e. data
y points) are attached to the straight line by springs that can only
research group of Astronomy and Geomatics

move in the direction of the y axis.

yˆi
yi
 N 2
min  ∑ ( yi − yˆi ) 
 i =1 
gAGE/UPC

xi x
Master of Science in GNSS @ J. Sanz & J.M. Juan
83
Indeed, the equilibrium solution is reached when the Total
gAGE
Potential Energy of the system is the minimum. That is,
y assuming the same spring constant k: V = 1 k ∆y 2 = 1 k ( y − yˆ
i)
2
research group of Astronomy and Geomatics

i i i
2 2

1 N k
= k ∑ ( yi − yˆi )
2
VTOTAL
2 i =1 k
k
k
k
yˆi k k
k
yi
k
 N 2
min (VTOTAL ) ⇒ min  ∑ ( yi − yˆi ) 
 i =1 
gAGE/UPC

 xi
N

x
min=
y − yˆ min  ∑ ( y − yˆ )=
 ⇔ pˆ (G T G ) −1 G T y
2
i i
Master of Science in GNSS
 i =1  @ J. Sanz & J.M. Juan
84
gAGE Let be the basic linearized GPS measurement equation:
y =Gx
research group of Astronomy and Geomatics

• Least Squares solution:


 2
min  ∑ ( yi − yˆ i ) 
2
min Y=
− Yˆ
ˆ = (G G ) Gt y
−1
t  i 
x
Yˆ = AXˆ

The same error is assumed in all measurements

• Weighted Least Squares solution


 wy1 0 
If the measurements have different errors,  
the equations can be weighted by matrix W : W=  
 0 wyn 

And the weighted least squares solution is: Uncorrelated errors are assumed
gAGE/UPC

ˆ = ( G W G ) G Wy
−1  2
min = y − yˆ W min  ∑ wi ( yi − yˆi ) 
2
t t
x  i 
yˆ = G xˆ
Master of Science in GNSS @ J. Sanz & J.M. Juan
85
Weighted Least Squares solution:
gAGE
y The same, but assuming different spring constants wi:
research group of Astronomy and Geomatics

1 1
Vi= wi ∆yi2= wi ( yi − yˆi )
2

2 2 wN
1 N
= ∑ wi ( yi − yˆi )
2
VTOTAL
2 i =1

yˆi w1 wj
wi
yi
w2
 N 2
min (VTOTAL ) ⇒ min  ∑ wi ( yi − yˆi ) 
 i =1 
gAGE/UPC

 N xi 2  x
min= y − yˆ W min  ∑ wi ( yi − =
yˆi )  ⇔ pˆ (G T WG ) −1 G T Wy
Master of Science in GNSS
 i =1  @ J. Sanz & J.M. Juan
86
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


87
gAGE Let be the basic linearized GPS measurement equation:
y =Gx
research group of Astronomy and Geomatics

• Least Squares solution:


 2
min  ∑ ( yi − yˆ i ) 
2
min Y=
− Yˆ
ˆ = (G G ) Gt y
−1
t  i 
x
Yˆ = AXˆ

The same error is assumed in all measurements

• Weighted Least Squares solution


 wy1 0 
If the measurements have different errors,  
the equations can be weighted by matrix W : W=  
 0 wyn 

And the weighted least squares solution is: Uncorrelated errors are assumed
gAGE/UPC

ˆ = ( G W G ) G Wy
−1  2
min = y − yˆ W min  ∑ wi ( yi − yˆi ) 
2
t t
x  i 
yˆ = G xˆ
Master of Science in GNSS @ J. Sanz & J.M. Juan
88
Assuming that measurements Y have
gAGE random errors with zero mean and 1/ σ y21 0 
variance σ2 , and assuming that error sources  
for each satellite are uncorrelated with W=  
research group of Astronomy and Geomatics

error sources for any other satellite, the  0 1/ σ y2n 


following weighted matrix may be used:  

wi =
1
 σ y2 ↑ ⇒ wi ↓
σ 2 i
− σ +σ
yi •- σ σ
greater error  less weight σ •= 300Km= 1msec
•Dt

Best Linear Unbiased Minimum Variance Estimator (BLUE):


Let be “Py “ the error covariance matrix for measurements y.
−1
If the weighting matrix is taken as W = Py -1
W =P y , thence the
Minimum Variance Solution is found:

xˆ = ( G P G ) G t Py−1 y
t −1 −1
gAGE/UPC

Pxˆ = ( G P G)
And the error covariance matrix t −1 −1
for the estimation X is: y

Master of Science in GNSS @ J. Sanz & J.M. Juan


89
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


90
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

See exercises 6 and 7, Session 5.2 in [RD-2]


Master of Science in GNSS @ J. Sanz & J.M. Juan
91
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


92
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


93
gAGE Kalman filtering:
It is based on computing the weighted average between:
research group of Astronomy and Geomatics

• the measurement Y(n)


y ( n) (i.e., at t = t )
n

• the prediction of the state X(n), ˆ ( n − 1)


ˆ − ( n) from previous estimation x
x

1. Weighted average:
Let’s assume, that we have the
 y ( n) = G ( n) x( n) prediction xˆ − (n) , with Pthence, −

 −
ˆ (n)
x

it can be used to add an


ˆ ( n) = x( n)
x additional set of equations
to the measurement equation
y= G x
gAGE/UPC

−1
 y ( n)   G ( n)   Py ( n ) 0 
 − =  x( n) W=
 0

Pxˆ − ( n ) 
xˆ ( n)   I 
Master of Science in GNSS  
@ J. Sanz & J.M. Juan
94
gAGE −1
 y ( n)   G ( n)   Py ( n ) 0 
 − =  x( n) W=
 0

Pxˆ − ( n ) 
research group of Astronomy and Geomatics

xˆ ( n)   I   

And the following solution of the previous equation system can be


found with some elemental algebraic manipulations:

ˆ = ( G t Py−1 G ) G t Py−1 y
−1
x

Pxˆ = ( G P G)
t −1 −1
y

ˆ ( n)
x Pxˆ ( n ) G t ( n) Py−(1n ) y ( n) + Pxˆ−−1( n ) x
ˆ − ( n) 
 
gAGE/UPC

−1
Pxˆ ( n ) G ( n ) P G ( n ) + P
t −1 −1 
 y(n) xˆ − ( n ) 
Master of Science in GNSS J. Sanz Subirana, JM. Juan Zornoza, M. Hernández-Pajares,
95
gAGE
research group of Astronomy and Geomatics
2.- Prediction
Scalar case:

Let’s xˆn −1 be the state at epoch n-1 with variance σ x2ˆ n −1

The simplest prediction model is to assume that the prediction


at epoch n is proportional to the state at epoch n-1. That is:

xˆn− = φ xˆn −1
Thence, existing a linear relation between xˆn −1 and xˆn− , the
variance of the prediction will be: 2
σ xˆ − = φ 2 σ xˆ2n−1 + q 2
=
n
gAGE/UPC

An additional term is added to


account for modeling error!

Master of Science in GNSS J. Sanz Subirana, JM. Juan Zornoza, M. Hernández-Pajares,


96
gAGE
Generalization to the vector case:
research group of Astronomy and Geomatics

xˆn− = φ xˆn −1
σ x2ˆ − φ 2 σ x2ˆn−1 + q 2
=
n

xn → x( n)
φ → Φ( n) Φ( n) : transition matrix
σ x2n
→ Px ( n ) Q( n) : process noise matrix
q 2
→ Q( n)

ˆ − ( n=
x ) Φ( n − 1) ⋅ x
ˆ ( n − 1)
gAGE/UPC

Pxˆ − ( n=
)
Φ ( n − 1) ⋅ Pxˆ ( n −1) ⋅ Φ t
( n − 1) + Q( n − 1)

Master of Science in GNSS J. Sanz Subirana, JM. Juan Zornoza, M. Hernández-Pajares,


97
gAGE Kalman filter (see kalman.f)
Measurements
research group of Astronomy and Geomatics

ˆ − ( n)
x y ( n)
Pxˆ − ( n ) Py ( n )
Estimation
Prediction

(n) Φ xˆ (n − 1)
xˆ= Pxˆ ( n ) ⋅ G t Py−(1n ) y (n) + Pxˆ−−1( n ) xˆ − (n) 
xˆ (n) =
 
−1
Pxˆ − ( n ) Φ Pxˆ ( n −1)Φt + Q
= = Pxˆ ( n ) G Py ( n ) G + Pxˆ − ( n ) 
t − 1 − 1
 

ˆ (0)
x
Pxˆ (0) ˆ ( n)
x
Pxˆ ( n )
gAGE/UPC

Initialization

Master of Science in GNSS @ J. Sanz & J.M. Juan


98
gAGE Kalman filter (classical version)
Measurements
research group of Astronomy and Geomatics

ˆ − ( n)
x y ( n)
Pxˆ − ( n ) Py ( n )
Estimation
Prediction −1


xˆ (n) = xˆ − (n) + K (n) ⋅  y (n) − G (n) ⋅ xˆ − (n) 
xˆ= (n) Φ xˆ (n − 1) −1
K (n) = Pxˆ − ( n ) ⋅ G (n) ⋅ G (n) ⋅ Pxˆ − ( n ) ⋅ G t (n) + Py ( n ) 
t

Pxˆ − ( n ) Φ Pxˆ ( n −1)Φt + Q


=  
[I K (n) ⋅ G (n)] ⋅ Pxˆ − ( n )
Pxˆ ( n ) =−

ˆ (0)
x
Pxˆ (0) ˆ ( n)
x
Pxˆ ( n )
gAGE/UPC

Initialization

Master of Science in GNSS @ J. Sanz & J.M. Juan


99
gAGE
Contents
research group of Astronomy and Geomatics

1. Measurements modelling and error sources


1.1. Introduction: Linear model and Prefit-residual
1.2. Code measurements modelling
1.3. Example of computation of modelled pseudorange
2. Linear observation model and parameter estimation
2.1. Least Squares solution (conceptual view)
2.2. Weighted Least Squares and Minimum Variance estimator
Example of solution computation
2.3. Kalman Filter (conceptual view)
Examples of static and kinematic positioning
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


100
gAGE Some simple examples to define matrices Φ and Q

ˆ − ( n=
) Φ( n − 1) ⋅ x
ˆ ( n − 1)
research group of Astronomy and Geomatics

x
Pxˆ − ( n ) =Φ ( n − 1) ⋅ Pxˆ ( n −1) ⋅ Φt ( n − 1) + Q( n − 1)

a) Static positioning:
State vector to be determined is X = (xrec , yrec , zrec , dtrec) where coordinates
(xrec , yrec , zrec) are considered constant (because receiver is fixed) and clock
offset dTrec is treated as white noise with zero mean and variance σ2Dt . In
these conditions, matrices have the form:
1  0 
   
1 0
Φ( n) =   Q( n) =  
 1   0 
   
0  σ DT
2
  
gAGE/UPC

Being σ DT process noise associated to clock offset (in some way, the
2

uncertainty in clock value).

Master of Science in GNSS -σ@ J. Sanz & J.M.σJuan


σDt= 300Km= 1msec 101
Constant
gAGE

The coordinates are always the same!


research group of Astronomy and Geomatics

* * *

Φ=1  x(n)=x(n-1)
Q=0 (no prediction error)
gAGE/UPC

We can assure that, the next x(n) will be


the same as x(n-1).
ˆ − (=
x n) Φ(n - 1) ⋅ x
ˆ ( n − 1)
Master of Science in GNSS @ J. Sanz & J.M. Juan
Pxˆ − ( n )= Φ(n - 1) ⋅ Pxˆ ( n −1) ⋅ Φ t (n - 1) + Q(n - 1) 102
gAGE
White Noise process N(0, σ)

From a given epoch is not possible


research group of Astronomy and Geomatics

to predict the following one

-2σ


* * *


+2σ
Φ=0  x(n)=0 (zero mean)
Q=σ2 (prediction error noise)
gAGE/UPC

We only can assume that, the next x(n)


can be x(n)=0 with a confidence σ.
ˆ − (=
x n) Φ(n - 1) ⋅ x
ˆ ( n − 1)
Master of Science in GNSS @ J. Sanz & J.M. Juan
Pxˆ − ( n )= Φ(n - 1) ⋅ Pxˆ ( n −1) ⋅ Φ t (n - 1) + Q(n - 1) 103
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


104
Static positioning: constant coordinates and white noise clock
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

S/A=on
Master of Science in GNSS @ J. Sanz & J.M. Juan
105
gAGE
b) Kinematic positioning
research group of Astronomy and Geomatics

1) In case of a fast moving vehicle, coordinates will be modeled as white


noise with zero mean, and the same rationale applies for clock offset:

0   σ dx
2

   
0 σ dy
2
Φ( n) =   Q( n) =  
 0   σ dz2 
   
 0   σ DT
2

2) In case of a slow moving vehicle, coordinates2 may be modeled as
random walk, process’ spectral density q = dσ , and the clock as a
dt
white noise:
1   qdx ∆t 
   
1 qdy ∆t
Φ( n) =   Q( n) =  
gAGE/UPC

 1   qdz ∆t 
   
0  σ DT
2
  

Master of Science in GNSS @ J. Sanz & J.M. Juan


106
gAGE Random Walk process: it varies slowly

The uncertainty increases with time


research group of Astronomy and Geomatics

dσ 2
∆t
dt

** *

ˆ − (=
x n) Φ(n - 1) ⋅ x
ˆ ( n − 1)
Pxˆ − ( n )= Φ(n - 1) ⋅ Pxˆ ( n −1) ⋅ Φ t (n - 1) + Q(n - 1)
gAGE/UPC

Φ=1  x(n)=x(n-1) (the same value is assumed)


Q=(dσ
Master of Science in GNSS/dt)*∆t (but, with prediction error noise increasing
2 @ J. with time)
Sanz & J.M. Juan
107
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


108
Pure Kinematic positioning: white noise coordinates and clock
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

S/A=on
Master of Science in GNSS @ J. Sanz & J.M. Juan
109
Kinematic positioning: random walk noise coordinates and white noise clock
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

S/A=on
Master of Science in GNSS @ J. Sanz & J.M. Juan
110
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


111
Positioning: Random walk coordinates with Q=0 and white noise clock
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

S/A=on
Master of Science in GNSS @ J. Sanz & J.M. Juan
112
gAGE
research group of Astronomy and Geomatics

Solving with the kalman filter (by hand):


gAGE/UPC

See exercise 8, Session 5.2 in [RD-2]

Master of Science in GNSS @ J. Sanz & J.M. Juan


113
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


114
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


115
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


116
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


117
gAGE
research group of Astronomy and Geomatics
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


118
gAGE
research group of Astronomy and Geomatics References

[RD-1] J. Sanz Subirana, J.M. Juan Zornoza, M. Hernández-Pajares, GNSS


Data processing. Volume 1: Fundamentals and Algorithms. ESA TM-
23/1. ESA Communications, 2013.
[RD-2] J. Sanz Subirana, J.M. Juan Zornoza, M. Hernández-Pajares, GNSS
Data processing. Volume 2: Laboratory Exercises. ESA TM-23/2. ESA
Communications, 2013.
[RD-3] Pratap Misra, Per Enge. Global Positioning System. Signals,
Measurements, and Performance. Ganga –Jamuna Press, 2004.
[RD-4] B. Hofmann-Wellenhof et al. GPS, Theory and Practice. Springer-Verlag.
Wien, New York, 1994.
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


119
gAGE
research group of Astronomy and Geomatics

Thank you
gAGE/UPC

Master of Science in GNSS @ J. Sanz & J.M. Juan


120

You might also like