SIMD correlator library for GNSS software receivers -- by Gregory W. Heckler, and James L. Garrison

 
 
The technical paper which describes this code is published in  
GPS Solutions, Volume 10, Number 4, November 2006, pages 269-276, " SIMD correlator library for GNSS software receivers"  
by Gregory W. Heckler, and James L. Garrison  
School of Aeronautics and Astronautics, Purdue University, West Lafayette, Indiana, USA.  
 
 
Abstract: Software receivers have had a discernable impact on the GNSS research community. Often such receivers are implemented in a compiled programming language, such as C or C++. A software receiver must emulate the digital signal processing (DSP) algorithms executed on dedicated hardware in a traditional receiver. The DSP algorithms, most notably correlation, have a high computational cost; this burden precludes many software receivers from running in real time. However the computational cost can be lessened by utilizing single instruction multiple data (SIMD) operations found on modern x86 processors. The following demonstrates how C/C++ compatible code can be written to directly utilize the SIMD instructions. First, an analysis is carried out to demonstrate why real time operation is not possible when using traditional C/C++ code. Second, a tutorial outlines how to write and insert x86 assembly, with SIMD operations, into C/C++ code. Performance gains achieved via SIMD operations are then demonstrated, and pseudo code outlines how SIMD operations can be employed to perform correlation. Finally, a C/C++ compatible SIMD enabled arithmetic library is added to the GPS Toolbox for use in software receivers.  
 
Note: There are several *.h and *.cpp files included in this software package. Thus, the the authors have bundled all of the files in a *.zip file (SIMD.zip). The Readme.txt file describes the functions included in the single instruction multiple data (SIMD) library.  
 
 

General information about the C++ functions in the SIMD.zip file (Readme.txt)

*.zip file containing all C++ functions for SIMD library (SIMD.zip)

 
 
 
Return to the GPS-TOOLBOX home page