Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
i=0
x
(k)
(i) x
(l)
(i + n) 0, for all n, k = l, (1.3)
where x
()
(1023 + m) = x
()
(m). The left-hand side of (1.3) denes the
cross-correlation function of the two sequences for shift n. The PRN
16 Fundamentals of Electrical Engineering
Table 1.4. Code Phase Assignments
Satellite ID GPS PRN Code Phase Code Delay First 10 Chips
Number Signal Number Selection Chips C /A Octal
1 1 2 6 5 1440
2 2 3 7 6 1620
3 3 4 8 7 1710
4 4 5 9 8 1744
5 5 1 9 17 1133
6 6 2 10 18 1455
7 7 1 8 139 1131
8 8 2 9 140 1454
9 9 3 10 141 1626
10 10 2 3 251 1504
11 11 3 4 252 1642
12 12 5 6 254 1750
13 13 6 7 255 1764
14 14 7 8 256 1772
15 15 8 9 257 1775
16 16 9 10 258 1776
17 17 1 4 469 1156
18 18 2 5 470 1467
19 19 3 6 471 1633
20 20 4 7 472 1715
21 21 5 8 473 1746
22 22 6 9 474 1763
23 23 1 3 509 1063
24 24 4 6 512 1706
25 25 5 7 513 1743
26 26 6 8 514 1761
27 27 7 9 515 1770
28 28 8 10 516 1774
29 29 1 6 859 1127
30 30 2 7 860 1453
31 31 3 8 861 1625
32 32 4 9 862 1712
** 33 5 10 863 1745
** 34* 4 10 950 1713
** 35 1 7 947 1134
** 36 2 8 948 1456
** 37* 4 10 950 1713
*34 and 37 have the same C /A code.
**GPS satellites do not transmit these codes; they are reserved for other uses.
Global Positioning System 17
Figure 1.8. G1, G2 maximal-length sequence generators (Reproduced from [11])
sequences are nearly uncorrelated for all shifts.
The second important property is that a PRN sequence is nearly un-
correlated with itself, except for zero shift. For a C/A-code, the auto-
correlation function of a sequence for shift n is dened as:
1022
i=0
x
(k)
(i) x
(k)
(i + n) 0, for all |n| 1. (1.4)
In order to detect a weak signal in the presence of strong signals, the
autocorrelation peak of the weak signal must be stronger than the cross-
correlation peaks from the strong signals. If the codes are orthogonal,
the cross correlations will be zero. However, the Gold codes are not
orthogonal but near orthogonal, implying that the cross correlations are
not zero but have small values.The cross correlation of the Gold code is
listed in Table 1.5.
For the C/A-code n= even = 10, thus, P = 1023. Using the relations
in the above table, the cross-correlation values are: -65/1023 (occurrence
18 Fundamentals of Electrical Engineering
Table 1.5. Cross-Correlation of Gold Codes
Number of Shift Normalized Cross Probability of
Code Period Register Stages Correlation Level Level
P = 2
n
1 n=odd
_
2
(n+1)/2
+ 1
P
0.25
1
P
0.5
2
(n+1)/2
1
P
0.24
P = 2
n
1 n=even
_
2
(n+1)/2
+ 1
P
0.125
1
P
0.75
2
(n+1)/2
1
P
0.125
12.5%), -1/1023 (75%), and 63/1023 (12.5%). The autocorrelation of the
C/A-codes of satellite 19 and the cross correlation of satellites 19 and 31
are shown in Figures 1.9(a) and 1.9(b) respectively. These satellites are
arbitrarily chosen. In Figure 5.6a, the maximum of the autocorrelation
peak is 1023, which equals the C/A-code length. The position of the
maximum peak is deliberately shifted to the center of the gure for a
clear view. The rest of the correlation has three values 63, -1, and -65.
The cross-correlation shown in Figure 1.9(b) also has three values 63,
-1, -65.
These are the values calculated by using equations in Table 1.5. The
dierence between the maximum of the autocorrelation to the cross cor-
relation determines the processing gain of the signal. In order to generate
these gures, the outputs from the C /A code generator must be 1 and
-1, rather than 1 and 0.
4.4 GPS Navigation Message
GPS transmits navigation data message at 50 bits per second. The
C/A-code is a bi-phase coded signal which changes the carrier phase
between 0 and at a rate of 1.023 MHz. The navigation data bit is also
bi-phase phase code, but its rate is only 50 Hz, or each data bit is 20 ms
long. Since the C/A-code is 1 ms, there are 20 C/A-codes in one data
bit. Thus, in one data bit all 20 C/A-codes have the same phase. The
Global Positioning System 19
Figure 1.9. Auto- and Cross-Correlation of C/A Code
message is formatted into frames of 1500 bits. It takes thirty seconds
to transmit a frame. Each frame is organized into ve subframes. Each
subframe is six seconds long and contains ten 30-bit words (see Figure
1.10). Subframe 1-3 typically repeat the same information from frame to
frame. Subframes 4-5 of the consecutive frames, however, contain dier-
ent pages of the navigation message. It takes 25 frames (12.5 minutes) to
transmit the complete navigation message. A unit of 25 frames is called
a Master Frame. The information content of the various subframe is
summarized below.
Subframe 1: satellite clock corrections, health indicators, age of data
Subframe 2-3: satellite ephemeris parameters
Subframe 4: ionosphere model parameters, UTC data, almanac and
health status data for satellites numbered 25 and higher
Subframe 5: almanac and health status data for satellites numbered
1-24
20 Fundamentals of Electrical Engineering
Figure 1.10. GPS Navigation Message Organization
The rst two words of each six-second subframe have a spatial signif-
icance: Telemetry word (TLM) and Hand-over word (HOW). The TLM
contains a xed 8-bit synchronization pattern and a 14-bit message. The
HOW word provides time information (seconds into the week) which al-
lows a receiver to acquire the week-long P(Y)-code segment.
5. GPS Observables
GPS provides two types of measurements. Code tracking provides
estimates of instantaneous ranges to the satellites. The code phase mea-
surements at an instant from dierent satellites have a common bias
and are, therefore, called pseudoranges. Carrier phase tracking provides
measurements of the reveived carrier phase relative to the phase of a si-
nusoidal signal generated by the receiver clock. The carrier phase gives
a precise measurement of change in the satellite-user pseudorange over
a time interval, and estimate of its instantaneous rate, or Doppler fre-
Global Positioning System 21
quency.
5.1 Measurement Models - Code Phase
Measurements
A code phase measurement made by a GPS receiver can be obtained
from the transit time of the signal from a satellite to the receiver. The
signal transit time is dened as the time dierence between the time of
reception, as determined by the receiver clock, and the time of trans-
mission, as marked on the signal by the satellire. In a GPS receiver, the
transit time is measured as the amount of time shift required to align
the C/A-code replica generated at the receiver with the signal received
from the satellite. There is no way that the satellite and the receiver
clocks can be perfectly synchronized, because each of them keeps time
independently (Each satellite generates its signals in accordance with a
clock on board, while the receiver generates a replica of each signal in
accordance with its own clock). Therefore the code phase measurements
are biased. The corresponding biased range, or pseudorange, is dened
as the transit time so measured multiplied by the speed of light in a
vacuum.
There are three dierent time scales to deal with: two of these are
the times kept by the satellite and receiver clocks, respectively. The
third is a common time reference. Usually it is GPS time. GPS time
is a composite time scale derived from the times kept by clocks at GPS
monitor stations.
Let be the transit time of the signal from a satellite arriving at the
receiver at time t per GPS time. Let t
s
(t) be the time of transmission
stamped on the signal, where the superscript s indicates it was derived
from the satellites clock. Let t
u
(t) be the arrival time measured by the
users receiver clock. The measured pseudorange is determined from the
apparent transit time as (See Figure 1.11:
(t) = c[t
u
(t) t
s
(t )]. (1.5)
In equation (1.5), t and are unknow parameters that are to be
estimated by the receivers signal processing algorithm. To simplify no-
tation, we shall make no reference to the satellite ID or carrier frequency,
when dealing with equation (1.5).
22 Fundamentals of Electrical Engineering
Figure 1.11. A Conceptual View of Pseudorange Measurements
The time scales of the receiver and the satellite clocks can be related
to GPS time as follows.
t
u
(t) = t + t
u
(t), (1.6)
t
s
(t ) = (t ) + t
s
(t ), (1.7)
where t
u
is the receiver clock bias and t
s
is the satellite clock bias. Here
both t
u
and t
s
are measured relative to GPS time. In our notation,
t
u
and t
s
reect the amounts by which the receiver and satellite clocks
are advanced in relation to GPS time. The satellite clock bias term is
maintained by the GPS Control Segment. The clock bias is broadcast
in the navigation message in terms of the coecient of a quadratic poly-
nomial in time.
By substituting equations (1.6) and (1.7) into the measured pseudor-
ange (1.5), we can obtain the following equation:
(t) = c[t + t
u
(t) (t + t
s
(t ))] +
(t)
= c + c[t
u
(t) t
s
(t )] +
(t),
(1.8)
Global Positioning System 23
where
(t) + T
(t), (1.9)
where r(t, t ) is the geometric range (or true range) between the
user position at time t and the satellite position at (t ). I
and
T
+ T
+ . (1.10)
Here, for simplicity, we have dropped explicit reference to the measure-
ment epoch t. Equation (1.10) is the basic measurement equation for
computing the position velocity,and time of the receiver. Ideally, one
would have liked to measure the geometric range r from the satellite to
the receiver. In practice, however, we can only have the pseudorange
instead. How accurate an estimate of position, velocity, or time we
can obtain from these measurements would depend upon our ability to
compensate for, or eliminate, the biases and errors.
The radius of the earth is 6,378 km around the equator and 6,357
km passing through the poles, and the average radius can be considered
as 6,368 km. The radius of the satellite orbit is 26,560 km, which is
about 20,192 km (26,560 - 6,368) above the earths surface. This height
is approximately the shortest distance between a user on the surface of
the earth and the satellite, which occurs at around zenith or an elevation
angle of approximately 90 degrees. Most GPS receivers are designed to
receive signals from satellites above 5 degrees. For simplicity, let us
assume that the receiver can receive signals from satellites at the zero-
degree point. The distance from a satellite on the horizon to the user is
25,785 km (
_
26, 5602
2
6, 3682
2
). These distances are shown in Figure
1.12.
From the distances in Figure 1.12) one can see that the time delays
from the satellites are in the range of 67 ms to 86 ms. If the user is on the
surface of the earth, the maximum dierential delay time from two dif-
ferent satellites should be within 19 (86V67) ms. The C/A-code repeats
each millisecond, and the code correlation process essentially provides
24 Fundamentals of Electrical Engineering
Figure 1.12. Earth and Circular Satellite Orbit
a measurement of pesudo-transit time modulo 1 ms. The measurement
is ambigious in whole milliseconds. This ambiguity, however, is easily
resolved if the user has a rough idea of his location within hundreds of
kilometers. The week-long P(Y)-code provides unambiguous pseudor-
anges.
5.2 Measurement Models - Carrier Phase
Measurements
A measurement much more precise than that of code phase is the
phase of the carrier received from a satellite. The carrier phase mea-
surement is the dierence between the phases of the receiver-generated
carrier signal and the carrier received from a satellite at the instant of
the measurement.
Global Positioning System 25
Consider rst an idealized case of error-free measurements with per-
fect and synchronized satellite and receiver clocks, and no relative mo-
tion between th satellite and the user. In this model, the carrier phase
measurement would remain xed at a fraction of a cycle, and the dis-
tance between a satellite and the receiver would be an unknown number
of whole cycle plus the measured fractional cycle. The measurement,
however, contains no information regarding the number of whole cycles,
referred to as the integer ambiguity.
Now suppose that the carrier phase is tracked while the receiver or
the satellite moves so that the distance between them grows by a wave-
length. The corresponding carrier phase measurement would be a full
cycle plus the fractional cycle phase measured the movement began. To
measure carrier phase in GPS, a receiver acquires phase lock with the
satellite signal, measures the initial fractional phase dierence between
the received and receiver-generated signals, and from then on tracks the
change in this measurement, counting full carrier cycles and keeping
track of the fractional cycle at each epoch.
In the absence of clock biases and measurement errors, the carrier
phase measurement in units of cycles can be written as
(t) =
u
(t)
s
(t ) + N, (1.11)
where
u
(t) is the phase of the receiver-generated signal;
s
(t ) is
the phase of the signal received from the satellite at time t, or the phase
of the signal at the satellite at time (t ); is the transit time of the
signal; and N is the integer ambiguity. Estimation of N is referred to
as integer ambiguity resolution or intialization. Simplifying the above
expression by writing phase as the product of frequency and time gives
(t) = f + N =
r(t, t )
+ N, (1.12)
where f and are the carrier frequency and wavelength, respectively,
and r(t, t ), as before, is the geometric range between the user posi-
tion at time t and the satellite position at (t ).
Accounting for the various measurement errors, clcok biases and initial
phase osets, equation (1.12) can be rewritten as
=
1
[r + I
+ T
] +
c
(t
u
t
s
) + N +
, (1.13)
26 Fundamentals of Electrical Engineering
where I
and T
(k)
= r
(k)
(t, t ) + c[t
u
(t) t
(k)
(t )] + I
(k)
(t) + T
(k)
(t) +
(k)
(t),
(1.14)
where k = 1, 2, ....K denotes the k-th satellite. A user would correct
each measured pseudorange for the known errors using parameter val-
ues in the navigation message from the satellite. The main corrections
available to an SPS user are: (1) satellite clock oset relative to GPS
time, (2) relativity eect, and (3) ionospheric delay using the parameter
values for the Klobuchar model[6]. Step-by-step implementation of these
corrections is given in the GPS Interface Control Document[4].
Denote by
(k)
c
the pseudorange obtained after accounting for the
satellite clock oset and compensating for the remaining errors in the
measurements to the extent it is practical for a user. Equation (1.14)
can be rewritten for the corrected pseudorange measurements as follows.
(k)
c
= r
(k)
+ ct
u
+
(k)
, (1.15)
28 Fundamentals of Electrical Engineering
wherer the term
(k)
(k)
c
= x
(k)
x + b +
(k)
, (1.16)
where b := ct
u
with units of meters.
Figure 1.13. The ranges to GPS satellites measured by a receiver have a common
bias and are called pseudorange.
Usually the user clock error cannot be corrected through received in-
formation. Thus, it will remain as an unknown. A simple approach to
solving the K equations (1.16) is to linearized them about an approxi-
mate user position, and solve iteratively. The idea is to start with rough
Global Positioning System 29
estimates of the user position and clock bias, and rene them in stages
so that the estimates t the measurements better. The approach de-
scribed below is generally referred to as Newton-Raphson method. Let
x
0
= (x
0
, y
0
, z
0
) and b
0
be the rst guesses of the user position and
receiver clock bias, respectively. From (1.16), the corrected pseudor-
ange measurement from satellite k is
(k)
c
. Let
(k)
0
be the corresponding
approximation based on the initial guesses x
0
and b
0
. Then
(k)
0
= x
(k)
x
0
+ b
0
. (1.17)
Let the true position and true clock bias be represented as x = x
0
+x
and b = b
0
+ b, where x and b are the unknown corrections to be
applied to our initial estimates. Equation (1.16) has a rst-order Taylor
series approximation in (x, b) of the following form:
(k)
=
(k)
c
(k)
0
= x
(k)
x
0
x x
(k)
x
0
+ (b b
0
) +
(k)
(x
(k)
x
0
)
x
(k)
x
0
x + b +
(k)
= 1
(k)
x + b +
(k)
,
(1.18)
where 1
(k)
is the estimated line-of-sight unit vector directed from the
initial estimate of the user position to satellite k. The elements of 1
(k)
are direction cosines of the vector drawn from the estimated receiver
location to the satellite.
1
(k)
=
1
x
(k)
x
0
_
x
(k)
x
0
, y
(k)
y
0
, z
(k)
z
0
_
T
(1.19)
It wolud be more easily to derive (1.18) if we use the long-hand notaton
as
_
_
x
(k)
x
0
x
_
2
+
_
y
(k)
y
0
y
_
2
+
_
z
(k)
z
0
z
_
2
_
_
x
(k)
x
0
_
2
+
_
y
(k)
y
0
_
2
+
_
z
(k)
z
0
_
2
_
x
(k)
x
0
_
x +
_
y
(k)
y
0
_
y +
_
z
(k)
z
0
_
z
_
_
x
(k)
x
0
_
2
+
_
y
(k)
y
0
_
2
+
_
z
(k)
z
0
_
2
.
A more compact form of the above equation is written as:
x
(k)
x
0
x x
(k)
x
0
(x
(k)
x
0
)
x
(k)
x
0
x.
30 Fundamentals of Electrical Engineering
The set of K linear equations (1.18) can be written in matrix notation
as
=
_
(1)
(2)
.
.
.
(K)
_
_
=
_
_
(1
(1)
)
T
1
(1
(2)
)
T
1
.
.
.
.
.
.
(1
(K)
)
T
1
_
_
_
x
b
_
+
. (1.20)
These are K ( 4) linear equations with four unknown: (x, y, z) and
b. Equation (1.20) can be written in a more compact matrix form:
= G
_
x
b
_
, (1.21)
where
G :=
_
_
(1
(1)
)
T
1
(1
(2)
)
T
1
.
.
.
.
.
.
(1
(K)
)
T
1
_
_
is a (K4) matrix characterizing the user-satellite geometry. Therefore
G is usually referred to as the geometry matrix.
If K = 4 we can generally solve the four equations for four unknown
directly. A problem would arise if the equations are linearly dependent,
making G rank-decient. This could happen, for example, if the eleva-
tion angles of all satellites measured from the user position are the same.
In this case, the tips of the unit line-of-sight vectors would all lie in a
plane, and rank(G)=3.
If K > 4, we have an over-determined system of equations, and G
would be full-rank, in general. We can now look for a solution which ts
the measurement best. It is common to use the criterion of least-squares:
The best solution is the one for which the sum of squared residuals is
smallest. The least-squares solution for the corrections to the initial
estimates can be written as:
_
x
b
_
= (G
T
G)
1
G
T
, (1.22)
and the new, improved estimates of the user position and clock bias are
Global Positioning System 31
x = x
0
+ x,
b = b
0
+
b.
(1.23)
The observation equations may now be linearized about these new es-
timates of the user position and clock bias, and the solution may be
iterated until the change in the estimates is suciently small.
The above approach can be summarized in the following steps:
1 Choose a nominal position and user clock bias x
0
, y
0
, z
0
, b
0
to
represent the initial condition. For example, the position can be
the center of the earth and the clock bias zero. In other words, all
initial values are set to zero.
2 Use equation (1.17) to calculate the pseudorange
0
These
0
values
will be dierent from the measured values. The dierence between
the measured values and the calculated values is .
3 Use the calculated
0
in equation (1.19) to calculate the unit line-
of-sight vectors.
4 Use equation (1.22) to nd x, y, z, and b.
5 From the absolute values of x, y, z, b calculate
v :=
_
x
2
+ y
2
+ z
2
+ b
2
.
6 Compare v with an arbitrary chosen threshold; if v is greater
than the threshold, the following steps will be needed.
7 Add these values x, y, z, b to the initial chosen position x
0
,
y
0
, z
0
, and the clock bias b
0
; a new set of position and clock bias
can be obtained and they will be expressed as in equation (1.23).
These values will be used as the initial position and clock bias in
the following calculations.
8 Repeat the procedure from 1 to 7, until v is less than the thresh-
old. The nal solution can be considered as the desired user posi-
tion and clock bias.
32 Fundamentals of Electrical Engineering
References
[1] P. Axelrad and R.G. Brown, GPS Navigation Algorithms, in B.
W. Parkinson and J. J. Spilker, Jr., Global Positioning System: The-
ory and Applications, Vols. 1 and 2, American Institute of Aeronau-
tics and Astronautics, Washington, DC, 1996.
[2] FRP, 1999 Federal Radionavigation Plan, U.S. Department of De-
fense and Transportation.
[3] B. Homann-Wellenhof, H. Lichtennegger, and J. Collins, GPS -
Theory and Practice, 4th Edition, Springer Wein, 1997.
[4] ICD-GPS-200C, NAVSTAR GPS Space Segment/Navigation User
Interfaces, U.S. Air Force, 2000.
[5] E. Kaplan, Editor, Understanding GPS: Principles and Applica-
tions, Artech House, 1996.
[6] J. A. Klobuchar, Ionospheric eects on GPS, Chapter 12 in B. W.
Parkinson and J.J. Spilker, Jr., Global Positioning System: Theory
and Applications, Vols. 1 and 2, American Institute of Aeronautics
and Astronautics, Washington, DC, 1996.
[7] P. Misra and P. Enge, Global Positioning System: Signals, Measure-
ments, and Performance, Ganga-Jamuna Press, 2001.
[8] J. J. Spilker, Jr., GPS Signal Structure and Performance Char-
acteristics, Navigation, Institute of Navigation, vol. 25, no. 2, pp.
121-146, Summer 1978.
[9] J. J. Spilker, Jr., GPS signal structure and theoretical performance,
Chapter 3 in B. W. Parkinson and J. J. Spilker, Jr., Global Posi-
tioning System: Theory and Applications, Vols. 1 and 2, American
Institute of Aeronautics and Astronautics, Washington, DC, 1996.
[10] G. Strang and K. Borre, Linear Algera, Geodesy, and GPS,
Wellesley-Cambridge Press, 1997.
[11] James B.Y. Tsui, Fundamentals of Global Positoning System Re-
ceivers: a Software Approach, John Wiley & Sons, Inc., 2000.
[12] U.S. Department of Defense, Global Positioning System Standard
Positioning Service Performance Standard, Assistant Secretary of
Defense, October 2001.
[13] A.J. Van Dierendonck, Satellite Radio Navigation, in Avionics
Navigation Systems, 2nd Edition, M. Kayton and W. R. Fried, Eds.,
pp. 178-282, John Wiley & Sons, 1997.