GNSS software-defined receiver: Difference between revisions

Content deleted Content added
Comparison of GNSS SDR implementations: rm editor note which should not be visible to readers
 
(48 intermediate revisions by 36 users not shown)
Line 1:
{{short description|GNSS receiver implemented in software}}
{{Comparison|date=September 2013}}
{{distinguish|GNSS navigation software}}
{{Third-party|date=June 2020}}
A GNSS receiver is an electronic device that receives and digitally processes the signals from a GNSS satellite constellation in order to provide position, velocity and time (of the receiver).
A '''software GNSS receiver''' is a [[Satellite navigation|Global Navigation Satellite System]] (GNSS) receiver that has been designed and implemented using [[software-defined radio]].
There are several ways to implement [[GNSS]] (GPS) receiver:
 
The traditional one is in hardware GNSS receiver is conceived as a dedicated chip (i.e., application specific integrated circuits, or ASICs) that has been designed and built (from the very beginning) with the only purpose of being a GNSS receiver. The innovative one is in software. A software GNSS receiver is a GNSS receiver that has been designed and implemented as software running on standard [[Digital signal processor|DSP]] or [[CPU]], following the philosophy of Software-defined radio . Another way is a combination of the hardware and the software solutions
A GNSS receiver, in general, is an electronic device that receives and digitally processes the signals from a navigation satellite constellation in order to provide position, velocity and time (of the receiver).
 
GNSS receivers have been traditionally implemented in hardware: a ''hardware GNSS receiver'' is conceived as a dedicated chip that has been designed and built (from the very beginning) with the only purpose of being a GNSS receiver.
 
In a software GNSS receiver, all digital processing is performed by a general purpose [[microprocessor]]. In this approach, a small amount of inexpensive hardware is still needed, known as the ''[[RF front end|frontend]]'', that digitizes the signal from the satellites. The microprocessor can then work on this ''raw'' digital stream to implement the GNSS functionality.
 
== Hardware vs. software GNSS receivers==
Line 9 ⟶ 14:
 
* Hardware GNSS receivers are in general more efficient from the point of view of both computational load and power consumption since they have been designed in a highly specialized way with the only purpose of implementing the GNSS processing.
* Software GNSS receivers allow a huge flexibility: many features of the receiver can be modified just through software. This provides the receiver with adaptive capabilities, depending on the user's needs and working conditions. In addition, the receiver can be easily upgraded via software.<ref>[https://www.gpsworld.com/challenges-status-perspectives-real-time-software-receivers Real-Time Software Receivers], GPS World, September 1, 2009 by Pierre-André Farine, Marcel Baracchi-Frei, Grégoire Waelchli, Cyril Botteron</ref>
 
* Software GNSS receivers allow a huge flexibility: many features of the receiver can be modified just through software. This provides the receiver with adaptive capabilities, depending on the user's needs and working conditions. In addition, the receiver can be easily upgraded via software.<ref>[http://www.gpsworld.com/gnss-system/receiver-design/real-time-software-receivers-8812 Real-Time Software Receivers], GPS World, September 1, 2009 by Pierre-André Farine, Marcel Baracchi-Frei, Grégoire Waelchli, Cyril Botteron</ref>
 
* Under some assumptions, Software GNSS receivers can be more profitable for some applications, as long as sufficient computational power is available (and can be shared among multiple applications). For example, the microprocessor of a [[smartphone]] can be used to provide GNSS navigation with the only need of including a frontend (instead of a full, more expensive, hardware receiver).
 
Currently, most of the GNSS receiver market is still ''hardware''. However, there already existsexist operational solutions based on the software approach able to run on low-cost microprocessors. Software GNSS receivers are expected to increase their market share or even take over in the near future, following the development of the computational capabilities of the microprocessors ([[Moore's law]]).
 
== Comparison of GNSS SDR implementations ==
:''This comparison is strictly about GNSS SDR; please do not include general GNSS positioning and mapping software.''
{{Needs table|section=y|date=August 2015}}
*'''Galileo Satellite Navigation LTD.- GSN''':
**URL: http://galileo-nav.com
**Business Model - IP core license + royalties
**''Development''
Line 51 ⟶ 52:
***Multi-correlator: yes
***Sample data recording: yes
 
* '''SX3''' (formerly SX-NSR)
** ''General information:''
*** URL: http://www.ifen.com/products/sx-scientific-gnss-solutions/sx-software-receiver.html
*** Publication: http://gpsworld.com/software-gnss-receiver-an-answer-for-precise-positioning-research
** ''Development:''
*** Programming language: C++
*** User interface (none, [[Command-line interface|CLI]], [[GUI]]): CLI, GUI
*** Under active development (as-of date): yes (20152016-AugMar-0617)
*** Creator/sponsor organization: IfEN GmbH, Germany
*** Latest release (version and date): v3.02.61, AprilMarch 20152016
*** First release (version and date): v1.0, March 2007
** ''Hardware support:''
Line 73 ⟶ 72:
*** [[BeiDou]]: B1, B2
*** [[SBAS]]: EGNOS
*** [[QZSS]]: L1CAL110CAdieyure
*** [[IRNSS]]: L5, S-Band
** ''Features:''
*** Acquisition: yes (several algorithms)
Line 85:
*** Application programming interface: yes
*** Dual antenna support: yes
*** Scintillation monitoring: yes
*** Multi-correlator: yes
*** Sample data recording: yes
*** [[Multipath mitigation]]: yes (several algorithms)
* '''GNSS-SDRLIB'''
** ''General information:''
*** Publication:
*** URL: http://www.taroz.net/gnsssdrlib_e.html
***[[Software licence]]: [[GNU General Public License]] 2+
*** Publication:
*** [[Software licence]]:
** ''Development:''
*** Programming language: C
Line 119:
*** Position estimation: yes (through RTKLIB)
*** Maximum number of real-time channels demonstrated: ?
* '''ARAMIS''' (formerly iPRx)
 
**''Versions:''
* '''ARAMIS(TM)''' (formerly iPRx)
*** Free academic version
** ''Versions:''
*** Free academic version : http://www.ip-solutions.jp/free%20SDR%20receiver.html
*** Ionospheric Scintillation Monitor receiver
*** R&D version
** ''General information:''
*** URL: http://www.ip-solutions.jp/ionosphere_scintillation_monitor.html
*** Publication: http://www.cambridge.org/us/academic/subjects/engineering/communications-and-signal-processing/digital-satellite-navigation-and-geophysics-practical-guide-gnss-signal-simulator-and-receiver-laboratory
** ''Development:''
Line 133 ⟶ 131:
*** Under active development (as-of date): yes (2014-Nov)
*** Creator/sponsor organization: iP-Solutions, Japan, JAXA, Japan
*** Latest release (version and date): AprilFebruary 20142018
*** First release (version and date): April 2008
** ''Hardware support:''
*** Front-ends: Eagle, FEM, MFRSimceiver
*** Multicore supported: yes
** ''GNSS/SBAS signals support:''
*** [[GPS]]: L1CA, L2P (codeless)L2C
*** [[GLONASS]]:BeiDou G1B1, G2B2
*** [[GLONASS]]: G1, G2, G3
*** [[Galileo (satellite navigation)|Galileo]]: E1
*** IRNSS: L5, S
*** [[QZSS]]: L1CA
*** SBAS
** ''Features:''
*** Acquisition: yes
Line 156 ⟶ 157:
*** Sample data recording: yes
* '''SoftGNSS''' v3.0 (also known as SoftGPS)
** ''General information:''
*** Publication: https://www.springer.com/birkhauser/engineering/book/978-0-8176-4390-4
*** URL: [http://gfix.dk/matlab-gnss-sdr-book/ SoftGNSS @ Aalborg Team ], [http://ccar.colorado.edu/gnss SoftGNSS @ University of Colorado]
*** Publication: http://www.springer.com/birkhauser/engineering/book/978-0-8176-4390-4
*** Source code: included with the book
*** [[Software licence]]: [[GPL]] v2
*** Non real-time (post-processing) GNSS software receiver
** ''Development:''
Line 181:
*** Position estimation: yes
* '''GNSS-SDR''', An open source GNSS Software Defined Receiver
** ''General information:''
***[[Software licence]]: [[GPL]] v3
*** URL: http://gnss-sdr.org/
*** Source code: http://sourceforge.net/projects/gnss-sdr/
*** [[Software licence]]: [[GPL]] v3
** ''Development:''
*** Programming language: C++
*** User interface (none, [[Command-line interface|CLI]], [[GUI]]): CLI.
*** Number of developers: 826 (along the project)
*** Under active development (as-of date): yes (20132021-SepJan-2508)
*** Creator/sponsor organization: [http://www.cttc.es/ Centre Tecnològic de Telecomunicacions de Catalunya]
*** Latest release (version and date): ongoing development0.0.14 (as Sept.Jan 20132021)
*** First release (version and date): 2011-Mar-11 first svn commit
** ''Hardware support:''
*** Front-ends: UHD-compatible ([[USRP]] v1, v2, etc.family), OsmoSDR-compatible (RTL2832-based USB dongles, andbladeRF, HackRF One), SiGe GN3S Sampler v2, AD-FMCOMMS2-EBZ
*** Host computer special hardware supported: [[SIMD]] (via VOLK and VOLK_GNSSSDR), CUDA
*** Multicore supported?: Yes
** ''GNSS/SBAS signals support:''
*** [[GPS]]: L1CA, L2C, L5
*** [[GLONASS]]: L1SP, L2SP
*** [[Galileo (satellite navigation)|Galileo]]: E1b, E1c, E5a
*** BeiDou: B1I, B3I
*** [[SBAS]]: EGNOS
** ''Features:''
Line 210 ⟶ 208:
*** Decoding navigation data: yes
*** Position estimation: yes
*** Maximum number of real-time channels demonstrated: 8> 100
*** Output formats: [[RINEX]], [[KML]], [[GPS Exchange Format|GPX]], [[GeoJSON]], [[NMEA_0183|NMEA]], [[RTCM]], intermediate results stored in binary .mat files readable from [[MATLAB]] and [[GNU_Octave|Octave]], and from [[Python_(programming_language)|Python]] via h5py.
*** Output formats: [[RINEX]], [[KML]]
* '''GRID''', Generalized Radionavigation Interfusion Device
 
**''General information:''
* '''GNSS-SDR''', An open source GNSS Software Defined Receiver based on SoftGNSS v3.0
***[[Software licence]]: Commercial
** ''General information:''
***Publication: [https://radionavlab.ae.utexas.edu/wp-content/uploads/2022/10/Nichols_ION_GNSS_2022.pdf Software-Defined GNSS is Ready for Launch]
*** URL: http://gnss-sdr.ru/index.php?blogid=2
***Contact: [https://radionavlab.ae.utexas.edu/contact/ Radionavigation Laboratory], [https://locuslock.com/contact-3/ Locus Lock]
*** Source code: https://code.google.com/p/gnsssdr/
*** [[Software licence]]: [[GPL]] v3
*** Non real-time (postprocessing) GNSS software receiver
** ''Development:''
*** Programming language: SciLabC++
*** Platforms: Linux, Windows, MacOS
*** Number of developers: 1
*** User interface (none, [[Command-line interface|CLI]], [[GUI]]): CLI.
*** Under active development (as-of date): yes (2013-Sep-25)
*** Number of developers: 15 (along the project)
** ''GNSS/SBAS signals support (separate version for each band of each GNSS):''
*** Under active development (as-of date): yes (2023-Apr-28)
*** [[GPS]]: L1CA
*** Creator/sponsor organization: University of Texas at Austin
*** GLONASS: L1SP, L2SP, L3 (L3 CDMA is under development)
*** Latest release (version and date): 2022 annual release
*** [[Galileo (satellite navigation)|Galileo]]: E1 (under development)
*** First release (version and date): 2008-Jul-01
*** BeiDou: B1I
** ''Hardware support:''
*** Front-ends: Several and, practically speaking, any.
*** Host computer special hardware supported: Intel SIMD (SSE2 through AVX-512), ARM NEON (64-bit and 128-bit)
*** Multicore supported?: Yes
** ''GNSS/SBAS signals support:''
*** [[GPS]]: L1CA, L2C, L5
*** [[Galileo (satellite navigation)|Galileo]]: E1b, E1c, E5a
*** [[QZSS]]: L1CA
*** [[SBAS]]: WAAS L1
** ''Features:''
*** Acquisition: yes (several algorithms)
*** Tracking: yes (several algorithms)
*** Generating pseudo-range observable: yes
*** Generating carrier-phase observable: noyes
*** Decoding navigation data: yes
*** Position estimation: yes
*** Multiple antennas: yes
* [http://www.ohio.edu/avionics/sdr/ TRIGR]
*** Real-time Kinematic: yes, GRID can function as an RTK-base station or rover with integrated network support, RTK estimation when integrated with PpEngine (available through separate license)
* [http://sourceforge.net/projects/osgps/ OpenSourceGPS]
*** Differential corrections: yes, CNAV and SBAS
* [http://dynamics.co.nz/index.php?main_page=page&id=9 NAMURU]
*** Maximum number of real-time channels: Hardware-dependent, 30 on a Raspberry Pi 1, >100 on most desktop computers.
* [http://chameleonchips.com/gnss-sdr-toolbox-for-matlab/ GNSS SDR Tools for Education and Research]
*** Output formats: [[RINEX]], [[KML]], [[MATLAB]] .mat files, CSV, proprietary GBX (GRID binary exchange) format.
* [http://gps.psas.pdx.edu/ GPL-GPS]
*** Current applications: experimental FOTON receiver, several GNSS-RO commercial applications, commercial LEO satellite on-board navigation, RTK-based rocket navigation (launch-to-orbit), RTK-based vehicle navigation in urban environments, RTK-based drone, several fixed reference stations, signal abnormality monitoring
* [http://home.earthlink.net/~cwkelley/Software.htm GPSRCVR]
* [http://www.witchnav.cz/ WitchNavigator]
* [http://www.kamieniecki.com/krys/gps kkGPS]
* [http://ifen.bauv.unibw-muenchen.de/research/softi.htm ipexSR]
* [http://plan.geomatics.ucalgary.ca/software_gsnrx.php GSNRx]
* [http://snacs.sourceforge.net SNACS snSDRGPS]
* [https://github.com/kristianpaul/SoftGNSS SoftGNSS]
* [http://www.cambridge.org/us/academic/subjects/engineering/communications-and-signal-processing/digital-satellite-navigation-and-geophysics-practical-guide-gnss-signal-simulator-and-receiver-laboratory#resources iPRx]
* [http://www.gmv.com/en/space/products/srx-10/ GMV srx-10]
 
== Front-ends ==
{{expand section|date=September 2013}}
* [http://www.ettus.com Ettus USRP ($675+)]
* [http://www.nuand.com Nuand bladeRF ($420+)]
* [https://www.sparkfun.com/products/10981 CCAR/SiGe/sparkfun GN3S ($450,$405)]
* [http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/ Digial TV Dongle ($25?)]
* [http://www.nsl.eu.com/primo.html NSL STEREO v2 (£650)]
* [http://gnss-sdr.ru/index.php?itemid=10 gnss-sdr.ru [[open-hardware]] [[L band|L1 band]]]
* [http://www.onetalent-gnss.com/ideas/software-defined-radio/ OneTalent GNSS SdrNavXX (€250-800)]
* [http://www.ip-solutions.jp/GNSS_RF_USB_Front_End.html iP-Solutions academic (Eagle), multi-system (FEM), multi-frequency (MFR) GNSS front ends (from $550)]
* [http://www.teleorbit.eu/satnav/gtec/ TeleOrbit GTEC RFFE developed by Fraunhofer IIS]
 
== References ==
Line 271 ⟶ 256:
 
== External links ==
* [https://web.archive.org/web/20130518041701/http://www.gps-practice-and-fun.com/software-gps.html Software GPS has many advantages]
* [http://home.earthlink.net/~cwkelley/ A starting point for learning about GPS with Open Source Software] {{Webarchive|url=https://web.archive.org/web/20120830101733/http://home.earthlink.net/%7Ecwkelley/ |date=2012-08-30 }}
* [https://gpsgeometer.com/en/blog/mitigation-of-ionospheric-effects-on-gnss-positioning Mitigation of ionospheric effects on GNSS positioning]
 
[[Category:Software comparisons]]
[[Category:Computing comparisons]]
[[Category:Software-defined radio]]
[[Category:Navigational equipment]]
[[Category:Satellite navigation]]