Professional Documents
Culture Documents
GNSS-SDRLIB: An Open-Source and Real-Time GNSS Software Defined Radio Library
GNSS-SDRLIB: An Open-Source and Real-Time GNSS Software Defined Radio Library
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
3. EVALUATIONS
Position solutions
East
North error [m]
North
Up
C/N0 [dB]
conventional L1CA signal broadcast simultaneously from 40 50
the QZSS [37].
[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)