Along the years, we have developed our own software tools that enable top-level research on the GNSS signals. The most worthy of mention are the N-Fuels signal generator and the N-Gene and SOPRANO software receivers.

Furthermore, our labs are equipped with two geo-referenced rooftop antennas, which enable anytime static measurement campaigns, a single-frequency hardware signal generator (NAV-X NCS), as well as several commercial receivers, both of mass-market and professional grade, used every day in our R&D activities.


N-FUELS : FUll Educational Library of Signals for Navigation


N-FUELS (FUll Educational Library of Signals for Navigation) is a MATLAB®-based GNSS signal generator. It allows the non-real time simulation of the physical layer signals of the GPS, Galileo and EGNOS systems in all the current and future bands.

It is able to generate signals as seen at the front-end output of a digital receiver, right after analogue-to-digital conversion. It incorporates basic models of propagation effects and interference, such as additive white Gaussian noise, 2-ray and N-ray multipath, continuous wave interference, narrowband in-band interference, pulsed and swept interference. All these models are configurable.

N-FUELS is completed by an analysis tool: a set of functions able to perform the signal analysis, by implementing the evaluation of various testing and monitoring signal metrics.

The modular nature of the tool allows the possibility to integrate new functionalities, for applications related to specific scenarios.

N-FUELS has been created for research and educational use, with the purpose of enabling comparative analysis of signal performance and testing novel core processing algorithms.

An illustration of the system elements simulated by the N-FUELS generator is reported in the following figure:

The simulation setup is accessible through a graphical user interface (GUI), which allows the user to set several simulation parameters; among the others, the length in time of the simulated signal, the intermediate frequency, the sampling frequency, the Doppler model, the constellation and the number of visible satellites, the C/No of each satellite, the propagation and interference models, etc...

A screenshot of the N-FUELS GUI is shown in the following figure:


Further readings:

E. Falletti, D. Margaria, B. Motella, ``A Complete Educational Library of GNSS Signals and Analysis Functions for Navigation Studies," Coordinates, vol. V, issue 8, pp. 30-34, August 2009. ISSN: 0973-2136.

D. Margaria, E. Falletti, B. Motella, M. Pini, G. Povero, ``N-FUELS, a GNSS Educational Tool for Simulation and Analysis of a Variety of Signals in Space," in Proceedings of the European Navigation Conference on GNSS, ENC-GNSS 2010, Braunschweig, Germany, 19-21 October, 2010.

E. Falletti; D. Margaria, M. Nicola, G. Povero, M. Troglia Gamba, ”N-FUELS and SOPRANO: Educational tools for simulation, analysis and processing of satellite navigation signals”, 2013 IEEE Frontiers in Education Conference, pp. 303-308. DOI: 10.1109/FIE.2013.6684836. 


Here you can find a video on N-Fuels realized for the GENIUS project.




N-Gene : Navigation Software Receiver

N-GENE is a GPS/Galileo single frequency fully SW real-time receiver, running on a general purpose processor (standard PC based on an Intel x86 processor). It is able to process in real-time the GPS L1 and Galileo E1 signals, as well as to demodulate the differential corrections broadcast on the same frequency by the EGNOS system.

N-Gene is a test-bed that allows to master the whole receiving chain and to test innovative algorithms implementing them in a ‘real receiver’. The flexibility due to software implementation allows

  • to add custom logs
  • to implement and test new algorithms
  • to support new signals and services

Most functionalities are coded in ANSI-C, allowing for a high level of portability among different OSs and platforms; only the few the high data rate modules are coded in assembler.

N-Gene’s interfaces are:

  • Any RF front-end able to execute the signal downconversion stages from RF to IF, as well as analogue-to-digital conversion, and to transmit digital IF sample through a USB port.
  • A Graphical User Interface to command and control in real-time the receiver operations.

The basic GNSS functionalities currently implemented in N-Gene are:

  1. An efficient and fast acquisition, based on signal pre-accumulation and decimation, before performing the conventional Parallel Code Phase FFT-based approach
  2. Conventional tracking loop algorithms (FLL/PLL, DLL), with
    1. a sophisticated method based on Bayesian probability calculation, in order to avoid tracking losses when a temporary GNSS signal outage occurs
  3. Navigation message decoding of GPS NAV, GIOVE A+B, Galileo I/NAV, EGNOS
  4. Least Squares and Kalman Filter methods for positioning, with
    1. a carrier smoothing strategy able to increase the precision of pseudoranges evaluation


Furthermore, several additional features are present:

  1. user-friendly graphical user interface (GUI)
  2. continuous spectral estimation of the received signal
  3. programmable multi-correlators for Signal Quality Monitoring (SQM)
  4. assisted GNSS


N-Gene is implemented as a client-software architecture, in which the receiver is the server application and the GUI is the client application.

The receiver is able to process in real-time even more than 12 channels, using a sampling frequency of approximately 17.5 MHz with 8 bits per samples on an Intel Pentium core duo processor with a clock rate of 3 GHz and maximum CPU load of about 30% (PVT rate of 2 Hz). N-GENE has a positioning accuracy lower than 10 m r.m.s, using code-based measurements and without applying carrier smoothing techniques. In case of cold start, the Time To First Fix (TTFF) is lower than 45 s.

Figure: N-Gene in execution with Java GUI


Figure: N-Gene software architecture


Further readings:

M. Fantino, A. Molino, and M. Nicola, “N-Gene: a complete GPS and Galileo software suite for precise navigation,” in Proceedings of the International Technical Meeting of the Satellite Division of the Institute of Navigation (ITM '10), vol. 2, pp. 1245–1251, San Diego, CA, USA, 2010.

M. Fantino, A. Molino, and M. Nicola, “N-Gene GNSS Receiver: Benefits of Software Radio in Navigation”, European Navigation Conference on Global Navigation Satellite Systems (ENC-GNSS), 3- 6 May 2009, Napoli, Italy.

A. Molino, M. Nicola, M. Pini, and M. Fantino, “N-Gene GNSS Software Receiver for Acquisition and Tracking Algorithms Validation”, European Signal Processing Conference (EUSIPCO), 24-28 August 2009, Glasgow, Scotland.




SOPRANO: fully SOftware fully Programmable GNSS Receiver for Algorithm testiNg and ValidatiOn


As the acronym suggests, SOPRANO is an ANSI C-based fully software receiver, which implements the post-processing GNSS signal elaboration. It processes, i.e., acquires, tracks and uses for PVT (Position-Velocity-and-Time) estimation, both the GPS-SPS (Standard Positioning Service) and Galileo OS (Open Service) signals. It accepts as input binary files, containing the ADC output samples, either generated by N-FUELS or recorded from a GNSS front-end, with up to 8 quantization bits. Thus it can be employed to process either simulated signals in a completely ideal environment or real signals. The current version of the receiver supports only real IF samples; future releases, thanks to the collaboration with the NAVIS centre in Hanoi, will also include the baseband elaboration.

SOPRANO has been expressly thought as a lab instrument for signal processing, enabling developers (either trained researchers or graduate students) to describe, test and validate GNSS signal processing algorithms and architectures. It takes also advantage of the processing speed of the C language, differently from other MATLAB-based receivers.

SOPRANO implements all stages of the whole processing chain, by means of state-of-the-art algorithms only, making it a non-patented and completely free solution. Thus, as N-FUELS, it meets the needs of both trained and student users. While a student can get a deep understanding of the GNSS processing flow, looking how the learned theory becomes practice, the trained user can easily found and modify the desired functions, thus testing his own solutions.

The handiness in use of SOPRANO is one of its main features and its crucial point. First of all, its ANSI C structure does not need special libraries, which aids the fully portability among different compilers and different operative systems; furthermore, the user can openly access the entire source code, making the desired changes wherever he/she wants. The code structure is easy to read: it is organized in a sequence of folders, each one including a list of source and header files, belonging to the same processing stage. For example, the directory entitled “acquisition” collects all functions related to the signal acquisition, while that called “tracking” contains those devoted to implement the tracking loops, and so on. All the signals/data/measurements needed to perform signal elaboration are included in structures which are accessed through the use of pointers, avoiding other less intuitive ways of data access, such as First-In-First-Out (FIFO) data structures, sockets, etc. The name itself of all data structures and functions always refers to their functionality.

SOPRANO’s flexibility is allowed by the intrinsic nature of its software implementation. In fact, besides working with different IF front-ends, thanks to a simple text configuration file, also several processing setups can be changed via other simple configuration files, for example the number of coherent/non-coherent sums in acquisition, Doppler and code delay resolutions, gain and bandwidth of the frequency and code discriminators, early-to-late spacing of the correlators and so on. This allows the user to quickly create his tailor-made receiver.

Further reading:

E. Falletti; D. Margaria, M. Nicola, G. Povero, M. Troglia Gamba, ”N-FUELS and SOPRANO: Educational tools for simulation, analysis and processing of satellite navigation signals”, 2013 IEEE Frontiers in Education Conference, pp. 303-308. DOI: 10.1109/FIE.2013.6684836.