Professional Documents
Culture Documents
Dong2003 MSC
Dong2003 MSC
Number 20184
by
Lei Dong
December 2003
THE UNIVERSITY OF CALGARY
by
Lei Dong
A THESIS
CALGARY, ALBERTA
November, 2003
A software-based intermediate frequency (IF) GPS signal simulator for the L1 C/A code
signal is developed and verified in this thesis. The signal simulator is implemented in
mathematical signal model is developed that expresses the digitized IF GPS signal as a
function of various errors during propagation, such as satellite clock error, ionosphere
error, and troposphere error; and user defined parameters, such as date and GPS time,
user trajectory, expected C/N0, noise density, intermediate frequency, sampling rate,
front-end bandwidth, and quantization bit. The simulator is verified by comparing the
simulated signal with the hardware-collected IF GPS signal in the time, frequency,
Partially for the simulator verification purpose, a software GPS receiver was developed
and verified, which was used to process the simulated signal to get the pseudorange and
carrier phase measurements. The signal acquisition and tracking techniques originally
studied and verified in this thesis were used for the first generation software receiver
receiver consists of the following modules: signal acquisition, signal tracking, bit
using a set of real GPS signal measurements collected by a commercial hardware front-
end and comparing the tracking results and navigation solution with the corresponding
iii
ACKNOWLEDGEMENTS
Lachapelle, for his continuous guidance and support during my Master’s program. I will
always remember his sincere spirit of cooperation, his positive attitude, and
understanding.
I would like to acknowledge the following graduate students and research associates:
Olivier Julien, Aaron Morton, Changlin Ma, and Mark Petovello for their support and
kindness.
Thanks also to the professors, students, and staff of the Department of Geomatics
tremendously throughout my study, and to our son, Xingyu, for bringing so much joy into
my life. I am also indebted to my parents and parents-in-law for their untiring support.
iv
TABLE OF CONTENTS
ABSTRACT............................................................................................................................ iii
ACKNOWLEDGEMENTS .................................................................................................. iv
TABLE OF CONTENTS ....................................................................................................... v
LIST OF TABLES ................................................................................................................. ix
LIST OF FIGURES ................................................................................................................ x
NOTATION.......................................................................................................................... xvi
0.1 Symbols ........................................................................................................................... xvi
0.2 Abbreviations and Acronyms ....................................................................................... xix
CHAPTER 1
INTRODUCTION................................................................................................................... 1
1.1 Background ....................................................................................................................... 1
1.2 GPS Signal Simulation Review ........................................................................................ 3
1.3 Objective ............................................................................................................................ 6
1.4 Thesis Outline.................................................................................................................... 7
CHAPTER 2
v
2.2.2 Signal Processing........................................................................................................21
2.3 Error Sources .................................................................................................................. 25
2.3.1 Ephemeris Errors ........................................................................................................26
2.3.2 Satellite Clock Error ...................................................................................................26
2.3.3 Ionospheric Error and Tropospheric Error..................................................................27
2.3.4 Multipath.....................................................................................................................28
2.3.5 Receiver Noise Errors.................................................................................................29
CHAPTER 3
vi
CHAPTER 4
CHAPTER 5
CHAPTER 6
vii
6.2 Simulated Signal Description....................................................................................... 116
6.3 Time Domain Verification............................................................................................ 117
6.4 Verification in the Correlation Domain...................................................................... 118
6.5 Tracking Result Comparison....................................................................................... 122
6.5.1 Data Bits ...................................................................................................................122
6.5.2 Carrier-to-noise Ratio ...............................................................................................125
6.5.3 Delay Lock Loop Detector .......................................................................................128
6.5.4 Doppler .....................................................................................................................131
6.5.5 Pseudoranges ............................................................................................................134
6.6 Verification in Position Domain .................................................................................. 139
6.7 Some Other Results for Various Simulation Cases ................................................... 141
CHAPTER 7
REFERENCES.................................................................................................................... 156
viii
LIST OF TABLES
Table 5.2: Acquired Doppler values of the Signal Tap collected signal ........................ 108
Table 5.3: Doppler and C/N0 values obtained by the OEM4 receiver and software GPS
receiver.................................................................................................................... 112
Table 6.2: Simulated C/N0 and ionospheric and tropospheric errors.............................. 117
Table 6.3: Correlation peak values of all acquired satellites .......................................... 121
Table 6.4 Pseudorange differences of the simulated signals and simulated ionospheric
ix
LIST OF FIGURES
Figure 3.1: GPS signal propagation and processing in the front-end ............................... 31
Figure 3.8: Satellite and receiver position in the ECEF frame at the transmission time and
reception time............................................................................................................ 50
Figure 3.11: Noise characteristics in the time and frequency domains ............................ 64
Figure 3.14: IF 1-bit quantization GPS signal in the time and frequency domains.......... 67
x
Figure 3.17: IF 2-bit quantization GPS signal in the time and frequency domains.......... 71
Figure 5.3 (a): Average C/N0 and Doppler for SV1 ....................................................... 109
Figure 5.3 (b): Average C/N0 and Doppler for SV2 ....................................................... 109
Figure 5.3 (c): Average C/N0 and Doppler for SV4 ....................................................... 110
xi
Figure 5.3 (d): Average C/N0 and Doppler for SV13 ..................................................... 110
Figure 5.3 (e): Average C/N0 and Doppler for SV16 ..................................................... 110
Figure 5.3 (f): Average C/N0 and Doppler for SV20...................................................... 111
Figure 5.3 (g): Average C/N0 and Doppler for SV25 ..................................................... 111
Figure 5.4: Navigation solution of the real GPS signal .................................................. 113
Figure 5.5: Navigation solution computed from the OEM4 receiver generated raw
measurements.......................................................................................................... 114
Figure 6.1: Power spectrum of the real and simulated IF GPS signal ............................ 117
Figure 6.2 (a): Acquisition results of the real signal and simulated signal for SV1 ....... 119
Figure 6.2 (b): Acquisition results of the real signal and simulated signal for SV2....... 119
Figure 6.2 (c): Acquisition results of the real signal and simulated signal for SV4 ....... 119
Figure 6.2 (d): Acquisition results of the real signal and simulated signal for SV13..... 120
Figure 6.2 (e): Acquisition results of the real signal and simulated signal for SV16 ..... 120
Figure 6.2 (f): Acquisition results of the real signal and simulated signal for SV20 ..... 120
Figure 6.2 (g): Acquisition results of the real signal and simulated signal for SV25..... 121
Figure 6.3 (a): Data bits of the real signal and simulated signal for SV1....................... 122
Figure 6.3 (b): Data bits of the real signal and simulated signal for SV2....................... 123
Figure 6.3 (c): Data bits of the real signal and simulated signal for SV4....................... 123
Figure 6.3 (d): Data bits of the real signal and simulated signal for SV13..................... 123
Figure 6.3 (e): Data bits of the real signal and simulated signal for SV16..................... 124
Figure 6.3 (f): Data bits of the real signal and simulated signal for SV20 ..................... 124
Figure 6.3 (g): Data bits of the real signal and simulated signal for SV25..................... 124
Figure 6.4 (a): C/N0 of the real signal and simulated signal for SV1 ............................. 125
xii
Figure 6.4 (b): C/N0 of the real signal and simulated signal for SV2............................. 126
Figure 6.4 (c): C/N0 of the real signal and simulated signal for SV4 ............................. 126
Figure 6.4 (d): C/N0 of the real signal and simulated signal for SV13........................... 126
Figure 6.4 (e): C/N0 of the real signal and simulated signal for SV16 ........................... 127
Figure 6.4 (f): C/N0 of the real signal and simulated signal for SV20............................ 127
Figure 6.4 (g): C/N0 of the real signal and simulated signal for SV25........................... 127
Figure 6.5 (a): DLL lock detector of the real signal and simulated signal for SV1........ 129
Figure 6.5 (b): DLL lock detector of the real signal and simulated signal for SV2 ....... 129
Figure 6.5 (c): DLL lock detector of the real signal and simulated signal for SV4........ 129
Figure 6.5 (d): DLL lock detector of the real signal and simulated signal for SV13 ..... 130
Figure 6.5 (e): DLL lock detector of the real signal and simulated signal for SV16...... 130
Figure 6.5 (f): DLL lock detector of the real signal and simulated signal for SV20 ...... 130
Figure 6.5 (g): DLL lock detector of the real signal and simulated signal for SV25 ..... 131
Figure 6.6 (a): Doppler of the real signal and simulated signal for SV1 ........................ 132
Figure 6.6 (b): Doppler of the real signal and simulated signal for SV2........................ 132
Figure 6.6 (c): Doppler of the real signal and simulated signal for SV4 ........................ 132
Figure 6.6 (d): Doppler of the real signal and simulated signal for SV13...................... 133
Figure 6.6 (e): Doppler of the real signal and simulated signal for SV16 ...................... 133
Figure 6.6 (f): Doppler of the real signal and simulated signal for SV20 ...................... 133
Figure 6.6 (g): Doppler of the real signal and simulated signal for SV25...................... 134
Figure 6.7 (a): Doppler of the real signal and simulated signal for SV1 ........................ 135
Figure 6.7 (b): Doppler of the real signal and simulated signal for SV2........................ 135
Figure 6.7 (c): Doppler of the real signal and simulated signal for SV4 ........................ 135
xiii
Figure 6.7 (d): Doppler of the real signal and simulated signal for SV13...................... 136
Figure 6.7 (e): Doppler of the real signal and simulated signal for SV16 ...................... 136
Figure 6.7 (f): Doppler of the real signal and simulated signal for SV20 ...................... 136
Figure 6.7 (g): Doppler of the real signal and simulated signal for SV25...................... 137
Figure 6.8 Pseudorange differences of the real signal and simulated signal .................. 138
Figure 6.9: Navigation solution of the real GPS signal .................................................. 139
Figure 6.11: Carrier smoothed navigation solution of the simulated GPS signal........... 141
Figure 6.12: Navigation solution of the simulated GPS signal with 1-bit quantization . 143
Figure 6.13: Pseudorange and Doppler differences of the simulated GPS signal with 1-bit
quantization............................................................................................................. 143
Figure 6.14: Navigation solution of the simulated GPS signal with noise, filtering and 1-
Figure 6.15: Pseudorange and Doppler differences of the simulated GPS signal with
Figure 6.16: Navigation solution of the simulated GPS signal with noise, filtering and 2-
Figure 6.17: Pseudorange and Doppler differences of the simulated GPS signal with
Figure 6.18: Navigation solution of the simulated GPS signal with noise, filtering, 1-bit
Figure 6.19: Pseudorange and Doppler differences of the simulated GPS signal with
xiv
Figure 6.20: Navigation solution of the simulated GPS signal with tropospheric error
Figure 6.21: Navigation solution of the simulated GPS signal (receiver trajectory mode 1)
................................................................................................................................. 149
Figure 6.22: Pseudorange and Doppler differences of the simulated GPS signal (receiver
Figure 6.23: Navigation solution of the simulated GPS signal (receiver trajectory mode 2)
................................................................................................................................. 150
Figure 6.24: Pseudorange and Doppler differences of the simulated GPS signal (receiver
xv
NOTATION
0.1 Symbols
A Signal Amplitude
Bn Bandwidth of the Filter in the Receiver to Remove the Out of Band Noise
c Speed of Light
fd Doppler Frequency
f L1 Centre Frequency of L1
f L2 Centre Frequency of L2
Fe -4.442807633 × 10−10 s / m1 / 2
xvi
N The Number of the Satellites in View
N0 Noise Density
~
Pnm Normalized Associated Legendre Functions of Degree n and Order m
Rh Relative Humidity
S L1 GPS L1 Signal
SF Scale Factor
t GPS Time
∆ tR Relativistic Correction
xvii
T0 Average Temperature over a Given Day
Tc Temperature
ωe Frequency Error
ω IF Intermediate Frequency
ω L1 L1 Carrier Frequency
∆ω Frequency Offset
xviii
δ ttropo Tropospheric Error
θ Elevation Angle
Λ nm Normalization Factor
C/A Coarse/Acquisition
C3NAVG2TM Combined Code and Carrier for Navigation with GPS and GLONASS
xix
GLONASS Global Orbiting Navigation Satellite System
IF Intermediate Frequency
L1 Link 1
L2 Link 2
LO Local Oscillator
P(Y) Precise
RF Radio Frequency
SA Selective Availability
xx
WGS-84 World Geodetic System - 1984
xxi
CHAPTER 1
INTRODUCTION
1.1 Background
For positioning purposes, a GPS receiver needs to fulfill several tasks to derive the raw
measurements from the GPS radio frequency (RF) signals transmitted by the satellites.
First, a well-designed antenna is necessary to receive the RF signals which are down-
converted to a low frequency band and digitized into intermediate frequency (IF) discrete
signals by an RF section, referred to as the front-end. At this point, the digitized IF signal
is ready to be processed by the receiver channels. Then, the signals are fed into different
a signal and derive its initial code shift and Doppler estimates. Tracking, bit
synchronization, and sub-frame synchronization are used to keep track of the carrier and
code as well as to obtain pseudorange, carrier phase measurements, and the navigation
front-end, and part of the digital signal processing (such as correlation and accumulation),
are implemented in hardware while the other part of the digital signal processing is
implemented in software.
software except for the front-end part, which offers various advantages. First, a software
1
approach removes the nonlinear, temperature-dependent and age-dependent components
of the hardware receiver. Second, a software receiver can provide researchers and
developers with more evaluation and testing flexibility. It is easy to prototype the latest
the GPS modernization program and Galileo signals, can be studied without any
hardware development.
All research on software GPS receivers start from the basis of the digitized IF signal.
Only a digitized IF signal with proper base band intermediate frequencies can be fed to
and processed by a software GPS receiver. Various hardware front-ends and A/D
signal sampling, and quantization to provide a suitable IF GPS signal; however, using a
hardware front-end has several shortcomings. Firstly, a hardware front-end affords little
flexibility because it normally has its own specific and multiple, generally component-
driven, parameters that cannot be easily changed. Secondly, the use of a hardware front-
end requires a GPS simulator to generate actual radio frequency signals based on
the typical development stage of a project, the cost of a GPS simulator is prohibitively
expensive, typically in the hundreds of thousands of dollars. Furthermore, some new GPS
2
A software simulator is an efficient way to generate the digitized IF GPS signal as the
signal conditions. The user can configure the GPS signal propagation and processing
signals with specific properties as required. This makes it convenient to test and evaluate
various receiver acquisition and tracking algorithms and to investigate the software
simulator; for example, operation with signals that are not yet available (such as L5 and
Galileo signals) can be simulated to develop and evaluate new receiver algorithms. The
documented in the literature. Although the specific implementation varies between the
accumulated In-phase (I) and Quadra-phase (Q) components. In some simulators, the real
GPS signals - including codes, navigation messages, and error sources - are faithfully
simulated while, in others, mathematical models are used to directly generate analytical I
and Q components with error sources without simulating the actual carrier and code
waveforms. Although the effects of errors are important, not all error sources may be
simulated in any one of the simulators due to their different research purposes.
3
Three commercial simulators were found in the literature. The MATLAB GPS signal
simulation toolbox developed by the NAVSYS Company (Brown et al., 2000) provides a
complete set of GPS signal simulations, test, and analysis tools. It can generate the
simulated RF GPS signals as a function of the signal strength, pseudorange, Doppler and
Doppler rate. The effects of interfering signal sources, antenna and front-end on the
received GPS signal are also modeled. This simulation approach is very computationally
The second product found is the software-based GPS signal simulator released by the
Centre for Remote Sensing (CRS) (CRS, 2002). It is part of a suite of products developed
by CRS for the development of advanced GPS systems. It allows users to introduce
The third product, available commercially through Navtech Inc., is the GPS correlator
product is a “very powerful software package for understanding the characteristics of the
GPS satellite signal and its processing in a typical GPS receiver” (Navtech, 2002). The
simulator is composed of two parts: an input signal simulator and a signal processor. The
input signal simulator can simulate noise effects, receiver circuit parameters and the base
band converter. However, its true environment is not driven by satellite position and
4
receiver trajectory, which is a requirement for simulating ultra-tightly coupled navigation
systems.
Burns et al. (2002) presented a software GPS signal simulation method for the purpose of
An L1 signal was simulated including the C/A code, the navigation data, atmospheric
noise, and radio frequency interference (RFI); the performance of the antenna, filtering,
gain, down-conversion and thermal noise inherent in the analog hardware were taken into
account. Seitz and Braasch (1998) implemented a high fidelity GPS receiver simulation
that is structured to include a GPS signal generator, a propagation path that allows for the
addition of signal anomalies, and a GPS receiver model. The functions of the first two
Corbell (2000) developed a GPS signal simulator based on the true satellite and user
trajectories. Only the receiver errors that affect the receiver tracking loop performance
were taken into account. The errors, such as clock error, amplitude of signal and noise,
and quantization effects were modeled at the A/D output point by derivation of analytical
error expressions.
A distinctive analytical representation of a GPS receiver was also realized by Miller and
Corbell (2000) and Corbell and Miller (2001). The GPS signal simulator part does not
actually generate the carrier or code waveforms, but keeps track of their phases and
5
models. The computational burden is greatly reduced using this simulation method, but it
1.3 Objective
The objective of this thesis is to develop and verify a digitized IF GPS signal simulator.
This objective is part of a larger objective within the PLAN group of the Department of
study existing and new GPS and Galileo signal performance, as well as study the effect of
The main purpose of the signal simulator developed herein is to provide a basic user-
friendly simulation tool to generate the digitized IF GPS signal for evaluation of software
various acquisition, tracking and navigation algorithms for software GPS receivers
underway by other researchers within the PLAN group. Because of time constraints, a
basic version of the simulator, based on the L1 C/A code, is developed and verified in
this thesis.
The simulation is based on receiving time, satellites’ trajectories, user trajectory, and a
selection of GPS errors. The generated signal is saved in a data file that can be directly
environmental noise. However, only those error sources that significantly affect the
6
measurements will be simulated in the first stage. To reduce the potentially large
computational burden, the error simulation is based only on the mathematical models at
the IF sample point with some key functions written in C code. Another consideration is
that the simulator must be easily reconfigured so that users can combine new components
or functions to generate the new signals and change parameters for specific signal
conditions.
Verification of the simulator’s operation is critical to the success of the project. It can be
receiver and observing if the correct tracking results and navigation solution are obtained.
To this end, the first step involves the development of a software GPS receiver. However,
the self-developed receiver also needs verification. Therefore, real IF GPS signals
collected by a hardware front-end at a known position is fed to the receiver to verify the
correctness of the software GPS receiver. The simulator simulates this group of real IF
GPS signals, and then feeds the results to the same software receiver. The verification is
conducted by comparing the simulated and real signals in the frequency, acquisition and
The remaining parts of this thesis consist of the following chapters: Chapter 2 describes
the structure of the GPS signal, conventional front-end and receiver design, as well as
various error sources. Chapter 3 first develops an intermediate frequency GPS signal
simulation model, which includes the RF GPS signal propagation in the atmosphere and
7
processing in the front-end till the IF signal point after A/D; then the realization of the
GPS receiver. Chapter 5 presents the software GPS receiver verification results using the
real IF GPS data collected by a hardware front-end called “Signal Tap”. Chapter 6
presents the simulator verification by comparing the simulated and real signals in the
frequency, acquisition and position domains and the tracking results of both signals.
8
CHAPTER 2
Currently, each GPS satellite broadcasts signals on two specific centre frequencies, L1
(1575.42 MHz) and L2 (1227.60 MHz). The transmitted signal is a modulation of the
navigation message on Pseudorandom Noise (PRN) codes and carriers. The Standard
Positioning Service (SPS) signal (C/A code) and the Precise Positioning Service (PPS)
signal (P(Y) code) are both broadcast on the L1 frequency. The C/A code is the in-phase
component, and the P(Y) code is quadrature component. Each satellite has the capability
of broadcasting either the SPS or the PPS signal on L2 but, in practice, only the PPS
signal is broadcast. According to the GPS Modernization Program, new signals such as
L5 and the M code will be implemented in the satellites of Block IIF (McDonald and
Hegarty, 2000).
• Ranging code: The sequences, called PRN sequences or PRN codes have special
properties which allow all satellites to transmit at the same frequency without
interfering with each other. SPS uses a family of Gold codes for its PRN
9
sequences (C/A codes), at a chipping rate of 1.023 MHz. The PPS uses a unique
segment of an extremely long (~1014 chips) PRN sequence called the P(Y) code,
which has a chipping rate of 10.23 MHz, ten times that for a C/A code. The Gold
codes are 1023 chips long, and therefore repeat every millisecond. The P(Y) code
segment repeats each week, giving it a period of 604800 seconds and a unique
• Navigation data: this is a binary coded message consisting of data on the satellite
health status, ephemeris, clock bias parameters, and an almanac giving reduced
precision ephemeris data on all satellites in the constellation. Each GPS satellite’s
BPSK (Binary Phase Shift Keying) unit modulates all signals with a 50 Hz data
message 37500 bits long, which continuously repeats and periodically changes.
An entire data message from one satellite is received only after 12.5 minutes of
continuous reception.
These three components of a signal are derived coherently from one of the atomic
standards aboard the satellite, which is 10.23 MHz. The relationship with the chipping
rate is obvious. The relationships with L1, L2 and the navigation data rate are as follows:
Each code is combined with the binary navigation data using modulo-2 addition: if the
code chip and the data bit are the same (both are 0s or both are 1s), the result is 0; and if
10
they are different, the result is 1. The composite binary signal is then modulated on the
The L1 signal leaving the antenna of the ith satellite can be represented analytically as:
where
In order to express the BPSK signals in Equation (2.2) the binary values of the navigation
data need to be switched to ±1. A bit 0 maps into 1 and a bit 1 maps into -1. Figure 2.1
illustrates the relationships of the C/A code signal components specified in Equation
(2.2). This plot represents an idealized depiction of the signals for the purpose of
illustrating this relationship. In practice, phase transitions at these frequencies are never
11
2.1.2 GPS Signal Power Levels
GPS signals received on the Earth are extremely weak. They are well below the
structure (i.e. PRN code) that allows a receiver to extract the signal buried in the
background noise and to make precise measurements. The specifications of the received
power level for users on the Earth are given in Table 2.1.
12
Maximum expected power -152.0 dBW -155.5 dBW -158.0 dBW
These measurements are referenced to a power level of one Watt. However, absolute
signal power is not necessary meaningful, because it does not consider the power level of
(SNR) than the absolute signal power. SNR is a ratio of signal power to noise power as
shown in Equation (2.3). The noise power depends on the processing bandwidth of the
GPS receiver.
S
SNR = (2.3)
N 0 Bn
where
Bn is the band width of the filter in the receiver to remove the out of band noise
In practice, the ratio of total carrier power to the noise density C/N0 in dB-Hz is the most
receiver front-end bandwidth. The relationship of SNR and C/N0 can be represented as:
C
SNR ( dB ) = ( dB − Hz ) − Bn ( dB ) (2.4)
N0
where
It can be seen from the above equations that the signal power and noise power can be
calculated if the noise density, receiver processing bandwidth, and C/N0 are specified.
13
2.1.3 L1 C/A Code Signal in the Frequency Domain
The GPS signal can be readily described in the frequency domain. As soon as the GPS
signal is generated, it travels through a propagation channel which contains noise and
interference. The received GPS signal is buried in the environmental noise; nothing else
but noise behaviour can be observed in the time domain for the signal before acquisition
and tracking. A description of the GPS signal in the frequency domain is definitely a
powerful tool for identifying signal properties. Since the simulator developed in this
thesis is for the L1 C/A code, the P code and L2 will not be discussed any further.
The GPS signal is generated through spectrum spreading, which is a method of taking the
data signal of bandwidth Bd that is modulated on a sinusoidal carrier to form d(t), and
then spreading its bandwidth to a much larger value Bs. Bandwidth spreading can be
code. The GPS signal spectrum spreading process is shown in Figure 2.2. Since the
purpose of this figure is principally to show the GPS signal power spectra density
The GPS navigation data bit stream with values ±1, and clock rate fd (50 Hz) is first
2.2 (a). This narrow bandwidth signal of bandwidth Bd is then spread in bandwidth by a
binary PRN sequence C/A code which has a clock rate fc (1.023 MHz) that greatly
exceeds the data rate. The navigation data and C/A code have the following power
14
Figure 2.2: GPS signal description in the frequency domain
1 sin(π f / f d ) 2
Gd ( f ) = [ ] (2.5)
fd π f / fd
1 sin(π f / f c ) 2
GC / A ( f ) = [ ] (2.6)
fc π f / fc
Because the timing of the data and clock transitions are synchronous, the spread spectrum
product of the navigation data and the C/A code has exactly the same spectrum as that of
the C/A code alone. Finally, the spectrum of the spreading signal is moved to the position
of fL1 as the centre frequency as shown in Figure 2.2 (b). The GPS signal next passes
through a propagation channel (assume zero channel delay for the sake of simplicity and
without loss of generality) with additive white noise, which has power spectral density
N0, to form the received signal as shown in Figure 2.2 (c). The received signal is then
15
down-converted and filtered by processing in the front-end. The resulting signal is a
+∞
R(τ ) = ∫ f (t ) f (t + τ )dt
−∞
(2.5)
with any shifted version of itself. The PRN code sequence has a similar autocorrelation as
that of white noise. But its autocorrelation plot is periodic and the autocorrelation values
are not zeros at any time shift greater than one code chip width because the PRN
where Tc is the chip width in seconds and n is an integer value. Its second peak values
are +63 or -65 when the time shift is greater than one code chip.
Two independent, discrete, finite length white noise vectors are uncorrelated with each
other, making their circular cross-correlation values ideally zero (Maybeck, 1994). Cross-
correlations between Gold codes in the same family are not completely zero, but are
reasonably low compared to either code’s autocorrelation peak. Any two Gold codes
within the same family have the same cross-correlation values, which becomes lower
relative to a given code’s autocorrelation peak as a code gets longer (Peterson et al.,
16
1995). In the case of the C/A codes, the maximum power of any cross-correlation value is
at least –23.9 dB lower than the autocorrelation peak (only with zero Doppler offset),
(Kaplan, 1996).
The autocorrelation of PRN 1 and the cross-correlation of two GPS Gold codes (PRN 1
and PRN 2) are shown in Figure 2.3. The auto and cross-correlation plots for all other
There are various GPS receivers specifically designed for various range of applications. It
17
However, a characterization of a generic GPS receiver can still be made based on the
receiver design requirements. A generic GPS receiver functional block diagram is shown
in Figure 2.4. A GPS receiver can be broken down into various components. First, the
antenna, possibly followed by a pre-amp, receives the RF GPS signals. After the antenna,
comes the front-end that performs down-conversion, filtering, and digitization to convert
the RF signal to an intermediate frequency signal. The next section, signal processing,
pseudorange, and carrier phase measurements, as well as ephemeris. The final component
performs the navigation processing to obtain the user position and velocity solution.
Front End
Reference Frequency
Oscillator Synthesizer
Signal Processing
Doppler Acquisition
Correlator Accumulator
Removal Tracking
Filtering
Navigation
Processing
Carrier NCO Code NCO Data
Demodulation
Measurement
Processing
18
2.2.1 Front-end
High carrier frequencies are necessary to propagate signals from space through the
atmosphere. However, these high frequencies are not easy to filter and demodulate.
Therefore, down-conversion, by mixing the incoming signal and noise with a Local
Oscillator (LO), is applied to reduce the received carrier frequency to a more manageable
value.
Usually, the receiver front-end consists of filtering and limiting, a Lower Noise Amplifier
(LNA), a frequency synthesizer, and down-conversion. Initial filtering, limiting and LNA
can be housed within the antenna to comprise an integrated antenna electronics (Van
Dierendonck, 1996). As a result, the signal after the antenna becomes an RF signal plus
narrow band noise. This signal will be mixed with the LO in the following step. Two-
stage down-conversion to IF is typical, but one stage down-conversion and even direct L-
band digital sampling have also been used (Akos, 1997). Only one stage is represented
here as an example. The processing of the GPS signal in the front-end can be depicted
analytically as Equation 2.6 (a) (b) (c) (Van Dierendonck, 1996). The errors induced by
S IF (t ) + n IF (t ) = ( S (t ) + n(t )) ⋅ 2 cos(ω Lo t )
(2.6 a)
+ Harmonics + LO feedthrough + image noise
n IF (t ) = r (t ) cos(ω IF t + ϕ (t )) (2.6 c)
19
where
When down-converting the desired signal, the frequency difference term specifies the
generated IF frequency; any other frequencies are removed from the signal through
are generally much higher than the IF frequency and are easily filtered out. Local
through” the demodulation process. Image noise is caused by noise energy at the image
plan of a receiver specifies all of the previously mentioned frequencies (LO, IF, carrier,
image, and harmonic frequencies) so that only the desired signal is present and the other
frequencies are rejected by filtering. The frequency plan design is key to maintaining
signal quality at the final IF stage. The performance of the filters used in the down-
20
Once the signal has been down-converted and filtered, it is ready to be sampled.
Sampling performs analog-to-digital conversion of the GPS signal. The analog signal is
typically quantized using 1 to 5-bit resolution. Five-bit resolution results in only 0.5 dB
used to maximize sampling resolution. The AGC scales the received signal spectrum so
that the A/D converter uses the full resolution of the A/D converter as the received signal
and noise power fluctuate. Most commercial receivers use 1-bit quantization. This
implementation does not require AGC, provided that the front-end has the required
dynamic range to accommodate gain variations and expected interference. The sampling
frequency can be selected to convert the IF frequency directly to base band or to some
residual frequency offset. The sampling frequency can also alias the signal to some
residual frequency offset by sampling the final IF frequency at less than the Nyquist rate.
This type of sampling has the effect of causing a frequency and phase reversal, due to the
After down-conversion and sampling, the digitized signal contains the GPS spreading and
tracking.
GPS signal acquisition is a two-dimensional search process in which a replica code and
carrier are aligned with the digitized IF signal. The correct alignment can be identified by
21
measurement of the output power of the correlators. In other words, when both the code
phase and carrier Doppler match the incident signal, the signal is despread. Acquisition is
a coarse synchronization process giving estimates of the code phase and carrier phase.
This information is then used to initialize the tracking loops. After acquisition, control is
then handed over to the tracking loop, the function of which is to track the variation in
The first step is signal demodulation as shown in Figure 2.4. Demodulation is the process
of removing any residual carrier and the spreading modulation via code correlation. First
the digital IF is treated to carrier removal by the replica carrier (plus carrier Doppler) to
produce in-phase (I) and quadra-phase (Q) sampled data. Note that the replica carrier
signal is being mixed with all of the GPS Space Vehicle (SV) signals and noise at the
digital IF stage. The I and Q signals at the outputs of the mixers have desired phase
relationships with respect to the desired SV. However, at this point, the code stripping
processes that collapse these signals to base band have not yet been applied. Therefore,
the I signal at the output of the in-phase mixers would consist mostly of thermal noise
multiplied by the replica digital sine wave (to match the SV carrier at IF) and the Q signal
at the output of the quadra-phase mixers would be mostly thermal noise multiplied by the
replica digital cosine wave (to match the SV carrier at IF). The desired SV signal remains
buried in noise until the I and Q signals are collapsed to base band by the code stripping
process that follows. The I and Q signals are then correlated with early, prompt, and late
replica codes (plus code Doppler). The prompt replica code phase is aligned with the
22
SV code phase. The replica carrier (including carrier Doppler) signals are synthesized by
the carrier Numerical Controlled Oscillator (NCO) and discrete sine and cosine mapping
functions and the replica codes are synthesized by the code generator, a 3-bit shift
register and the code NCO. To this point, the IF signal has been converted to base band
Next, the base band I and Q signals are accumulated and “dumped” (latched) at a fixed
time intervals. The three in-phase components are integrated and dumped to produce
integration and dump accumulators provide filtering and re-sampling at a lower base
band rate which depend on the desired pre-detection bandwidth. The integration time is a
compromise in the design. It must be as long as possible to operate under weak signal
conditions and it must be as short as possible to operate under high dynamic stress signal
conditions.
The integrated and dumped signals are then relayed to the discriminators which provide
the noisy estimates of the errors between the input signals and locally generated replicas
due to low SNR. The classification of the discriminators is defined by the type of tracking
loop used: Delay Lock Loop (DLL), Phase Lock Loop (PLL) or Frequency Lock Loop
(FLL). A DLL discriminator outputs the code phase error of the input signal and the
replica code. A PLL discriminator produces the phase error and an FLL discriminator
23
The loop filter performs filtering on the perceived signal demodulation errors after the
discriminator as the discriminator outputs are very noisy. The objective of the loop filter
is to reduce noise in order to produce an accurate estimate of the original signal at its
output. The filtered error estimations are then input to the carrier NCO or code NCO to
adjust the locally generated carrier and code phase to match the input GPS signals.
The spreading code and the residual carrier must be simultaneously tracked in order to
de-modulate the received signal. Code tracking is the process of using the code
autocorrelation function to maintain alignment between the code modulation in the signal
and a locally generated replica. Typically, a Delay Lock Loop is used. Code tracking
loops can be either coherent or non-coherent, which is to say that they operate with or
without carrier phase information (Van Dierendonck, 1996). Misalignments between the
received signal and the locally generated code are sensed by comparing the
To track the received carrier frequency and phase, carrier tracking should be
implemented. The carrier tracking loop can consist of either a FLL or a PLL. Frequency
tracking is more robust than phase tracking, but is not as precise as phase tracking
(Kaplan, 1996). The prompt I and Q values from the code correlation are used as the
inputs for the frequency or phase discriminator which provides a noisy frequency or
phase error measurement between the received signal and the local NCO generated
signal.
24
If lock is lost on either the code or the carrier, the receiver will lose lock on the signal and
must re-acquire it. The complete operation from signal acquisition to tracking, maintain
tracking, lose tracking, and re-acquisition is a closed loop dynamic process. The correct
code phase and carrier phase measurements can be extracted when both DLL lock and
PLL lock are achieved. Of the two signal components, the code is easier to track in
dynamic environments, due to the 293 metres equivalent range of one chip length. Carrier
frequency lock is more precise, but also more difficult to maintain than code lock, and
carrier phase lock is the most difficult to achieve due to a carrier wavelength for L1 of
only 19 cm. A phase error of 90 degrees between the received signal and the NCO
generated frequency equals to a ranging misalignment of only 4.7 cm. As a result, the
DLL is easy to lock but not precise, whereas the PLL is precise but hard to lock.
There are six classes of ranging errors (Parkinson, 1996) as shown in Table 2.2. A
distinction must be made between the errors that affect position accuracy and those that
affect GPS signal tracking. For example, errors that are slowly changing over time do not
adversely affect the tracking performance of a GPS receiver, but they do affect the
accuracy of the calculated position. In the thesis, not all of the listed errors are simulated
due to time restrictions. Only the errors that greatly affect software GPS receiver tracking
25
Table 2.2: GPS ranging errors
Ephemeris data Errors in the transmitted location of the satellite
Uncertainties in the broadcast ephemeris produce orbital errors. These uncertainties are
due to the accuracy limitations associated with the predicted nature of the broadcast
ephemeris. Tests have shown that the orbital error is generally a few metres (Kaplan,
1996). A very effective way to handle orbital errors is to use post-processed precise
orbits. Precise orbits are derived from an extensive reference network and the accuracy
can be as high as a few centimetres. However, the ephemeris errors do not have a
relative to other errors. Thus, they are not simulated in the simulator developed herein.
Each GPS satellite carries an atomic clock with which to maintain accurate frequency and
time. These clocks have stabilities of about 1 part in 1013 over a day and they are
monitored closely and maintained by the control segment to maintain this precision
26
(Spilker, 1996b). A major source of apparent clock error is Selective Availability (SA).
Since SA has been turned off in May, 2000, the remaining satellite clock errors are due to
slowly changing signals of the clock and have no significant effect on receiver tracking.
But they do result in an offset of pseudorange. For short periods of time, the clock bias
drift can be obtained from the broadcast ephemeris. The satellite clock effect is taken into
The ionospheric error is caused by the presence of free electrons as GPS signals pass
through the upper layer of the atmosphere. The ionosphere affects the propagation speed
of the GPS signal, resulting in a time-of-arrival error at the receiver. The effects of an
ionospheric error on the signal code and carrier are different: it causes a delay on the
code, but an advance on the carrier. But the magnitudes of the delay and the advance are
equal. The effect on range may vary from 150 metres (at midday, during periods of
maximum sunspot activity, with the satellite near the horizon of the observer) to less than
five metres, (at night, during periods of minimum sunspot activity, with the satellite at the
The tropospheric error is caused by the refraction of the GPS signal in the troposphere.
Similar to the ionosphere in terms of effect, the troposphere also affects the propagation
speed of the GPS signal. Since the troposphere is non-dispersive at GPS frequencies, it
has the same effect on the L1 and L2 code and carrier, a net delay. The delay contains
27
two parts, the larger of which is caused by the dry atmosphere component, which is stable
and predictable. The delay resulting from water vapour is smaller, but varies greatly.
Ionospheric and tropospheric errors exhibit some spatial correlation between received
signals, depending on whether the received signals traveled through similar atmosphere
on their way to the receiver. Signals that propagate through the same elevation angles
typically share similar ionospheric and tropospheric errors. These errors can be
2.3.4 Multipath
Multipath occurs when reflected signals, in addition to the direct signal, reach the
antenna. It depends greatly on the properties of the reflector, the antenna gain pattern, and
the type of correlator used in the GPS receiver. Multipath interferes with the correlator’s
ability to precisely determine the time instant of signal reception. It affects both code and
carrier phase measurements. Code multipath is much larger than carrier phase multipath.
It can reach up to one-half of a chip length of the PRN code, assuming an environment in
which the multipath signal strength never exceeds that of the direct signal (Goldhirsh and
Vogel, 1989). By contrast, carrier phase multipath is always less than one-quarter of the
carrier wavelength (Georgiadou and Kleusberg, 1988). Typically, for static observations,
few minutes due to the change of satellite geometry. In kinematic applications, multipath
behaves more randomly because the movement of the vehicle changes the reflecting
28
geometry in a relatively random way. Multipath errors are unique to each receiver, and
uncorrelated between signals. They are not simulated in the project presented in this
Receiver noise errors can be divided into two categories. The first type includes those
errors related to the chosen implementation. These effects include the AGC finite
response time effects, sampling and quantization losses, losses in the code tracking
design, and hardware resolution limitations. The second type originates from the practical
limitations of component accuracy. These errors include receiver oscillator errors, filter-
induced distortions on the signal, and inherent system noise. Typically, these errors are
not completely minimized due to complexity and cost limitations. They are, rather, more
related to the hardware implementation; some errors, such as receiver clock errors caused
by the instability of the oscillator, greatly affect the receiver performance. The noise
the simulator. The noise density is selected as a typical value -203 dBW/Hz. Filtering and
quantization (1-bit and 2-bit) are performed in the simulation. The simulation of the
receiver clock error is not conducted in the current version of the simulator.
29
CHAPTER 3
simulator to generate the digitized IF GPS signal immediately following the front-end
and before input to the signal processing stage. The simulation model is based on this
selected simulation point and takes into account all errors introduced during the signal
A key consideration in developing the simulator is the simulation of various errors. The
effects of these errors have been studied in detail by the GPS community. All error
sources - specifically, errors due to the satellite clock, orbit, ionosphere, troposphere, etc.
- behave in essentially the same manner. They all produce errors on the pseudorange and
carrier phase measurements, namely, a code delay, or a carrier phase delay or advance
error. The effect on the carrier phase is also indicated by the Doppler shift. For this
reason, the simulation model is structured so as to handle any form of error by specifying
30
The derivation of the simulation model is along the real GPS signal propagation path. It
starts with GPS signal generation in the satellites which is followed by signal propagation
through the ionosphere and troposphere, signal reception at the receiver antenna and,
finally, signal processing in the front-end as shown in Figure 3.1. The functional block of
the front-end consists of signal reception by the receiver antenna, down-conversion, and
IF processing which further includes filtering, sampling and digitization. All necessary
… Satellite Clock
Ephemeris
Simulator
Ionosphere
Generate IF signal based on a
Troposphere
mathematical model
Filtering
For the sake of clarity, the analytical derivation starts with a single ideal GPS L1 signal
31
where
S L1i is the GPS L1 signal transmitted from SVi
With minor amplitude modulation neglected (Spilker, 1996b), a satellite clock generator
⎡ t2 ⎤
A sin ⎢(ω0 t + ϕ 0 ) + (ϕ e + ωe t + 2π d ) + x (t )⎥ (3.2)
⎣ 2 ⎦
where
From Equation (3.2), it can be seen that satellite clock errors include a fixed phase bias, a
frequency error, a frequency drift, and a random phase error. To obtain high accuracy
position and time keeping, the satellite clock error is usually corrected by adjusting the
polynomial correction coefficients corresponding to the phase error, frequency error, and
frequency drift, respectively; the relativistic correction is ∆t R ; and toc is the reference
32
time for the clock correction. All of these parameters are estimated by the Control
Segment, and are contained in the ephemeris data that is transmitted to users.
With the presence of the satellite clock error, the transmitted L1 C/A code signal can be
expressed as:
where
δ t SV is the satellite clock error
Because this thesis focuses on L1 C/A code signal simulation, the P code component in
Equation (3.1) is eliminated without significant effect for purpose of the simulation
produced herein. The justification for removing this signal from the derivation is as
follows. The power of the P code signal is half of that of the C/A code signal, which is
about 20 dB below the noise floor. Also, the noise spreading properties apply to both P
code and C/A code in the same manner. Additionally, if the signal simulator filters the
incoming signal at the C/A code bandwidth, the band-pass filtering of the signal would
filter out 90% of the P code signal power. Given these facts, it is reasonable to eliminate
the P code component from the received signal for sake of simplicity of derivation. The
parameter ϕ 0 in Equation (3.2) is assumed zero for simplicity, without loss of generality.
It can be seen from the above equation that the satellite clock error causes a frequency
33
3.1.2 Propagation through the Atmosphere to the Antenna
The signal transmitted by a satellite travels through the atmosphere before reaching the
receiver antenna. The value of the propagation delay is a major factor in the signal model.
The ionosphere and troposphere affect the GPS signal and cause errors on both code
phase and carrier phase. The GPS signal transmitted by satellite i can be represented by
the following equation with the propagation delay, ionospheric and tropospheric errors
where
Noise, interference and multipath are also added prior to the signal’s arrival at the
where
Pr is the received signal power
34
The multipath signal is composed of the portion of the GPS signal that is reflected. The
multipath error relates to the signal path delay caused by the extra path length and the
reflection coefficient of the reflector. The effect of multipath on the direct signal can also
be shown in the code delay and carrier phase offset. In addition, it is attenuated and thus
generally has a lower power level than the direct signal. The multipath signal is
represented as:
where
α is the signal power attenuation factor
Equation (3.5) is an expression of the received GPS signal at the receiver antenna with all
observable errors included. As mentioned above, not all of these errors are simulated
herein. With the exclusion of multipath errors and interference, the resulting signal model
for the RF GPS signals that arrive at the receiver antenna is:
+ noise (3.7)
where
Td = T p + δ ttropo − δ t SV
Although it may not be obvious, the Doppler term is embedded in the product of
Td − δ tiono and ω L1 in Equation (3.7). The following derivation can prove this. Let us
start from the definition of the Doppler as shown in Equation (3.8) (Axelrad and Brown,
35
1996). It is equivalent to Equation (3.9) after multiplying by a time t to both sides of the
Td − δ tiono
equation and then multiplying by a factor on the right side. It can be seen
Td − δ tiono
v v v
that ( vi − vu ) ⋅ 1i is the relative velocity in the line of sight from the user to the satellite,
v v v
and thus ( vi − vu ) ⋅ 1i * t is the distance change between the user and the satellite;
Td − δ tiono is the time delay of the signal propagation between the satellite and the user,
and thus C * (Td − δ tiono ) is also the distance change between them. As a result,
v v v
( vi − vu ) ⋅ 1i * t
equals one, and thus Equation (3.10) stands. Therefore, an equivalent
C * (Td − δ tiono )
where
fd is the Doppler frequency
v
vi is the velocity of the satellite i
v
vu is the velocity of the user
v
1i is the line of sight unit vector from the user to the satellite
v v v
( vi − vu ) ⋅ 1i * t
fd * t = − * f L1 * (Td − δ tiono ) (3.9)
C * (Td − δ tiono )
36
where
Td = T p + δ ttropo
ωd = 2π f d
{ 2P }
N
RL1 = ∑ r Di (t − Td − δ tiono ) Ci (t − Td − δ tiono ) cosi [ω L1 (t − Td + δ tiono ) + ϕ 0 ]
i =1
+ noise (3.12)
where
N is the the number of satellites in view
3.1.3 Down-conversion
So far, the modeled GPS signal is still at radio frequency. After the signal propagates to
the front-end and is down-converted to the IF frequency, the model will be a signal
meant to simulate an actual front-end processing stage. The following derivation will
focus on the signal analytical expression. No matter how many stages of the down-
conversion are used in a front-end, the final output is the desired IF signal after mixing
and band-pass filtering. Assume that the local oscillator-generated signal is as shown in
Equation (3.13), and that the result of the cosine mixing is shown in Equation (3.14).
37
S IF = RL1i * LO1
= 2 Pr Di (t − Td − δ t iono ) Ci (t − Td − δ tiono )
(3.14)
S IF = RL1i * LO1
where
ωLO1 is the frequency of the local oscilator
The receiver clock error, which is caused by the instability of the oscillator, is a
significant issue in receiver operation. The oscillator error can produce a frequency shift
in the received signal, and therefore a significant frequency shift also occurs in the down-
converted signal. A portion of the signal power would be filtered out when filtering is
applied because of this frequency shift. From the tracking point of view, the Doppler is
also changed. As well, the code DLL may lose track because of the misalignment of the
carrier. In light of all of these facts, the receiver clock error commands our attention
when studying receiver performance. However, due to time restrictions, this error will not
be discussed in this thesis; instead, it is assumed to be zero herein and a full treatment is
account, the composite IF signal model including all satellites in view is:
{ }
N
S IF = ∑ 2 Pr Di (t − Td − δ tiono ) Ci (t − Td − δ tiono ) cos[ω IF t − ω L1 (Td − δ tiono ) + ϕ 0 ] i
+ noise
i =1
(3.16)
The IF GPS signal model has been established as shown in Equation (3.16). This model
forms the basis of the simulation discussed in this work. The composite signal then
propagates to a band-pass filter and A/D converter to be filtered and digitized and,
finally, the digitized IF GPS signal is generated. A band-pass filter is simulated, the
bandwidth of which can be selected as required. One-bit and two-bit digitization are
realized in this thesis, the details of which are described in Section 3.2.11.
The IF GPS signal simulator was developed in MATLAB, with some functions written in
C++ and called by MATLAB to accelerate speed of operation. The receiver trajectory,
satellite ephemeris, required carrier-to-noise ratio and other environment parameters are
specified to create a valid IF GPS signal. The signals of visible satellites for the receiver
as well as noise are added together to generate the combined IF GPS signal. The
functional structure of the digitized IF GPS signal simulator is shown in Figure 3.2.
39
Noise
N satellites in view
Sampling
Signal of SV 1 Filtering
… Quantization Output
N digitized IF
GPS signal
is saved in
Amplitude Data C/A code Carrier (L1) a data file
Equation (3.16). To start a simulation, the simulation time period has to be assigned
which is referred to the signal receiving time. The receiver trajectory is simulated and the
satellite’s positions are computed based upon the simulation time and the satellite
ephemeris. Then, the signal propagation time, Doppler, and errors are calculated to
generate the required components, such as signal amplitude, navigation data, C/A code,
carrier, etc. In this thesis, satellite clock error, ionospheric and tropospheric errors are
modeled to express the signal propagation environment. The IF GPS signal for a single
satellite is the product of these components. Then, the composite IF signal is computed
by the summation of noise and the signals of all satellites in view. After filtering and
quantization, the digitized IF GPS signal samples are obtained and saved in a data file.
40
3.2.1 Satellites in View
Normally, four to seven satellites are visible for a given GPS user. Only the signals
transmitted by these satellites can reach the receiver antenna. The signal simulated in this
thesis is the combination of these signals, together with the environment noise. If the
receiver positions and satellite positions are known, the visible satellites’ PRN numbers
can be calculated.
The receiver and satellite trajectories during the simulation period are fundamental
components required to conduct the simulation. The receiver trajectory can be simulated
for different scenarios. Three trajectory modes are designed, namely mode 0, mode 1, and
mode 2. The first one is a static mode. Mode 1 is that the receiver starts at a reference
point, moving northward along a straight line with a constant velocity. Mode 2 is that the
receiver starts at a reference point, moving along a circle with a constant angular velocity.
70 km/h 70 km/h
Start point
Start point
41
To compute the satellite trajectory, the satellite ephemeris must be known. In this
simulation, the broadcast ephemeris is used. It can be obtained from the website of the
Crustal Dynamics Data Information System Institute (CDDIS), one of the analysis
centres of the International GPS Service (IGS). The ephemeris file, in global compressed
RINEX navigation format, is available for any specified day. It includes the ephemeris
Given the GPS time, a satellite’s position can be calculated from the satellite ephemeris
data. The satellites in view can be determined with knowledge of the simulation time,
receiver position and satellite position. Considering the fact that satellites with very low
elevation angles suffer from increased power attenuation and atmospheric errors, an
elevation angle cut-off of 10o was considered in the simulation tests. However, this value
Both the satellite position and the receiver position should be in the same coordinate
system. The simulated receiver position is in the local frame, while the satellite position
computed from the ephemeris is in the Earth-centred, Earth-fixed (ECEF) frame. So, the
satellite position is converted to the local frame to be consistent with the receiver
position. Assuming that the satellite’s position in this local frame is ( x s , y s , z s ) and the
zs
θ = arctan( ) (3.17)
2 2
xs + y s
42
3.2.2 Amplitude Modeling
A2
P= (3.18)
2
where
In the simulated IF GPS signal model, the signal power is the effective carrier power of
the received signal after amplification, transmission through the cables, and filtering. The
received RF signal is transmitted from the satellite by shaped pattern antennas, and
attenuated as a result of traveling through the atmosphere as well as free space loss. In a
conventional receiver, the minimum expected carrier power at L1 for the C/A code is -
160 dBW. The effective carrier power is the combination of this power level with the
effects of antenna gain, loss from the transmission line, the filtering bandwidth, and the
However, receiver performance is more dependent on the signal to noise ratio rather than
on the absolute power. The carrier to noise ratio (C/N0), which is the ratio of total carrier
power to the noise power density, is frequently used in receiver design and performance
estimation; thus, it is an important value used in the simulator design presented herein.
Thus, the expected C/N0 and the noise density are defined as input parameters. The signal
C / N0 + N0
P = Pc = 10 10
(3.19)
43
where
Pc is the effective carrier power
In an actual GPS system, the navigation data is a 50 Hz bi-phase coded. So, each data bit
is 20 ms long. Since the period of the C/A code is 1 ms, there are 20 C/A codes in one
data bit. Thus, all 20 C/A codes have the same phase in one data bit. Thirty data bits
make a navigation word; 10 words make a sub-frame; 5 sub-frames make a page; and 25
1 2 3 12.5 minutes
25 pages
4 5
1 sub-frame includes 10 words
1 2 3 4 5 6 7 8 9 10 6s
0.6 s
1 word includes 30 bits
20 ms
1 bit includes 20 C/A codes
44
The GPS time is given by the number of seconds in one week and this value is reset every
week at the start of a week. At this time, the cyclic paging to sub-frames 1 through 5 will
restart with sub-frame 1 regardless of which sub-frame was last transmitted prior to the
start of the week. The cycling of the 25 pages will restart with page 1 of each of the sub-
frames, regardless of which page was the last to be transmitted prior to the end of the
week. All upload and page cutovers will occur on frame boundaries. Accordingly, new
data in sub-frames 4 and 5 may start to be transmitted with any of 25 pages of these sub-
frames.
The first three sub-fames of the navigation data contain all of the ephemeris parameters.
It is possible to calculate the satellite position with all of these parameters. Sub-frames 4
and 5 include almanac data which provides a truncated, reduced precision set of
ephemeris parameters. The almanac data is mainly used to aid acquisition and to give the
approximate Doppler and delay information. Each of the 25 pages of almanac data is
different. The simulation of sub-frames 4 and 5 is very complicated and not very
meaningful for this research. Therefore they are simulated only by formatting the first
two words - the TLM word and the handover (HOW) word which include the preamble,
time of the week count message, sub-frame ID and parity check bits. The formats of the
TLM and HOW words are shown in Figure 3.5. They are the same for each sub-frame.
To simulate the data of other three sub-frames, a proper ephemeris file for the user-
defined time is downloaded from the website of CDDIS, as mentioned in Section 3.2.1.
Then these parameters, combined with the proper scale factors, (Spilker, 1996b) are
45
converted to binary bits which fit the navigation data format. The first three sub-frames
TLM word
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 0 0 0 1 0 1 1
Preamble Reserved Parity
HOW word
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Sub-frame ID
The C/A code signals are generated from the product of two 1023-bit PRN sequences, G1
and G2. Both G1 and G2 are generated by 10-stage linear shift registers which are driven
by a 1.023 MHz clock. The C/A code generator is shown in Figure 3.6 (Tsui, 2000). Both
G1 and G2 shift registers have 10 stages; thus, the generated sequence length is 1023
( 1010 − 1 ). The C/A code sequence is the result of modulo-2 adding of the outputs of G1
and G2. The output of G1 is from the last bit of the shift register, while G2’s output is
generated from two bits which are referred to as code phase selection through another
modulo-2 adder.
A function for generating the C/A code was coded in MATLAB, according to Figure 3.6
and the above operation rule. It produces C/A code sequences, +1 and -1, for each
46
G1 Generator
Shift Register
G1
1 2 3 4 5 6 7 8 9 10
G2 C/A code
1.023MHz Reset
Clock All One Positions of these feed back
determine the satellite ID
Shift Register
1 2 3 4 5 6 7 8 9 10
G2 Generator
Intuitively, the signal propagation time is simply the distance between the transmitter and
receiver divided by the speed of light. However, the position of the receiver, which is on
the Earth, changes during signal propagation due to the Earth rotation. The effect of Earth
rotation is not a trivial issue that can be ignored by the GPS system. The following
For the sake of simplicity, consider the computation of the propagation time in the Earth-
Centred Inertial (ECI) frame first. Referring to Figure 3.7, there is a satellite at position
Pt at the instant a signal is transmitted and a receiver is fixed at the position Rt on the
straight line in the ECI frame. At the time of reception, the receiver has moved to the
47
position Rr in the ECI frame due to the Earth rotation. Suppose that the signal
propagation time from the satellite to the receiver at position Rr is T p ; the transmission
v
time is tt ; the reception time is t r ; and the receiver velocity is v , which is the same as
that of the Earth rotation. Equation (3.20) presents the above case from the point of view
v v
C Tp = rPt Rt + v Tp (3.20)
Pt
CT p
Rt
Rr
However, the GPS application is usually in an ECEF reference frame, in which the Earth
rotates about a fixed axis with a defined rotation rate, ωe =15 "/s. This reference frame is
designated by WGS-84 (Kaplan, 1996). During the time that the signal propagates from
the satellite to the receiver, the reference coordinate frame changes because of the Earth
rotation. As the receiver is tied to the Earth, its coordinates do not change in ECEF
although its position in the ECI frame changes. The satellite position also changes
48
The distance between the satellite position at transmission time and the receiver position
at reception time is required to compute the signal propagation time. But these two
positions straddle two time instants and, thus, two ECEF frames, ECEF frame at
transmission time (ECEFTx) and ECEF frame at reception time (ECEFRx) as shown in
process, using satellite coordinates from these two frames. First, let us discuss the
computation in ECEFRx referring to Figure 3.8 (b). Some assumptions have to be made:
(1) all computations and position coordinates are in ECEFRx; and (2) the satellite
time and receiver position at this instant are known in the simulation. The satellite
position at t r can be calculated from the time t r and the ephemeris data, and thus its
which consists of four equations and four unknowns. Solving the system of equations
yields an estimate of the propagation time (and thus the transmission time) and the
approximate coordinates of the satellite at that time. However, the resulting satellite
coordinates represent the satellite position in ECEFRx. To confirm their correctness, the
49
Tp
Pr SV ( x r , y r , z r , t r )
Pt f t Pt f r
vd
Tp ECEFTx Tp ECEFRx
z z
Rx ( x u , y u , z u , t r )
Rt Rt
(a) ECEF frame at transmission time (b) ECEF frame at reception time
Figure 3.8: Satellite and receiver position in the ECEF frame at the transmission
time and reception time
⎧ xt f r = x r − v x T p
⎪
⎪ yt f r = y r − v yTp
⎪
⎨ (3.21)
⎪ zt f r = z r − v zT p
⎪
⎪ ( xt f r − xu ) 2 + ( y t f r − y u ) 2 + ( z t f r − z u ) 2 = C T p
⎩
The satellite position Pt f t in ECEFTx can be calculated from the ephemeris after obtaining
it should be the same as it is computed directly in this frame since Pt f r and T p should
also keep the same value. Therefore, the coordinates of the satellite position Pt f t are
50
transformed to ECEFRx with Equation (3.22). A new signal propagation time T p′ is
calculated in the same frame. Then, compare T p′ and T p ; if they have a significant
difference, a new satellite position in ECEFTx will be recomputed based on T p′ and the
ephemeris data. Then, rotate it to ECEFRx to compute T p′ again; the old value of T p′ is
saved to T p . The above steps will be iterated until T p′ matches T p within a desired range.
⎡ xt f r ⎤ ⎡ cos(ωe * T p ) sin(ωe * T p ) 0 ⎤ ⎡ xt f t ⎤
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ y t f r ⎥ = ⎢ − sin(ωe * T p ) cos(ωe * T p ) 0⎥ ⎢ y t f t ⎥ (3.22)
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢z ⎥ ⎢ 0 0 1 ⎥ ⎢ ⎥
⎣ tfr ⎦ ⎣ ⎦ ⎣ zt f t ⎦
Once the signal propagation time is obtained, the Doppler can be calculated as:
xt f r − xu yt f r − yu zt f r − zu
vd = ⋅ ( v x − v xu ) + ⋅ ( v y − v yu ) + ⋅ ( v z − v zu )
r r r
r = ( xt f r − xu ) 2 + ( y t f r − y u ) 2 + ( zt f r − z u ) 2 (3.23)
vd
f d = − f L1 ⋅
c
The satellite clock correction δ t SV can be obtained using coefficients broadcast from the
satellite after being uploaded by the GPS Control Segment. The data sets are then
transmitted in the downlink data stream to users together with ephemeris in a 2 hour
interval. Sub-frame 1 (words 8, 9 and 10) contains the data needed by users to perform
corrections of the satellite clocks. These corrections represent a second order polynomial
51
in time. Specifically, four clock correction parameters, toc , a f 2 , a f 1 , a f 0 , are provided in
where
af0 corresponding to the phase error
The relativistic correction can be computed by Equation (3.25) (Spilker, 1996b). A can
be obtained from the ephemeris sub-frame 2, and E k can be calculated from the
ephemeris parameters.
∆t R = Fe A sin E k (3.25)
where
Fe -4.442807633 × 10 −10 s / m 1 / 2
There are many methods for ionosphere delay modeling. In this research, the objective is
to develop an ionospheric model which is valid for the simulation of the time delay along
the observation line of sight. A combined Spherical Harmonics (SPHA) and grid model is
52
used in this research, which was originally developed by Luo (2001). It is described as
follows.
The parameter of the ionosphere that produces most of the effects on GPS signals is the
Total Electron Content (TEC). Once the TEC is available, the ionospheric group delay
40.3 × TEC
δ tiono = (3.26)
cf2
where
Among the global ionospheric models in existence, the spherical harmonics (SPHA)
model is selected to simulate the ionospheric error. The SPHA model is based on the
assumption that the ionosphere is a thin single layer. This means that all free electrons are
distributed in a spherical shell of infinitesimal thickness. Figure 3.9 shows the concept of
this model.
53
Figure 3.9: Description of the single-layer ionosphere model
In this model, the TEC is developed into a series of spherical harmonics in a Sun-fixed
nmax n
~
E ( β , s ) = SF ∑ ∑ Pnm (sin β )( a nm cos ms + bnm sin ms ) (3.27)
n =0 m =0
where
ionospheric point, see Figure 3.9. It is also the difference between the
Earth-fixed longitude of the pierce point and the longitude of the Sun
~
Pnm = Λ nm Pnm are the normalized associated Legendre functions of degree n and
54
order m based on the normalization factor Λ nm and the classical
The conversion from a vertical TEC value, E , into the slant TEC value, E s , is realized by
1 R
E s = m( z ) E = E with sinz ′ = sin z (3.28)
cos z ′ R0 + H
where
1
m( z ) = is the single-layer mapping function
cos z ′
To use the SPHA model, the coefficients a nm bnm must be known. In this model, Global
Ionosphere Maps (GIMs) files are used. These files contain the coefficients of spherical
harmonics and other ionospheric parameters (Schaer, 1997). These GIMs can be obtained
from the Centre for Orbit Determination in Europe (CODE), one of the Analysis Centres
of the International GPS Service (IGS). Since January 1, 1996, GIMs have been routinely
55
presented as an additional product at CODE. Every day, a set of TEC coefficients is
By the time of the model was developed, the GIMs could give a spherical harmonics
expansion with a maximum degree of twelve and a maximum order of eight. To conduct
the simulation in a small area, the resolution of the TEC distribution of the ionosphere
resolution TEC increment grid-network to the profile of the global TEC distribution. The
TEC increment can be treated as an unmodeled part of the ionospheric delay by the
SPHA model. The following describes the procedures to generate a global TEC
be noticed that, although the density of the grids in the network can be very high
by increasing m and n , the actual resolution of the TEC distribution has not yet
been increased, since the maximum degree and order of the model are not
changed.
• Generate the TEC increment vi , j for each grid point. vi , j is a random variable
56
characteristics of vi , j can be described by the following distribution (Christie et
al., 1999):
f ( x ) = 1 ( 2σ ) exp( − 2 x − m σ ) (3.29)
• Build the high-resolution grid network by adding the profile of the TEC
distribution and the TEC increment. The vertical TEC at a grid point can be
computed as follows:
By introducing the TEC increment, the grid-network can represent the TEC
After building the grid network of the ionosphere with enhanced spatial resolution, the
vertical TEC value at the pierce point can be computed in two ways. First, the SPHA
In the first two steps, a high-density grid network of TEC distribution is established. The
TEC value at any point within the network can be computed using interpolation. Figure
3.10 gives the concept of the four-point grid-based algorithm to estimate the vertical TEC
at the pierce point where P is the pierce point and Gi is the surrounding grid point.
57
Figure 3.10: Compute TEC in a grid network
4
VTEC P = ∑ wiVTECi (3.31)
i =1
where
w1 = w(t , u ) w2 = w(t ,1 − u )
w(t , u ) = (1 − t )(1 − u )
u = ( β − β1 ) /( β 2 − β1 ) t = ( s − s1 ) /( s4 − s1 )
To obtain the geomagnetic latitude, β , and longitude, s, the geographical latitude and
longitude of the pierce point and the Sun must first be calculated; then they can be
converted to the geomagnetic frame using a rotational transformation. The rotation angles
are relevant to the position of the north geomagnetic pole, which is set to ( 79.45o N,
71.71o W). The choice of the spatial weighting function w(•) is arbitrary. The algorithms
58
quadratic weighting functions. In the chosen model, the bilinear interpolation weighting
function is adopted according to the specifications for users of the Wide Area
From the above modeling procedures, it can be seen that the characteristics of both the
There are two major delay effects due to the troposphere. The first and larger effect is the
dry atmosphere excess delay, typically on the order of 2.3 m. The dry effect varies slowly
with local temperature and atmospheric pressure in a reasonably predictable manner. The
second effect caused by water vapour is generally smaller, 1-80 cm at zenith. Although
approximately one-tenth the size of the dry effect, the wet delay varies markedly; 10-20%
in a few hours, and is less predictable even with surface humidity measurements (Spilker,
1996c). A model based on the modified Hopfield model, which was originally developed
Hopfield (1969) has developed a two-quartic zenith model of the refraction index, with
different quartics for the dry and wet atmospheric profiles. Black and Eisner (1984) have
extended this zenith model to add the elevation angle mapping function.
The tropospheric delay is caused by the larger refractive index, n( n > 1) of atmospheric
gases than that of free space, n = 1 , which causes the speed of light (group velocity) in
59
the medium to decrease below its free space value c. The increase of propagation time
where n represents both the wet and dry terms. The refractivity is defined as N=106(n-1).
The basic two-quartic model for the refractivity versus altitude h can be expressed as:
N d = N d 0 (1 − h / hd ) 4 h ≤ hd = 43 km
(3.33)
N w = N w 0 (1 − h / hw ) 4 h ≤ hw = 12 km
where
The total zenith delay is then the sum of the integrated dry and wet delays along the
vertical path:
hd h 4 hw h
∆ = 10 −6 ∫ N d 0 (1 − ) dh + 10 −6 ∫ N w 0 (1 − ) 4 dh (3.34)
husr hd husr hw
where
∆ = ∆d + ∆w
⎧10 −6
⎪ N d 0 ( hd − husr ) husr ≤ hd
∆d = ⎨ 5
⎪
⎩ 0 husr > hd
⎧10 −6
⎪ N w 0 ( hw − husr ) husr ≤ hw
∆w = ⎨ 5
⎪
⎩ 0 husr > hw
60
where
N d 0 = 77.604( Pd / T ) Z d−1
(3.35)
N w 0 = ( e / TZ w )(64.79 + 377600 / T )
where
2 3
Z w−1 = 1 + 1650( e / T 3 )[1 − 0.01317Tc + 1.75 × 10 −4 Tc + 1.44 × 10 −6 Tc ]
17.15T − 4684
e = 6.108 ⋅ exp( )
T − 38.45
Black and Eisner (1984) built a mapping function which can describe the slant
tropospheric delay as a function of both the local elevation angle of a satellite and the
surface temperature:
For elevation angles in the range 7°<E<90°and surface temperatures in the region
− 30o C < T < 40o C , the value of Xdwhd/Re is in the range 0.00088<Xdwhd/Re<0.01.
61
Because the temperature dependence is small enough to be ignored, the above mapping
Finally, the total slant delay of the troposphere can be denoted as:
∆ s = ∆ ⋅ M (E ) (3.39)
The temporal variation of the tropospheric delay is simulated in the model developed
herein. This variation is realized by adjusting the meteorological data with time. The
diurnal variations of the temperature and relative humidity are simulated with the
Tv ⎛π ⎞
T (t ) = T0 + cos⎜ (t − tT max ) ⎟ (3.40)
2 ⎝ 12 ⎠
⎧ RH v π
⎪ RH 0 + 2 cos(12 (t − t RH max )) 0 ≤ RH (t ) ≤ 1
⎪
⎪
RH (t ) = ⎨ 0 RH (t ) < 0 (3.41)
⎪
⎪ 1 RH (t ) > 1
⎪⎩
where
62
t RH max is the epoch with the maximum relative humidity
The time used in Equations (3.40) and (3.41) is local time with units of hours. These two
3.2.9 Noise
The received noise is usually represented as white noise with constant spectral density. Its
bandwidth is considered infinite at the receiving point, but is narrowed down by several
In the simulation, the discrete noise vector at the output of the final band-pass filter is
noise with an infinite bandwidth. This noise vector is band-limited white noise with the
input sampling rate. A bandwidth of 2 MHz is used in the simulation. The reasons of the
bandwidth is selected as 2 MHz are ninety percent C/A code signal power are in the 2
MHz main lobe and the bandwidth of the hardware front-end used to collect the real IF
GPS signal in this thesis is also 2 MHz. The noise power is the product of the filter
bandwidth and the noise density, another input parameter. Thus, the noise model can be
described as follows:
The power spectrum is the key quantity in the frequency domain signal analysis. Applied
to GPS signals, it can demonstrate signal power level and signal bandwidth. Applied to
63
noise, it can make clear the background noise level, interference power level, and the
interference type. Because of this, the concepts of frequency domain and power spectrum
will be introduced first, and these concepts will be used throughout this thesis to show the
From stochastic process theory, the power spectrum of a signal and its autocorrelation
function form a Fourier transform pair. Thus, the power spectrum can be determined
∞ ∞
S (ω ) = ∫ R(τ ) exp( − jωτ )dτ = ∫ R(τ ) cos ωτ dτ (3.43)
−∞ −∞
In the above equation, the second relationship holds as well because the autocorrelation
function is a real even function and the power spectrum is a real function. In MATLAB,
there exist several functions that can perform spectral estimation based on a finite set of
data.
(a) Noise in the time domain (b) Noise in the frequency domain
64
The simulated noise in the time domain and its power spectrum are shown in Figure 3.11.
In the simulation, the noise density is -203 dBW/Hz, the filter bandwidth is 2 MHz, the
sampling frequency is 4.75 MHz, and the IF is 15.42 MHz. The resultant base band
3.2.10 Filtering
Signal filtering is completed with a MATLAB function, ‘FIR1’, which realizes a classical
windowed linear-phase Finite Impulse Response (FIR) digital filter. This filter is actually
a standard band-pass filter defined by the filter type, filter order, and pass band
bandwidth. The magnitude and phase response of the band-pass filter used in the thesis
65
The filter order greatly affects the performance of the filter. The higher the filter order,
the more accurate the filter, but the computation load is also higher. So, a tradeoff must
satisfactory response in the filter, as well as a tolerable computation time of about 1.6
The signals before filtering and after filtering in the time and frequency domains are
shown in Figure 3.13. The two plots on the left-hand side show the results before filtering
whereas the right-hand figures give the results after filtering. It is evident that the side
lobe out of pass band is removed after the signal sequence passes the filter.
66
3.2.11 Quantization
The fewer the number of quantization bits, the easier the digital process becomes.
However, the fewer the number of quantization bits, the greater the signal degradation
performance will permit (Krumvieda et al., 2001). One-bit and 2-bit quantization are
used in many commercial GPS receivers. A rule of thumb states that 1-bit quantization
degrades the signal-to-noise ratio by 1.96 dB and 2-bit quantization degrades the signal-
to-noise ratio by 0.55 dB (Van Dierendonck, 1996). The implementation of 1-bit and 2-
commercial receivers and does not need an AGC. The implementation threshold is zero
for 1-bit quantization. The resulting data value is 1 if the signal is greater than 0; and -1 if
the signal is less than 0. The 1-bit quantized signals in the time and frequency domains
Figure 3.14: IF 1-bit quantization GPS signal in the time and frequency domains
67
Two-bit quantization usually results in four level magnitudes data samples by three
thresholds. Any time multi-bit quantization is used, an A/D threshold control is required
(1983), is used to conduct 2-bit quantization for the software implementation. In this
method, the high magnitude samples are given much more weight in the data detection
process than the small magnitude samples to achieve good performance in terms of
Gaussian noise. The general quantization strategy is illustrated in Figure 3.15. The sign
threshold is indicated on the input axis as T0 , and the positive and negative magnitude
magnitude thresholds are given unity weight, while samples exceeding the magnitude
Output
1
Input
T0 − ∆ T0 T0 + ∆
−1
−R
68
In the next step, one computational criterion is made for setting the ∆ and R values. The
received GPS signal is present amidst a background of Gaussian noise. The signal-to-
noise ratio of the A/D conversion input signal is extremely low. A high A/D conversion
gain is expected because the channel bit voltage will be the sum of a large number of
quantized chip voltages and will therefore tend to be Gaussian distributed with high
processing gain according to Amoroso (1983). Hence, the criterion is to set ∆ and R to
Assuming that the input signal is ± Vi and the Gaussian noise with zero mean has a
standard deviation of σ i , the A/D conversion gain, G , can be presented by the following
equation:
2
⎡ 2 ⎛∆⎞ ⎤
⎢ + 2Φ ⎜⎜ ⎟⎟( R − 1)⎥
lim G
⎛ ∆⎞
⎜⎜ R, ⎟⎟ = ⎣ π ⎝σi ⎠ ⎦
⎝ σi ⎠ ⎡ ⎛ ∆ ⎞⎤ ⎛∆⎞
Vi
→0
σi R 2 ⎢1 − α ⎜⎜ ⎟⎟⎥ + α ⎜⎜ ⎟⎟ (3.44)
⎣ ⎝ σ i ⎠⎦ ⎝σi ⎠
⎛ ∆⎞
= G0 ⎜⎜ R, ⎟⎟
⎝ σi ⎠
where
u 1 − y2
α (u ) = ∫ Φ ( y )dy, Φ( y ) = e 2
−u
2π
The value of Vi σ i is typically very small in a system with high processing gain. G0 is
independent of the input signal level Vi as long as the level is small. Therefore, the A/D
converter acts almost as a linear device which degrades the SNR by a ratio depending on
∆ σ i and R . The conversion gain is plotted in Figure 3.16 with ∆ σ i reinterpreted as the
69
percentage of input samples falling at a high magnitude, reflecting the adaptive threshold
strategy. This percentage is essentially independent of the input signal level as long as
⎡ ∆ ⎤
that level is low. It is defined as 100 × ⎢1 − ∫ σ∆i e − y 2 dy ⎥ .
2
−
⎢⎣ σi ⎥⎦
R=3.5
R=3
R=4
A/D Conversion Gain (dB)
R=3
R=4
R=2
R=1000
Figure 3.16 shows that the joint optimum condition is substantially reached at
R = 3.5 and 35 percent of chips having high magnitude. The nearly optimal state occurs
when R is 3 or 4.
For expression simplicity, the 2-bit quantization in this thesis takes the values R = 3 and
30 percent of chips at high magnitude to determine the threshold. The sign threshold T0 is
set to 0 since the Gaussian noise is zero mean. The MATLAB quantization routine
70
iteratively determines the threshold values to meet 30 percent high magnitude sample
distribution goals. The resultant values for the digitized signal are +3 when the signal is
greater than the positive threshold; +1 when the signal is between zero and the positive
threshold; -1 when the signal is between the negative threshold and zero; and -3 when the
signal is less than the negative threshold. The resultant digitized IF GPS signal is shown
in Figure 3.17.
Figure 3.17: IF 2-bit quantization GPS signal in the time and frequency domains
All of the above functions and models are realized by MATLAB functions. A block
diagram of the code of the signal simulator, structured with respect to the hierarchy of
functions, is shown in Figure 3.18. The order in which the functions are called is
predominantly from left to right. A more detailed program flow chart is given in Figure
3.19.
In summary, the simulator has the capabilities of simulating the L1 C/A code and data
modulation, ionospheric and tropospheric errors, noise, filtering and quantization. Any of
71
these functions can be turned on or off simply by a switch variable. The switch variables
as well as most of the system parameters are considered in the simulation configuration
72
Parameters
Simulator RxTrajectory
SatTrajectory (C)
SatValid
GenData (C)
GetData TropoError(C)
73
Simulator
Start GenComSig
Signal for satellites Signal_prn
Load parameters in view:
RxTrajectory Compute errors
Signal for SV1
+ .
C code Rx trajectory . Carrier
Compute satellite .
position according the Satellites trajectory + Signal for SV N create_code_samples
Code
broadcast ephemeris
parameters
Data GetData
Noise
SatValid Satellites in view
N CompError
t< runtime? s
FiltSig Satellite clock C code
Y End
Compute Tp and
Set time for one loop Doppler
Tp Doppler
Interpolation
Generate IF signal
Ionosphere IonoError (C)
Quantization
Quantizer Troposphere TropoError (C)
Save Quantized IF signal
End
t + time for one loop
74
Table 3.1: Simulator parameters
Parameter Name Description
GPS System Constants:
Frequency L1 GPS L1 frequency 1575.42 MHz
ChipRate C/A code chipping rate 1.023 MHz
LightSpeed Speed of light 299792458 m/s
Simulation Control Parameters:
AddAmp Simulate signal amplitude
AddData Simulate navigation data
AddCode Simulate C/A code
AddCarrier Simulate Carrier
AddNoise Simulate noise
ApplyDopplerTp Simulate Doppler and propagation time
ApplyIono Simulate ionosphere error
ApplyTropo Simulate troposphere error
ApplyBandFilt Conduct signal filtering
QuantSig Conduct quantization
Simulation System Parameters:
StartTime Simulation start time in GPS time (s)
EndTime Simulation end time in GPS time (s)
Loop_time Simulation time of each loop
RxMode Receiver trajectory mode (0, 1, 2)
TrajTD Receiver trajectory time interval
ElevCutoff The cutoff elevation angle
NoiseDensity Expected front-end noise density
C/N0 Expected C/N0
FE_BW Band-pass filter bandwidth
FE_filter_order Filter order
QuantBit Quantization bit 1 or 2
75
CHAPTER 4
4.1 Introduction
A software GPS receiver becomes the advisable option if the validity of the signal
simulator needs to be verified. Partially to this end, a post-mission multiple channel GPS
receiver was developed with the functional diagram shown in Figure 4.1. Just like a usual
GPS receiver, this software receiver is composed of signal acquisition, signal tracking,
operation, a few assisting modules are also developed; for example, a measurement
derivation module to obtain pseudorange, carrier phase and Doppler from each channel;
an inner clock generation module to maintain an inner GPS timer; and a receiver
The simulated signal samples are saved in an input data file. After reading these samples
into memory, the acquisition stage is engaged first to provide the initial code offset and
Doppler estimates. With these initial values, a tracking loop is able to keep track of the
simulated signals and to provide pseudorange and carrier phase estimates. Sub-frame
76
ephemeris, and to remove the transmit time ambiguity. Finally, the user position is
computed and the inner clock bias is removed to improve the quality of the pseudorange
Measurement Navigation
Derivation Solution
Inner Clock
Generation
Receiver
Monitoring
Acquisition is a coarse synchronization process giving rough estimates of the PRN code
offset and the carrier Doppler which initialize tracking loops for signal tracking and
navigation data demodulation (Lin and Tsui, 2000). As illustrated in Figure 4.2, GPS
and a replica carrier are aligned with the received signal. The correct alignment is
identified by measurement of the output power of the correlators. In other words, when
both the code and the carrier Doppler match the incident signal or simulated signal, the
77
signal can be despread and the data can be demodulated. The results of the two-
dimensional search consist of an estimate of the code offset to within half a chip and a
Quadra-phase
Correlation Q_corr2
90o shift
Frequency bins
The two-dimensional search space covering the full range of the uncertainty of code and
predetermine the code offset because this offset is a function of the starting point and
changes at the chipping rate with time. Thus, the code search space typically includes all
possible code offset values. The resolution of the code search needs to be smaller than
half a chip; usually, the sampling frequency is used to specify this resolution. By
comparison, the change of Doppler is a function of user dynamics and the stability of the
receiver oscillator which is normally a low frequency quantity and easily estimated.
Therefore, the frequency searching space can be reduced if an initial estimate of Doppler
is known in advance. Without such an initial estimate, the Doppler searching space is
usually from -5 kHz to 5 kHz. The frequency resolution is determined by the coherent
78
integration time (or dwell time). The relationship is roughly ∆f = (2 3)T (Raquet, 2001)
where ∆f is the frequency bin width in Hz and T is the predetection integration time in
seconds. There is a tradeoff between the predetection integration time and acquisition
speed. Longer integration can provide better frequency resolution and higher sensitivity,
but it needs to search a greater number of bins and requires more time.
Various acquisition methods with search and detect strategies have been proposed in the
is performed using a carrier and a C/A-code replica. It resides physically on each bin for
a predetermined dwell time and, thus, the acquisition time is the product of the dwell time
and the number of search bins. Consequently, the acquisition time is very long. In a post-
mission software GPS receiver, the samples of the incident signal are first read into a
large buffer, making block data processing possible. A popular block signal acquisition
technique is the Discrete Fourier Transform (DFT) based technique which is able to
search all possible code offsets in one DFT-based computation, dramatically reducing the
Figure 4.3 demonstrates the concept of the DFT-based acquisition method. The local data
is a combination of the carrier and the C/A-code. The circular convolution gives the
79
Input data
s = AC cos(2πft ) , (4.1)
AC AC
pi = exp( j 2π ( f + f i )t ) + exp( j 2π ( f i − f )t )
2 2
AC AC
= exp( j 2π ( f + f i )t ) + exp( j 2π∆ft ) (4.3)
2 2
= piH + piL
The correlation result zi between pi and the local C/A-code, CCA , gives the final
acquisition result. Since pi contains both high and low frequency components, zi can be
80
zi = ziH + ziL (4.4)
where
N −1
ziL = ∑ AC (n )exp( j 2π∆fTn )CCA (n + m )
n =0
⎧ ⎛ 1 − exp( j 2π∆fTN ) ⎞
⎪A⋅ ⎜ ⎟ m=0
= ⎨ ⎜⎝ 1 − exp( j 2π∆fT ) ⎟⎠ (4.5)
⎪⎩ sufficiently small m≠0
⎧ ⎛ Sa (π∆fTN ) ⎞
⎪ A ⋅ N ⋅ exp( jπ∆fT (N − 1))⎜⎜ ⎟⎟ m = 0
=⎨ ⎝ Sa (π∆fT ) ⎠
⎪⎩ sufficiently small m≠0
Obviously, ziL is significantly large only when the incident code is synchronized with the
local code and when the local carrier frequency is close to the incident carrier. ziH is
property (Van Vee and Coenen, 1991): the correlation between two periodic sequences
x (n ) and h (n ) ,
N
z (n ) = ∑ x (m )h (n + m ) (4.6)
m =0
equals
( )
z (n ) = IFFT DFT ( x (n )) ⋅ DFT (h (n )) , (4.7)
81
where (⋅) denotes a complex conjugate. This method can give the correlation value at all
possible code offsets in one computation. Fast acquisition speed can be achieved if the
FFT technique is applied, a routine that greatly reduces the computational burden. For
this reason, a DFT-based acquisition method is used in this software GPS receiver.
Acquisition produces a coarse estimate of the carrier Doppler and the code offset of the
incoming signals. Control is then handed over to the tracking loops, the function of which
is to track variations in the carrier Doppler and code offset due to line-of-sight dynamics
between satellites and the receiver. Together with bit and sub-frame synchronization,
precise pseudorange and carrier phase measurements can be derived. Another important
function of the tracking loop is to demodulate the navigation data to obtain the ephemeris
To track an incoming GPS signal, both the carrier phase and code offset need to be
matched by the locally generated carrier and code. Thus, the lock status of both the
carrier lock loop (FLL or PLL) and delay lock loop are required for signal tracking; they
must be coupled together as shown in Figure 4.4 (Tsui, 2000). Once one of them loses
lock, the other one will subsequently lose lock as well. Before discussing the delay lock
loop and the carrier lock loop implemented in the developed software GPS receiver, the
basic concept of a phase lock loop is first described in the following section.
82
Delay locked loop (DLL)
C/A Code Integration &
Dump
Early I_E Q_E
Code
Loop filter Discriminator
generator
Late I_L Q_L
Integration &
Carrier Dump
IF GPS signal
In this section, the basic concept of the phase lock loop is described, which includes the
transfer function, the error transfer function, and the noise bandwidth.
The main purpose of a PLL is to adjust the frequency or phase of a local oscillator to
match the frequency or phase of an input signal, referred to as the reference signal. The
83
θi(t) ε (t) VC(t) VO(t)
Σ k0 LP Filter
+ _
θf(t)
VCO
VCO
(b) S domain
Figure 4.5(a) shows the time domain configuration and Figure 4.5(b) shows the S domain
configuration, which are related by the Laplace transform. The input signal is θ i (t ) and
the output from the voltage controlled oscillator (VCO) is θ f (t ) . The phase comparator
measures the phase difference between these two signals. The amplifier, k 0 , represents
the gain of the phase comparator and the low-pass filter limits the noise in the loop. The
input voltage V0 to the VCO controls its output frequency, which can be expressed as
ω2 (t ) = ω0 + k1V0 (t ) (4.8)
where ω0 is the centre angular frequency of the VCO and k1 is the gain of the VCO. The
∫ ω (t )dt = ω t + ∫ k V (t )dt
t t
2 0 1 0 (4.9)
0 0
84
where
θ f (t ) = ∫ k1V0 (t )dt
t
(4.10)
0
k1
θ f (s ) = V0 (s ) (4.11)
s
VC (s ) = k 0ε (s ) = k 0 [θ i (s ) − θ f (s )] (4.12)
VO (s ) = VC (s )F (s ) (4.13)
VC (s ) VO (s ) sθ f (s )
ε (s ) = θ i (s ) − θ f (s ) = = = (4.14)
k0 k 0 F (s ) k 0 k1 F (s )
or
⎛ s ⎞
θ i (s ) = θ f (s )⎜⎜1 + ⎟ (4.15)
⎝ k 0 k1 F (s ) ⎟⎠
θ f (s ) k 0 k1 F (s )
H (s ) = = . (4.16)
θ i (s ) s + k 0 k1 F (s )
ε (s ) θ i (s ) − θ f (s ) s
H e (s ) = = = 1 − H (s ) = (4.17)
θ i (s ) θ i (s ) s + k 0 k1 F (s )
85
The equivalent noise bandwidth is defined as
∞
Bn = ∫ H ( jω ) df
2
(4.18)
0
ω = 2πf (4.19)
It is evident from the above discussion that the loop filter, F (s ) , is the key component of
a PLL. It determines the loop order, natural frequency, damping coefficient, and noise
bandwidth, and thus greatly affects the overall performance. In the software receiver
discussed below, a three order phase lock loop and a two order DLL are implemented by
Inside a GPS receiver, a DLL is used to track the C/A code of incident signals. As in a
regular phase lock loop, it consists of a code phase discriminator, a loop filter, and the
C/A code NCO. As illustrated in Figure 4.6, the DLL realized in the software receiver is
86
IE/QE I E2 + Q 2
− I L2 + Q 2
Integration E L
Correlation
& Dump I E2 + Q 2
+ I L2 + Q 2
IL/QL E L
DLL discriminator
a2ω0 (ω0)2
E/P/L
code 1
S
Code NCO
As mentioned before, the carrier and code need to be matched simultaneously by the
locally generated signal in order to keep track of the incoming signal, thus after Doppler
removal, the input of a DLL is nearly a pure C/A code (together with the navigation bits).
The correlation process mixes this input with the local early (E), punctual (P), and late
(L) code replicas in both the In-phase and Quadrature-phase arms to get the IE, QE, IP, QP,
IL, and QL. As shown in Figure 4.7, the correlation power or the correlation envelope of
the early component and the late component contains the code mismatch information ∆τ ;
thus, the IE, QE, IL, and QL are usually used in the DLL discriminator to obtain the
estimate of ∆τ . Several DLL discriminators have been proposed, and their input-output
relationships are illustrated in Figure 4.8. A normalized early minus late envelope DLL
discriminator is used in the software receiver because its tracking range is (-1.5 chips, 1.5
chips), which is much wider than that of other types of discriminators; its input-output
87
relationship is linear among (-0.5 chips, 0.5 chips), so no extra approximation will be
RP(τ)
D(τ) = RE(τ) - RL(τ)
RL(τ)
RE(τ)
∆τ
External aiding from the carrier loop is normally applied to improve DLL accuracy as
shown in Figure 4.6. In this case, a DLL needs only to correct some errors, such as initial
88
tracking errors, the rate of change of the ionosphere or differences in code, and carrier
multipath. These residual variations are ordinarily quite small and change very slowly
with time; thus, the DLL loop bandwidth can be significantly reduced – approaching a
magnitude on the order of 0.05 ~ 1 Hz, depending on the application. With external
aiding from the carrier loop, the pre-detection time can be extended dramatically based
on the Doppler aiding accuracy. Based upon the above analysis, a PLL aided DLL is
realized and a 2 Hz bandwidth and a 10 ms coherent integration time are selected in the
software receiver. It can achieve the satisfactory DLL tracking accuracy for the normal
A first-order loop filter is used here to construct a second-order DLL loop which can
track constant acceleration in an unbiased manner. The transfer function of the loop filter
is
ω02
F (s ) = a2ω0 +
s (4.20)
The DLL transfer function can be derived as follows after substituting F (s ) into
a 2ω0 s + ω02
H (s ) = (4.21)
s 2 + a 2ω0 s + ω02
Obviously, the natural frequency of the loop is ω0, and the damping factor is 0.5a2. The
DLL noise bandwidth, Bn, the damping factor 0.5a2, and the natural frequency are related
ω0 (1 + a 22 )
Bn = (4.22)
4a 2
89
To make the DLL a critically damped loop, a 2 needs to be equal to 1.414. Therefore,
Bn = 0.53ω0 can be derived and all of the parameters related to designing a DLL are thus
determined. The output of the loop filter is a variation of the code chipping rate. Together
with the Doppler aiding from the carrier loop and the nominal chip rate, it can drive the
code NCO properly to keep track of the code of the incoming signal and to provide an
There are two types of carrier tracking loops, FLL and PLL. An FLL keeps track of the
frequency of the incoming signal by measuring the frequency mismatch between the local
carrier and the incoming carrier, while a PLL keeps track of the phase of the incoming
signal by measuring the phase mismatch between the local carrier and the incoming
carrier. In general, a PLL is more accurate than an FLL, but it is more sensitive to
transition stages from signal acquisition to phase tracking where it is difficult to acquire
the phase of the carrier because of large frequency uncertainties. An FLL is also less
sensitive to data bit transition than a PLL (Van Dierendonck 1996). In the software
receiver, a FLL is designed to keep working until fine phase tracking can be done and bit
synchronization is achieved. After that, a PLL will take over the carrier tracking in order
The second-order FLL used in the software GPS receiver is illustrated by Figure 4.9.
90
IP sign ( dot ) cross
Doppler Integration
Removal & Dump QP ( t 2 − t1 )
FLL discriminator
cosφk sinφk
a2ω0 (ω0)2
1
S
Carrier
NCO
The key characteristic of an FLL is its discriminator which detects frequency mismatch.
rotation between two consequential (Ip, Qp) pairs. There are several FLL discriminators
δf i = I i −1Qi − I i Qi −1 (4.23)
⎛ Qi ⎞ ⎛Q ⎞
δf i = arctan ⎜⎜ ⎟⎟ − arctan ⎜⎜ i −1 ⎟⎟ (4.25)
⎝ Ii ⎠ ⎝ I i −1 ⎠
91
A PLL is much more accurate in carrier tracking than an FLL because it tracks the phase
instead of the frequency; thus, receiver channels usually transform from an FLL state to a
PLL state after the carrier mismatch converges into the lock range of the PLL used. The
PLL realized in the software GPS receiver is a third-order PLL which is illustrated in
Figure 4.10.
PLL discriminator
cosφk sinφk
b3ω0 a3(ω0)2 (ω0) 3
1
S
1
S
Carrier
NCO
As mentioned before, the fundamental difference between a PLL and an FLL is the
while the discriminator of a PLL detects phase mismatch. As listed in Table 4.1 (Raquet,
2001), there exist quite a few PLL discriminators which investigate the phase angle of the
92
Table 4.1: PLL discriminators
Discriminator Costas Output phase Notes
Algorithm Loop error
Sign(I)·Q Y sinφ Near optimal at high SNR. Slope
proportional to signal amplitude.
I·Q Y sin2φ Near optimal at low SNR. Slope
proportional to signal amplitude squared.
Q/I Y tanφ Suboptimal, but good at high and low
SNR. Slope is not signal amplitude
dependent.
atan2(Q,I) N φ Optimal (maximum likelihood estimator)
at high and low SNR. Slope is not signal
amplitude dependent.
atan(Q/I) Y φ Optimal (maximum likelihood estimator)
at high and low SNR. Slope is not signal
amplitude dependent.
In the software receiver, the atan (Q I ) discriminator is used because of its high
performance. The loop filter transforms phase mismatch into a carrier Doppler change
which drives the carrier NCO to reduce the phase error. Without external aiding, such as
aiding from an Inertial Measurement Unit (IMU), a PLL needs to keep track of the total
dynamic stress, such as user dynamics, inner oscillator error, atmospheric effects, and
multipath effects. This makes the carrier loop a weak loop which may lose lock easily. As
a result, a third-order PLL is realized here because it can tolerate higher dynamics. A
high order DLL is not necessary because a DLL is normally assisted by the carrier loop
which can remove user dynamics and variation of the receiver oscillator, the major
93
sources of loop dynamic stress. A DLL simply needs to track the difference between the
Knowledge of code lock is obviously the same as the knowledge of received signal power
(Van Dierendonck 1996). Code lock detection is very similar to estimating C/N0. A good
C/N0 would be required only if the receiver is operating on or near the correlation peak,
Consider measurements of total power in 1/T (wide band power) and 1/MT (narrow-band
⎛M ⎞
WBPk = ⎜ ∑ ( I i2 + Qi2 ) ⎟ (4.26)
⎝ i =1 ⎠k
2 2
⎛M ⎞ ⎛M ⎞
NBPk = ⎜ ∑ I i ⎟ + ⎜ ∑ Qi ⎟ (4.27)
⎝ i =1 ⎠ k ⎝ i =1 ⎠ k
The exact relationship between these measurements and signal-plus-noise power is not
known. However, a normalized power defined as Equation 4.28 gives statistics that
provide a monatomic function of C/N0 which is shown in Figure 4.11 (Van Dierendonck,
1996).
NBPk
NPk = (4.28)
WBPk
94
20
18
16
/WBP
BP/WBP
NBPWBP
14
of ofNBP/
Mean
12 Sigma
Sigma
10
andanSdigma
8
M ean
6
Mean
0
10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56
C/N (dB-Hz)
C/N0
0(dB-Hz)
K
1
µ̂ NP =
K
∑ NP
k −1
k (4.29)
C/N0, the average of NPk should be greater than 6. When this average value is less than 6,
Cˆ ⎛ 1 µˆ NP − 1 ⎞
= 10 log10 ⎜⎜ ⎟⎟ (4.30)
N0 ⎝ T M − µ̂ NP ⎠
95
Equations (4.29) and (4.30) are used in the software receiver to compute a DLL detector
value and to estimate one second average C/N0 with M=20 and K=50.
The histogram approach is used to perform bit synchronization in this software GPS
receiver. This approach breaks a data bit period (20 ms) into 20 C/A-code 1 ms epoch
periods and senses sign changes between successive epochs. For each sensed sign
change, a corresponding histogram cell count is incremented until a count in one specific
cell exceeds the other 19 bins by a pre-specified amount. An example of one such
histogram for successful bit synchronization along with count thresholds is shown in
Figure 4.12. The procedure can be described as follows (Krumvieda et al., 2001):
30
25
NBS1 Threshold 1
20
Bin counts
15
NBS2 Threshold 2
10
0
0 2 4 6 8 10 12 14 16 18
Bin number
96
1) A cell counter K cell is arbitrarily set and runs from 0 to 19.
2) each sensed sign change is recorded by adding 1 to the histogram cell corresponding to
K cell .
4) If (a) occurs, the bit synchronization fails and is reinitialized. If (b) occurs, one tries to
reestablish lock. If (c) occurs, bit synchronization is successful, and the C/A code epoch
Pesc = 2 Pe (1 − Pe ) (4.32)
where
Pe = erfc' [ ]
2(S N 0 )T if a PLL is used
1 ∞
erfc' ( x ) = ∫
2
e − y 2dy
2π x
2) The number of entries, N bs , in a cell has a binominal distribution. Over Tbs seconds,
97
N bs = 50 Tbs Pesc (4.34)
3) The thresholds, as well as the time interval Tbs , are selected to provide a good spread
(say 3σ) between them at a desired SNR. That is, given NBS1 , select NBS 2 and Tbs for a
Frame synchronization is required in order to process the GPS data. When timing
uncertainties are large, parity decoding is not possible since the boundaries of the words
are unknown. The following section details the procedure necessary to synchronize
frames.
The GPS navigation message frame structure is shown in Figure 4.13. Each frame is
partitioned into five sub-frames. Each sub-frame is subdivided into ten 30-bit words with
the two leading words being the telemetry (TLM) word and the handover (HOW) word.
98
Figure 4.13: Navigation message
The structure for the TLM and HOW words is given in Figure 4.14. The TLM word is 30
bits long, occurs every six seconds in the data frame, and is the first word in each sub-
frame. Each TLM word begins with a preamble, followed by the TLM message, two
99
Figure 4.14: TLM word and HOW word
The HOW word is 30 bits long, occurs every six seconds in the data frame and is the
second word in the sub-frame, immediately preceded by the TLM word. The convention
is that the most significant bits (MSB) are transmitted first. The HOW word begins with
seventeen MSBs of the time-of-week (TOW) count. The full TOW count consists of the
19 least significant bits (LSB) of the 29-bit Z-count. Bit 18 is the momentum flag (for SV
configuration 000) or “alert” flag (for SV configuration 001) and bit 19 is the
synchronization flag (for SV configuration 000) or antispoof flag for (SV configuration
The algorithm for positively finding the correct preamble and performing frame
synchronization is as follows:
100
[1] Search for either an upright or inverted preamble.
[2] When one is found, which could be a legitimate pattern somewhere else in the data
accomplished by collecting the following 22 bits and checking parity. If parity does not
[3] If parity passes, it confirms that the preamble existed at the beginning of a word. The
parity algorithm will also resolve the sign ambiguity. However, there are also other
legitimate patterns at the beginning of other words, so additional checks are required. If it
is the correct TLM word, the following word must be a HOW word that contains a
truncated Z-count. The first eight bits of this truncated Z-count can also resemble a
preamble.
[4] Parity should pass on the HOW word. If not, the frame synchronization procedure
should be restarted. Two checks can be made to verify a legitimate HOW word that the
Z-count is reasonable, and it agrees with the sub-frame count. Of course, there is a small
probability that these conditions could also occur elsewhere in the message. Thus, further
checking is required.
[5] If the HOW seems to be legitimate, provisional demodulation of the other words can
commence, and they can be stored in memory. A final check on the next preamble and
101
the next Z-count solidifies the frame synchronization. That is, the preamble is where it is
4.7.1 Pseudorange
A whole pseudorange measurement requires more than the DLL. The DLL provides the
high resolution or fine measure of the overall pseudorange, but the whole pseudorange
also requires some gross information. To get such gross information, certain counters
become necessary.
ρ (t ) = c[tu (t ) − t ( s ) (t − τ )] (4.37)
where
t ( s ) (t − τ ) = Z - count
+ number of navigation bits
+ number of C/A codes (4.38)
+ number of whole C/A code chips
+ fraction of C/A code chip
This situation is shown in Figure 4.15 (Misra and Enge, 2001). As shown, the arrival time
these transitions occur sometime in the middle of a C/A code chip, and so the larger task
102
is to establish the transmission time, according to the satellite, of the received code
feature identified by the receiver clock transition. Satellite time is kept by the Z-count
which is also included in the navigation message. More specifically, the Z-count
increments every 1.5 seconds, and the navigation message starts a new sub-frame every 6
seconds. These events are used to broadcast a coarse notion of satellite time to all users,
…………………..………
Since the Z-count establishes satellite time at the beginning of each sub-frame, the
transmission time is the Z-count plus the whole number of C/A-code chips since the
beginning of the sub-frame. The elapsed time can be measured using the following
components: the whole number of navigation bits; plus the whole number of C/A-codes
since the beginning of the current navigation bits; plus the number of whole C/A-code
chips since the beginning of the current code; plus the fraction of the current chip. The
last two are measured by the DLL and the rest are measured by counters in the bit
103
synchronization and sub-frame synchronization module in the software GPS receiver
developed herein.
It is much easier to obtain Doppler and carrier phase measurements than to obtain
pseudorange measurements because only the fractional part is desired. The Doppler can
be read directly from the carrier NCO while the carrier phase needs to be assisted by a
carrier counter which is used to count the integer cycles the incoming carrier has
changed. The fractional part is recorded with the carrier NCO and the summation of the
integer part and the fractional part give the carrier phase measurement since the loop is
locked.
The following work focuses on how to obtain the navigation solution after the
pseudorange and carrier phase raw measurements are derived by the software receiver.
proven successful by the PLAN group in processing GPS and GLONASS pseudorange
data in both static and kinematic modes (Petovello, 2000) is used. It can also detect cycle
slips and can smooth pseudorange measurements with the carrier phase. C3NAVG2 TM
takes an observation file and ephemeris file as input and outputs four files containing
104
CHAPTER 5
IF GPS SIGNAL
The procedure for conducting the software GPS receiver verification begins with
collecting real IF GPS data at a known position; then feeding the data to the software
receiver; acquiring the pseudorange and Doppler measurements via the receiver tracking
loops; computing the receiver position; and, finally, comparing the computed positions
with the known position information. According Parkinson (1996), the word wide
civilian horizontal positioning error for GPS is potentially about 10 metres. Therefore, if
the position error of the software receiver is better than 10 metres, it is considered to be
performing properly. In addition, the RF GPS signal can be received and processed by a
between the results of the hardware GPS receiver and the results of the software GPS
receiver.
A hardware front-end, ‘GPS Signal Tap’ (Figure 5.1), made by the Accord company is
used to collect the real IF GPS signal. It is an L1 GPS receiver front-end and consists of a
105
two-stage RF down-converter. The RF signal is down-converted to the intermediate
frequency, 15.42 MHz, at the second stage. This IF signal can be sampled and stored in
Eighty seconds of real IF GPS data were collected by the GPS Signal Tap at Mountain
Standard Time 10:55 AM on October 20, 2003. The antenna was fixed atop the roof of
the Calgary Centre for Innovative Technology building, University of Calgary, having
bandwidth of the Signal Tap is 2 MHz. A signal with 15.42 MHz intermediate frequency
was sampled at a sampling rate of 4.75 MHz, resulting in a base-band signal centred at
1.17 MHz. One-bit quantization was conducted. The collected data consists of 1 and 0
sequence which is stored in a binary file. For processing convenience, it was then
converted to a 1 and -1 sequence with binary format and sent to the software GPS
106
At the same time, a Novatel OEM4 hardware GPS receiver was used to receive the RF
GPS signal; some real time processing results at a certain epoch during the signal
From the above figure, it can be seen that seven satellites were available. The Doppler
107
Table 5.1: Doppler and C/N0 of the observed satellites
PRN number Doppler (Hz) C/N0 (dB-Hz)
1 1453.9 49.2
2 2261.1 44.7
4 - 218.6 41.7
13 2864.3 44.0
16 1672.9 46.8
20 -1931.3 48.8
25 -2599.9 45.6
The collected real IF GPS data was fed to the software GPS receiver. Acquisition was
conducted first. All 32 satellites were searched and seven satellites (1, 2, 4, 13, 16, 20,
25) were acquired. This is exactly the same as the result of the OEM4 GPS receiver. The
acquired Doppler values are shown in Table 5.2. They are similar to the Doppler values
Table 5.2: Acquired Doppler values of the Signal Tap collected signal
PRN number 1 2 4 13 16 20 25
Doppler (Hz) 1466.7 2666.7 - 200 2866.7 1666.7 -1933.3 -2600
5.3 Tracking Results of the Software GPS Receiver and Navigation Solution
Verification
Data bits, Doppler, signal time delay (pseudorange), DLL lock detector, and C/N0 values
can be obtained from the tracking loops. However, only the average C/N0 and Doppler
derived from the software receiver are shown in the following figures and are compared
108
with those derived from the OEM4 GPS receiver, because not all of the other
intermediate processing results of the OEM4 receiver are available for comparison
purposes. To avoid repetition, the tracking results of the software receiver for all seven
satellites except for C/N0 and Doppler will be shown in Chapter 6 where simulator
verification is discussed.
0
0
0
0
109
0
0
0
0
0
110
0
0
0
For clarity of comparison, the results of the average C/N0 and Doppler from the software
receiver for each satellite and those from the OEM4 receiver results are listed in Table
5.3. The Doppler values from the software receiver were collected at GPS time 147327 s,
the same as the time of the OEM4 receiver results shown in Figure 5.1 which was
111
Table 5.3: Doppler and C/N0 values obtained by the OEM4 receiver and software
GPS receiver
PRN Doppler (Hz) C/N0 (dB-Hz)
OEM4 receiver Software OEM4 receiver Software
receiver receiver
1 1453.9 1456.6 49.2 45.9
20 -1931.3 -1928.9 48.8 45.3
16 1672.9 1674.3 46.8 43.2
25 -2599.9 -2598.1 45.6 41.2
2 2261.1 2260.8 44.7 40.4
13 2864.3 2869.1 44.0 39.6
4 - 218.6 - 215.6 41.7 35.8
From Table 5.3, it can be seen that the Doppler and the average C/N0 of the software
receiver and the OEM4 receiver are very close. There is about a 3 Hz difference for the
oscillator frequency errors occurring between the OEM4 receiver and the Signal Tap. The
C/N0 figures estimated by the software receiver are 3.5 to 6 dB lower than that estimated
by the OEM4 receiver, but the relative value of C/N0 is identical, which is listed in
descending order in Table 5.3. This may have resulted from different C/N0 estimation
algorithms and better tracking performance of the OEM4 receiver. The comparison of
Doppler and C/N0 indicates that the software receiver can acquire and track the real IF
GPS signal.
carrier phase measurements are extracted from the tracking loops as described in Chapter
4. The navigation solution of the real IF GPS signal is shown in Figure 5.4.
112
Figure 5.4: Navigation solution of the real GPS signal
It can be seen that the navigation solution matches the known real receiver position with
an RMS of 3.8 m. A 2.5 m bias can be observed although all position points centred at
the real position. This is because the pseudorange error caused by the ionospheric error,
tropospheric error, and satellite geometry. To confirm this, it is better to compare the
navigation solution in Figure 5.4 to the solution of an OEM4 receiver. Unfortunately, the
comparing of the results of the software receiver and OEM4 receiver is conducted as the
following description. A group of GPS data is logged by an OEM4 receiver during the
on the roof of the Engineering Building, University of Calgary. That point is about 100
metres away from the test point. Therefore, the navigation solution of the OEM4 receiver
for that point should include almost same effects of the ionospheric error, tropospheric
error, and satellite geometry. Figure 5.5 gives the local position of that point computed
113
Figure 5.5: Navigation solution computed from the OEM4 receiver generated raw
measurements
Comparing Figure 5.4 and 5.5, it can be seen that the receiver positions derived by the
software receiver and OEM4 receiver have similar mean and RMS values and both of
them have a position bias in the northwest direction. This confirms that the position bias
in Figure 5.4 is caused by the ionospheric error, tropospheric error, and satellite geometry
instead of other unexpected errors resulted by the implementation of the software receiver
and the software receiver has similar navigation solution as OEM4 receiver. The software
receiver is therefore proven having ability to conduct the GPS signal processing and
positioning with a positioning accuracy less than 5 metres. In addition, it is noticed that
the standard deviation of the position derived by the software receiver is not as small as
that of the OEM4 receiver. This is because some more advanced techniques, such as
The above comparison and analysis confirms the software GPS receiver works very well.
It will be used to process the simulated IF GPS signal to check its validity in the next
chapter.
114
CHAPTER 6
and comparing it to a real GPS signal in the time, frequency, correlation, measurement
and position domains. The real IF GPS signal collected by the Signal Tap used in Chapter
5 is simulated and stored in a data file. A Fast Fourier Transform is applied to both the
simulated and real IF GPS signals to obtain signal power spectrums so that they can be
compared in the frequency domain. Since the software GPS receiver has been verified as
described in Chapter 5, it is used to process both the Signal Tap collected data and the
simulated signals. The simulated signal is fed to the receiver, which performs acquisition
and tracking and, finally, the receiver position is computed from the raw measurements
obtained from the tracking loops. All of these results are compared with those produced
from the real IF GPS signal. The position result derived by the simulated signal is also
compared with the known receiver position. In addition, the effects of the simulation
components, such as noise, filtering, quantization and errors, on the navigation solution
115
6.2 Simulated Signal Description
The parameters used in signal simulation are shown in Table 6.1, which exactly copies
the parameters of the Signal Tap. In the simulation, the receiver noise, satellite clock
error, and ionospheric and tropospheric errors are simulated and filtering and quantization
are performed. The C/N0 for the signal of each satellite is simulated as a constant value
according that of the OEM4 receiver as shown in Table 5.3. Ionospheric and tropospheric
errors change a little (only tens of centimeters) during 80 seconds simulation and
different for each satellite. The simulated C/N0 and average ionospheric and tropospheric
errors are listed in Table 6.2. For the selected simulation time, the simulated signal
includes SV1, SV2, SV4, SV13, SV16, SV20, and SV25. Hereafter, the simulated signal
means it is generated with noise, filtering, 1-bit quantization, and ionospheric and
116
Table 6.2: Simulated C/N0 and ionospheric and tropospheric errors
PRN C/N0 (dB-Hz) Ionospheric error (m) Tropospheric error (m)
1 49.2 8.8 2.6
20 48.8 11.6 3.7
16 46.8 8.1 6.8
25 45.6 8.8 4.3
2 44.7 10.8 3.3
13 44.0 10.0 2.8
4 41.7 10.1 3.8
Because the signal was digitized, it is reduced to a 1 and -1 sequence and shows noise
behaviour in the time domain. However, some properties can be shown in the frequency
domain. The signal power spectrums of the real GPS signal and simulated signal are
(a) (b)
Figure 6.1: Power spectrum of the real and simulated IF GPS signal
117
The left-hand image in Figure 6.1 shows the power spectrum of the real IF GPS signal
collected by the Signal Tap, while the right-hand image shows that of the simulated
signal. It can be seen that the power spectrum of the real and simulated signals are of a
similar shape. However, the power spectrum amplitude of the simulated signal is a little
higher than that of the real signal. This is because of a range of external effects - such as
noise, interference, Signal Tap hardware implementation errors, as well as factors that are
presence in the real GPS signal but are not simulated by the simulator. This comparison
indicates that the simulated signal has essentially the same properties, but with a higher
demonstrated later.
The alignment of the incident signal and the replica code and carrier is based on the
correlation value of the two signals. The correct alignment is identified by the
measurement of the output of the correlators. The acquisition results of both the
simulated signal and the Signal Tap collected real signal are shown in the following
figures.
118
Figure 6.2 (a): Acquisition results of the real signal and simulated signal for SV1
Figure 6.2 (b): Acquisition results of the real signal and simulated signal for SV2
Figure 6.2 (c): Acquisition results of the real signal and simulated signal for SV4
119
Figure 6.2 (d): Acquisition results of the real signal and simulated signal for SV13
Figure 6.2 (e): Acquisition results of the real signal and simulated signal for SV16
Figure 6.2 (f): Acquisition results of the real signal and simulated signal for SV20
120
Figure 6.2 (g): Acquisition results of the real signal and simulated signal for SV25
The above acquisition results demonstrate that the simulated signal has the same acquired
Doppler as the Signal Tap collected signal. The noise floors of both signals are at the
same level, but the correlation values of the simulated signal are obviously larger than the
real signal for all satellites. The approximate correlation peak values are listed in Table
6.3.
In the above table, the correlation values of all acquired satellites are listed in descending
order, which corresponds to the order of the C/N0 values in Table 5.3. This demonstrates,
121
once again, that the simulated signal has a higher signal-to-noise ratio than the real signal,
but the relative signal power is identical to the real signal. Therefore, the simulated signal
Data bit demodulation is performed by a PLL. The IPS samples are simply accumulated
for the coherent integration time, with the sign of the result determining the data bits. The
change of the sign of the IPS integration value means that the phase of the data bit is
reversed by 180o. There are usually a number of integration values in one data bit interval
depending on the coherent integration time, which is 1 ms for the software receiver in this
thesis. Figure 6.3 shows the resulting data bits of the Signal Tap collected and simulated
Figure 6.3 (a): Data bits of the real signal and simulated signal for SV1
122
Figure 6.3 (b): Data bits of the real signal and simulated signal for SV2
Figure 6.3 (c): Data bits of the real signal and simulated signal for SV4
Figure 6.3 (d): Data bits of the real signal and simulated signal for SV13
123
Figure 6.3 (e): Data bits of the real signal and simulated signal for SV16
Figure 6.3 (f): Data bits of the real signal and simulated signal for SV20
Figure 6.3 (g): Data bits of the real signal and simulated signal for SV25
124
From above figures, it can be seen that, the amplitude of the data bits of the simulated
signal is higher than that of the real signal. It is to say the prompt coherent integration
value Ips of the simulated signal is higher. This is also because of the simulated signal has
a higher signal-to-noise ratio than that of the real signal. Another thing that can be
noticed is that the simulated signal has different data bits from the real signal; however,
the simulated data bits for all satellites are the same. This is because not all ephemeris
data are added in this batch of simulated navigation data although the simulator has the
ability to do so. Only the data bits such as the preamble, sub-frame ID, Z count, and
parity check, which greatly affect the tracking and pseudorange derivation, are available
in the above figures. Therefore, the data bits in the left-hand images are different from
The C/N0 estimated by the software receiver are shown in Figure 6.4.
0 0
0
Figure 6.4 (a): C/N0 of the real signal and simulated signal for SV1
125
0 0
0
0
Figure 6.4 (b): C/N0 of the real signal and simulated signal for SV2
0 0
0
Figure 6.4 (c): C/N0 of the real signal and simulated signal for SV4
0 0
0
0
Figure 6.4 (d): C/N0 of the real signal and simulated signal for SV13
126
0 0
0
0
Figure 6.4 (e): C/N0 of the real signal and simulated signal for SV16
0 0
0
0
Figure 6.4 (f): C/N0 of the real signal and simulated signal for SV20
0 0
0
Figure 6.4 (g): C/N0 of the real signal and simulated signal for SV25
127
It can be seen that the estimated C/N0 of the simulated signal is 1 to 2 dB higher than that
of the real signal. This confirms the results shown in Figure 6.1, 6.2, and 6.3. As
described in Chapter 3, the signal power is computed by Equation 3.19, which is the
function of the input parameters C/N0 and noise density. In the simulation, the C/N0 is set
to a constant value according the OEM4 receiver estimated value for each satellite and
the noise density is arbitrarily selected as -203 dBW/Hz. However, both the signal power
and noise density for the real signal are not known. The simulated signal power may be
close to the real value, may not exactly copy it. Therefore, the input parameters C/N0 and
noise density are main reasons of the simulated signal has a higher signal-to-noise ratio
and better performance than the real signal. This will also be shown in the following
results.
The lock detector is a parameter that indicates the tracking status of the tracking loop.
The receiver can make some status changes according its value. If the lock detector value
is lower than the threshold, it means that the tracking loop has lost lock. The receiver
will, consequently, change the loop bandwidth, or even return to acquisition mode. This
function has not been developed in the software receiver as of yet, and is an excellent
candidate for development as a future recommendation. The DLL detectors for all seven
128
Tracking threshold Tracking threshold
Figure 6.5 (a): DLL lock detector of the real signal and simulated signal for SV1
Figure 6.5 (b): DLL lock detector of the real signal and simulated signal for SV2
Figure 6.5 (c): DLL lock detector of the real signal and simulated signal for SV4
129
Tracking threshold Tracking threshold
Figure 6.5 (d): DLL lock detector of the real signal and simulated signal for SV13
Figure 6.5 (e): DLL lock detector of the real signal and simulated signal for SV16
Figure 6.5 (f): DLL lock detector of the real signal and simulated signal for SV20
130
Tracking threshold Tracking threshold
Figure 6.5 (g): DLL lock detector of the real signal and simulated signal for SV25
If the DLL detector threshold is set at a desired minimum C/N0, say 26 dB-Hz, the
threshold value is 6. If the lock detector is lower than 6, the loop has lost lock. Figure 6.5
indicates that the delay lock loop of both the real and simulated signals maintain tracking.
But the loop detector value of the real signal is slightly lower and undergoes more
variation than that of the simulated signal. This is because the simulated signal has higher
C/N0 that that of the real signal as shown in Figure 6.4. The delay lock loop detector is
tightly related to the estimation of C/N0. The same measurement is used to estimate the
delay lock loop detector and C/N0 as shown in Equation 4.29 and 4.30. If the C/N0
6.5.4 Doppler
The Doppler is a very important feature of the signal which demonstrates the dynamic
condition of the user platform. Specifically, it is the carrier phase change rate that gives
us this information. The Doppler of all satellites are given in Figure 6.6.
131
Figure 6.6 (a): Doppler of the real signal and simulated signal for SV1
Figure 6.6 (b): Doppler of the real signal and simulated signal for SV2
Figure 6.6 (c): Doppler of the real signal and simulated signal for SV4
132
Figure 6.6 (d): Doppler of the real signal and simulated signal for SV13
Figure 6.6 (e): Doppler of the real signal and simulated signal for SV16
Figure 6.6 (f): Doppler of the real signal and simulated signal for SV20
133
Figure 6.6 (g): Doppler of the real signal and simulated signal for SV25
It can be seen clearly that the resultant Doppler of the real signal and the simulated signal
show similar values and same trends over time; however, the former shows more
variability. The significant aspect of these comparisons is that the Doppler for the real
signal, from the beginning to around 23 s, has a slightly different changing trend than
later on. This occurs for each satellite studied, and may be the result of frequency drift of
6.5.5 Pseudoranges
The pseudorange is the most important measurement for obtaining navigation solution.
Errors in the pseudorange will definitely result in the errors of the computed receiver
positions. The following figures show the pseudoranges of all satellites, as derived by the
134
Figure 6.7 (a): Doppler of the real signal and simulated signal for SV1
Figure 6.7 (b): Doppler of the real signal and simulated signal for SV2
Figure 6.7 (c): Doppler of the real signal and simulated signal for SV4
135
Figure 6.7 (d): Doppler of the real signal and simulated signal for SV13
Figure 6.7 (e): Doppler of the real signal and simulated signal for SV16
Figure 6.7 (f): Doppler of the real signal and simulated signal for SV20
136
Figure 6.7 (g): Doppler of the real signal and simulated signal for SV25
No obvious differences can be observed between the pseudoranges of the simulated and
real signals due to the comparatively coarser scale of the y-axis. But the pseudorange
changing trend indicates that the pseudorange is decreasing or increasing with satellite
motion. The changing trend is identical to the sign of the satellite Doppler. If the satellite
is moving in a direction toward the receiver, the Doppler is positive and the pseudorange
To see clearly the difference between the pseudoranges of the simulated signal and those
of the Signal Tap collected signal, one method is to compare them both to the true range
between the satellite and the receiver. However, since it is not possible to know this
range between the satellite and receiver and the satellite clock error computed by the
satellite clock correction parameters which are provided in the down-loaded ephemeris, is
taken as a reference. The resultant pseudoranges of both the real and simulated signals
are then compared with it. Figure 6.8 shows such pseudorange differences for all
137
satellites which are obtained by subtracting the simulated theoretical pseudoranges from
(a) (b)
Figure 6.8 Pseudorange differences of the real signal and simulated signal
The values shown in the above figure demonstrate that the real and simulated signal have
different pseudorange differences. There are mainly four factors which contribute to this
result. Firstly, the simulated ionospheric and tropospheric errors are not exact simulations
of the real ones. Secondly, the multipath signals present in the real signal are not
simulated. Thirdly, the receiver clock offsets estimated by the software receiver as one of
the navigation solution parameters are different. The software receiver makes adjustment
according this receiver clock offset to the output pseudoranges for each computation
epoch. This definitely results in the different pseudoranges of the real and simulated
signals. Finally, not all errors present in the real signal are included in the simulated
signal. The figure 6.8 also shows the standard deviation of the pseudorange differences of
the simulated signal is much smaller than that of the real signal. This is because the
simulated signal has higher signal-to-noise ratio and therefore less noisy. In addition, the
138
pseudorange difference for each satellite is also different. This is because the errors, such
as ionospheric and tropospheric errors, are different for each satellite and it will result in
The navigation solutions for both the real and simulated GPS signals processed by
139
Comparing the above two figures, the navigation solutions of both the real and simulated
signals have a horizontal positioning accuracy better than 5 metres. The result of the
simulated signal is even better. The average receiver position derived by the simulated
signal is closer than that derived by the real signal and the standard deviation and RMS of
the receiver position in Figure 6.10 for the simulated signal are also smaller than the
results in Figure 6.9 for the real signal. This indirectly illustrates the impacts of the
simulated errors and signal-to-noise ratios. A small position bias can be observed for the
solutions of both the real and simulated signals, which results from different pseudorange
errors, such as ionopheric and tropospheric errors, for different satellites. And the bias is
different for the real and simulated signals. This is because the simulated ionospheric and
tropospheric errors are different from the real ones and some interference factors and
multipath signal which are presence in the real signal are not included in the simulated
signal. The higher signal-to-noise ratio of the simulated signal makes the smaller standard
The result for the simulated signal shown in Figure 6.10 is computed with only
pseudorange measurements. To check the validity of the carrier phase of the simulated
signal, the carrier smooth method is used in C3NAVG2 TM to calculate the navigation
140
Figure 6.11: Carrier smoothed navigation solution of the simulated GPS signal
Result shown in figure 6.11 shows a significant positioning accuracy improvement. The
standard deviation is greatly decreased but the mean value maintains the same as before,
which is the typical carrier smoothing behaviour. This verifies the correctness of the
Based on the above analysis, the simulated signal is confirmed to be able to produce
correct navigation solution and to have similar properties to the real signal in the position
domain.
As described before, the simulated signal is generated by adding noise, and ionospheric
and tropospheric errors to the original signal and performing filtering, quantization. All
these components can be chosen separately in the simulation. In this section, some results
for seven different simulation cases are given to show the effects of the simulation
141
(a) Simulated signal without noise with 1-bit quantization, receiver trajectory
mode 0;
(b) Simulated signal with noise, filtering, and 1-bit quantization, receiver
trajectory mode 0;
(c) Simulated signal with noise, filtering, and 2-bit quantization, receiver
trajectory mode 0;
(d) Simulated signal with noise, ionospheric error, filtering, and 1-bit
(e) Simulated signal with noise, ionospheric error, tropospheric error, filtering,
(f) Simulated signal with noise, filtering, and 1-bit quantization, receiver
trajectory mode 1;
(g) Simulated signal with noise, filtering, and 1-bit quantization, receiver
trajectory mode 2.
For the simulated signal, the theoretical pseudorange, Doppler, and real position are
known, which will be used as the references to compare with the results derived from
different simulation cases by subtracting these theoretical values from the derived ones.
The navigation solution, pseudorange difference, and Doppler difference for all
142
1-bit quantization 1-bit quantization
Figure 6.12: Navigation solution of the simulated GPS signal with 1-bit quantization
Figure 6.13: Pseudorange and Doppler differences of the simulated GPS signal
with 1-bit quantization
Case (a) is a simplest simulation case with only 1-bit quantization applied and no
simulated noise. The position RMS 0.5 m can be observed in Figure 6.12. The
pseudorange and Doppler difference results are shown in Figure 6.13. The pseudorange
difference for each satellite is tens of centimetres and the Doppler difference is several
centimetres per second (0.01 m/s corresponding to 0.05 Hz). These errors actually
include the effects of both 1-bit quantization and the tracking error of the software
receiver.
143
Noise Noise
Filtering Filtering
1-bit quantization 1-bit quantization
Noise Noise
Filtering Filtering
1-bit quantization 1-bit quantization
Figure 6.15: Pseudorange and Doppler differences of the simulated GPS signal
with noise, filtering and 1-bit quantization
Figure 6.14 and 6.15 show the results for the case (b). The noise is added and the filtering
is performed comparing to the case (a). It can be seen that the RMS of the horizontal
position is greatly increased from 0.5 m to 1.9 m and standard deviation from 0.4 m to
1.9 m. The standard deviation of the pseudorange difference and Doppler difference are
increased as well. These changes demonstrate the effects of the noise and filtering. The
presence of the noise definitely reduces the signal-to-noise ratio relating to the case (a)
and causes larger tracking error and tracking error variation. Filtering limits out of band
144
noise in one hand, but filters out a part of signal power of the side lobes in the other hand.
However, ninety percent C/A code signal power is in the 2 MHz main lobe (Raquet,
2001). Therefore the application of 2 MHz filtering in this simulation limits the noise but
Noise Noise
Filtering Filtering
2-bit quantization 2-bit quantization
Noise Noise
Filtering Filtering
2-bit quantization 2-bit quantization
Figure 6.17: Pseudorange and Doppler differences of the simulated GPS signal
with noise, filtering and 2-bit quantization
To check the effect of 2-bit quantization, a simulated signal with noise, filtering, and 2-
bit quantization is generated in case (c), the results of which are shown in Figure 6.16 and
145
6.17. Comparing with case (b), the standard deviation of position, pseudorange difference
and Doppler difference are all reduced. This demonstrates the 2-bit quantization causes
Noise Noise
Filtering Filtering
1-bit quantization 1-bit quantization
Ionospheric error Ionospheric error
Noise Noise
Filtering Filtering
1-bit quantization 1-bit quantization
Ionospheric error Ionospheric error
Figure 6.19: Pseudorange and Doppler differences of the simulated GPS signal
with noise, filtering, 1-bit quantization, and ionospheric error
For the case (d), the ionospheric error is added in addition to noise, filtering, and 1-bit
quantization. A position bias can be clearly seen in Figure 6.18. This is because the
different pseudorange variations of the different satellites which are resulted by different
146
simulated ionospheric errors are applied for the different satellites. Theoretically, the
pseudorange differences as shown in Figure 6.19 should be the summation of the values
in Figure 6.15 and the simulated ionospheric errors. But it is not true. This is because the
software receiver conducts adjustment to the output pseudorange according the computed
common receiver clock offset of all satellites for each computation epoch. Therefore, an
offset value should be taken into account to check the validity of the pseudorange
differences. So, the pseudorange differences for the simulated signal with ionospheric
errors as shown in Figure 6.19 should be the summation of the values for the simulated
signal without ionospheric errors as shown in Figure 6.15, the simulated ionospheric
errors, and a common offset value. But the common offset value is not known. In Table
6.4, it is computed for each satellite according other three known values. It can be seen
that the common offset value is almost the same for all satellites. This demonstrates the
relationship described above stands and the results shown in case (d) are correct.
147
The results of case (e) have already shown in Figure 6.10. Comparing to case (d), the
only difference of the two cases is that the tropospheric error is simulated in the case (e).
However, the height biases for the two cases differ by 6.3 m. This difference is resulted
derive the result of case (e). When the tropospheric error model is applied, this bias is
Figure 6.20: Navigation solution of the simulated GPS signal with tropospheric
error model applied in C3NAVG2 TM
So far, all results and analysis are for the static receiver trajectory mode 0. The following
figures show the navigation solutions, pseudorange differences, and Doppler differences
for the receiver trajectory mode 1 and 2. Figure 6.21 and 6.22 are the results of the
simulated signal with noise, filtering, 1-bit quantization, ionospheric and tropospheric
errors for the receiver trajectory mode 1 and Figure 6.23 and 6.24 are for the receiver
trajectory mode 2.
148
Figure 6.21: Navigation solution of the simulated GPS signal
(receiver trajectory mode 1)
Figure 6.22: Pseudorange and Doppler differences of the simulated GPS signal
(receiver trajectory mode 1)
149
Figure 6.23: Navigation solution of the simulated GPS signal
(receiver trajectory mode 2)
Figure 6.24: Pseudorange and Doppler differences of the simulated GPS signal
(receiver trajectory mode 2)
It can be seen that the navigation solutions for both receiver trajectory mode 1 and mode
2 follow the simulated trajectory. The RMS of the positions, mean values, and standard
deviations are in the same level as the results for receiver trajectory mode 0 shown in
Figure 6.8 (b) and 6.10. This demonstrates the validity of the simulation for trajectory
150
CHAPTER 7
7.1 Conclusions
A GPS signal simulator has been developed and verified in this thesis. The simulator is
time, receiver trajectory, and other parameters such as the selected intermediate
frequency, sampling frequency, filtering bandwidth, C/N0, and noise density are the
required inputs that drive the simulator. Both filtering and quantization processing steps
were implemented. The satellite clock error, ionospheric and tropospheric errors were
simulated, with the simulator outputting a quantized bit stream. All of the above
definition file. The size of the computation burden was also optimized, by developing
code to accelerate the simulator running speed. The simulator currently requires 100
151
The simulator has been verified by comparing the simulated signal and the Signal Tap
observed signal in the time, frequency, measurement, and position domains. Acquisition
and tracking results were also compared to prove the correctness of the simulator. It was
evident from this comparison that the simulated IF GPS signal has the same properties as
those of the hardware front-end collected real IF GPS signal in all respects. Therefore,
this confirmed that the simulator-generated signal can accurately duplicate the true signal.
Further, it demonstrates that the simulator itself can act as an effective and versatile tool
for GPS receiver studies since it is easily adapted to generate not only the GPS signals
that have already been implemented but also the signals that will be implemented in the
A software GPS receiver was also developed and verified in this thesis. It is a multi-
several functional blocks: acquisition, code and carrier phase tracking, bit
receiver is driven by the digitized IF GPS signal. An inner clock based on the incoming
IF GPS signal samples is generated as the time reference because no physical clock is
available in the software receiver as in existing hardware receivers. The navigation data
bits, from which the satellite ephemeris can be acquired, are demodulated in the phase
lock loop. The pseudorange and carrier phase measurements can be derived from the
tracking loop with the help of bit synchronization and sub-frame synchronization.
Finally, receiver positions in the WGS84 system are output from the software receiver.
152
The software receiver has been verified by testing against real GPS signals. The real GPS
signal collected via the Signal Tap was fed to the receiver. Various tracking results,
carrier phase and pseudorange measurements, and position solution were logged to verify
the receiver correctness. For example, the Doppler derived from signal acquisition and
signal tracking indicates that it can track the carrier correctly; the resulting navigation
solutions demonstrate that the receiver can obtain satisfactory pseudorange measurements
and provide an accurate receiver position solution. From these test results, it can be safely
concluded that the software receiver operates properly and can be used for the simulated
that have been described in this thesis, the following items are recommended for further
study:
[1] A receiver clock error model should be simulated. It is one of the major error sources
153
[2] Multipath should be simulated. In an actual positioning environment, the received
signal is the combination of direct and multipath signals. Strong multipath signals will
deform the autocorrelation function and mislead the delay lock loop to track the wrong
[3] The simulator in this thesis is based on the L1 C/A code signal. It thus constitutes
only a basic application of signal simulation. New signals, such as the L5 signal and even
method such as this one allows a great degree of flexibility in interference spectrum
analysis.
[5] Realizing the simulator using C++ would further enhance its efficiency, due to C++’s
The software GPS receiver used in the simulated signal verification is only a basic
version because it fulfilled only the core part of a conventional receiver, such as signal
further improve receiver performance, the following tasks should be conducted in the
future:
154
[1] Improve the tracking accuracy. The parameters of the FLL, PLL, and DLL should be
adjusted based on automatic control and phase lock loop theory to decrease the tracking
loop errors. The parameters should be changed adaptively with respect to the receiver
status, enhancing its capability to handle either low or high dynamics, and to
[2] Apply external aiding to the receiver to remove large dynamics or other major error
environments.
[4] Upgrade the receiver to a full GNSS receiver which can process not only the GPS
C/A signal but also GPS L2, GPS L5, and Galileo signals.
155
REFERENCES
Axelrad, P., R. G. Brown (1996), Global Positioning System: Theory and Applications,
Brown, A., N. Gerein, and K. Taylor (2000), Modeling and simulation of GPS Using
Burns, J. R., C. Cutright, and M. Braasch (2002) Investigation of GPS Software Radio
Black, H. D., A. Eisner (1984), Correcting Satellite Doppler Data for Tropospheric
156
Corbell, P. M., M. M. Miller (2000) Design and Analysis of a Matlab Based Digitized IF
GPS Signal Simulator and A Simulink Based Configurable GPS Receiver, Proceedings of
Corbell, P. M. (2000) Design and Validation of an Accurate GPS Signal And Receiver
Truth Model For Comparing Advanced Receiver Processing Techniques, Thesis for
Component Simulator in Matlab, Proceedings of ION NTM, Long Beach, CA, pp. 205-
215.
FAA (1997), Specification for the Wide Area Augmentation System, FAA-E-2892C.
Goldhirsh, J., W. J. Vogel (1989), Mobile Satellite System Fade Statistics for Shadowing
and Multipath from Roadside Trace at UHF and L-Band, IEEE Transactions on
157
Hopfield, H. S. (1969), Two-Quartic Tropospheric Refractivity Profile for Correcting
Satellite Data, Journal of Geophysical Research, Vol. 74, No. 18: 4487-4499.
House, Inc.
about the Details, ION GPS 2001,11-14 September, 2001, Salt Lake City, UT.
Lin, D.M., Tsui, J. (2000), Comparison of acquisition methods for software GPS
receiver, Proceeding of ION GPS 2000, 19-22 September, 2000, Salt Lake City, UT, pp.
2385-2389.
Luo, N. (2001), Precise Relative Positioning of Multiple Moving Platforms Using GPS
Carrier Phase Observables, Ph.D. thesis, UCGE reports 20147, the University of
Calgary.
Frequency GPS Signal and Receiver Software Models for Developing and Comparing
Advanced GPS Receiver Technologies, Proceedings of ION GPS, Salt Lake City, UT, pp.
2362-2371.
158
Maybeck, P. S. (1994), Stochastic Models, Estimation and Control, I. New York:
Capabilities, ION GPS 2000 Meeting, Salt Lake City UT, 19-22 Sep 2000
Misra, P. and P. Enge (2001) Global Positioning System - Signals, Measurements, and
Parkinson, B.W. (1996), Global Positioning System: Theory and Applications, Volume I,
Chapter 11: GPS Error Analysis, Stanford University, Stanford, California 94305. Inc.:
469-483.
Raquet, J. F. (2001), ENGO 699.64 Lecture Note: GPS Receiver Design, Department of
Ray, J. K. (2000), Mitigation of GPS Code and Carrier Phase Multipath Effects using a
Multi-Antenna System, Ph.D. thesis, UCGE Report No. 20136, February 2000.
159
RTCA (1998), Minimum Operational Performance Standards for Global Positioning
Washington, DC.
Schaer, S. (1997), How to Use CODE’s Global Ionosphere Maps, Astronomical Institute,
University of Berne.
Seitz, A. C., and M. S. Braasch (1998), High Fidelity GPS Receiver Simulation, ION
Proceedings of the 54th Annual Meeting, The Institute of Navigation, Colorado, pp. 573-
581.
Spilker Jr., J.J. (1996a), Global Positioning System: Theory and Applications, Volume I,
Spilker Jr., J.J. (1996b), Global Positioning System: Theory and Applications, Volume I,
Chapter 4: GPS Navigation DATA, Stanford Telecom, Sunnyvale, California 94089. Inc.:
121-176.
Spilker Jr., J.J. (1996c), Global Positioning System: Theory and Applications, Volume I,
160
Van Dierendonck, A.J. (1996), Global Positioning System: Theory and Applications,
Volume I, Chapter 8: GPS Receivers, AJ Systems, Los Altos, CA 94024. Inc.: 329-407.
Van Vee, R.D.J., Coenen. A.J.R.M. (1991), New Fast GPS Code-Acquisition Technique
161