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

GNSS-SDRLIB: An Open-Source and Real-

Time GNSS Software Defined Radio Library


Taro Suzuki, Nobuaki Kubo, Tokyo University of Marine Science and Technology, Tokyo, Japan

BIOGRAPHIES C++/CLI. GNSS-SDRLIB provides GNSS signal


acquisition, tracking, pseudorange generation, navigation
Taro Suzuki is a JSPS (Japan Society for the Promotion of message decoding, and spectrum analysis functions for
Sciences) postdoctoral fellow at Tokyo University of GNSS signal processing, which is required for position
Marine Science and Technology, Japan. He received his computation. For real-time positioning, GNSS-SDRLIB
B.S., M.S., and Ph.D. in Engineering from Waseda supports many commercially available front-ends. In
University in 2007, 2009, and 2012 respectively. His addition, it supports any recorded intermediate-frequency
current research interests include the GNSS precise (IF) data obtained by any front-end for post-processing. It
positioning for vehicles integrated with inertial navigation can output the observation data such as the pseudorange,
and image sensors in urban environments. He is also carrier phase, Doppler, and carrier-to-noise density (CN0)
developing the multipath mitigation techniques by the in the RINEX or RTCM format. GNSS-SDRLIB can be
multipath simulation using 3D city models and the open used with a conventional hardware receiver if a front-end
source GPS software receiver. He also develops an open device and laptop computer are prepared.
source software GNSS receiver library.
We carried out tests to evaluate the performance of
Nobuaki Kubo received his Master’s degree of Electrical GNSS-SDRLIB and developed actual applications. Based
Engineering in 1998 from Hokkaido University. He on a static positioning test with multi-GNSS constellation,
received his doctorate in Engineering from University of we determined the receiver positions within 2 m using
Tokyo in 2005. He resided at Stanford University in 2008 multi-GNSS L1 pseudoranges generated by GNSS-
as a visiting scholar. He is now an associate professor at SDRLIB. We expect it to be widely used for research and
the Tokyo University of Marine Science and Technology educational purposes to learn GNSS signal processing.
in the area of GPS/GNSS systems. His current interests
are high accuracy automobile navigation using RTK and
1. INTRODUCTION
multipath mitigation techniques.
Global navigation satellite system (GNSS) is rapidly
ABSTRACT gaining in popularity because of their wide range of
current and potential applications. The availability and
Global navigation satellite system (GNSS) is rapidly accuracy of satellite positioning are anticipated to
gaining in popularity because of their wide range of improve because of the presence of various positioning
current and potential applications. As a result, GNSS satellites such as the United States’ GPS, Russia’s
software receivers, which are based on software-defined GLONASS, Europe’s GALILEO, China’s BeiDou, and
radio (SDR), have attracted significant attention in recent Japan’s QZSS. These positioning satellites broadcast
years. Software GNSS receivers are widely recognized many new signals at multiple frequencies; for example,
and used because of their configuration flexibility and China issued an interface control document (ICD) for the
ease of use in GNSS research. Many GNSS (or GPS) BeiDou navigation system at the end of 2012 [1], and
software receiver projects have been undertaken by many consumer GNSS chip companies have started to
researchers and companies. In particular, some are being support the BeiDou B1 signal. Further, QZSS has been
developed as open-source projects. However, the current broadcasting the new L1C and LEX (L-band experiment)
open-source GNSS receivers support a few specified signals to improve the accuracy of GNSS positioning [2].
front-ends for real-time processing and partly support The actual positioning accuracy performance with these
multi-GNSS or do not support multi-frequency signals. new signals must be evaluated and confirmed in GNSS
receivers. In addition, processing methods such as for
We have developed a novel open-source and real-time signal acquisition, decoding new navigation messages,
processing capable GNSS software receiver, called and signal tracking algorithms especially designed for
GNSS-SDRLIB. GNSS-SDRLIB is a very simple and modern signals also need to be developed and verified
easy-to-use GNSS signal processing tool written in C, and when we use new GNSS signals. On the other hand, in the
it consists of several application programs written in GNSS research field, advanced GNSS applications such
Antenna Carrier Frequency Code and Carrier
Analog Code Phase Measurements
Digital
IF
IF Signal Signal PVT PVT
LNA ADC
Acquisition Tracking Estimation

Local Navigation Decoding


Oscillator

Front-End Baseband Processing


Fig. 1. Configuration of software GNSS receivers.

as for signal interference and spoofing detection, GNSS its dissemination was the heavy computational burden.
multipath mitigation based on a beam forming technique, However, CPU power is increasing; hence, it has become
and the ultra-tight integration of GNSS with multiple possible to develop practical software-based GPS
sensors have attracted researchers. In these applications, it receivers. The first GNSS software receiver based on the
is difficult to develop new algorithms using only SDR technology was proposed in [3]. It expanded the
conventional commercial GNSS receivers because we horizons of GPS software receivers for many researchers.
must modify and reconfigure the basic technologies of the Several studies related to software GPS receivers have
GNSS receivers. been published to date [3-12]. The book written by Tsui
[4] provided much information about the implementation
Thus, GNSS software receivers, which are based on of software GPS receivers. In 2007, [5] provided Matlab
software-defined radio (SDR), have attracted significant implementations of a complete GPS receiver, which
attention in recent years [3-11]. Software GNSS receivers lowered the entry level for users to develop original
are widely recognized and used because of their software receivers.
configuration flexibility and ease of use in GNSS research.
They can also analyze the new GNSS signals, which are Currently, many GNSS (or GPS) software receiver
not supported by the currently available commercial projects are being undertaken by researchers and
GNSS receivers because all the signal processing companies. In particular, some of these are being
algorithms can be changed and modified as desired in the developed as open-source projects [12-17]. Moreover, an
case of the software receivers. Figure 1 shows the open-source GNSS software receiver offers many
configuration of a general GNSS software receiver. A advantages in terms of customization and usability. Open-
software GNSS receiver consists of two blocks: the front- source receivers also provide great benefits for many
end block, which down-converts and digitalizes the users from the perspectives of education and the
incoming signal into digitalized intermediate frequency development of advanced GNSS software receiver
(IF) data, and the baseband processing block. In the applications. For example, both GPS-SDR [16] and
baseband processing block, the down-converted and GNSS-SDR [17] are well-known open-source software
digitalized GNSS signal is processed in order to provide receivers written in C++. GPS-SDR supports real-time
GNSS observation data such as pseudoranges and processing with GPS L1CA code. GNSS-SDR (which is
navigation data for obtaining position solutions. First, a under active development in 2014) supports multi-GNSS
digitalized GNSS signal that contains the GNSS ranging L1 signals (GPS L1CA and Galileo E1 codes) for real-
code is detected in the acquisition step using the time positioning [11]. These projects are considerably
correlation with the local replica code. Then, if a specified useful and powerful tools for researchers. However, they
GNSS signal is acquired, the carrier frequency of the only support a few specific front-ends for real-time
signal and the code phase are maintained in the tracking processing and partly support multi-GNSSs or do not
step. Finally, when a navigation message is decoded, the support multi-frequency signals. Real-time processing for
position can be estimated using the pseudorange, satellite multiple systems and multiple frequencies is still a
location, and clock correction data from the navigation challenge in the development of an open-source software
message. In software GNSS receivers, this baseband receiver. We have developed a novel open-source and
processing is performed using software on a general- real-time processing capable GNSS software receiver,
purpose processer instead of using hardware. called GNSS-SDRLIB [18]. GNSS-SDRLIB is a very
simple and easy-to-use GNSS signal processing tool
Many front-ends, which can convert a radio frequency written in C, and it contains a GUI application written in
(RF) signal into a digitally sampled IF, are on the market C++/CLI to easily analyze real-time GNSS signals. It is
today; some of these are designed to capture GNSS released under the GNU general public license (GPL)
signals and are widely available [24-31]. In the case of version 3; we can share and modify the source code for
using software for the baseband processing, the barrier to any purpose. In this paper, we describe the architecture
and functions of GNSS-SDRLIB and analyze its time positioning, the output of position solutions and
positioning performance using a consumer-ready front- observation data in a common format will provide
end and general purpose computer. benefits for users in terms of usability. GNSS-SDRLIB
supports the output of GNSS observation data in the latest
The remainder of the paper contains the following. In RINEX 3.02 format, which supports all the GNSS
Section 2, the architecture and functions of the proposed satellites such as the BeiDou observation data.
GNSS software receiver are described. Section 2 also Furthermore, GNSS-SDRLIB can output an RTCM 3.2
describes the method used to process a GNSS signal in multi-signal message (MSM) for real-time processing.
the software in order to generate the GNSS observation Because of these functions, the software GNSS receiver
data. Positioning tests and an advanced application of the can be used like commercial hardware GNSS receivers.
proposed software are described in Section 3. Then, we
discuss the performance analysis of GNSS-SDRLIB. (3) Real-time processing and multi-GNSS support
Section 4 describes the plans to add new functions to the There are few open-source GNSS receivers that can be
proposed software. Finally, the conclusions of the paper used for real-time positioning with commercially
can be found in Section 5. available front-ends. In order to get real-time position
solutions using a GNSS front-end, an interface between a
computer and front-end must be implemented. Typical
2. ARCHITECTURE AND FUNCTIONS
commercially available front-ends provide interfaces
through USB or Ethernet buses in order to send
2.1. GNSS-SDRLIB overview
digitalized IF data to a computer. However, the transfer
A general GNSS software receiver performs all of the
data size exceeds tens of megabytes per second
baseband signal processing using software on a general
(depending on the sampling frequency and bit resolution)
purpose computer. Some open-source software GNSS
and the protocol (format) is also dependent on the GNSS
receiver projects already exist. Therefore, a differentiation
front-end. The interface function and transfer control of
strategy is important to attract GNSS researchers to the
the specified GNSS front-end must be implemented on
GNSS software receiver field. We consider the following
the software GNSS receiver side. GNSS-SDRLIB
points to be important characteristics of GNSS-SDRLIB.
supports many commercially available front-ends, and we
verified the real-time processing performance with these
(1) Cooperation with RTKLIB [19, 20]
front-ends. In addition, GNSS-SDRLIB fully supports
RTKLIB is an open source software package written in C
multi-GNSS constellations such as GPS, GLONASS,
for GNSS data analysis and distributed under a BSD 2-
Galileo, BeiDou, and QZSS L1 signals in real-time
Clause license. RTKLIB provides many powerful API
positioning. Almost all other open-source software
functions that are needed in GNSS data analysis,
receivers only partly support multi-GNSS signals. This is
including read and write functions for the commonly used
an advantage compared with other software receivers.
RINEX and RTCM formats and position computation
based on single point positioning, differential GNSS (D-
Figure 2 shows the configuration of GNSS-SDRLIB.
GNSS), real-time kinematic GNSS (RTK-GNSS), and
GNSS-SDRLIB consists of the source code for the
precise point positioning (PPP). It also includes GUI
baseband processing and other libraries. GNSS-SDRLIB
applications such as a real-time positioning application
uses RTKLIB [19] to read and write in the RINEX and
with a GNSS receiver (RTKNAVI) and an application for
RTCM formats, a fast Fourier transform (FFT) library
visualizing the current GNSS status and position solutions
[21] for parallel signal acquisition, and a forward error
(RTKPLOT). We merged RTKLIB into the GNSS-
correction (FEC) library [22] for decoding navigation
SDRLIB project and used RTKLIB API functions as
messages inside the software. These libraries are released
much as possible. Using RTKLIB made it possible to
under the open-source license. A real-time position
focus on developing the baseband signal processing in
solution can be computed through RTKNAVI (RTKLIB
GNSS-SDRLIB. Hence, the most important code related
GUI application) using the TCP/IP connection in the
to a software receiver can be simple, compact, and
RTCM MSM format. The observation data can be stored
readable.
in the RINEX format for post-processing purposes. The
signal acquisition results and correlation outputs can be
(2) Output of observation data in common format
visualized using GNUPLOT, which is a portable
Almost all open-source GNSS software receivers can
command-line driven graphing tool [23]. A spectrum
output position solutions and GNSS observation data
analysis function is also provided through GNUPLOT. It
(pseudorange, carrier phase, etc.) in their original formats.
can be used to confirm the front-end performance and
Only GNSS-SDR [16] supports the output of a RINEX
check the incoming signal. These visualization functions
file, which is commonly used in hardware GNSS
can be used for checking the signal processing status,
receivers for post-processing purposes. However, it does
analyzing the signal quality, monitoring a multipath signal,
not support the RTCM format, which can be used in real-
etc.
time data transfer. If we use the software receiver for real-
GNSS-SDRLIB Table 1. Specifications of GNSS-SDRLIB.
RTCM
GNSS RCV MSM RTKNAVI Software
Front end stereo.h stereo.lib TCP/IP GNU GPLv3
RTKPLOT License
IF data sdr.h ・Position computation
sdrplot.c sdrmain.c ・Display solution
Programming
sdrcmn.c C (GUI is written in C++/CLI)
FEC language

fec.h
fec.lib RTKLIB Obs. and Platform Windows 7,8 32/64 bit, Linux (Ubuntu 64 bit)
Nav. data
GNUPLOT rtklib.h RINEX
Pipe
FFT rtkcmn.c
FILE Hardware NSL STEREO, SiGe GN3S Sampler v2, SiGe GN3S
・Display acquisition ・Generation of support Sampler v3, RTL-SDR dongle, Nuand BladeRF
result, correlation output fftw.h rinex.c RINEX navigation
, and spectrum analysis fftw.lib … and observation file
Code generation: all existing GNSS signals
Multi-GNSS
Fig.2. Configuration of GNSS-SDRLIB. support
Positioning: GPS L1CA, GLONASS G1, Galileo E1,
BeiDou B1, QZSS L1CA

Navigation GPS L1 (LNAV), GLONASS Nav., Galileo E1B


The specifications of GNSS-SDRLIB are listed in Table 1. data (I/NAV), BeiDou B1(D1/D2 NAV)
The features of GNSS-SDRLIB are described as follows:
Decoding
SBAS L1 message (for DGPS), QZSS L1-SAIF (for
special
(1) GNSS-SDRLIB provides GNSS signal acquisition, DGPS), QZSS LEX message (for PPP)
message
tracking, pseudorange generation, navigation message
decoding, and spectrum analysis functions for GNSS Output RINEX (file), RTCM-MSM (TCP/IP)
signal processing, which is required for position
computation. All of the source code was exclusively
developed from scratch. GNSS-SDRLIB is very simple,
easy to use, and easy to port to other projects.

(2) The generation of all the existing GNSS ranging codes


such as GPS/QZSS L1CA, L1C, L2C, and L5, RTL-SDR dongle Nuand bladeRF
GLONASS G1 and G2, Galileo E1, E5a, and E5b,
BeiDou B1I and B2I, and QZSS LEX are supported. We
can evaluate and analyze new GNSS signals using GNSS-
SDRLIB.

(3) GNSS-SDRLIB works in both the Windows and


Linux environments. In the case of real-time processing, it SiGe GN3S Sampler v2/v3 NSL Stereo
requires a large amount of computational power for signal Fig.3. Commercially available front-ends supported by GNSS-
processing. However, we use the SIMD operations (SSE2, SDRLIB.
AVX, and AVX2) to speed up the computations; thus, a
laptop PC with Intel Core i5/i7 is capable of real-time
signal processing.
For example, DVB-T USB dongles [24] based on the
(4) GNSS-SDRLIB supports the decoding of special Realtek RTL2832U chip is widely used as an ultra-cheap
navigation messages, satellite-based augmentation system ($10~20) SDR front-end in SDR communities. This type
(SBAS) L1 messages, QZSS L1-SAIF messages for D- of front-end is called RTL-SDR, and the driver and
GPS, and QZSS LEX messages for real-time PPP. library of RTL-SDR are provided in order to obtain IF
data through this device. The maximum sample rate of
The algorithms of the GNSS software receiver can be RTL-SDR is about 2.4 million samples per second
easily modified based on the desired requirements. The without lost samples. This means that up to 2.4 MHz of
function described in this section will be expanded in the the radio spectrum can be captured at once. However, this
future developments. bandwidth limitation is not suitable for GNSS receivers.
In addition, the positioning performance using RTL-SDR
2.2. GNSS front-ends is not good because of poor oscillator stability and
There are several commercially available RF front-ends accuracy [32]. The SiGe GN3S Sampler v2 and v3 based
that convert RF signals into digitalized IF signals for on the SiGe 4120 GPS chip [25, 26] provide a data stream
baseband processing. GNSS-SDRLIB supports many with a sampling frequency of up to 16.3676 MHz and a
commercially available front-ends for real-time bandwidth up to 4.4 MHz. The GLONASS and BeiDou
processing, as shown in Figure 3. L1 signals cannot be received because they are designed
to capture the GPS L1 signal (1575.42 MHz) as a GPS
front-end. However, the positioning accuracy
performance using these front-ends is quite good. The GNSS L1 signal Replica code generation
bladeRF [27] is an open-source SDR transceiver; it is
capable of receiving and transmitting RF signals. The IF data Acquisition
sampling rate can be set up to 40 MHz, and 12-bit full
Initial Code Phase Doppler Freq.
duplex quadrature samples are obtained via a USB 3.0 Front-end
interface. NSL Stereo [28] has two front-ends based on Tracking
the Maxim MAX2769 RF chip [29] and Maxim MAX212
RF chip. This means that it is capable of capturing dual
frequency bands simultaneously. Stereo makes it possible
to configure a bandwidth and sampling frequency of up to PLL/FLL DLL
40 MHz. MAX2769 is designed to capture a GNSS L1
signal (1550~1610 MHz), and MAX2112 can be Doppler Freq. Code Phase
configured to capture a GNSS L-band signal (925~2175
Nav. Data Synchronization
MHz). Therefore, this front-end is suitable for capturing
multi-GNSS signals. Navigation Message Bits
Nav. Data Decode
GNSS-SDRLIB also supports any recorded IF data stored
in a file using any front-end for post-processing. In the
future, we plan to support additional commercially Pseudorange Computation
available RF front-ends for real-time processing. RINEX Output
Fig. 4. Signal processing flow of GNSS-SDRLIB during baseband
2.3. Baseband processing processing.
In the baseband processing, the signals digitalized by the
GNSS front-ends are processed for position computation circulating moving local code replica. The output of the
in the software. Figure 4 shows the signal processing flow correlator in the frequency domain is expressed as
of GNSS-SDRLIB during the baseband processing. First, follows:
the specified replica code is generated for the acquisition
and tracking of the incoming signal. Then, the digitalized ( ) { ( )} { ( )} (1)
IF data from a front-end or file is correlated with the local
replica code in the frequency domain using FFT to where fFFT{.} denotes the FFT function, and f *FFT{.}
acquire the signal. If the signal is acquired in the denotes the complex conjugate FFT function. Here,
acquisition step, the code phase and carrier frequency can fIFFT{.} denotes the inverse FFT (IFFT). The correlation
be estimated. In the tracking step, the code phase and output in the time domain y(t) is calculated using the
carrier frequency are maintained using the carrier following equation:
frequency locked loop (FLL), phase locked loop (PLL),
and delay locked loop (DLL) based on the signal ( ) { ( )} (2)
correlator outputs. The output of the tracking result
contains the GNSS navigation messages. When the The input digitalized samples may contain a bit transition
navigation message bits are synchronized, the navigation caused by the navigation data or secondary code. In this
message is decoded. The pseudorange is generated using situation, the correlation amplitude is decreased from its
the code phase information and time information ideal value. GNSS-SDRLIB uses the double-length zero-
contained in the navigation message. Finally, the position padding FFT [33, 34] for the circular correlation in order
solution can be computed using the front-end and GNSS to get the perfect correlation outputs. A double-length
software receiver. code replica is generated for the double-length zero-
padding FFT. Hence, the computational cost is almost
A. Signal acquisition doubled. The correlation outputs are integrated using non-
The acquisition of GNSS signals in the acquisition step coherent integration to improve the signal-to-noise ratio.
includes a two-dimensional search in the Doppler Then, a simple threshold test is performed to determine
frequencies and the code phases based on the correlation whether or not the GNSS signal exists.
with the local replica code and received signal. In general,
traditional hardware receivers perform the correlation to The FFT performance is dependent on the library used to
acquire GNSS signals in the time domain. Instead, the implement the FFT algorithm. GNSS-SDRLIB uses the
parallel code correlation is suitable for software receivers FFTW library [21] for the FFT in the parallel circular
based on the FFT technique. This is well-known as the correlation algorithm. FFTW is already optimized using
circular correlation algorithm [4]. Here, x(t) is denoted as the SIMD technology. In addition, the FFT is performed
the ranging code in the signal, and c() is denoted as the in parallel threads to speed up the calculations. Figure 5
shows the result of the signal acquisition in GNSS-
GPS PRN19 GPS PRN19 BeiDou PRN8

Fig.5. Result of signal acquisition in GNSS-SDRLIB.


Fig.6. Multiple correlator outputs of GPS L1CA and BeiDou B1I
SDRLIB. The two-dimensional search results are signals in GNSS-SDRLIB.
visualized using GNUPLOT in order to check whether the
signal is acquired. It can be seen that a unique peak exists
where IP and QP are the prompt correlator outputs.
at the specified Doppler frequency and code phase.
The signal correlation computation in the tracking step
B. Signal acquisition
has the heaviest computational burden in the GNSS
In the signal tracking step, the carrier frequency and code
software receiver. All the correlation computations of all
phase of the incoming signal must be maintained. In order
the channels must be finished within 1 ms when we track
to estimate and keep the code phase, DLLs based on early,
the GPS L1CA code in real time. We use the SIMD
prompt, and late correlators are commonly used to
operation (SSE2 and AVX2) to speed up the
estimate and feedback the code phase error. Here, we use
computations. The SIMD instructions can be executed in
multi-correlators for research purposes such as monitoring
parallel, and it can also increase the speed of the
and mitigating multipath error. However, we use the
calculations. The latest Intel CPUs (after Haswell) support
traditional E-P-L correlator for the signal tracking. The
AVX2 instructions. The computational speed becomes 16
default number of correlators in GNSS-SDRLIB is 13,
times faster than that without using AVX2 in an ideal
and the early and late correlator space is 0.5 chip. The
situation. Figure 6 shows the multiple correlator outputs
number of correlators is changeable as desired, but the
of GPS L1CA and BeiDou B1I signals in the tracking step.
computational burden must be considered in the case of
The circular markers indicate the correlation points. The
real-time processing. We use a second-order DLL with
blue markers indicate early, prompt, and late correlators.
the aid of the carrier frequency from the FLL/PLL in the
The sampling frequency is 20 million samples per second
code tracking [35]. The DLL discriminator DDLL used in
in this experiment.
GNSS-SDRLIB is expressed as follows:
C. Decoding navigation message
√ √ GNSS-SDRLIB supports GPS/QZSS L1CA, GLONASS
(3) G1, Galileo E1, and BeiDou B1I signals. All of the
√ √
navigation data broadcast in these signals must be
decoded in real time to obtain GNSS position solutions.
where IE, IL, QE, and QL are the early and late correlator The time information, satellite orbits, and clock correction
outputs. To track the carrier frequency and carrier phase, parameter (ephemerides) contained in the GNSS
the second-order PLL with the first-order FLL [35] are navigation message are needed for positioning. The
used in the software. The discriminators of the FLL and structures of the sets of navigation data are completely
PLL are expressed as follows: different in the different satellite systems. Thus, the
( )
individual decoding processes must be implemented in
(4) software GNSS receivers.

(5) GNSS-SDRLIB can decode a GPS LNAV message in


L1CA code, GLONASS navigation message in G1 code,
Galileo I/NAV in E1B code, and BeiDou G1, and G2
( ) (6) NAV in BeiDou B1I code. A Galileo I/NAV message is
totally different from other navigation messages because
Antenna

NSL STEREO Laptop PC

Fig.7. Setup of test for real-time positioning accuracy with multi-


GNSS.

Fig.8. Fish-eye image captured at antenna position.


it is encoded with a 1/2 convolutional code. The Fano and
Viterbi decoders are often used to decode convolutional
code. GNSS-SDRLIB uses the Viterbi decoder, which is
implemented in the FEC library [22] in order to decode
Galileo I/NAV data. In the case of BeiDou navigation
data, there are two types of navigation data, called D1 and
D2 NAV. D1 NAV is broadcast from medium earth orbit
(MEO) satellites and inclined geosynchronous satellite
orbit (IGSO) satellites. D2 NAV is broadcast from
geostationary earth orbit (GEO) satellites. GNSS-
SDRLIB can decode both D1 and D2 NAV data to
compute a position using BeiDou satellites. The decoded
navigation messages can be output in a RINEX navigation
file or through TCP/IP in RTCM formats for the position
computation.

3. EVALUATIONS

3.1. Real-time positioning accuracy with multi-GNSS


Fig.9. Sky plot of constellation of GNSS satellites.
We carried out some tests to evaluate the GNSS-SDRLIB
performance and developed actual applications. First, we
describe the evaluation of the real-time positioning with
multi-GNSS using GNSS-SDRLIB and a commercially The processing window of the proposed software receiver
available front-end. The test setup is shown in Figure 7. during the real-time positioning test is shown in Figure 10.
We used an NSL Stereo front-end to capture multi-GNSS A total of 26 satellites could be acquired and tracked
signals, a GNSS antenna (Trimble, Zephyr 2), and a during the experiments. Multi-GNSS observation data
laptop PC (Intel® Core™ i7-3635QM, 4 GB) that were generated in real time and transmitted to RTKNAV,
included GNSS-SDRLIB for the real-time processing. which is one of the RTKLIB applications used for real-
The GNSS antenna was installed on the rooftop of a time positioning, to compute the position solutions. In this
building within the campus of the Tokyo University of experiment, GPS, Galileo, BeiDou, and QZSS L1
Marine Science and Technology, Japan. Figure 8 shows a pseudoranges were used to compute the location in the
fish-eye image captured at the antenna position in this test. single point positioning mode. The horizontal positioning
As can be seen, the test environment was an open-sky accuracy of the single point positioning with multi-GNSS
environment. Figure 9 shows the sky plot of the constellations is illustrated in Figure 11. The positioning
constellation of GNSS satellites during the test. GPS, errors in the east, north, and up directions are illustrated in
GLONASS, Galileo, BeiDou, and QZSS satellites were Figure 12. The standard deviations (SDs) in the east,
available. However, NSL Stereo can only capture dual- north, and up directions were 0.52, 0.65, and 1.50 m,
frequency signals. Hence, we evaluated the GPS, Galileo, respectively. The results of this experiment verified that
BeiDou, and QZSS constellation with the maximum the positioning performance of the proposed GNSS-
number of satellites. In this test, the position dilution of SDRLIB was not very different from those of hardware
precision (PDOP) value was 0.7. commercial receivers.
Fig.10. Processing window of GNSS-SDRLIB during real-time positioning test.

Position solutions
East
North error [m]

North
Up

East error [m]


Fig. 11. Horizontal position error in static test with multi-GNSS. Fig. 12. Time-series position errors in static test with multi-GNSS.
.
3.2. PPP by QZSS LEX message
We also developed a PPP based on the QZSS MADOCA- NSL STEREO
LEX message, which has been broadcast from April 2013
[2], using the GNSS-SDRLIB. The message contained in
the LEX signal is designed to provide a multi-GNSS
satellite clock and ephemeris correction for correcting the PC
GNSS positioning error via the QZSS satellite in real time.
Unfortunately, the LEX signal cannot be received, and its
message cannot be decoded for PPP using the currently
available commercial GNSS receivers. We developed a Antenna
QZSS LEX message decoder using GNSS-SDRLIB. The JAVAD DELTA

LEX signal uses CSK modulation [2]. The CSK


Fig.13. M Test setup for PPP by QZSS LEX message.
modulation shifts the phase of the LEX code by the
number of chips indicated in the 8-bit encoded message
50 100
symbol. In our previous work, we developed a novel
technique for decoding the MADOCA-LEX message

Elevation angle [deg]


using a software GNSS receiver without the use of an
LEX signal tracking loop. However, we did use the

C/N0 [dB]
conventional L1CA signal broadcast simultaneously from 40 50
the QZSS [37].

We conducted a static test for over 18 h to evaluate the


performance of the LEX decoder and the actual accuracy
of the real-time PPP. The test setup is shown in Figure 13. 30 0
0 2 4 6 8 10 12 14 16 18
We used a dual-frequency GNSS receiver (Javad (a) LEX carrier-to-noise-density
DELTA-G3T) in addition to the above-mentioned 20 100
experimental equipment to obtain the dual-frequency
Number of decode error

Elevation angle [deg]


observation required in the PPP processing. The GNSS 15 80

antenna was also installed at the same location.


10 60

Figure 14(a) shows the relationship between the QZSS 5 40


elevation angle and LEX carrier-to-noise density obtained
by the GNSS-SDRLIB. Figure 14(b) shows the 0 20
relationship between the QZSS elevation angle and
number of decoded symbol errors. The LEX message was -5
0 2 4 6 8 10 12 14 16 18
0
correctly decoded over many hours using the GNSS- Elipsed time [hour]
SDRLIB. The CN0 and number of decoded symbol errors (b) Number of decode error
were associated with the elevation angle. However, the
Fig.14. Relationship between QZSS elevation angle and number of
QZSS LEX message contained the Reed–Solomon error decoded symbol errors.
correction code. The decoded frame error could be
reduced because the Reed–Solomon code can correct a
maximum of 16 symbol errors. The horizontal positioning
errors of the single point positioning (red dots) and PPP
with the MADOCA-LEX message (green dots) are
illustrated in Figure 15. It should be noted that PPP
requires the convergence time to accurately estimate the
user position. In this test, the position solutions in the first
North error [m]

hour were ignored in the evaluation. The horizontal root


mean square (RMS) error of the position solution was
1.93 m using GPS single point positioning. In contrast,
the horizontal RMS error improved to 5.0 cm when using
QZSS MADOCA-LEX PPP. Thus, the proposed software
receiver could stably track and decode the QZSS LEX
Single point positioning
signal, and the application using the real-time software PPP with LEX message
GNSS receiver (PPP with the MADOCA-LEX message)
realized centimeter-class positioning in real time using East error [m]
only the information broadcast from satellites.
Fig.15. Horizontal position error in PPP with MADOCA-LEX.
3.3. Real-time processing performance 80
We evaluated the real-time processing performance of
GNSS-SDRLIB. The computational performance of a 70
software receiver is an important issue because of its 60
heavy computational burden. In general, hardware GNSS

CPU Load [%]


receivers are more efficient in terms of the computational 50
load because they are specially designed for GNSS signal 40
processing. GNSS-SDRLIB uses the SIMD instructions
and multi-thread implementation in order to improve the 30
performance. However, the heaviest computational power
20
is required in the tracking step. Thus, we evaluated the
3 correlators (E-P-L)
relationships between the CPU loads and available 10
13 correlators
number of channels in the tracking phase. To determine
0
the best performance, we used a high-performance 10 15 20 25 30 35 40 45 50
desktop computer (Intel® Core™ i7-3770, 16 GB). The Number of channels
SSE2 instructions were enabled in the signal correlator Fig.16. Relationship between CPU load and number of channels of
functions, and the front-end sampling rate was 20 million GNSS-SDRLIB in real-time processing.
samples per second. Figure 16 shows the relationship
between the CPU load and number of channels of the
software receiver. In the case of using the conventional E- (3) Real-time kinematic (RTK)-GNSS support
P-L correlator and GPS L1CA code, GNSS-SDRLIB RTK-GNSS uses pseudoranges and carrier phase data to
worked with 46 channels in the real-time processing. It find integer ambiguity resolutions to obtain centimeter-
could be verified that GNSS-SDRLIB had sufficient level position accuracy. In general, this requires “survey-
performance to analyze a multi-GNSS constellation in the grade” GNSS receivers, which can output high-quality
real-time processing. carrier phase measurements. RTK-GNSS is still a
challenge in the field of GNSS software receivers. We
IV. FUTURE PLANS will first try to develop an L1 RTK-GNSS. Then, we will
develop dual-frequency RTK-GNSS-capable software
GNSS-SDRLIB is still under active development. We receivers.
have plans to add new functions and improve the
performance of GNSS-SDRLIB. The future development VI. CONCLUSION
plans are as follows:
In this paper, we described a novel open-source and real-
(1) Additional front-end support time processing-capable GNSS software receiver, called
We are considering supporting universal software radio GNSS-SDRLIB. GNSS-SDRLIB is a very simple and
peripheral (USRP) front-ends [30], which are commonly easy-to-use GNSS signal processing tool written in
used in the SDR community. Although this will not be C/C++/CLI, and it consists of several application
only for GNSS front-ends, many GNSS researchers programs. GNSS-SDRLIB provides GNSS signal
develop real-time GNSS software receivers using this acquisition, tracking, pseudorange generation, navigation
device. Further, we will focus on open hardware GNSS message decoding, and spectrum analysis functions for
front-ends. An open hardware front-end has many GNSS signal processing, which is required for position
benefits for users, just as with open source receivers. computation. The architecture, configuration, and
GNSS Firehose [31] is being developed as an open characteristics of GNSS-SDRLIB were described in this
hardware project. It has three RF front-ends and can paper. GNSS-SDRLIB supports many commercially
record triple-frequency observables from multi-GNSS available front-ends, and we verified the real-time
satellites. It is still under development. However, GNSS- processing performance with these front-ends. In addition,
SDRLIB will support it in the future. it fully supports multi-GNSS constellations such as GPS,
GLONASS, Galileo, BeiDou, and QZSS L1 signals, in
(2) Multi-frequency signal support real-time positioning.
GNSS-SDRLIB already supports all the existing L1
ranging codes for GNSS satellites. However, the From the results of a positioning test, we confirmed that
generation of multi-frequency observables is still a GNSS-SDRLIB has sufficient performance to analyze a
challenge in an open-source GNSS software receiver. We multi-GNSS constellation using real-time processing.
will support new signals designed for civilian use, GNSS-SDRLIB is released under the GPL v3, and we
including L2C, L5, and L1C, to evaluate dual-frequency expect it to be widely used for research and educational
GNSS software receivers. purposes to learn GNSS signal processing and develop
GNSS algorithms and applications. Further, we expect
that the performance and ability of GNSS-SDRLIB will
be considerably improved by future developments. [10] Y.-H. Chen, J.-C.Juang, D. S. De Lorenzo, J. Seo, S.
Lo, P. Enge, D. M. Akos, "Real-Time Dual-Frequency
(L1/L5) GPS/WAAS Software Receiver," Proceedings of
ACKNOWLEDGMENTS
the 24th International Technical Meeting of The Satellite
Division of the Institute of Navigation (ION GNSS 2011),
This work was supported by Grant-in-Aid for Japan
Portland, OR, September 2011, pp. 767-774.
Society for the Promotion of Science (JSPS) Fellows.
[11] C. Fern´andez–Prades, J. Arribas, P. Closas, C.
REFERENCES Avil´es, and L. Esteve, “GNSS-SDR: An open source tool
for researchers and developers,” in Proc. of the ION
[1] CSNO, BeiDou Navigation Satellite System Signal In GNSS 2011 Conference, Portland, Oregon, Sept. 2011.
Space Interface Control Document Open Service Signal,
Version 2.0, China Satellite Navigation Office, 26 [12] “OpenSourceGPS,”
December 2013 http://sourceforge.net/projects/osgps/, (accessed
September 22, 2014)
[2] Japan Aerospace Exploration Agency, “Quazi-Zenith
Satellite System Navigation Service, Interface [13] “SoftGNSS,” http://ccar.colorado.edu/gnss/,
Specification for QZSS (IS-QZSS) Version 1.5” (accessed September 22, 2014)
Technical report, 2013.
[14] “FastGPS,” http://sourceforge.net/projects/fastgps/,
[3] D. Akos, A Software Radio Approach to Global (accessed September 22, 2014)
Navigation Satellite System Receiver Design, Ph.D. thesis,
College of Engineering and Technology, Ohio University, [15] “GPS-SDR,” https://code.google.com/p/gnsssdr/:
Aug. 1997. (accessed September 22, 2014)

[4] J. Bao-Yen Tsui, Fundamentals of Global Positioning [16] “GPS-SDR,” https://github.com/gps-sdr, (accessed
System Receivers. A Software Approach, John Wiley & September 22, 2014).
Sons, Inc., Hoboken, NJ, 2nd edition, 2005.
[17] “GNSS-SDR,” https://github.com/gps-sdr, (accessed
[5] K. Borre, D. M. Akos, N. Bertelsen, P. Rinder, and S. September 22, 2014)
H. Jensen, A Software–Defined GPS and Galileo
Receiver. A Single–Frequency Approach, Applied and [18] “GNSS-SDRLIB,”
Numerical Harmonic Analysis. Birkh¨auser, Boston, MA, http://www.taroz.net/gnsssdrlib_e.html, (accessed
2007. September 22, 2014)

[6] V. Chakravarthy, J. Tsui, D. Lin, and J. Schamus, [19] “RTKLIB: An Open Source Program Package for
“Software GPS receiver,” GPS Solutions, vol. 5, no. 2, pp. GNSS Positioning,” http://www.rtklib.com/, (accessed
63–70, Oct. 2001. September 22, 2014)

[7] C. Kelley, J. Barnes, and J Cheng, “OpenSource GPS. [20] T.Takasu and A.Yasuda, “Development of the low-
Open source software for learning about GPS,” in Proc. of cost RTK-GPS receiver with an open source program
the 15th International Technical Meeting of the Satellite package RTKLIB,” International Symposium on
Division of the Institute of Navigation (ION GPS’02), GPS/GNSS, International Convention Center Jeju, Korea,
Portland, OR, Sept. 2002. November 4-6, 2009

[8] Gunawardena, S., “A Universal GNSS Software [21] FFTW, http://www.fftw.org/, http://www.fftw.org/,
Receiver MATLAB Toolbox for Education and Research,” (accessed September 22, 2014)
in Proc. of the 26th International Technical Meeting of
The Satellite Division of the Institute of Navigation (ION [22] DSP and FEC Library,
GNSS+ 2013), pp. 1560-1576, Nashville, Tennessee, http://www.ka9q.net/code/fec/, (accessed September 22,
USA, Sept. 2013. 2014)

[9] M. G. Petovello, C. O’Driscoll, G. Lachapelle, D. [23] Gnuplot, http://www.gnuplot.info/, (accessed


Borio, and H. Murtaza, “Architecture and benefits of an September 22, 2014)
advanced GNSS software receiver,” Positioning, vol. 1,
no. 1, pp. 66–78, 2009.
[24] RTL-SDR, http://sdr.osmocom.org/trac/wiki/rtl-sdr,
(accessed September 22, 2014)

[25] Sparkfun Electronics, SiGe GN3S Sampler v3,


https://www.sparkfun.com/products/10981, (accessed
September 22, 2014)

[26] SiGe Semiconductor, “SE4120L GNSS receiver IC


datasheet,” May 26, 2009, Ottawa, ON, Canada.

[27] Nuand, bladeRF Software Defined Radio,


http://nuand.com/, (accessed September 22, 2014)

[28] Nottingham Scientific Ltd Stereo Dual Frequency


SDR FE, http://www.nsl.eu.com/primo.html, (accessed
September 22, 2014)

[29] Maxim Integrated Products, Sunnyvale, CA,


MAX2769 Universal GPS Receiver, June 2010, Ref. 19-
0791; Rev2.

[30] Ettus Research USRP™ (Universal Software Radio


Peripheral), http://www.ettus.com/, (accessed September
22, 2014).

[31] GNSS Firehose,


https://github.com/pmonta/GNSS_Firehose, (accessed
September 22, 2014).

[32] C. Fernández-Prades, J. Arribas, P. Closas, “Turning


a Television into a GNSS Receiver,” in Proc. of the ION
GNSS+ 2013 Conference, Nashville, Tennessee (USA),
15-16 Sept. 2013.

[33] D. Sundararajan.. “Digital signal processing: theory


and practice,” World Scientific Publishing Company, pp.
43-58, Singapore, 2003.

[34] Yang, C., “FFT Acquisition of Periodic, Aperiodic,


Puncture, and Overlaid Code Sequences in GPS,”
Proceedings of the ION GPS 2001, Sept. 11-14, 2001,
Salt Lake City, UT, pp. 137-147.

[35] Kaplan, E. and Hegarty, C., Understanding GPS:


Principles and Applications, 2nd Edition, Artech House,
Boston, 2005.

[36] G. W. Heckler and J. L. Garrison, “SIMD correlator


library for GNSS software receivers,” GPS Solutions, vol.
10, no. 4, pp. 269–276, Nov. 2006.

[37] T. Suzuki, N. Kubo, T. Takasu, “Evaluation of


Precise Point Positioning Using MADOCA-LEX via
Quasi-Zenith Satellite System,” ION-ITM 2014, San
Diego USA, 2014.

You might also like