Skip to main content
Log in

A SIMD intrinsic correlator library for GNSS software receivers

  • GPS Toolbox
  • Published:
GPS Solutions Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Pany T (2010) Navigation signal processing for GNSS software receivers. Artech House, Norwood

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

Download references

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

Authors

Corresponding author

Correspondence to Damian Miralles.

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10291-019-0865-8

Keywords

Navigation