An introduction into the theory of software defined receivers and especially in such for detecting GNSS signals, acquiring and tracking GNSS satellites, calculating pseudo ranges, positions, velocity and time (PVT) is presented.
Basis of the practical work was the open source project SoftGPS, programmed in Matlab and published by (Borre 2007). The Radio Frequency front end (RF-FE) used in this project was no longer available and was replaced by one with different behavior: NSL Stereo (amplifier, mixer, sampler, and A/D converter in two chains). Adaptations, corrections and extensions to the Matlab code were neces-sary to work with the new front end and to get new functions.
With Stereo came also new Matlab- and C/C++ code that did not work properly. Parallel to the projected working environment – Ubuntu 16.04 Linux with Matlab 2016a – also Windows 10-64bit and a Windows XP-64bit beta-software from NSL from January 2013 had to be used due to long delays at NSL to provide updated / working Linux versions: the original software from 2012 for Ubuntu 10 was not working in any newer Linux distribution. Finally a version for Ubuntu 14.04-64bit from Jan 2016 was provided after most of the grabbing of different GNSS-signals was already done.
Code of (Borre 2007) and of NSL for Stereo RF-FE were thoroughly analyzed and documented. Besides own descriptions also the M2HTML documentation generator and GraphViz (for generating dependency graphs) were used. The software was also changed and expanded to archive demands for more modularity, performance, quality and functionality (C/No calculation, output of correct velocities in UTM coordinates, statistics about positions and velocities, continuous processing, ...). As code release tool, Git was used for a complete change history and to be able to recover old versions of the code. With the Git-Bash, identical (UNIX-like) behavior was achieved on both Linux and Windows platforms. Git is more modern than the system used in (Borre 2007) and integrated in Matlab. Even with only 4 parallel processes (in a notebook) and a processing conditioned by signal to noise ratios C/No the most time consuming tracking was reduced to about a quarter of the initial processing time.
Table of Contents
1. Introduction and targets
2 Theory
2.1 Software-Defined Radio - SDR
2.2 Software GNSS Receiver - SGR
2.2.1 Spectral analysis
2.2.2 Acquisition of GPS C/A signals
2.2.3 Tracking of GPS C/A signals
2.2.4 Navigation message and PVT calculations
3 Methods and results
3.1 Analysis and documentation of the code
3.1.1 M2HTML and GraphViz for Borre’s Matlab code
3.1.2 Adaptions of “initSettings.m” before the start of programs
3.1.3 Call sequence in the Borre code
3.1.4 NSL Stereo hardware
3.1.5 NSL Stereo C-programs
3.1.6 NSL Stereo Matlab programs
3.2 Solutions for missing functionality, quality, and performance
3.2.1 Determination of receiver velocities
3.2.2 Signal quality C/No and stopping tracking of bad channels
3.2.3 Handling of records of more than 37 seconds
3.2.4 Statistics and quality of navigation results
3.2.5 Performance improvements
3.3 New signals (non GPS L1)
4 Evaluation & Outlook
4.1 Functionality and speed of new Matlab Code
4.2 Interpretation of NSL Stereo Measurement of non GPS L1 signals
4.3 Proposals for future work
Research Objectives and Focus
This work aims to integrate the Nottingham Scientific Limited (NSL) "Stereo" Radio Frequency Frontend (RF-FE) with the open-source "SoftGPS" Matlab software developed by Borre (2007). The primary objective is to enable the acquisition and tracking of various GNSS signals, perform signal quality analysis, calculate position, velocity, and time (PVT), and improve the code's modularity and processing speed, particularly through parallelization and continuous processing simulation.
- Integration of NSL Stereo hardware with existing Matlab-based GNSS receiver software.
- Documentation and modular optimization of the Matlab signal processing pipeline.
- Implementation of performance enhancements including parallel computing and continuous processing simulations.
- Evaluation of signal processing for non-GPS L1 signals using the NSL Stereo front-end.
- Statistical assessment of navigation results compared to a reference measurement.
Excerpt from the Book
3.1.1 M2HTML and GraphViz for Borre’s Matlab code
The first version of Matlab code comes with the book DVD of (Borre 2007). The version GSR_M_SG\v4_vll contains some improvements and corrections published on web sites after 2007. The global settings are in file “initSettings.m”. There is a graphical program “setSettings.m” to change the contents of “initSettings.m” that should no longer be used: the code file “initSettings.m” has comments and is therefore better understandable, it is easily changed by every editor (including that of Matlab) and it got new variables for the extended code written during this thesis that are not accounted for in “setSettings.m”. So if some settings must be changed, then “initSettings.m” must be edited directly with an editor!
The program itself is started via “init.m”, that sets path to the subfolders “include” and “geoFunctions” of GSR_MSG\v4_vll and reads the variables in “initSettings.m”.
For the documentation generator the m2html-folder is put at the side of “v4_ll” i. e. to the same folder level. Also a target directory for the generated documentation (here it will be “doc”) can be put here. Before starting documentation generation the parent folder of “v4_ll” (and “m2html” and “doc”) is made current directory in Matlab. With Matlab command “addpath” the m2html-folder is added and then “m2html” with the following parameters for source (mfiles = v4_vll) and target (htmldir = doc) directories … is started:
Summary of Chapters
1. Introduction and targets: This chapter outlines the motivation for replacing dedicated hardware with software-defined radio solutions and defines the primary goals of integrating the NSL Stereo RF-FE with the SoftGPS Matlab codebase.
2 Theory: Provides the theoretical foundations of Software-Defined Radio (SDR) and Software GNSS Receivers (SGR), covering spectral analysis, signal acquisition, tracking techniques, and navigation data decoding.
3 Methods and results: Details the documentation, code analysis, and technical solutions implemented to enhance functionality, modularity, and processing performance, including parallel processing and continuous data handling.
4 Evaluation & Outlook: Summarizes the achievements regarding functionality and performance improvements while discussing limitations in hardware-software integration and providing recommendations for future research and alternative hardware.
Keywords
Software-Defined Radio, GNSS, NSL Stereo, Matlab, Signal Acquisition, Tracking, Parallel Processing, C/A code, Navigation Message, Spectral Analysis, Performance Optimization, Geodesy, RF-FE, Software-Defined GNSS Receiver.
Frequently Asked Questions
What is the primary focus of this research?
The thesis focuses on adapting and extending the open-source "SoftGPS" project by Borre (2007) to work with the NSL "Stereo" hardware, aiming to modernize its processing capabilities and documentation.
What are the main thematic areas covered?
The work covers hardware configuration for NSL Stereo, Matlab code documentation using M2HTML and GraphViz, signal tracking optimization, and statistical analysis of GNSS positioning results.
What is the primary research goal?
The main goal is to successfully integrate the NSL Stereo front-end with Matlab code to perform robust GNSS signal acquisition and tracking, while improving code modularity and execution speed.
Which scientific methods were employed?
The author utilized software engineering practices for code documentation and modularization, along with digital signal processing (DSP) techniques like PLL/DLL lock loops for tracking and least squares methods for position calculation.
What does the main body address?
The main body documents the analysis of the existing code, the adaptations required for the new hardware, solutions for performance bottlenecks, and the evaluation of navigation data quality.
How is the work characterized in terms of keywords?
It is characterized by terms such as Software-Defined Radio, GNSS, Matlab, signal tracking, parallel processing, and performance optimization.
Why was Git chosen for version control?
Git was selected as it is more modern, widely distributed, and integrated into Matlab, allowing for comprehensive change history tracking compared to the older CVS system.
How did parallel processing impact the system performance?
By implementing "parfor" loops and delegating work to multiple background processes, the CPU utilization increased effectively, significantly reducing the tracking time for a 37-second cycle.
What are the limitations regarding non-GPS L1 signals?
The acquisition of signals like GLONASS or Galileo using the NSL Stereo hardware and software showed deficiencies, likely due to hardware or configuration issues rather than the Matlab code itself.
- Citation du texte
- Rainer Stickdorn (Auteur), 2017, Implementation and testing of a GNSS system consisting of a RF front-end and a software GNSS receiver, Munich, GRIN Verlag, https://www.grin.com/document/433436