# Energy Efficient GNSS Signal Acquisition Using Singular Value Decomposition (SVD)
## 1 Introduction  
In software implementations, massive parallel correlation is done by exploiting the Fourier transformation. Mathematically, a time domain convolution is a multiplication in the frequency domain. By having all the IF samples in memory, we can transform to the frequency domain, perform a simple multiplication by the Fourier transform of the Pseudorandom noise (PRN) code, and later perform an inverse transform back to the time domain, this approach requires a large amount of random access memory RAM to store the data being received from the IF, and it is more of a store and process approach [1]. This research explores the use of compressed sensing (CS) to reduce the number of samples and, therefore, the amount of RAM required, which could allow the development of new processing signal technologies where the signal is processed where more computational resources are available. Due to digital processing technology and the implementation of software-based GNSS receivers, researchers are motivated to try new acquisition and tracking methods of the GNSS signal with theadvantages of robustness, sensitivity, and anti-jamming capabilities [2]. With the development of GNSS systems with more robust signals and the development of multiple constellations, GNSS receivers are facing a considerable amount of data processing, and the receiver hardware is growing larger, having a dramatic impact on the development of consumer- and professional-grade GNSS receivers. Receiver manufacturers are busily developing and implementing unique signal acquisition and tracking algorithms, advanced integrity monitoring algorithms, advanced multipath mitigation algorithms, and a host of other enhancements in an effort to improve the performance of GNSS receivers and make their products stand out in a crowded field [3]. The primary objective of this paper is to develop a technique that allows reducing the number of samples with a secondary goal of improve the computational requirements of GNSS signal acquisition by optimizing the computational complexity. For the purpose of this paper, acquisition its understood as the process to estimate the code phase and Doppler values of GNSS signals from the IF that are accurate enough to start tracking [4]. Thus, this paper focuses on a GNSS receiver in the cold start state when the receiver does not rely on stored information [5], specifically, Global Positioning System (GPS) receivers and its application to other constellations, like the European constellation Galileo. GPS receivers must observe and measure GNSS navigation signals from at least four satellites to obtain a three-dimensional position, velocity, and user clock error estimates. Use of more than the minimum four satellites will improve the accuracy of the user solution by using an overdetermined solution [6]. GPS satellites simultaneously transmit several ranging codes and navigation data using binary phase-shift keying (BPSK). However, only a limited number of central frequencies are used. Satellites using the same frequency are distinguished by using different ranging codes, also called chipping codes. Satellites are uniquely identified by a serial number called the space vehicle number (SVN) which does not change during its lifetime [7]. Additionally, all operating satellites have a pseudo-random noise (PRN) number which uniquely identifies the ranging codes that a satellite uses. The GPS satellite generates the signal. A frequency synthesizer driven by an atomic clock on the satellite makes a sinusoidal carrier frequency at 1575.42 MHz. This carrier is then modulated with a repeating code known as the C/A (coarse/acquisition) code. The C/A code is a binary sequence of 1023 bits, and it is used to multiply the carrier to form a binary phase-shift keyed (BPSK) modulated signal, The C/A is repeated every millisecond. The signal is further modulated by a 50-bps data stream containing the ephemeris data.