Skip to main content

Fast GNSS satellite signal acquisition method based on multiple resamplings


A fast Global Navigation Satellite System (GNSS) satellite signal acquisition method based on resampling is presented. In contrast to traditional approaches, which perform a single-round search with a high data rate, the proposed method introduces a signal acquisition mechanism that uses data resampling. Starting from a resampled data rate slightly above the Nyquist frequency, the proposed method conducts multiple rounds of searches with an increasing sampling rate. After each round of searching, the satellites are sorted according to their relative signal strengths. By removing satellites at the bottom of each sorted list, the search space for satellite acquisition is continuously pruned. If a sufficient number of satellites are not acquired when the original data rate is reached, the method will switch to the weak-signal detection mode and use non-coherent integration for the satellites at the top on the list. The non-coherent integration process continues until either a sufficient number of satellites are acquired or the maximum number of steps is reached. The experimental results show that the proposed method can acquire the same set of satellites as traditional methods but with a considerably lower computational cost. The proposed method was implemented in a software-based GNSS receiver and can also be used in hardware-based receivers.

1 Introduction

Global Navigation Satellite System (GNSS) positioning has been widely applied in various fields with the development of navigation technology. The basic blocks of a typical GNSS receiver include an antenna, RF front end, and digital baseband processor. The role of the antenna and front-end circuits is to detect satellite signals, amplify, and demodulate them to zero or a low intermediate frequency (IF), whereas the tasks of the digital baseband processor include satellite signal acquisition, tracking, and navigation data processing, as shown in Fig. 1 [1, 2].

Fig. 1
figure 1

Block diagram of a typical GNSS receiver

The first step in baseband processing is satellite signal acquisition. The signal acquisition module determines whether a certain satellite is “visible” in the sky from the observer’s viewpoint. If a satellite is visible, the acquisition algorithm provides an initial estimate of the phase shift of the corresponding pseudo-random number (PRN) code and Doppler frequency shift of the carrier [3]. According to the principle of satellite positioning, a GNSS receiver requires at least four visible navigation satellites to achieve a positioning in 3D space [4]. When there is no auxiliary network to provide assisting information, the receiver must sift through all navigation satellite signals to find at least four visible satellites to perform the positioning calculation. Thus, a fast and accurate acquisition of visible satellite signals provides a strong starting point for the subsequent positioning procedure and is one of the key steps for baseband signal processing.

Satellite signal acquisition involves a search in a two-dimensional space, which is defined by the PRN phase and Doppler frequency shift. The search is typically performed through the PRN code correlation operation [5]. Different correlation implementations include serial search acquisition (SSA) [6], which belongs to the traditional serial search scheme [7], parallel frequency space search acquisition (PFSSA) [8], and parallel code-phase search acquisition (PCPSA) [9]. Among these algorithms, the SSA performs the two-dimensional searches using digital correlators. The SSA is straightforward, but its efficiency is limited because of its serial search nature, e.g., Number_of_Doppler_Search (Typ. Value 41) × Number_of_PRN_Code_Search (Typ. Value 2,046) rounds of searches are required to obtain a single satellite signal in the worst case [10]. PCPSA is a search algorithm based on the fast Fourier transform (FFT). Using circular convolution to speed up the correlation, the PCPSA method derives a code shift for a single satellite with Number_of_Doppler_Search rounds of FFT/IFFT operations. Algorithms [11, 12] are more effective at simultaneously deriving the code phase shift and Doppler shift using the two-dimensional FFT. In the Doppler domain parallel acquisition, the input data for the FFT are reduced by a time domain integration to relieve the computational load [13].

The typical strength of a GNSS signal in open-sky conditions is approximately −130 dBm, which is considered strong. If the input is a strong signal, the PRN correlation can be performed by a coherent integration operation between a full PRN sequence and an input signal from the ADC with the same signal length. The signal acquisition for strong satellite signals can typically be accomplished after one round of correlation. When satellite signals are partially blocked or shaded, the signal strengths may be in the −150 dBm range, and such signals are considered weak. To acquire weak signals, more input data are necessary to perform a coherent or non-coherent integration operation to enhance the signal-to-noise ratio (SNR) [14, 15]. A more general scenario is that signals from different satellites vary in strengths, with some in the −130 dBm range and others in the −150 dBm range or even lower. Traditional approaches conduct searches using input data, whose length is often 1–10 ms, to acquire the largest number of satellite signals. Although this practice is effective in finding satellites with weak signals, it incurs unnecessary computational cost when finding satellites with strong signals.

We propose a modified PCPSA method based on multiple resampling (MR-PCPSA) to acquire all satellite signals and reduce the computational cost of satellite signal acquisition in a mixed-signal-strength situation. By performing an initial search using fewer sampling points that satisfy the Nyquist sampling theory, the proposed algorithm can derive a satellite list, which is sorted by their signal strengths, in a timely manner. A few satellites at the top on the list can be considered successfully acquired, and many satellites at the bottom on the list can be safely removed from subsequent searches without affecting the final results. A second round of search must examine only the uncertain satellites in the middle of the sorted list using an increased number of sampling points. This process repeats itself and passes the acquisition results to a subsequent tracking algorithm until the number of acquired satellites satisfies the requirement or the maximum number of iterations is reached. The experiments show that the proposed algorithm can reduce the computational cost by 35–45 % with a minimal effect on the search accuracy. Meanwhile, the tracking algorithm module can also perform a detailed search earlier because the satellites with strong signals can be acquired relatively earlier. Thus, we can achieve a faster overall positioning process.

The remainder of this paper is organized as follows. Section 2 introduces the MR-PCPSA method and explains how it reduces the computational cost compared to traditional approaches. Section 3 provides additional details about the software and one potential hardware implementation including a flowchart and block diagram. Experiments based on three sets of real data were analyzed, and the conclusion of the paper is provided.

2 MR-PCPSA method

The traditional PCPSA is a widely used, fast navigation satellite acquisition algorithm. Figure 2 shows a block diagram of PCPSA [9].

Fig. 2
figure 2

Block diagram of PCPSA

The correlation function can be used to determine the phase shift between two signals. The PCPSA algorithm describes an effective method to derive the correlation function, i.e., using the frequency domain product to replace the computationally expensive time domain convolution. The algorithm operates as follows. First, a digital mixer down-converts the signal from the IF to the baseband. Then, the baseband signal is transformed into the frequency domain using FFT. Meanwhile, a locally generated PRN code is transformed into the frequency domain and multiplied by the aforementioned frequency domain baseband signal. Then, the product of those two signals is transformed back into the time domain via an inverse FFT (IFFT). The squared absolute values of the IFFT results represent the correlation power of the two input signals. Finally, the visibility of a satellite can be determined by comparing the ratio of the correlation power values between the first peak and the second peak with a preset threshold [16].

Based on this PCPSA, we propose the MR-PCPSA method, as shown in Fig. 3.

Fig. 3
figure 3

Block diagram of MR-PCPSA

As shown in Fig. 3, MR-PCPSA introduces two additional blocks: the resample block and the controller block. A traditional non-coherent integration block is also included to address the weaker signals. The resample block is composed of a sampling rate generation part and a finite impulse response (FIR) filter [17], as shown in Fig. 4.

Fig. 4
figure 4

Resample block

As shown in the literature, the original IF signal x(n) can be resampled at a fraction of the original data rate I/D, as indicated by the following equations:

$$ {x}_R(n)={\displaystyle {\sum}_{k=-\infty}^{\infty }}x(k)h\left({D}_n-{I}_k\right) $$
$$ {\boldsymbol{X}}_{\boldsymbol{R}}\left({\boldsymbol{e}}^{\boldsymbol{j}\boldsymbol{\omega }}\right) \approx \left\{\begin{array}{c}\hfill \frac{\boldsymbol{I}}{\boldsymbol{D}}X\left({\boldsymbol{e}}^{\boldsymbol{j}\boldsymbol{\omega } \frac{\boldsymbol{I}}{\boldsymbol{D}}}\right)\kern1em \mathbf{0}\le \left|\boldsymbol{\omega} \right|\le \min \left(\frac{\boldsymbol{\pi}}{\boldsymbol{I}},\frac{\boldsymbol{\pi}}{\boldsymbol{D}}\right)\hfill \\ {}\hfill \mathbf{0}\kern11em \mathrm{others}\hfill \end{array}\right. $$

where x R (n) is resampled data, I k is the interpolation item, and D n is the decimation item. h(n) and H(e jw) are filter functions in the time and frequency domain respectively, as indicated in Eq. (3).

$$ \boldsymbol{h}\left(\boldsymbol{n}\right)\leftrightarrow \boldsymbol{H}\left({\boldsymbol{e}}^{\boldsymbol{j}\boldsymbol{\omega }}\right) = \left\{\begin{array}{c}\hfill \boldsymbol{I}\kern1.5em 0\le \left|\boldsymbol{\omega} \right|\le \min \left(\frac{\boldsymbol{\pi}}{\boldsymbol{I}},\frac{\boldsymbol{\pi}}{\boldsymbol{D}}\right)\hfill \\ {}\hfill \kern0.5em \mathbf{0}\kern6.25em \mathrm{others}\hfill \end{array}\right. $$

The input data rate is typically approximately quadruple of the IF. The resample block resamples the input data using a series of increasing sample rates starting from the lowest possible rate that satisfies Nyquist sampling theory. After each round of resampling, ratio is calculated and sorted. After the sorted list is derived, the satellites at the top on the list whose ratios are greater than the given threshold can be considered acquired; the satellites at the bottom on the list can be safely removed from the subsequent rounds of searching because all GNSS systems can observe only a portion of satellites at a fixed observing location at a given time. The satellites in the middle of the list are categorized as uncertain for the current round of searching and will be reexamined in the next round using input data with a higher resampling rate. After the original data rate is reached, the controller will stop increasing the sample rate. Instead, MR-PCPSA switches to the non-coherent integration-based weak-signal detection mode. The algorithm continues the non-coherent integration for many rounds using additional input data to further determine the visibility of the uncertain satellites until either the number of visible satellites is satisfied or the number of non-coherent integrations reaches a preset upper limit. Figure 5 provides a more detailed diagram of the controlling block.

Fig. 5
figure 5

Block diagram of the controlling block for MR-PCPSA

In Fig. 5, K NA is the number of visible satellites Need to Acquire for a successful position calculation, and it is typically set to an integer value of 4-12. f 1 and f RS are the resampling coefficients. f 1 is the initial resampling frequency and is typically set to the Nyquist frequency or slightly above. The optimal step size for f RS depends on the satellite signal strength distribution. Because the signal strength distribution is unknown before the acquisition process, we chose f RS step size to be around 20 % of the Nyquist frequency based on empirical data. K AA is the number of satellites Already Acquired, whose value is 0-12. R is the number of resampling rounds. K NCI is the number of Non-Coherent Integration based on a 1-ms time slot.

3 Computational cost analysis of the MR-PCPSA method

Although MR-PCPSA uses resampling to reduce the computational cost for the first round of scanning, the additional computational cost introduced by multiple rounds of resampling is limited because the search space in both the frequency and time domains is constantly pruned after each round of searching. Thus, MR-PCPSA has a noticeably lower overall computational cost than traditional methods. The settings in Fig. 5 typically reduce the computational cost by 35–45 % compared to PCPSA, which is the fastest among the existing approaches. For a general case including both strong and weak signals, the computational costs for PCPSA and MR-PCPSA are

$$ {C}_{\mathrm{PCPSA}}\propto {K}_{DS}{K}_{AS}N{ \log}_2N+\left(2{K}_{NA}\right){K}_{NCI}N{ \log}_2N $$
$$ {C}_{\mathrm{MR}\hbox{-} \mathrm{PCPSA}}\propto {K}_{DS}{K}_{AS}\left(\frac{f_1N}{f_s}\right){ \log}_2\left(\frac{f_1N}{f_s}\right)+\left(2{K}_{NA}\right){\displaystyle {\sum}_{RS=2}^R}\left(\frac{f_{RS}N}{f_s}\right){ \log}_2\left(\frac{f_{RS}N}{f_s}\right)+\left(2{K}_{NA}\right){K}_{NCI}N{ \log}_2N $$

where C PCPSA and C MR-PCPSA represent computational cost of the PCPSA algorithm and the proposed algorithm, respectively. K DS is the number of Doppler Search, K AS is the number of All Satellites, N is the number of points for FFT, K NA is the number of visible satellites Need to Acquire, K NCI is the number of Non-Coherent Integration, f 1 and f RS are the coefficients of resampling, f S is sampling frequency of original input data, and R is the number of resampling rounds. In Eq. (5), terms due to resampling operation were omitted because they are O(N) terms.

We derive the relationship between the average cost improvement and K NCI by substituting Eqs. (4) and (5) into the equation \( \left(1-\frac{C_{\mathrm{MR}\hbox{-} \mathrm{PCPSA}}}{C_{\mathrm{PCPSA}}}\right) \).

In Fig. 6, the computation costs were calculated using K DS  = 41, K AS  = 32, K NA  = 8, K NCI  = 10, and N = 16 × 106. The coefficients of three resampling rounds are f 1 = 0.5f s , f 2 = 0.75f s , and f 3 = f s .

Fig. 6
figure 6

Reduction in computational cost with different K NCI

MR-PCPSA uses resampling to reduce the computational cost for the first few rounds of searches, but the additional computational load caused by additional steps, such as FIR filtering, data interpolation, and decimation, is limited because they are O(N) operations. Major cost saving is achieved with a light-load first-round search and constant search space pruning for subsequent rounds. Hence, the overall computational cost of MR-PCPSA is notably lower than that of PCPSA.

4 Hardware and software implementation

MR-PCPSA can be applied to both software and hardware receivers. Figures 7 and 8 show the block diagram and flowchart of the hardware and software implementation, respectively.

Fig. 7
figure 7

Block diagram of the hardware implementation of MR-PCPSA

Fig. 8
figure 8

Flowchart of the software implementation of MR-PCPSA

As shown in Fig. 7, a hardware baseband processor typically consists of multiple identical channels; each channel is equipped with multiple parallel correlators and can achieve fast GPS satellite acquisition [18, 19]. Although MR-PCPSA can improve the performance of the hardware-based acquisition process, the improvement is overshadowed by the parallel nature of the hardware receiver. Compared to hardware implementation, MR-PCPSA is more amenable to a software receiver, which is largely a serial process even when run on a CPU with a limited number of cores. Thus, only software-based experiments were performed.

5 Experiments and analysis

MR-PCPSA was implemented in MATLAB. The GPS L1 band IF data from [8] were used as the test data. The data was 20 s long. The IF signal frequency was 4.1304 MHz, and the sampling rate for ADC was 16.3676 MHz. All experiments were performed on a PC with a 3.30-GHz system clock, Intel i5 CORE CPU and single threading. The PRN frequency is 1.023 MHz, and the Doppler frequency search range is 10 KHz with a 500 Hz step size. The 1-ms-based PCPSA method acquired five satellites, whereas three more satellites were acquired with 10 additional rounds of non-coherent integration, as shown in Figs. 9 and 10.

Fig. 9
figure 9

Satellites acquired with 1-ms PCPSA

Fig. 10
figure 10

Satellites acquired after 10 additional rounds of non-coherent integration

In Fig. 11, four satellites were acquired during the first round of MR-PCPSA with a 6/11 sampling rate, one satellite was acquired by MR-PCPSA with an 8/11 sampling rate, and three other satellites were acquired in 10 additional rounds of non-coherent integration with a threshold ratio of 3. As shown in Figs. 9, 10, and 11, compared to the PCPSA approach, the proposed method speeds up the capture process by conducting a faster preliminary search and pruning the search space for a detailed search based on the preliminary search results.

Fig. 11
figure 11

Satellite-acquiring sequence of MR-PCPSA

Figure 12 shows the computation time elapsed for the entire capture process based on the input data from [8]. The proposed method required approximately 4.7 s to capture all satellites, whereas the PCPSA method required 7.8 s; hence, the capture time was reduced by approximately 40 %.

Fig. 12
figure 12

Comparison of algorithm efficiencies

Finally, we tested the effectiveness of the proposed method with three additional sets of GPS L1 input data: datasets 1 and 3 were from [8], and dataset 2 was from [20]. The results are summarized in Table 1.

Table 1 Experimental results based on three sets of satellite data

The experimental results in Table 1 illustrate that the proposed method can capture all satellites as effectively as the original PCPSA method while reducing the computation cost by approximately 40 %. Nevertheless, since the signal acquisition process is much less computationally expensive compared to the tracking process and the navigation data processing process, the overall positioning speedup is not as noticeable as the figures listed in Table 1. The overall speedup for the whole positioning process is about 3 % on average.

6 Conclusions

A modified PCPSA method based on input data resampling is proposed. With an initial search that uses only a fraction of the original IF data and subsequent search space pruning, the proposed method can reduce the computational cost of satellite acquisition process without sacrificing the number of captured satellites. The proposed method is applicable to various versions of GNSS receivers, such as GPS, Galileo, and Compass.


  1. MS Braasch, AJ Van Dierendonck, in Proceedings of the IEEE. GPS Receiver Architectures and Measurements (IEEE, 1999), pp. 48-64

  2. BM Ledvina, ML Psiaki, SP Powell, PM Kintner, Bit-wise parallel algorithms for efficient software correlation applied to a GPS software receiver. IEEE Trans. Wireless Commun. 3(5), 1469–1473 (2004)

    Article  Google Scholar 

  3. P Misra, P Enge, Global Positioning System Signals, Measurements, and Performance, 2nd edn. (Ganga-Jamuna Press, USA, 2006)

    Google Scholar 

  4. JB-Y Tsui, Fundamentals of Global Positioning System Receivers: A Software Approach, 2nd edn. (John Wiley & Sons Press, USA, 2005)

    Google Scholar 

  5. J Leclère, C Botteron, P-A Farine, Comparison framework of FPGA-based GNSS signals acquisition architectures. IEEE Trans. Aerosp. Electron. Syst. 49(3), 1497–1518 (2013)

    Article  Google Scholar 

  6. DM Akos, A Software Radio Approach to Global Navigation Satellite System Receiver Design. PhD thesis, (Ohio University, 1997)

  7. A Polydoros, CL Weber, A unified approach to serial search spread-spectrum code acquisition Part I: general theory. IEEE Trans. Commun. 32(5), 542–549 (1984)

    Article  Google Scholar 

  8. K Borre, DM Akos, N Bertelsen, P Rinder, SH Jensen, A Software-Defined GPS and Galileo Receiver: A Single-Frequency Approach (Birkhäuser Press, Boston, 2007)

    MATH  Google Scholar 

  9. DJR Van Nee, AJRM Coenen, New fast GPS code-acquisition technique using FFT. Electron. Lett. 27(2), 158–160 (1991)

    Article  Google Scholar 

  10. K Krumvieda, P Madhani, C Cloman, E Olson, J Thomas, P Axelrad, W Kober, in Proc. ION GPS. A Complete IF Software GPS Receiver: a Tutorial about the Details (ION, Salt Lake City, 2001), pp. 789-829

  11. D Akopian, in IEE Proceedings-Radar Sonar and Navigation. Fast FFT Based GPS Satellite Acquisition Methods (IET, 2005), pp. 277-286

  12. PK Sagiraju, GVS Raju, D Akopian, Fast acquisition implementation for high sensitivity global positioning systems receivers based on joint and reduced space search, IEE Proceedings on Radar, Sonar, and Navigation. 2(5), 376-387 (2008)

  13. H Mathis, P Flammant, A Thiel, in Proc. ION GPS/GNSS. An Analytic Way to Optimize the Detector of a Post-correlation FFT Acquisition Algorithm (ION, Portland, OR, 2003), pp. 689-699

  14. F Van Diggelen, IEEE Position Location and Navigation Symposium, in Indoor GPS Theory & Implementation (IEEE, Palm Springs, 2002), pp. 240–247

    Google Scholar 

  15. N Agarwal, J Basch, P Beckmann, P Bharti, S Bloebaum, S Casadei, A Chou, P Enge, W Fong, N Hathi, W Mann, A Sahai, J Stone, J Tsitsiklis, B Van Roy, Algorithms for GPS operation indoors and downtown, GPS Solutions, pp 149-160 (2002)

  16. DM Akos, P-L Normark, J-T Lee, KG Gromov, JBY Tsui, J Schamus, in Proc. ION GPS. Low Power Global Navigation Satellite System (GNSS) Signal Detection and Processing (ION, Salt Lake City, 2000), pp. 784-791

  17. PP Vaidyanathan, in Proc. IEEE. Multirate Digital Filters, Filter Banks, Polyphase Networks, and Applications: a Tutorial (IEEE, 1990), pp. 56-93

  18. F Van Diggelen, A-GPS: Assisted GPS, GNSS, and SBAS (Artech House Press, Boston, 2009)

    Google Scholar 

  19. B Parkinson, J Spilker Jr, P Axelrad, P Enge, Global Positioning System Theory and Application, vol. I (American Institute of Aeronautics and Astronautics Press, Washington, DC, 1996), pp. 177–208

    Book  Google Scholar 

  20. S Gleason, D Gebre-Egziabher, Gnss Application and Methods (Artech House Press, Boston, 2009)

    Google Scholar 

Download references

Competing interests

The authors declare that they have no competing interests.

Author information

Authors and Affiliations


Corresponding author

Correspondence to Yong Wang.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wang, Y., Mao, G. Fast GNSS satellite signal acquisition method based on multiple resamplings. EURASIP J. Adv. Signal Process. 2016, 109 (2016).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: