Software GNSS receiver

From Wikipedia, the free encyclopedia
  (Redirected from Software GNSS Receiver)
Jump to: navigation, search

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). 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 DSP or CPU, following the philosophy of Software-defined radio . Another way is a combination of the hardware and the software solutions

Hardware vs. software GNSS receivers[edit]

When comparing hardware vs software GNSS receivers, a number of pros and cons can be found for each approach:

  • 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.[1]
  • 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 exists 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). Using multi-core CPUs and GPGPUs has increased the performance of software GNSS receivers .[2]

Comparison of implementations[edit]

This comparison is strictly about GNSS SDR; please do not include general GNSS positioning and mapping software.
  • Galileo Satellite Navigation LTD.- GSN:
    • Business Model - IP core license + royalties
    • Development
      • Programming language: C
      • User interface - NMEA
    • Hardware support:
      • Platforms
        • PC - windows
        • PC - Linux
        • CEVA - XC family
        • CEVA - TL3/4
        • Cadence (Tensilica) - BBE16/32
      • RF FE
        • MAXIM
        • NEC
    • GNSS/SBAS signals support:
    • Features:
      • Acquisition: yes
      • Tracking: yes
      • Generating pseudo-range observable: yes
      • Decoding navigation data: yes
      • Position estimation: yes
      • Maximum number of real-time channels demonstrated: 16/system
      • Multi-correlator: yes
      • Sample data recording: yes
  • SX-NSR
    • General information:
    • Development:
      • Programming language: C++
      • User interface (none, CLI, GUI): CLI, GUI
      • Under active development (as-of date): yes (2014-Mar-04)
      • Creator/sponsor organization: IfEN GmbH, Germany
      • Latest release (version and date): v2.5, March 2014
      • First release (version and date): v1.0, March 2007
    • Hardware support:
      • Front-ends: NavPort, NavPort-4
      • Host computer special hardware supported: SIMD (SSE2, SSSE3), CUDA
      • Multicore supported: yes
    • GNSS/SBAS signals support:
    • Features:
      • Acquisition: yes (several algorithms)
      • Tracking: yes (several algorithms)
      • Generating pseudo-range observable: yes
      • Generating carrier-phase observable: yes
      • Decoding navigation data: yes
      • Spectrum analyzer: yes
      • Position estimation: yes
      • Maximum number of real-time channels demonstrated: 89 (SIS @20 MHz sample rate), >120 (NavX-NCS signal simulator @20 MHz sample rate)
      • Application programming interface: yes
      • Dual antenna support: yes
      • Multi-correlator: yes
      • Sample data recording: yes
      • Multipath mitigation: yes (several algorithms)
  • GNSS-SDRLIB
    • General information:
    • Development:
      • Programming language: C
      • User interface (none, CLI, GUI): CLI, GUI.
      • Number of developers: 1?
      • Under active development (as-of date): yes (2013-Sep-25)
      • Creator/sponsor organization: Tokyo University of Marine Science and Technology, Japan
      • Latest release (version and date):
      • First release (version and date):
    • Hardware support:
      • Front-ends: NSL STEREO v2 and SiGe GN3S Sampler v3
      • Host computer special hardware supported: SIMD (SSE2 and AVX)
      • Multicore supported?:
    • GNSS/SBAS signals support:
    • Features:
      • Acquisition: yes
      • Tracking: yes
      • Generating pseudo-range: yes
      • Decoding navigation data: yes
      • Spectrum analysis: yes
      • Position estimation: yes (through RTKLIB)
      • Maximum number of real-time channels demonstrated: ?
  • SoftGNSS v3.0 (also known as SoftGPS)
    • General information:
    • Development:
      • Programming language: MATLAB
      • User interface (none, CLI, GUI): CLI and GUI
      • Number of developers: 4 (along the project)
      • Under active development (as-of date): public version - no, non-public versions - yes (2013-Sep-30)
    • Hardware support:
      • Front-ends: SiGe GN3S Sampler v1 (in the original SDR and driver release). Signal records originating from other Sampler versions or other front-ends require configuration changes and in some cases also minor code changes.
      • Host computer special hardware supported: no
      • Multicore supported?: no
    • GNSS/SBAS signals support (separate version for each band of each GNSS):
    • Features:
      • Acquisition: yes
      • Tracking: yes
      • Generating pseudo-range observable: yes
      • Generating carrier-phase observable: no
      • Decoding navigation data: yes
      • Position estimation: yes
  • GNSS-SDR, An open source GNSS Software Defined Receiver
    • General information:
    • Development:
      • Programming language: C++
      • User interface (none, CLI, GUI): CLI.
      • Number of developers: 8 (along the project)
      • Under active development (as-of date): yes (2013-Sep-25)
      • Creator/sponsor organization: Centre Tecnològic de Telecomunicacions de Catalunya
      • Latest release (version and date): ongoing development (as Sept. 2013)
      • First release (version and date): 2011-Mar-11 first svn commit
    • Hardware support:
      • Front-ends: UHD-compatible (USRP v1, v2, etc.), RTL2832-based USB dongles and SiGe GN3S Sampler v2
      • Host computer special hardware supported: SIMD (via VOLK)
      • Multicore supported?: Yes
    • GNSS/SBAS signals support:
    • Features:
      • Acquisition: yes (several algorithms)
      • Tracking: yes (several algorithms)
      • Generating pseudo-range observable: yes
      • Generating carrier-phase observable: yes
      • Decoding navigation data: yes
      • Position estimation: yes
      • Maximum number of real-time channels demonstrated: 8
      • Output formats: RINEX, KML

Front-ends[edit]

References[edit]

  1. ^ Real-Time Software Receivers, GPS World, September 1, 2009 by Pierre-André Farine, Marcel Baracchi-Frei, Grégoire Waelchli, Cyril Botteron
  2. ^ Accelerating a Cloud-Based Software GNSS Receiver, arXiv:1309.0052, Kamran Karimi, Aleks G. Pamir, M. Haris Afzal

Further reading[edit]