Abstract
An open-source implementation of a code division multiple access software correlator library that leverages single instruction multiple data (SIMD) is presented. We initially discuss the key aspects involved in the correlation operation for software radio applications. Afterward, we present the state-of-the-art application programming interface that provides SIMD capable methods for each of the components in a correlation operation, including the first of its kind parallelized code and carrier generation using lookup tables and SIMD instructions. The library was developed using SIMD intrinsic instructions, which are a C-type nomenclature offering access to the assembly instructions originally designed for the SIMD extensions in the processor. This design paradigm presents an advantage in terms of readability and simplified code development to accommodate future modifications. Recorded data were used with a standalone global navigation satellite system software receiver where the methods hereby presented were tested and profiled to validate theoretical assumptions.
Similar content being viewed by others
References
Fernández-Prades C, Arribas J, Closas P (2016) Accelerating GNSS software receivers. In: Proceedings of the ION GNSS 2016, Institute of Navigation, Portland, Oregon, USA, 12–16 Sept, pp 44–61
Fog A (2017) Instruction tables: lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs. Manual 4:2017
Greene MA (1997) Pentium (R) processor with MMX/sup TM/technology performance. In: Proceedings of the IEEE COMPCON 97. https://doi.org/10.1109/CMPCON.1997.584726
Heckler GW, Garrison JL (2006) SIMD correlator library for GNSS software receivers. GPS Solut 10(4):269–276
Ledvina BM, Psiaki ML, Powell SP, Kintner PM (2014) Bit-wise parallel algorithms for efficient software correlation applied to a GPS software receiver. IEEE Trans Wirel Commun 3(5):1469–1473
Matic V, Marinkovic-Nedelicki V, Tadic V (1998) Comparison of digital signal processing methods for sine wave signal generation. In: SBT/IEEE international telecommunications symposium. https://doi.org/10.1109/ITS.1998.713134
Miralles D, Iwamoto J (2018) Accelerating software radios by means of SIMD Instructions. A case for the AVX2 and AVX512 extensions. In: Proceedings of the GNU radio conference, Henderson, Nevada, USA, 17–21 Sept, pp 1–7
Mitola J (1995) The software radio architecture. IEEE Commun Mag 33(5):26–38
Pany T (2010) Navigation signal processing for GNSS software receivers. Artech House, Norwood
Principe F, Bacci G, Giannetti F, Luise L (2011) Software-defined radio technologies for GNSS receivers: a tutorial approach to a simple design and implementation. Int J Navig Obs. https://doi.org/10.1155/2011/979815
Psiaki M (2001) Block acquisition of weak GPS signals in a software receiver. In: Proceedings of the ION GPS 2001, Institute of Navigation, Salt Lake City, Utah, USA, 11–14 Sept, pp 2838–2850
Rondeau T, McCarthy N, O’Shea T (2012) SIMD programming in GNU radio: maintainable and user-friendly algorithm optimization with VOLK. In: Proceedings of the WinnForum’s SDR Conference, Brussels, Belgium, 27–29 June, 101–110
Rupp K (2018) Forty two years of microprocessor trend data. https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/. Accessed 1 Jan 2019
The Intel Corporation (2017) Intel® 64 and IA-32 architectures software developer’s manual. Volume 1: basic architecture. Technical report 253665, The Intel Corporation, 2017. https://doi.org/10.1109/MAHC.2010.22
Xu L, Zhang H, Guo W, Zhang D (2013) A new SIMD correlator algorithm for GNSS software receivers to process complex IF data. In: Proceedings of the China satellite navigation conference, Wuhan, China, 15–17 May, pp 565–573
Acknowledgements
This material is based upon work partially supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE 1144083.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
The GPS Tool Box is a column dedicated to highlighting algorithms and source code utilized by GPS engineers and scientists. If you have an interesting program or software package you would like to share with our readers, please pass it along; e-mail it to us at gpstoolbox@ngs.noaa.govgpstoolbox@ngs.noaa.gov. To comment on any of the source code discussed here, or to download source code, visit our website at https://www.ngs.noaa.gov/gps-toolbox. This column is edited by Stephen Hilla, National Geodetic Survey, NOAA, Silver Spring, Maryland, and Mike Craymer, Geodetic Survey Division, Natural Resources Canada, Ottawa, Ontario, Canada.
Rights and permissions
About this article
Cite this article
Miralles, D., Akos, D.M. A SIMD intrinsic correlator library for GNSS software receivers. GPS Solut 23, 72 (2019). https://doi.org/10.1007/s10291-019-0865-8
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10291-019-0865-8