An open source Global Navigation Satellite Systems software-defined receiver

GNSS-SDR is an open source Global Navigation Satellite Systems software receiver, written in C++, that is able to work either from raw signal samples stored in a file, or in real-time with a radio-frequency front-end as signal source, and performs all the signal processing until the observable computation and Position-Velocity-Time solution. Its modularity allows users to populate the framework with their own algorithms, allowing to put the focus on the signal processing implementation without worrying about how to embed that algorithm in a whole GNSS receiver. It also makes possible fair performance benchmarks using real GNSS signals, and its open source license allows free downloading, use and code inspection. The proposed software receiver targets multi-constellation/multi-frequency architectures, pursuing the goals of efficiency, modularity, interoperability, and flexibility demanded by user domains that require non-standard features, such as earth observers or geodesists, and allowing applications such as the observation of the ionosphere, GNSS reflectometry, signal quality monitoring, space weather, and high-accuracy positioning based on carrier-phase navigation techniques. In this project, we focus on signal processing, understood as the process between the ADC and the computation of code and phase observables, including the demodulation of the navigation message. We purposely omit data processing, understood as the computation of the navigation solution from the observables and the navigation message, since there are a number of well-established libraries and applications for that (also in the open source side, such as GPSTk or RTKLIB).

lightbulb_outline View ideas list


  • c/c++
  • c++ libraries c++11 c++14 c++17 c++20
  • c++17
  • gnss
  • sdr


email Mailing list

GNSS-SDR 2019 Projects

  • Andrew Kamble
    Expanding the receiver to BEIDOU B1C
    The current version of GNSS-SDR supports GPS, GALILEO, GLONASS and BeiDou Global Navigation Satellite System signals. Right now in BeiDou signals,...
  • glamountain
    Nonlinear State Estimation for Carrier Synchronization in GNSS-SDR
    Carrier synchronization in standard, mass-market GNSS receivers typically utilizes well understood locked-loop architectures. The performance...
  • Lucas Ventura
    Optimal Frame Synchronization Detection
    The current implementation of the GNSS-SDR is a hard correlation scheme with a known scheme. The goal of this project is to implement and validate an...