Google Summer of Code 2019 ideas list

6 minute read

This year, GNSS-SDR is applying as a mentoring organization for Google Summer of Code (also known as GSoC), a global program that offers students stipends to write code for open source projects. In order to participate in the program, you must be a student. Google defines a student as an individual enrolled in or accepted into an accredited institution including (but not necessarily limited to) colleges, universities, masters programs, PhD programs and undergraduate programs. You should be prepared, upon request, to provide Google with transcripts or other documentation from your accredited institution as proof of enrollment or admission status. Computer Science does not need to be your field of study in order to participate in the program. You may be enrolled as a full-time or part-time student for a time period that includes May 6, 2019, and must be at least 18 years old to be eligible to participate in Google Summer of Code in 2019.

If you are an eligible and interested student, read through the list and note the projects you are interested in. You, as the student programmer, then submit a proposal to Google, using the GSoC 2019 website. The application form for students will be open from March 25 18:00 UTC until April 9 18:00 UTC. We recommend you to submit your application early. By doing so, it will be given a greater share of attention than is possible for applications submitted at the last minute.

You might submit a proposal following the guidelines below, or you might want to adapt them to your needs. Changes to the proposal could include:

  • You think the project as suggested is too large and you can only feasibly complete part of it; if so, make sure your proposal covers a reasonable subset of the functionality (that is, something which is useful without the rest of the project being implemented).

  • You think the project as suggested is too small; in this case you might want to extend the idea, combine projects, etc.

  • You like the basic idea of the project but it is not such a good fit for the skills that you have; in this case please feel free to suggest an alternative, but try to remember that the idea is for the software to be useful for its existing and potential users.

Your proposal should include the following: your project proposal, why you would like to execute on this particular project, and the reason you are the best individual to do so. Your proposal should also include details of your academic, industry, and/or open source development experience, and other details as you see fit. An explanation of your development methodology and schedule is a good idea, as well. It is always helpful to include your contact information, as it will not be automatically shared with your would-be mentors as part of the proposal process.

Hereafter we list, in no particular order, some proposals for projects to be carried out by the students participating in GSoC 2019. This is by no means a closed list, so the students can feel free to propose alternative activities related to GNSS-SDR.

SDR GNSS Reflectometry (GNSS-R)


GNSS Reflectometry (GNSS-R) is the application of GNSS signals to determine geophysical parameters of the Earth’s surface, as well as the atmospheric layer. The idea is to jointly exploit the direct and reflected GNSS signals. These reflected signals are particularly interesting on water or ice surfaces. The receiver can be located at all altitudes: from the ground to low Earth orbit (LEO) satellites. Two major types of measurements can be made: i) relative power measurements between direct and reflected signals from which we can derive, for instance, the surface roughness, and by extension the surface wind (this is the mission CYGNSS), and ii) measurements of relative delay between direct and reflected signals. For more details see [1-3].


Figure 1 (from [1]): Basic idea behind GNSS reflectometry and GNSS radio occultation.

The goal of this project is to implement a basic GNSS-R architecture, that is, the lower blocks (reflected signal processing) in Figure 2. The detailed objectives of the project are: i) understand the signal processing principles of a GNSS Rx (ACQ, TRK and PVT - upper blocks in Figure 2) and the corresponding implementation in GNSS-SDR, ii) implement the reflected signal processing within GNSS-SDR (lower blocks in Figure 2), and iii) test the GNSS-R architecture using real signals.


Figure 2 (from [2]): Signal processing architecture. The same carrier replica is used for direct and reflected carrier wipe-off. PVT is Position Velocity, Time, PPP is Precise Point Positioning, and NTM is Numerical Terrain Model.


[1] K. Yu et al., “An overview of GNSS remote sensing”, EURASIP Journal on Advances in Signal Processing, August 2014.

[2] L. Lestarquit et al, “Reflectometry With an Open-Source Software GNSS Receiver: Use Case With Carrier Phase Altimetry”, IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, Vol. 9, no 10, pp. 4843-4853, Oct. 2016

[3] V. U. Zavorotny et al., “Tutorial on Remote Sensing Using GNSS Bistatic Radar of Opportunity”, IEEE Geoscience and Remote Sensing Magazine, Vol. 2 , no 4, pp. 8-45, Dec. 2014.

Skills required:

Good understanding of GNSS signal processing and C++ programming (familiarity with the GNU Radio framework is a plus).

Potential mentor(s):

Dr. Jordi Vilà-Valls, Dr. Javier Arribas.

SDR KF-based Synchronization Techniques for Advanced GNSS Receivers


Tracking of synchronization parameters (i.e., time-delay, carrier phase, Doppler shifts) is a key step in the core of any GNSS receiver. The current tracking block implementations, which are fully operational in GNSS-SDR for GPS L1, GPS L2, GPS L5, Galileo E1, Galileo E5a, GLONASS L1 and GLONASS L2 frequency bands, are based on traditional tracking loop architectures (e.g., DLL and PLL). Those techniques are prone to fail in non-nominal propagation conditions such as high-dynamics, shadowing, strong fadings, multipath effects or ionospheric scintillation effects. It is known that Kalman filter (KF)-based techniques, which are formulated from an optimal filtering standpoint, are more robust to such harsh propagation conditions, thus being the synchronization methods of choice to be taken into account in advanced GNSS receivers. The main goal of this project is i) to develop and integrate into GNSS-SDR joint code/carrier KF-based synchronization methods, and iv) test and compare the performance of these techniques with respect to traditional architectures using real signals.

Skills required:

Good understanding of statistical signal processing and C++ programming (familiarity with the GNU Radio framework and Kalman filtering techniques is a plus).

Potential mentor(s):

Dr. Pau Closas, Dr. Jordi Vilà-Valls

Optimal frame synchronization detection


GNSS data demodulation is preceded by frame synchronization. This process is critical, since it may prevent data recovery if not sufficiently reliable. Currently, GNSS-SDR implements a hard correlation scheme where correlation with the known pattern is performed. Although useful due to is simplicity, there are no performance guarantees for such approach. Particularly, in low signal-to-noise ratio (SNR) situations the performance of such correlation may degrade. This situations occur, for instance, in the presence of jamming signals. The goal of the project will be to implement an optimal detector, based on Massey’s frame synchronization metric. Characterization of its performance and comparison to the current method in a number of SNR conditions.

J. L. Massey, Optimum frame synchronization, IEEE Trans. Commun., vol. 20, no. 2, pp. 115–119, April 1972.

Skills required:

Basic knowledge on digital signal processing and C++ programming (familiarity with the GNU Radio framework is a plus).

Potential mentor(s):

Dr. Mònica Navarro, Dr. Pau Closas.

Proposal template:

  1. Student’s Name
  2. Email Address
  3. Name of the Project
  4. Summary: Short statement about your intents (100 words approx.).
  5. Benefits: What are the benefits of your proposal?
  6. Plan: Describe your work plan in detail (tasks and schedule). Would there be blackout days (vacations, short jobs, etc.)?
  7. Deliverables: What are you going to deliver and when?
  8. Communication: How will you communicate with your mentor and the developers community?
  9. Qualification: Why you are the best candidate for this project?



Leave a comment