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++
  • gnss
  • c++11
  • c++14


  • Science and Medicine
  • gnss
  • navigation
  • digital signal processing
  • software defined radio
  • communications engineering
email Mailing list
mail_outline Contact email

GNSS-SDR 2018 Projects

  • Álvaro Cebrián Juan
    Design and Implementation of a Graphical User Interface (GUI) to show the GNSS-SDR status in real-time
    My objective for the Google Summer of Code (GSoC) 2018 is to develop a Graphical User Interface (GUI) to monitor the GNSS-SDR status complying with...
  • Sergi Segura Muñoz
    Expanding the receiver to BeiDou B1I
    The main objective of this proposal is to get a working implementation of the GNSS-SDR software receiving and processing BeiDou B1l signals. Some...
  • Sara Hrbek
    Expanding the receiver to BeiDou B1I
    This project will add processing capability of the BeiDou B1I signals into the GNSS-SDR platform. The addition of BeiDou B1I signals will increase...
  • Dong-Kyeong Lee
    Expanding the receiver to Beidou B2a
    The current GNSS-SDR platform is a software defined receiver that supports GPS, GLONASS, and GALILEO GNSS signals. It also partially supports Beidou...
  • Gerald LaMountain
    Proposal to implement Bayesian Covariance Estimation for Kalman Filter based Digital Carrier Synchronization in GNSS-SDR
    This document, submitted to the GNSS-SDR open-source software defined radio project as part of the 2018 Google Summer of Code (GSoC) program,...