grid_SRimplementationX

Project Members: Jahshan Bhatti, Daniel Shepard, Ken Pesyna, Todd Humphreys

Outside Collaborators: Brady O’Hanlon, Paul Kintner, and Mark Psiaki, Cornell University; Brent Ledvina, Coherent Navigation

Former Project Members: Zach Tschirhart


Summary: Over the last decade or so, several researchers have capitalized on the software radio concept to design GNSS receivers whose real-time correlators, tracking loops, and navigation solver are all implemented in software on a programmable processor. Software GNSS receivers require fewer hardware components and offer greater flexibility and transparency compared to traditional receivers whose correlators and accumulators are implemented in proprietary integrated circuit hardware.

Originally used only for post-processing of GPS signals, software receivers broke into the real-time domain with the introduction of the gpsSrx receiver, first implemented on a personal computer (PC) microprocessor and then on a 160-MHz DSP by Dennis Akos and co-workers. This DSP implementation was the first embedded real-time GPS software receiver, where the term embedded is used to distinguish small, low-power, stand-alone receivers—implemented, for example, on a DSP, an FPGA, or a small applications processor—from software receivers implemented on a PC.

The GRID receiver can be viewed as a modernization and extension of the early work done by Akos and co-workers. Whereas the DSP implementation of gpsSrx was limited to 4 real-time L1 channels, separate acquisition and tracking stages, and modest (30 m) positioning accuracy, the DSP implementation of the GRID is dual frequency (GPS L1 C/A and L2C), capable of 135 parallel L1 channels, continuous background acquisition, and sub-meter positioning and timing precision. The receiver owes these advances to increased DSP capability and to improved processing techniques. The GRID software is written entirely in natural language C++, which facilitates code development and maintenance.

Embeddeable software GNSS receivers are attractive to the GNSS research community both as a platform for receiver technology development and as a scientific instrument useful for studying geophysical phenomena. Such receivers are an essential component in scientific work calling for large arrays of GNSS receivers whose combined measurements are used to investigate, for example, the spatial irregularity, dynamics, and height of structures in the disturbed ionosphere.

A post-processing version of the GRID receiver shares the code base of the embedded real-time implementation but executes on a desktop or laptop platform.

The emergence of multicore processors is a boon for software-defined radios in general, and for software-defined GNSS receivers in particular. This is because the data processing required in software radios naturally lends itself to parallelism. Software radio is a special case of what are known as streaming applications, or applications designed to process a flow of data by performing repeated identical operations within strict latency bounds. Streaming applications are perhaps the most promising targets for performance improvement via multicore processing.

The post-processing version of the GRID receiver has been efficiently parallelized, running at a 3.6x speedup on a 4-core machine, allowing it to run the equivalent of 830 real time GPS L1 C/A tracking channels. Ongoing work aims to parallelize the DSP GRID implementation and to generally improve the GRID's accuracy, reliability, and maintainability.


Related Publications:

GNSS Receiver Implementation on a DSP: Status, Challenges, and Prospects

The GPS Assimilator: a Method for Upgrading Existing GPS User Equipment to Improve Accuracy, Robustness, and Resistance to Spoofing

Development and Field Testing of a DSP-Based Dual-Frequency Software GPS Receiver

Exploiting Multicore Technology in Software-Defined GNSS Receivers

Considerations for future IGS Receivers