Software-Based GNSS Receiver
GSNRx™ (GNSS Software Navigation Receiver) software suite is a collection of C++ class-based GNSS software receiver programs developed by the Position, Location And Navigation (PLAN) Group in the Department of Geomatics Engineering at the University of Calgary. All versions are capable of processing raw intermediate frequency (IF) data samples either in post-mission or real-time. The software acquires and tracks incoming GNSS signals, computes a navigation solution, and generates measurements for use in other data processing software. Currently, the software is able to acquire and track the following signals:
The input to the software can be real-valued or complex-valued samples obtained at a user definable sampling rate. The software will then perform an acquisition to determine which satellites are visible. Once satellite signals are acquired, they are subsequently tracked and the receiver will try to extract the navigation message and generate code phase, pseudorange, Doppler (phase rate) and/or carrier phase (accumulated Doppler range) measurements at a user definable rate. Carrier phase measurements are corrected for potential half-cycle lock errors and are thus usable for fixed ambiguity carrier phase positioning.
The class-based implementation provides a modular code structure that improves code clarity and facilitates modifications and extensions. For example, different Doppler removal and correlation classes are available (each having different assumptions or simplifications and thus processing speeds) and can be easily substituted for one another, if desired. This approach also allows any available co processors (e.g., FPGA, DSP, GPU, etc.) to be used. Furthermore, the code has been written to allow for maximum flexibility while still providing good efficiency.
The GSNRx™ software suite is not specifically designed to work in any particular environment and can therefore be modified or specialized to meet application demands as best as possible. Different versions (described below) may perform better for different applications.
GSNRx™ provides the basic functionality of typical GNSS receivers. However, given the structure of the code, extension of the receiver to include other signals or more advanced signal processing algorithms, can be accomplished with relative ease. Some of the specific functionality included in the source code (varies with version) includes:
The GSNRx™ software suite contains the following versions/implementations of GNSS receivers including:
For more information, click here.