Content uploaded by Mark G. Petovello
Author content
All content in this area was uploaded by Mark G. Petovello
Content may be subject to copyright.
ION GNSS 2008, Session B4, Savannah, GA, 1
16-19 September 2008
Multichannel Dual Frequency GLONASS
Software Receiver
S. Abbasian Nik and M.G. Petovello
Position, Location And Navigation (PLAN) Group
Department of Geomatics Engineering
Schulich School of Engineering
University of Calgary
BIOGRAPHY
Saloomeh Abbasian Nik is a Master candidate in the
Position, Location, And Navigation (PLAN) group in the
Department of Geomatics Engineering at the University
of Calgary, Canada. She obtained a B.Sc. degree from
Electrical Engineering Department at KNT University of
technology, Tehran, Iran. Her research interest is
software receiver development and testing, with a focus
on the GLONASS signals. She expects to finish her
Masters in December 2008.
Dr. Mark Petovello is an Assistant Professor in the
Position, Location And Navigation (PLAN) group in the
Department of Geomatics Engineering at the University
of Calgary. Since 1998, he has been involved in various
navigation research areas including software receiver
development, satellite-based navigation, inertial
navigation, reliability analysis and dead-reckoning sensor
integration.
ABSTRACT
Global Navigation Satellite System (GNSS) technology is
rapidly evolving. With the recent revitalization of the
Russian GLONASS system, with a current constellation
of 16 satellites and the promise of 24 satellites by 2010
(Revnivykh 2007), it is worthwhile to concentrate on
GLONASS as a method of GPS augmentation to achieve
more reliable and accurate navigation solutions. This
paper presents a software receiver that can acquire and
track both L1 and L2 GLONASS civil signals for an
unlimited number of GLONASS satellites.
The paper presents the key differences between the GPS
and GLONASS signals and highlights the corresponding
software receiver changes needed to accommodate these
differences. Acquisition, tracking and navigation data
demodulation and extraction are discussed. Results show
that the receiver is able to successfully track the L1 and
L2 civil signals and that the corresponding navigation
solutions are commensurate with those of a commercial
GLONASS-enabled receiver.
INTRODUCTION
Because of the limited number of GPS satellites, locations
with restricted satellite visibility have problems acquiring
and tracking the GPS signal. However, with the
availability of combined GPS and GLONASS receivers,
users will eventually have access to a 48-satellite
constellation and the performance in these places will
improve accordingly (e.g., Lachapelle et al 1997; Ryan et
al 1998). Moreover, there are some errors that may have
significant effects on the measured pseudorange. The
ionosphere in particular can affect the pseudorange to up
to 30 metres in nominal conditions (Lachapelle 2007).
Dual-frequency receivers can be used to effectively
mitigate this effect (Skone 1998).
With this in mind, software receivers provide an easy way
to acquire and track new GNSS signals. In fact, once
developed, software receivers are cost effective and easy
to modify to accommodate new signals and systems.
Therefore, there has been an effort to convert all or some
parts of hardware of a GNSS receiver to software.
Originally conceived by Akos and Braasch (1996) for
GPS applications, the use of software receivers for GPS
tracking has expanded considerably in the past decade.
Besides some software receivers developed for GPS, there
is considerable research on other GNSS such as Galileo.
Heinrichs et al (2007) developed the first interactive
GPS/Galileo L1/E1 software receiver. Macchi and
Petovello (2007) presented the development of a one-
channel Galileo L1 software receiver and tested the
software using real data. Ledvina et al (2006) developed
and tested a real-time interoperable GPS and Galileo L1
software receiver. Moreover, Normark and Ståhlberg
(2005) describes a fully software hybrid GNSS receiver
capable of real time acquisition and tracking of GPS C/A
and Galileo BOC(1,1) data and pilot channel.
Furthermore, some software developments have been
done on new GPS signals. For example, Muthuraman et al
(2007) evaluated different data/pilot tracking algorithms
for GPS L2C signals using a software receiver. Ledvina et
ION GNSS 2008, Session B4, Savannah, GA, 2
16-19 September 2008
al (2005) presented a real time software receiver for GPS
L2 civilian signal using a hardware simulator.
Some software receivers are programmable on a
microprocessor, a Field-Programmable Gate Array
(FPGA) or Digital Signal Processor (DSP). Itaca (Tomatis
et al 2007) is a scientific GNSS software receiver, which
is developed for innovation creation and testing and is a
valuable tool for the analysis of the next generation of
GNSS signals. Namuru is the name given to the open
GNSS receiver research platform developed at the
University of New South Wales, Australia (Mumford at al
2006). A real-time GPS L1 C/A-code software receiver
has been implemented on a Digital Signal Processor
(DSP) by Humphreys et al (2006). Kovar et al (2005)
presented a software receiver for combined GLONASS
and GPS signals. A powerful FPGA called Virtex-II Pro
from Xilinx is used to integrate all digital processing
parts. Spelat et al (2006) utilized FPGA and DSP for
combined GPS and Galileo software receiver. Won et al
(2006) presented an efficient and practical way of general
purpose high performance signal tracking software for a
multi-frequency GNSS receiver by using a Maximum
likelihood Estimation (MLE) technique. The Purdue
Software Receiver (PSR) is a real time software GPS
receiver defined at the University of Purdue (Heckler and
Garrison 2004). The PLAN (Position, Location And
Navigation) Group in the Department of Geomatics
Engineering at the University of Calgary developed its
first software receiver (GNSS_SoftRx™) in 2003 (Ma et
al 2004). The second version of the software was
developed in 2005. In this version, real-time operation
capability was achieved by using optimized algorithm to
perform Doppler removal and code correlation
(Charkhandeh et al 2006). Petovello and O’Driscoll
(2007) completed the software receiver in a modular
design, written entirely in C++, and called it GSNRx™.
This software operates in post–mission mode and
generates pseudorange, Doppler and carrier phase
observation for further processing and generate stand
alone Position, Velocity and Time (PVT) solution.
Despite the large amount of activity in the area of
software receivers, little work has been dedicated to a
GLONASS-capable software receiver. Furthermore, to
the authors’ knowledge, a dual frequency GLONASS
software receiver has not been implemented. With this in
mind, this paper presents a multichannel dual frequency
GLONASS software receiver. The GSNRx™ software
(Petovello and O’Driscoll 2007) is the basis for the
tracking part of GLONASS software receiver. The
objective of this paper is to present the methods used for
acquisition, tracking and navigation data demodulation of
GLONASS civilian L1 and L2 signals. The positioning
capability of the L1 and L2 signals is also demonstrated.
This paper begins with a short review of GLONASS L1
and L2 signals structure. The recent status of GLONASS
constellation is then briefly presented. Then the main
differences between GPS and GLONASS system are
highlighted. The paper continues with a review of GNSS
receivers. GLONASS signal acquisition and tracking
methods are discussed in detail and results are shown.
Finally, a general overview of GLONASS navigation data
structure is presented along with navigation solution
results and analysis, including a comparison with a
commercial receiver.
GLONASS SIGNAL STRUCTURE
GLONASS system was designed and developed to
provide three-dimensional position and velocity, and
timing for any user in the world or near-earth space in all
weather conditions (GLONASS ICD 2002). The
GLONASS constellation is nominally composed of 24
satellites in three orbital planes with ascending nodes
120° apart. In each plane there are eight satellites which
are in circular 19,100 km orbits at an inclination of 64.8°.
Each satellite completes the orbit in approximately 11
hours and 15 minutes (GLONASS ICD 2002).
GLONASS signals are transmitted in the L1 and L2
Radio Frequency (RF) sub-bands. All satellites broadcast
the civilian L1 signal. However, only the newer
GLONASS-M satellites broadcast the civilian signal on
L2 which is the focus of this work (i.e., the L2 high
accuracy signal is not considered) (GLONASS ICD
2002). With this in mind, the term “L2” is herein used to
refer only to the civilian L2 signal. The carrier of L1 and
L2 signals are modulated by the Modulo-2 addition of a
Pseudo Random (PR) ranging code, digital data of a
navigation message, and an auxiliary 100 Hz meander
sequence. GLONASS uses Frequency Division Multiple
Access (FDMA) techniques in both L1 and L2 sub-bands
such that each GLONASS satellite transmits the same PR
ranging code on separate carrier frequencies in each band
(as described below). Two types of ranging codes are
transmitted by the satellite: standard accuracy and high
accuracy. Only the standard accuracy is designed for civil
users and is a sequence of maximum length of a nine-
stage shift register with period of one millisecond and bit
rate of 0.511 MHz.
Moreover, the power level of the received RF signal from
GLONASS satellites at the output of a 3 dBi linearly
polarized antenna is defined to be not less than -161 dBW
for L1 sub-band and not less than -167 dBW (with the
subsequent increasing to a level not less than -161 dBW)
for L2 sub-band provided that the satellite is observed at
an angle of 5° or more (GLONASS ICD 2002).
The nominal values of L1 and L2 carrier frequencies are
defined by the following expressions:
ION GNSS 2008, Session B4, Savannah, GA, 3
16-19 September 2008
f
k1
= f
01
+ K∆f
1
f
k2
= f
02
+ K∆f
2
(1)
where K is the frequency number of the signals
transmitted by the GLONASS satellites in range of -7 to
+6, and
f
01
= 1602 MHz; ∆f
1
= 562.5 kHz, for L1 sub-band
f
02
= 1246 MHz; ∆f
2
= 437.5 kHz, for L2 sub-band
The channel number, K, for any GLONASS satellite is
provided in the almanac (GLONASS ICD 2002).
GLONASS STATUS
At the time of writing (August 2008), there were 16
GLONASS satellites in the constellation (Information-
Analytical Centre 2008). Among these 16 satellites, 13
satellites were GLONASS-M type satellites (University of
New Brunswick website 2008).
Three more GLONASS-M satellites are scheduled to be
launched in September 2008 with another three scheduled
for launch in December 2008 (GPS World 2008). As
such, assuming the launch schedule remains fixed, there
will be six new satellites in the constellation before the
end of 2008.
DIFFERENCES BETWEEN GPS AND GLONASS
This section aims to highlight the key differences between
the GLONASS and GPS signals. These differences are
summarized in Table 1.
Table 1 Main differences between GPS and
GLONASS
Item GPS GLONASS
Multiplexing CDMA FDMA
Ranging Code Type Gold Code M-Length
Received Navigation
Data Bit Period
20 ms 10 ms
One of the main differences between the GPS and
GLONASS systems is the technique used for
multiplexing. GPS uses Code Division Multiple Access
(CDMA), but GLONASS uses Frequency Division
Multiple Access (FDMA). This affects the multichannel
GLONASS signal implementation in the software
receiver by requiring that a specific intermediate
frequency is dedicated to each GLONASS satellite. In
turn, this prohibits (or at least limits) the use/benefit of
some computational efficiencies (e.g., Ledvina et al 2003;
Petovello & Lachapelle 2008).
Also, GLONASS ranging code is M-length sequence with
an order of nine; however GPS ranging code is a Gold
code. This affects the acquisition and tracking process in
generating the replica code.
The navigation message received from a GLONASS
satellite is a Modulo-2 addition of meander code (100 Hz)
signal and the original navigation message (20 ms) signal.
This affects the bit synchronization and C/N
0
estimation
parts of the software receiver and requires one additional
step to remove the effect of this meander code from
navigation message. Also, the way GLONASS navigation
message data bits are generated is totally different from
GPS. This will be discussed more in this paper in the
context of the navigation message structure and is
important for navigation message synchronization.
Moreover, GLONASS ephemeris and almanac are
specific to GLONASS constellation and time, which only
affects the navigation solution (it has no impact on
acquisition or tracking).
GENERAL VIEW OF GNSS RECEIVER
The final goal of a GNSS receiver is to generate a
navigation solution. To achieve this goal, it is necessary
that the received signal from the antenna be acquired and
tracked. When tacking is complete, useful information is
extracted and can be used to generate some
measurements. These measurements help in providing a
navigation solution. Figure 1 shows a view of a general
GNSS receiver.
Figure 1 A general view of a GNSS receiver (Petovello
and O’Driscoll 2007)
As the figure shows, the received data from the antenna is
down-converted to the desired intermediate frequency and
is sampled at the desired sampling rate. Samples are sent
to each tracking channel in parallel. Each tracking
channel consists of tracking loop, navigation message
extraction and measurement generation block.
Measurements from different channels are used for
navigation solution.
Down-
Conversion
and Sampling
Trackin
g
Loo
p
Navigation
Message
Extraction
Navigation
Solution
Measurement
Generation
Measurements
from other channels
i-th Channel
ION GNSS 2008, Session B4, Savannah, GA, 4
16-19 September 2008
DATA COLLECTION SET UP
This section describes a data collection used to evaluate
the various stages of the receiver development. Unless
stated otherwise, the results shown in the following
sections were obtained using the data set described below.
On August 12, 2008 at 6:30 pm local time, real data was
collected under open-sky conditions on the roof of a
building on the University of Calgary campus.
Figure 2 shows the data collection set up. In this data
collection, synchronized GLONASS L1 and L2 signals
were logged with a 12.5 MSps rate for about five minutes.
A NovAtel GPS-702GG antenna was used which is able
to receive L1 and L2 signals from GPS and GLONASS
(NovAtel website 2008). The Low Noise Amplifier
(LNA) gave 30 dB gain to the received signal. The splitter
divided the received signal and sent them to two channels
of the front-end. This front-end down-converts both L1
and L2 signals to 4 MHz prior to sampling. One bit
quantization was chosen in the front-end.
Figure 2 Data collection set up on August 12, 2008
GLONASS L1 AND L2 ACQUISTION
For convenience, the initial GLONASS signal acquisition
process was performed in Matlab using methods similar
to those for GPS. The Doppler frequency was tested over
a range of ±5 kHz around the carrier frequency. The
carrier frequency is calculated as follows:
1or2
∆f×K+IF=
Carrier
f (2)
where IF is the intermediate frequency and is computed
from the settings of the front-end and K is the channel
number of the GLONASS satellite on which acquisition is
performed. If the acquisition is for L1 signal, the channel
number must be multiplied by
1
∆f
and by
2
∆f
for L2.
This Carrier frequency is used for carrier wipe off during
the acquisition.
For code wipe off, a Fast Fourier Transform (FFT)
method is used (Bao and Tsui 2000). Figure 3 shows a
block-diagram of the acquisition method.
In coherent integration, the correlation values are
algebraically added:
...+QP+QP+QP+QP=QP
...+IP+IP+IP+IP=IP
4321Coherent
4321Coherent
(3)
where the number of IPs and QPs (the coherently
integrated in-phase and quadra-phase samples,
respectively) to be used can be set at the beginning of the
acquisition software.
Non-coherent integration is performed to help acquire
weak signals especially signals from low elevation angle
satellites and the L2 signals which are weaker than L1. In
non-coherent integration, the absolute correlation values
of coherent integration are added (Ray 2007a):
54321
2
20191817
2
20191817
=Cohnon5
2
4321
2
4321
=Cohnon1
P+P+P+P+P=P
)QP+QP+QP+QP(+)IP+IP+IP+IP(
P
)QP+QP+QP+QP(+)IP+IP+IP+IP(
P
(4)
Figure 4 and Figure 5 show the GLONASS acquisition
results for channel number zero in slot number 11 for L1
and L2, respectively. As can be clearly seen, the
acquisition peak is very evident, as should be expected
given the open sky environment in which the data was
collected.
The acquisition process was run on every visible
GLONASS satellite during the data collection. Table 2
summarizes the acquisition results. In this case, L2 signal
for GLONASS at orbital slot number 04 is not acquired
because this satellite is not GLONASS-M type satellite
and thus does not have the civilian code on L2.
Table 2 Acquired GLONASS signals
Orbital
Slot
Channel
No
L1 Acquired L2 Acquired
04 06 Yes No
10 04 Yes Yes
11 00 Yes Yes
19 03 Yes Yes
20 02 Yes Yes
Low noise
Amplifier
(LNA)
Splitter
L1
L2
Fron
t
-end
ION GNSS 2008, Session B4, Savannah, GA, 5
16-19 September 2008
Figure 3 Block-diagram of acquisition method
Figure 4 Acquisition result for GLONASS channel
number 0/ orbital slot 11, L1 signal
Figure 5 Acquisition result for GLONASS channel
number 0/ orbital Slot 11, L2 signal
GLONASS L1 AND L2 TRACKING
GSNRx™ (GNSS Software Navigation Receiver) is a
C++ class-based GNSS software receiver program
developed by the Position, Location And Navigation
(PLAN) Group at the University of Calgary. This
software was originally developed to acquire and track
GPS L1 C/A code signals and to generate navigation
solution and output measurements in post mission
(Petovello and O’Driscoll 2007). GLONASS L1 and L2
signal tracking was developed based on this software. As
such, those aspects of the receiver that are common with
GPS are discussed only briefly with references are
provided for the interested reader. Instead, the focus is
given to those aspects of the GLONASS receiver that
differ from GPS.
The phase discriminator implemented in the software is
the two quadrant arctangent. The discriminator is chosen
from the Costas discriminators to be insensitive to the
Read input signal
1. Initialization
2. Set the number of coherent
and non-coherent time
Frequency
range?
Generate local carrier
Carrier wipe off
Non-coherent
time reached?
Coherent
time
r
eached?
Calculate
non-coherent
No
Yes
Output
code offset
and
Doppler
frequency
Compute
correlation
value and
store it
Take 1 ms incoming signal
and 1 ms local code
Calculate
IP Coherent
QP Coherent
Generate local code
Perform correlation in
frequency domain
(FFT)
No
Yes
Yes
No
A
A
ION GNSS 2008, Session B4, Savannah, GA, 6
16-19 September 2008
effect of navigation data bit transitions. The output is the
phase offset (Ward et al 2006).
⎟
⎟
⎠
⎞
⎜
⎜
⎝
⎛
=
−
k
k
k
I
Q
1
tan
ˆ
ϕδ
(5)
where Q
k
and I
k
are the correlator outputs.
The frequency discriminator implemented in the software
is the decision-directed discriminator. The frequency error
is calculated according to the following equation (Ward et
al 2006)
coh
kk
k
T
CDSign
f
⋅
=
)(
ˆ
δ
(6)
where T
coh
is the coherent integration time and D
k
and C
k
are dot and cross product of two consecutive correlator
outputs respectively. Once synchronization with the
navigation data bits is achieved (see below) the coherent
integration time is chosen as 10 ms for GLONASS.
For code discriminator the non-coherent early minus late
envelop is used (Ward et al 2006)
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
)1(
ˆ
kLkLkEkE
kLkLkEkE
rk
QIQI
QIQI
+++
+−+
⋅∆−=
τδ
(7)
where E and L subscripts represent early and late
correlators and
r
∆ is the offset of the early and late
correlator from the prompt correlator in unit of chips (half
of a chip throughout this paper).
To limit the effect of noise on the discriminator output,
loop filters are used. Loop filters are defined by their
noise bandwidth and their order (Misra and Enge 2001).
The bandwidth is desired to be as small as possible for
filtering the noise but still wide enough to allow true
signal dynamics to pass. This is a critical situation in
deciding the bandwidth of loop filter. By aiding the
tacking loop externally, the tracking loop only tracks the
remaining error in the signal. In GSNRx™, tracking loop
aiding is used to aid the PLL with FLL (FLL-Assisted
PLL) and also to aid DLL with carrier lock loop (CLL) in
which Doppler information from CLL is scaled to proper
units and then is used to aid DLL. Moreover, in the
GSNRx™ software, the bandwidth of DLL, PLL and FLL
can be initialized by the user to set it for different
applications. For GLONASS signal tracking loop, these
values are assigned 2, 15, and 8 Hz respectively. The
assisted DLL bandwidth is set 0.05 Hz.
The loop order defines the filter’s sensitivity to dynamics.
PLL and DLL have the second order loop filter and
therefore are robust to range rate but still produce an error
in the presence of range acceleration.
Figure 6 shows the correlator output for GLONASS L1
and L2 signals received from GLONASS satellite at
orbital slot 11 with channel number 0. The figure shows
that before achieving PLL state (at approximately 0.2 s
and 0.1 s for L1 and L2 respectively), power is divided
between I and Q arms. However, once the PLL is
initialized, the power is almost entirely in I channel. This
shows that tracking is successful with the phase error
being approximately zero.
0 1 2 3 4 5
-2
0
2
I&Q
(Scaled)
Correlator Output for CH#0 / Orbital Slot 11
L1 Signal
0 1 2 3 4 5
-2
0
2
L2 Signal
Time (Second)
I&Q
(Scaled)
I
Q
I
Q
Figure 6 I and Q values for L1 and L2 GLONASS
satellite at orbital slot 11 with channel number 0
Figure 7 shows the Doppler frequency for L1 and L2
GLONASS signals corresponding to Figure 6. This figure
shows that before the PLL tracking state is reached the
Doppler frequency values are converging but after
achieving PLL, the Doppler frequency is found and
tracked continuously. The Doppler frequency is noisier
after PLL is reached because the bandwidth of the PLL is
wider than FLL, as mentioned earlier.
0 0.5 1 1.5 2
1200
1300
1400
1500
1600
1700
Doppler for CH#0 / Orbital Slot 11
Doppler (Hz)
Time (Second)
L1
L2
Figure 7 Doppler frequencies for L1 and L2
GLONASS satellite at orbital slot 11 with channel
number 0
To estimate carrier to noise-density (C/N
0
), the Power
Ratio Method (PRM) was implemented (Van
Dierendonck 1995) using a maximum of ten 1-ms
ION GNSS 2008, Session B4, Savannah, GA, 7
16-19 September 2008
coherent integration intervals (i.e., M = 10) and an
average of 50 intervals (i.e., K = 50).
Figure 8 shows C/N
0
values for L1 and L2 signals of a
GLONASS satellite at orbital slot 11 with channel
number 0. As expected, the L1 estimates are higher than
the L2 estimates because of the increased signal power on
L1. Similar results were obtained for other satellites, as
summarized in Table 3. It is interesting to note that the
difference between the L1 and L2 C/N
0
estimates
decreases with decreasing C/N
0
. No definitive reason for
this has been found, but it may be an artifact of the front-
end.
0 2 4 6 8 10
0
20
40
60
C/N
0
for Ch#0 / Orbital Slot 11 L1 Signal
C/N
0
(dB-Hz)
0 2 4 6 8 10
0
20
40
60
L2 Signal
C/N
0
(dB-Hz)
Time (Second)
Figure 8 C/N
0
for L1 and L2 GLONASS satellite at
orbital slot 11 with channel number 0
Table 3 Mean C/N
0
values for GLONASS L1 and L2
signal of different satellites
Satellite C/N
0
for L1
(dB-Hz)
C/N
0
for L2
(dB-Hz)
Ch No 0 / Orbital Slot 11 51.1 46.0
Ch No 2 / Orbital Slot 20 48.6 45.9
Ch No 3 / Orbital Slot 19 40.0 39.7
Ch No 4 / Orbital Slot 10 39.3 35.13
GLONASS NAVIGATION MESSAGE DECODING
According to GLONASS ICD (2002), the GLONASS
navigation message is generated as a pattern of
continuously repeating “strings”, each with a duration of
two seconds. During the first 1.7 seconds of each two
second interval (at the beginning of each string), 85 bits
of navigation data are transmitted. During the last 0.3
seconds (at the end of each string) the time mark is
transmitted.
Figure 9 shows a simplified block-diagram of data
sequence generation. As can be seen, the data sequence,
which are those immediate and non-immediate navigation
data bits, are encoded using a Hamming code. The
Hamming code has a length of 4 (b
1
…b
n
). The coded
sequence of data and check bits are then transformed into
relative code. At the next step, the meander sequence is
Modulo-2 added to the transformed data bits yielding a
1.7 s code. The time mark, which separates data of one
string from the data of adjacent strings, is then appended.
At this point, the data bit duration is 10 ms. Finally, the
ranging code is added prior to modulating the carrier.
Figure 9 Simplified block-diagram of data sequence
generation (GLONASS ICD 2002)
Overall, 15 strings create one frame. Therefore a frame is
30 seconds in duration. Each five frames create a super-
frame with a duration of 2.5 minutes. Within each frame
all the immediate data for the given satellite and a part of
the non-immediate data are transmitted. Table 4 shows a
comparison between GPS and GLONASS navigation data
structure.
Table 4 Comparison between GPS and GLONASS
navigation data structure
GPS Duration GLONASS Duration
Super-frame 12.5 min … …
Page 30 s Super-frame 2.5 min
Sub-frame 6 s Frame 30 s
Word 600 ms String 2 s
For decoding the navigation message from the received
signal, the following steps were implemented:
1)
bit synchronization
2)
navigation message synchronization
3)
navigation message decoding
Bit synchronization is determining the location of the bit
transition in the navigation data. The method used is the
histogram method. In the histogram method, each
navigation data bit is divided into shorter bins (for
GLONASS into 10 1-ms bins) and the goal is to find the
transition between two successive bins. Every time a
transition is detected, a counter value is incremented. This
process continues until one bin count exceeds an upper
threshold or two bin counts exceed a lower threshold or
there is a loss of lock. The values of upper and lower
ION GNSS 2008, Session B4, Savannah, GA, 8
16-19 September 2008
threshold are generally a function of the carrier to noise
density ratio (Van Dierendonck 1995).
After bit synchronization, it is important to find the
location of the bits within the navigation message. The
algorithm which is used for navigations synchronization
is presented in Figure 10. The time mark pattern (which is
roughly equivalent to the GPS preamble sequence) is
equal to 0x3e375096 and its complement is 0xc1c8af69.
The complement must be checked because there is an
uncertainty in the polarity of the locally generated carrier
phase (i.e., a half cycle lock ambiguity). If the
complement is found then all navigation bits must be
converted to their complement value. If time mark or its
complement is found, the received data after 2 seconds is
checked again to see if the pattern repeats (which it
should if the correct location of time mark is identified).
If the correct time mark is found, the receiver converts the
data bits from 10 ms data bits to 20 ms data bits by
removing the meander code. By removing time mark at
this step, all that remains are the data bits and the
checking bits, but still it is necessary to remove the effect
of the transformation to relative code. After
transformation from relative code, the data bits and check
bits are revealed. The check bits are used to verify the
proper receipt of the data bits. The data verification
algorithm is explained in GLONASS ICD 2002 in detail.
This process is in fact the reverse process of the process
shown in Figure 9. If the data verification is passed,
navigation data synchronization is achieved otherwise
false data reception is reported and the process restarts.
When the location of the current bit in the navigation data
is clear, the ephemeris data related to that GLONASS
satellite and also the almanac data can be extracted. The
software for navigation decoding is designed in such a
way that first of all it looks for the first string in the
frame. The string number can be extracted from the
received bits. From the first four strings, ephemeris can be
extracted. Strings 6 to 15 contain a part of almanac for the
current GLONASS constellation. Data contained in 5th
string of each frame is the same for each super-fame and
relates to the almanac. As mentioned before, these 15
strings create a frame. Frame 1, 2, 3, and 4 contains
almanac for 20 satellites (each frame contains data for 5
satellites). Last frame (frame 5) contains almanac for the
remaining satellites in the constellation (i.e., four in the
nominal case). Ephemeris data repeats within one super-
frame (GLONASS ICD 2002).
NAVIGATION SOLTUTION
Following successful implementation and testing of the
signal acquisition and tracking algorithms described
above, a new data set was collected to assess the
navigation solution. This data was collected on
September 7, 2008 with the same conditions discussed in
previous data collection. Figure 11 shows the data
collection and processing set up. A commercial receiver,
namely NovAtel OEMV2, is used for navigation solution
validation.
Figure 10 Navigation data synchronization method
block diagram
Time Mark
( 0x3e375096) or
it’s complement
(
0x01c8af69
)
Add New Bit
Time Mark
After 2
Seconds
Start
End
Remove
the Data
Report False
Data Bits
Navigation Synchronization
Achieved
Data Bits
Verification
Transformation from Relative code to
Se
q
uence of Data and Chec
k
Bits
Yes
Remove Time Mark from the String
Convert the String from 10 ms data to
20 ms data bits (meander code effect)
NO
NO
Yes
Yes
NO
ION GNSS 2008, Session B4, Savannah, GA, 9
16-19 September 2008
Data received from the antenna is sent to a splitter. One of
the signals is sent to the NovAtel receiver which was
configured to log the raw measurement data. The other
signal from the splitter is sent to yet another splitter. The
outputs of this second splitter are defined as L1 and L2
signal and sent to the front-end. GSNRx™ processes the
output samples of the front-end. The output files of
GSNRx™ are observation and ephemeris for both L1 and
L2.
Table 5 shows the GLONASS satellites which their L1
and L2 signals are acquired. GLONASS L2 signal for the
satellite at orbital slot 7 was not acquired because it was
in a low elevation angle.
Table 5 Acquired GLONASS signals for the second
data set
Orbital
Slot
Channel
No
L1 Acquired L2 Acquired
07 05 Yes No
13 -2 Yes Yes
15 0 Yes Yes
23 03 Yes Yes
24 02 Yes Yes
As a final step, observation files from GSNRx™ and the
NovAtel receiver are sent to C
3
NAVG
2
™. This software
was developed in the PLAN group at the University of
Calgary and is able to process GPS and/or GLONASS
pseudorange (optionally carrier smoothed) using
standalone or differential techniques. The C
3
NAVG
2
™
software was run twice; once using the L1 pseudorange
data and once using the L2 pseudorange data. Position
solution results for L1 and L2 from GSNRx™ are shown
in Figure 12.
Table 6 shows a comparison between NovAtel and
GSNRx™ receiver root means square (RMS) position
errors for L1 using the same satellite constellation. Also
shown are the GSNRx™ position errors for L1 and L2,
again using the same satellite constellation (which differs
from the L1 only solution; see Table 5). Two things are
worth noting from these results. First, from the L1
solutions, the GSRNx™ solution is very similar to the
NovAtel solution. This confirms that the software receiver
appears to be working well. The cause of the large bias in
the east direction is not yet known, but is likely the result
of poor satellite geometry. Second, the L2 solution is
approximately the same as the L1 solution, as should be
expected under the low ionospheric conditions of the data
set. Also of note is that removing one satellite (when
going from the L1 to L2 solutions) further degrades
navigation solution, particularly in the easterly direction,
again suggesting that the bias is related to the satellite
geometry.
Figure 11 Data collection set up on September 7, 2008
8.87 8.88 8.89 8.9 8.91 8.92 8.93
x 10
4
-50
0
50
North Error (m)
Errors
L1
L2
8.87 8.88 8.89 8.9 8.91 8.92 8.93
x 10
4
0
20
40
East Error (m)
L1
L2
88700 88760 88820 88880 88940 89000 89060 89120 89180 89240 89300
-50
0
50
Height Error (m)
18:38 18:39 18:40 18:41 18:42 18:43 18:44 18:45 18:46 18:47 18:48
GPS time
(
sec
)
and Local time
(
HH:MM
)
L1
L2
Figure 12 Position error comparison of L1 and L2
Table 6 Root Means Square (RMS) Position Errors for
Various Solutions
Solution North East Vertical
5 Satellites
GSNRx™ (L1) 3.3 m 13.3 m 6.4 m
NovAtel (L1) 2.5 m 12.2 m 12.0 m
4 Satellites
GSNRx™ (L1) 6.7 m 20.6 m 7.3 m
GSNRx™ (L2) 5.3 m 19.6 m 13.0 m
CONCLUSIONS
This paper described the development of dual frequency
GLONASS software receiver. The software is a
combination of Matlab code for acquisition and C++ code
(based on GSNRx™ ─ a previously developed GPS-only
receiver) for tracking. GLONASS bit and navigation
message synchronization is described and shown to be
successful. Navigation solutions for L1 and L2 were
compared and showed similar results. Also the L1
solution was found to be very similar to that obtained
Splitter
C
3
NAVG
2™
+12 v / DC
L1
OEMV2
NovAtel Receiver
Antenna
Splitter
COM1
L2
GSNRx™
Observations
Observations
GSNRx™ Solution
Front-end
C
3
NAVG
2™
NovAtel Solution
ION GNSS 2008, Session B4, Savannah, GA, 10
16-19 September 2008
from a commercial receiver suggesting the GLONASS
software receiver is working well.
Future work will focus on combining the GLONASS
tracking with GPS L1 C/A tracking. The benefits of the
dual frequency measurements from the GLONASS
system on the positioning accuracy will also be assessed.
REFERENCES
Akos, D. and M. Braasch (1996) “A Software Radio
Approach to Global Navigation Satellite System Receiver
Design,” in
Proceedings of ION Annual Meeting, Institute
of Navigation, pp.455-463.
Bao, J. and Y. Tsui (2000)
Fundamentals of Global
Positioning System Receivers: a Software Approach ,
John Wiley & Sons, Inc., pp. 137
Charkhandeh, S., M.G. Petovello and G. Lachapelle
(2006) “Performance Testing of a Real-Time Software-
Based GPS Receiver for x86 Processors,” in
Proceedings
of ION GNSS, 26-29 September, Forth Worth TX,
pp2313- 2320, U.S. Institute of Navigation, Fairfax VA
GLONASS ICD Ver.5 (2002), http://www.GLONASS-
ianc.rsa.ru , last accessed 3 February, 2008
GPS World (2008)
ION 2008 NEWS COVERAGE,
http://www.gpsworld.com/gpsworld/static/staticHtml.jsp?
id=548453, last access 26 September, 2008
Guo, J., W. Wang and B. Chao (2007) “A New GNSS
Software Receiver Signal Acquisition Method Research
Based on Ambiguity Function,” in
Proceedings of ION
GNSS , 25-28September, Fort Worth TX, pp. 231-235,
U.S. Institute of Navigation, Fairfax VA
Heckler, G.W. and J. L. Garrison (2004) “Architecture of
a Reconfigurable Software Receiver,” in
Proceedings of
ION GPS 2004,
21-24 September, Long Beach CA, pp.
947-955, U.S. Institute of Navigation, Fairfax VA
Heinrichs, G., M. Restle, C. Dreischer and T. Pany (2007)
“NavX®-NSR – A Novel Galileo/GPS Navigation
Software Receiver,” in
Proceedings of ION GNSS, 25-28
September, Fort Worth TX, pp. 231-235, U.S. Institute of
Navigation, Fairfax VA
Humphreys, T.D, M. L. Psiaki, P. M. Kintner, Jr. and B.
M. Ledvina (2006) “GNSS Receiver Implementation on a
DSP:Status, Challenges, and Prospects,” in
Proceedings
of ION GNSS,
26-29September, Fort Worth TX, pp. 2370-
2382, U.S. Institute of Navigation, Fairfax VA
Information-Analytical Centre website (2008) GLONASS
Constellation Status, http://www.glonass-ianc.rsa.ru, last
accessed August 20, 2008
Kovar, P, F.Vejrazka, L.seidl and P.Lacmarik (2004)
“Implementation of the GLONASS Signal-Processing
Algorithm to the Experimental GNSS Receiver” in
The
European Navigation Conference Proceedings, 16-19
May 2004, Rotterdam The Netherlands
Lachapelle, G., S. Ryan, M. Petovello and J. Stephen
(1997) “Augmentation of GPS/GLONASS for Vehicular
Navigation under Signal Masking,” in
Proceedings of the
ION GPS-97, Kansas City, MO, September 16-19, pp.
1511-1519.
Lachapelle, G. (2007) Advanced GNSS Theory, ENGO
625 Lecture Notes. Department of Geomatics
Engineering, The University of Calgary
Ledvina, B.M, S.P. Powell, P.M. Kintner and M.L. Psiaki
(2003) “A 12-Channel Real-Time GPS L1 Software
Receiver,” in
Proceedins of ION National Technical
Meeting
, Anaheim, CA, Institute of Navigation, pp.767-
782.
Ledvina, B.M., M. Psiaki, T. E. Humphreys, S.P. Powel,
and P.N Kintner (2005) “A Real-Time Software Receiver
Tracking of GPS L2 Civilian Signals using a Hardware
Simulator,” in
Proceeding of ION GPS 2005, 13-16
September, Long beach CA, pp.1598-1610, U.S. Institute
of Navigation, Fairfax VA
Ledvina, B.M., M. Psiaki, T. E. Humphreys, S.P. Powel
and P.N Kintner (2006) “A Real-Time Software Receiver
for the GPS and Galileo L1 Signal,” in
Proceedings of
ION GPS/GNSS , 26-29 September 2006, Forth Worth
TX, pp. 2321-2333, U.S. Institute of Navigation, Fairfax
VA
Ma, C., G. Lachapelle and M.E. Cannon (2004),
“Implementation of a Software Receiver,” in
Proceedings
of ION GNSS
, 21-24 September, Long Beach CA,
pp.882-893, U.S. Institute of Navigation, Fairfax VA
Macchi, F. and M.G. Petovello (2007) “Development of a
One Channel Galileo L1 Software Receiver and Testing
Using Real Data,” in
Proceedings of ION GNSS, 25-28
September, Fort Worth TX, pp. 2256-2296, U.S. Institute
of Navigation, Fairfax VA
Misra, P. and P. Enge (2001)
Global Positioning System
Signals, Measurement and Performance,
Lincoln, MA,
Ganga-Jamuna Press
Mongredien, C., G. Lachapelle and M.E. Cannon (2006)
“Testing GPS L5 Acquisition and Tracking Algorithms
Using a Hardware Simulator,” in
Proceedings of ION
GNSS 2006
, Fort Worth, TX, Institute of Navigation, pp.
2901-2913
ION GNSS 2008, Session B4, Savannah, GA, 11
16-19 September 2008
Mumford, P.J, K. Parkinson and A. Dempster (2006)
“The Namuru Open GNSS Research Receiver,” in
Proceedings of ION GNSS,
26-29 September, Fort Worth
TX, pp. 2847-2855, U.S. Institute of Navigation, Fairfax
VA
Muthuraman, K., S. K. Shanmugam and G. Lachapelle
(2007) “Evaluation of Data/Pilot Tracking Algorithms for
GPS L2C Signals Using Software Receiver,” in
Proceedings of ION GNSS, 25-28 September, Fort Worth
TX, pp. 2499-2509, U.S. Institute of Navigation, Fairfax
VA
Normark, P.L. and C. Ståhlberg (2005) “Hybrid
GPS/Galileo Real Time Software Receiver,” in
Proceedings of ION GPS 2005, 13-16 September, Long
beach CA, pp.1906-1613, U.S. Institute of Navigation,
Fairfax VA
NovAtel website (2008)
GPS-701/702-GG,
http://www.novatel.com/products/gps_701_702GG.htm,
last accessed August 20, 2008
Petovello, M.G. and C. O’Driscoll (2007)
GSNRx™
Algorithm design Document, Position, Location And
Navigation (PLAN) Group, Department of Geomatics
Engineering, University of Calgary, Canada.
Petovello, M.G. and G. Lachapelle (2008) “Centimeter-
Level Positioning Using an Efficient New Baseband
Mixing and De-Spreading Method for Software GNSS
Receivers”,
Journal on Advances in Signal Processing
(JASP)
Ray, J. K. (2007a)
Advanced GNSS Receiver Technology,
ENGO 638 Course Notes, Department of Geomatics
Engineering, University of Calgary, Canada, pp. 72-76
Ray, J. K. (2007b)
Advanced GNSS Receiver Technology,
ENGO 638 Course Notes, Department of Geomatics
Engineering, University of Calgary, Canada, pp. 17
Revnivykh, S.G. (2007) “GLONASS Status,
Development and Application,”
International Committee
on Global Navigation Satellite System (ICG) Second
meeting
, September 4-7, 2007, Bangalore, India
Ryan, S., M. Petovello and G. Lachapelle (1998)
“Augmentation of GPS for Ship Navigation in
Constricted Water Ways,” in
Proceedings of the National
Technical Meeting, Long Beach, CA., January 21-23, pp.
459-467.
Sharawi, M.S. and O.V. Korniyenko (2007) “Software
Defined Radios: A Software GPS Receiver Example,” in
IEEE/ACS International Conference on Computer
Systems and Applications
, 13-16 May 2007, Amman
Jordan ,pp.562 – 565
Skone, S. (1998)
Wide Area Ionospheric Grid Modeling
in the Auroral Region, PhD Thesis, Department of
Geomatics Engineering, The University of Calgary,
Canada, (Available at http://plan.geomatics.ucalgary.ca
)
Spelat, M., F. Dovis, G. Girau and P. Mulassano (2006)
“A Flexible FPGA/DSP Board for GNSS Receivers
Design ”, appears in
Research in Microelectronics and
Electronics 2006 Ph. D
., Otranto, pp.77-80
Tomatis, A., F. Dovis, M. Pini and M. Fantino (2007)
“ITACA: a Scientific GNSS Software Receiver for
Innovation Creation and Testing,” in
Proceedings of ION
GNSS,
25-28 September, Fort Worth TX, pp. 2723-2730,
U.S. Institute of Navigation, Fairfax VA
University of New Brunswick website (2008)
Geodesy
and Geomatics Engineering, GLONASS Status,
http://gge.unb.ca/Resources, last accessed August 20,
2008
Van Dierendonck, A.J. (1995) GPS Receivers, Global
Positioning System: Theory and Application,
B.W.
Parkinson and J.J. Spilker, Jr., American Institute of
Aeronautics and Astronautics, Inc. I, pp. 329-407
Ward, P.W., J.W. Betz and C.J. Hegarty (2006)
Satellite
Signal Acquisition, Tracking, and Data Demodulation,
Understanding GPS Principles and Applications
, E. D.
Kaplan and C.J. Hegarty, Norwood, MA, Artech House,
Inc., pp 153-241
Won, J., P. Thomas and B. Eissfeller (2006) “Design of a
Unified MLE Tracking for GPS/Galileo Software
Receivers,” in
Proceedings of ION GNSS, 26-29
September, Fort Worth TX, pp. 2396-2406, U.S. Institute
of Navigation, Fairfax VA
w.novatel.com/products/gps_701_702GG.htm