Journal of Global Positioning Systems (2005)
Vol. 4, No. 1-2: 215-222
Evaluation of the pseudorange performance by using software GPS
receiver
Shun-Ichiro Kondo, N ob uaki Kubo a n d Akio Yasuda
2-1-6 Etchujim a Koto-ku Tokyo Japan
e-mail: shun@denshi.e.kaiyodai.ac.jp Tel: +81-3-5245-7376,Fax:+81-3-5245-7376
Received: 15 November 2004 / Accepted: 12 July 2005
Abstract. An algorithm is developed to process IF signal
data from a GPS RF front-end module, which consists of
a down converter and an ADC. The down converter
converts the signal from RF to IF, the ADC samples the
IF signal. All the other processing including signal
acquisition, tracking, data decoding and solving position
are implemented in software using base-band signal
processing techniques. The local C/A codes and carrier
replica signal are pre-generated, stored in memory, and
used respectively during signal acquisition and tracking.
In order to evaluate the algorithm, this paper
demonstrates standalone positioning using the measured
pseudoranges of which accuracy depends on DLL
parameter of the correlator of early/late spacing. This
paper presents the explanation and evaluation of the
algorithm.
Key words: Software GPS receiver, signal acquisition,
signal tracking, accuracy of pseudorange
1 Introduction
In a conventional GPS receiver, a GPS signal acquisition
and tracking channel is made up of both hardware and
software (Misra and Enge, 2001). Typical hardware
components include mixers, correlators, NCO, and code
generator for a code tracking loop or sine/cosine tables
for a carrier lock loop. Software equips discriminators,
tracking loop filters, navigation data bit/frame sync and
ephemeris demodulator, and implements various reading
from and writing to uniquely addressed registers. The
software GPS receiver has advantage of flexibility over
such conventional receivers.
In the software GPS receiver, down-converter converts
the signal from RF to IF, ADC samples the IF signal, and
all the other processing are implemented in software.
Thus the accuracy and function are controllable according
to the algorithms and parameters. The signal quality
and/or multipath effect can be estimated from the
correlation values of the programmable code tracking
Loop (Pany, Eissfeller and Winkel, 2003).
The algorithm is developed on MATLAB to investigate
the effect of GPS signal processing parameters on
positioning in the present paper. The algorithm itself is
also evaluated.
2 Software GPS receiver
The feature of the software GPS receiver is to use an
analog-to-digital converter (ADC) which converts the
input signal into digital data at the earliest possible stage
in the receiver (Tsui, 2000). Fig.1 illustrates a general
structure of software GPS receiver (Pany, Moon, Irsigler,
Eissfeller, and Furlinger, 2003). The signals transmitted
from the GPS satellites are received at the antenna.
Through a down converter, the input signal is amplified
to a proper amplitude and the frequency is converted to a
desired output frequency. An ADC is used to digitize the
input signal. Acquisition means to find the signal of a
certain satellite. The tracking program tracks the code
phase and the carrier p hase, and find s the phase tran sition
of the navigation data. The code phase is used to obtain
the pseudorange. The navigation data can be obtained
from the phase transition of the data. Ephemeris data can
be obtained from the navigation and are used to obtain
the satellite position. Finally, the user position, velocity,
and time can be deduced.
The prototype software receiver developed in this paper
is comprised of RF front-end module and signal
processing program on MATLAB.
216 Journal of Global Positioning Systems
GPS
antenna
RF
Front-end ADC
preprocessing: down sampling ,amplitude and
bias control
tracking acquisition
Data decoding,pseudrange measurements
applictoion processing(PVT solution)
Software
Hardware
application processing(PVT solution)
Data decoding,pseudorange measurements
Software
Hardware
tracking acquisition
Preprocessing :down sampling ,
amplitude and bias control
hard disk
GPS antennadown conveterADC
Fig.1 General str ucture of software GPS receiver
3 GPS RF fro nt- end module
GPS Signal Tap (manufactured by Accord Software and
System Private Limited) is used as a GPS L1 RF front-
end. Table.1 summarizes the characteristics of the GPS
Signal Tap. The L1 GPS signal is down converted to the
intermediate frequency of 15.42MHz in two stages of a
down converter. The IF is sampled by the ADC at a
frequency of user’s choice, which can be selected from
2MHz to 20MHz in the GUI application. The ADC
output is stored once in the on-board SDRAM of the
Signal Buffer and transferred to host PC via USB for post
processing. Since the capacity for the Signal Buffer is
limited to 64MB, the data duration depends on the
sampling frequency. Fig. 2 shows the picture of the GPS
Signal tap.
Table.1 Characteristics of the GPS Signal Tap
Fig.2 Picture of th e GPS Signal Tap
4 Acquisition
Acquisition is comprised of a two-dimensional search
process that determines a coarse Doppler offset of the
carrier and the beginning point of the C/A code.
Conventional GPS receivers generally use a serial search
method for acquisition (Kaplan, 1996). The present
method searches correlation peak by multiplying the code
with delay within 1023chips with frequency shifted
carrier signal within 10
±
kHz Doppler band in coarse
increments of delay and shift. It requires a large
processing time to search the correct Doppler and code
shift. To expedite the process, parallel search methods
have been suggested. Here, algorithms based on fast
Fourier transform (FFT) and inverted FFT (IFFT)
techniques are used to search a maximum correlation
power of signals between the locally generated
code/carrier signal and the input IF signal. A circular
convolution method is utilized for efficient
implementation. In this section, two different acquisition
methods, conventional approach and FFT approach, will
be described .
The conventional app roach performs signal acq uisition in
time domain. A non-coherent correlator in time domain,
shown in Fig. 3, is used since the phase of received signal
is random (Johanson, Mollaei, Thor and Uusitalo, 1998).
The correlation is approximated by the discrete sum.
[][][ ]
[][][ ]
2
(1) 1
1
2
0
2
(1)
1
0
[] cos
sin ,
jNL
K
jnjNL
jNL
K
jnjNL
RmxnCAnm n
xn CAnmn
+−
==
+
==
⎛⎞
⎜⎟
=⋅+⋅Ω
⎜⎟
⎜⎟
⎝⎠
⎛⎞
⎡⎤
⎜⎟
+⋅+⋅Ω
⎢⎥
⎜⎟
⎢⎥
⎜⎟
⎣⎦
⎝⎠
∑∑
∑∑
(1)
where
is the radian frequency of the IF signal. The
digital IF, ][nx is multiplied first by the replicated C/A
code, ][ mnCA
+
. Here nrepresents the th
n sample and
mrepresents the number of phase shifted samples of the
replicated C/A code. L is the sample length of one C/A
code period. n and m are the numbers of 0 to 1
L.
K
is the non-coherent integration time. After the code
Frequency GPS L1 at 1.57542GHz
GPS code C/A
IF 15.42MHz
Sampling rate From 2MHz to 20MHz in an
increment of 1kHz
Signal gain
(Second IF stage) 120dB
Band Width
(Second IF stage) 8MHz
Kondo et al.: Evaluation of the pseudorange performance by using software GPS receiver 217
removal, the in-phase(I) and quadrature-phase(Q)
components are generated. The I and Q components are
accumulated for one or more code periods, N. The
accumulated sum is squared. Next,
K
correlations are
accumulated to produce an averaged correlation point. If
the correlation peak is lager than a certain threshold, it is
assumed that the satellite is acquired.
−+
=
1)1( NLj
jNLn
−+
=
1)1( NLj
jNLn
()
2
()
2
=
1
0
K
j
[
]
mR2
]cos[ n
]sin[ n
][ mnCA +
][nx
Digital IF
Fig.3 Non-coherent correlator in time domains
The conventional approach can also be preformed in
circular convolution. The received data are correlated
with the replica code by a circularly shifting the replica
code. This may be expressed as (Johan son , Mollaei, Thor ,
and Uusitalo, 1998)
[] []
1
0
[]( )
L
L
n
RmxnCA nm
=
=⊗+
(2)
The FFT approach performs circular convolution in the
frequency domain. The discrete Fourier transform (DFT)
and its inverse is used to calculate][mR :
[][ ]
[]
()
[]
()
()
1
0
*
1
[]
,
L
n
mxnCAmn
FFxnFCAn
=
=⊗+
=⋅
(3)
where
F
and 1
F
denote FFT and inverse FFT. A non-
coherent correlator in frequency domain can be adapted
to acquisition of GPS signals as shown in Fig.4
(Johanson, Mollaei, Thor and Uusitalo, 1998). Here the
input signal is mixed to base band and the I and Q
components are used as the real and imaginary inputs
when calculating the DFT. The result is multiplied by the
complex conjugate of DFT of the C/A code. The circular
convolution is obtained by taking the magnitude of
inverse DFT. The fast Fourier transform algorithm is
used to implement the DFT and inverse DFT; hence this
acquisition method may be called FFT approach.
FFT
FFT
IFFT
2
=
1
0
K
j
][nCA
][nx ]cos[ n
]sin[ n
][
2mR
Digital IF
Fig.4 Non-coherent correlator in frequency domain
Fig. 5, 6, and 7 show the results of acquisition using FFT
approach (IF: 4.5MHz, sampling frequency: 20MHz,
non-coherent integration time: 10ms). Fig.5 shows the
correlation matrix for SV3. After the circular correlation,
the beginning of the C/A code of SV3 is found to be
18236 in Fig. 6. The correlation power at n = 18236, for
21 frequency components of SV 3 every 1 kHz, centered
at 4.58MHz, is shown in Fig. 7. The highest component
at 4.575MHz corresponds to real frequency of the IF
signal.
Fig.5 Correlation matrix for SV3
Fig.6 Beginning of C/A code o f SV 3
218 Journal of Global Positioning Systems
Fig.7 Frequency component of SV3
5 Tracking
Once the signal is acquired, it must be tracked to obtain
the navigation data. The tracking program uses two
parameters obtained from the acquisition process: the
beginning point of C/A code and Doppler offset of
carrier. Two loops are needed to track one GPS satellite
signal. One loop is often referred to as code loop, which
tracks the C/A code. The other one is the carrier loop,
which tracks the carrier frequency of the down-converted
input signal. These two loops must be coupled together as
shown in Fig. 8 (Ts ui , 20 0 0).
The code loop uses three locally generated C/A code to
track the C/A code of the input signal. The three locally
generated codes are usually used: a prompt, an early and
a late replica. The early and the late replica codes are
shifted a few samples in early and delay directions,
respectively. The prompt code is applied to the digitized
input signal and strips the C/A code from the input signal.
The output will be a continuous wave (cw) signal with
phase transition caused only by the navigation data. The
regenerated carrier signal in the carrier loop is applied to
the digitized input signal to strip the carrier from the
signal. The output is a signal with only a C/A code and
no carrier frequency, which is introduced to the code
loop.
5.1 Code trac ki ng
The code loop is known as a delay lock loop (DLL)
(Misra and Enge, 2001). The prompt code is to be
matched to the beginning of the C/A code in the input
signal. The correlation outputs from three codes can be
used to determine accurately the beginning of the C/A
code in the input signal. This information is used to
adjust the initial phase of locally generated prompt code
to match the code phase of input signal better. Fig.9
shows the correlation between input C/A code and local
replica C/A one. Fig.10 shows the example of the
averaged correlation of the SV25 signal for 200ms.
The discriminator algorithm is used to calculate the code
phase error. The discriminator outputs signal
r
is given
as,
l
e
y
ry
= (4)
where l
yand e
yare the correlation powers associated
with the late code and early code, respectively. The time
distance
x
from the peak of the correlation powers can
be written as
(1 )(1)
(1 )
rd
xr
=+ (5)
where dis the time distance from prompt code to early
or late code. If the correlator spacing is 1 chip (~20
samples at the sampling frequency of 20.0MHz), then
dis given by 0.51151(10×50/977.5ns). The ratio
r
is
corresponds to the degree to which the beginning point of
the C/A code is shifted, the sampling interval is 50ns
(1/20.0MHz) and the one chip duration is 977.5ns
(1/1.023MHz). If the maximum misalignment occurs
within a sampling interval, then
x
has a value within the
range of ±0.026chip (=25/977.5). If
x
is greater than
0.026 chips, then the local codes should be shifted to the
left. Or, if
x
is smaller than –0.026 chips, then the local
codes should be shifted to the right. The logic for the
code shift is based on the value of
x
, and can be
expressed as follows:
If x < -0.026chip
The local codes is shifted to the right
Else if x > 0.026chip
The local codes is shifted to the left
Else
The local codes isn’t shifted
End
Once
x
is calculated using Eq. (5), the code phase
deduced from
x
is used to determine the pseudorange.
The accuracy of the code phase has a direct effect on
positioning accuracy. The measurement noise can be
significantly reduced by a simple averaging. In this paper,
r
is averaged over 10 ms for the noise reduction.
Kondo et al.: Evaluation of the pseudorange performance by using software GPS receiver 219
5.2 Carrier t racking
After code tracking loop determines code phase, the
carrier tracking loop is used to demodulate navigation
data from the IF input signal. The loop filter of the carrier
loop can be designed in the form of Phase Lock Loop
(PLL) or Frequency Lock Loop (FLL). PLL tracks the
phase error between two carrier signals and FLL tracks
frequency errors. Generally, PLL provides a higher
tracking performance than FLL, but is more sensitive to
noise and dynamics. On the other hand, FLL is less
sensitive to dynamics but results in lower accuracy in
general. In this paper, PLL based algorithm is
implemented for fine carrier tracking.
The loop filter ( Tsui, 2000, Tsui, Stockmaster and Akos,
1997) is given by
1
12 1
1
()
() 1
CC Cz
Fz z
+−
= (6)
where
12
8
[44()]
ns
ns ns
t
CKtt
ς
ϖ
ςϖ ςϖ
=⋅+ + (7)
2
22
4( )
[44() ]
ns
ns ns
t
CKtt
ςϖ
ςϖ ςϖ
=⋅++ (8)
K:loop gain (400π)
ζ
:damping factor(0.707)
n
ϖ
:natural frequency(37.7143)
s
t:sampling interval(3
1)
By substituting the values for the parameters, the
implemented discrete loop filter is given by
1
1
0.000209 0.000184
() 1
z
Fz z
= (9)
In this paper, atan2() function is used for the
discriminator function. Fig.11 shows tracking outputs.
The amplitude changes temporally according to
navigation data bits. After carrier tracking is completed,
the navigation data are extracted from the in-phase
signals. It is expressed in phase difference
π
, which is
transformed into the naviga tion data as ±1 values.
ADC
osc loop
filter
90
°
e/d
select
L/E
CODE LOOP
CARRIER LOOP
prompt
CW
C/A
carrier
frequency
output
late
early
arctan
Fig.8 Code and carrier tracking loops
Fig.9 Correlation between the input and the replica C/A signals
Fig.10 Correlation of SV25 averagi ng for 200 ms
220 Journal of Global Positioning Systems
Fig.11 Tracking outputs of SV25
6. Sub fram e m at ching and pseudorange
measurements
After the tracking results are converted into navigation
data, the next step is to find the subframes (Tsui, 2000)
in these data. A subframe will start with the preamble of a
pattern (10001011) in the first word. The second word is
HOW (the hand of word); bits 1-17 are TOW (time of
week) and bits 20-22 are the subframe ID. However, the
polarities of the words in a fra me may change. Therefor e,
one should perform correlation on only one word at a
time. The code to match the preamble can be written as (1
–1 –1 –1 1 –1 1 1). Since the polarity of the word is not
known, the matched results can be ±8. One can repeat
this method to find, 300data points (1 subframe) later
there should be another preamble match. If a match is not
found, the first match is not a preamble. One can be
repeat this method to find the beginning of several
subframes.
The pseudorange measurements are performed after
obtaining the beginning of the subframes. However, in
collecting the digitized data, there is no absolute time
reference and the only time reference is the sampling
frequency. In other word, the time of the reception can’t
be obtained. As a result, the pseudorange can be
measured only in a relative way (Tsui, 2000) as shown in
Fig. 12. In this figure, the points represent individual
input digitized data (beginning of the C/A code obtained
from tracking program). The relative pseudorange is the
distance (or time) between two reference points. The
beginning point of subframe is used as a reference point.
All the beginning points of subframe from different
satellites are transmitted at the same time expect for the
clock correction terms of each satellite. Since the
beginnings of subframe from different satellites are
received at different times, this difference time represents
the time (or distance) difference from the satellite to the
receiver. Therefore, it represents the relative
pseudorang e.
Pseudorange measurements (Tsui, 2000) are performed in
the following steps.
1. The beginning points of subframe in terms of the
actual digitized input data points are found.
2. The average point of all the beginning points is
calculated. Time differences from average point to
each beginning point are calculated respectively.
3. The transit time of the beginning points of subrame
are calculated by assuming that transit time of the
average point is 73ms. And pseudoranges of each
satellite are measured.
4. The pseudoranges of each satellite change with time
by adding the C/A code shift for one second.
beginning point
of subframe1
(sv 6)
beginning point
of subframe1
(sv 19)
relative
psedorange
beginning points of
C/A code (sv 19)
beginning points of
C/A code (sv 6)
Fig.12 Relative pseudorange
7. The results
In our test, the signal processing was repeated with
changing the correlator spacing into 0.1, 0.2 and 1chip.
Table 2 shows the parameters of collecting the data. In
the case of 20MHz in sampling frequency, maximum
collection time is limited to 24 seconds due to the GPS
Signal Tap’s capacity. Thus the standalone positioning
was performed using ephemeris data collected by another
GPS receiver. Fig.13 shows the horizontal errors for the
cases of 0.1, 0.2 and 1 chip of early/late spacing of the
correlator in standalone positioning under light multipath
environment. Compared with the horizontal errors of 1
chip, the horizontal errors of 0.1 and 0.2 chip ar e reduced.
It is considered that the correlator could track the C/A
code accurately in the case of 0.1 and 0.2 chip.
Fig.14 shows two horizontal errors (0.2 and 1 chip) under
heavy multipath environment. Compared with the results
under light multipath environment, the horizontal errors
are larger and the positions deviate more. The correlator
couldn’t track enough number of satellites for the
positioning in the case of 0.1 chip spacing. The reason is
that the correlation powers were very weak and the shape
Kondo et al.: Evaluation of the pseudorange performance by using software GPS receiver 221
around correlation peaks of the C/A code was
contaminated by mulithpath effect and gentle (Misra and
Enge, 2001). Thus narrow correlator (0.1 chip) couldn’t
acquire the peak well.
The example of the peak of the correlation averaged for
200 ms (801~1000ms) under heavy mulitipath condition
is shown in Fig.15. As shown in this figure, a triangle
shape of the correlation power is very gentle, and the 0.1
chip correlator can’t acquire the peak. Therefore, it can’t
be converted into the navigation data shown in Fig.16.
Table.2 Prameters of collecting the data
IF 15.42MHz
Sampling Frequency 20MHz
Collection Time 24seconds
Band Width 8MHz
-30
-20
-10
0
10
20
30
-30-20-10 01020 30
longitude error(m)
latitude error(m)
0.1chip
0.2chip
1chip
Fig.13 Horizontal errors (light multipath)
-200
-150
-100
-50
0
50
100
150
200
-200-150-100-50050100 150200
longitude error(m)
latitude error(m)
0.2chip
1chip
Fig .14 Horizontal errors (heavy mulitpath)
Fig.15 Correlation of SV11
Fig.16 Tracking outputs of SV11 (0.1chip correlator)
8 Conclusion s
A prototype PC based and IF sampling software GPS
receiver has been developed successfully. This paper
presented the performance of our software GPS from a
point of accuracy. It also evaluated the relationship
between the signal quality and the positioning errors in
our post processing. It is found that much more
information in the signal processing can be obtained by
using software GPS receiver compared with the raw
outputs of conventional GPS receiver. As shown in these
results, our software GPS doesn’t work as well as
conventional GPS receivers. One of the reasons is that the
carrier aided code loop can’t be used in this algorithm.
The future work is firstly to improve the accuracy up to
the level of the conventional GPS receivers. The second
future work is to reveal the balance between the tracking
threshold and the accuracy of the pseudorange under
heavy multipath condition.
222 Journal of Global Positioning Systems
References
Wu F.; Kubo N.; Yasuda A.; HOJO Harumasa. (2003):
Development of a Prototyoing Platform for Software GPS
Receiver. Journal 111th of Japan Institute of Navigation
Ko S.; Won J; and Lee S. (2003): FFT and PLL Based GPS
Signal Processing for Software GPS Receiver. Wuhan
University Journal of Natural Science
Pany T.; Eissfeller B.; Winkel J. (2003): Tracking of High
Bandwidth GPS/Galilieo Signals with a Low Sample Rate
Software Receiver. Proc. ENC-GNSS2003, Graz.
Tsui J. B.Y. (2000): Fundamentals of Global Positioning
System Receiver – A software Approach. A John Wiley &
Sons, Inc. Publication
Pany T.; Moon T. S. W.; Irsigler M.; Eissfeller B.; Furlinger K.
(2003): Performance Assement of an Under Sampling
SWC Receiver for Simulated High-bandwidth
GPS/Galileo Signals and Real signals. proceeding of 16th
International Technical meeting of the Satellite Division of
The Institute of Navigation, Portland, Oregon, USA,
pp.103-106
Kaplan E D. (1996): Understanding GPS: Princcples and
application,. Boston:Arech House,1996.
Misra P.; Engse P. (2001): GRPBAL POSITIONING
SYSTEM, Signal Measurements, and performance..
Ganga-Jamuna Press
Tsui J. B.Y.; Stockmaster.; Akos D M. (1997): Block
Adjustment of synchronizing Signal (BASS) for Global
Positioning System (GPS) Receiver Signal Processing,
Proceeding of ION GPS 97.
Johanson F.; Mollaei R.; Thor J.; Uusitalo J. (1998): GPS
Satellite Signal Acquisition and Tracking, Division of
Signal Processing, Luleca University of Technology, S-
971 87 Luleca, weden, Undergraduate Projects 1998