A GPS software receiver implementation on open-source platforms using USRP RF front-end
A GPS receiver is a boon to mankind that is operated on a microcontroller chip which does all the signal processing. The first generation GPS receivers mainly made use of hardware for almost all the processing required. Using hardware is not always the best solution everywhere and it's apparent that a software GPS receiver implementation provides a great deal of flexibility and a cost effective solution. A receiver performs acquisition of satellites, tracking of the acquired signals and position computation in order to deliver a user position fix. During the tracking of signals, most of the available software GPS receivers make use of the conventional three correlator approach which is time consuming because of the various number of multiplications involved in extracting the navigation data bits from the received signal. These multiplications are time consuming and delay the process of tracking resulting in a late position fix.
In GPS, code modulated signals are transmitted by several satellites that orbit the earth and received by GPS receivers of which the current position is to be determined. The Doppler frequency estimate and code offset parameters of a satellite signal are given by an initial synchronization called acquisition, followed by a fine synchronization called tracking. The main purpose of tracking is to continuously refine these values using feedback loops. For example, the code tracking loop in the GPS receiver, called delay lock loop (DLL), is based on correlations with multiple replica codes delayed and advanced in code phase. The outputs of correlators are fed into a discriminator which estimates the tracking code phase error and DLL adjusts phases to approximate received code. Advanced tracking loops use multiple correlators for more accurate tracking and multipath mitigation. This is a challenge for so-called real time software GPS receiver implementations.
Here we study test bed design options based on GNU-Radio open source and GPS-SDR open source project development platforms. GNU radio native environment allows easy incorporation of custom C/C++ units which accelerates the system faster and make it suitable for processing real GPS signals in real time. The benefits of using GNU radio SDK is that it provides already an interface between the software and USRP hardware. On the other hand GPS-SDR open source is one of the existing real time C/C++ based GPS receivers which can be used to evaluate the overall performance of the system after modifying the conventions receiver by advanced C/C++ GPS receiver blocks. The implementation provides details on signal processing speed and enhancements of the conventional GPS receiver's implemented using GNU radio and GPS-SDR open source platforms including advanced novel acquisition and tracking units.