# Reduced-complexity FFT-based method for Doppler estimation in GNSS receivers

- Baharak Soltanian
^{1}Email author, - Ali Murat Demirtas
^{2}, - Ali Shahed hagh ghadam
^{3}and - Markku Renfors
^{1}

**2014**:143

https://doi.org/10.1186/1687-6180-2014-143

© Soltanian et al.; licensee Springer. 2014

**Received: **24 December 2013

**Accepted: **20 August 2014

**Published: **15 September 2014

## Abstract

In this article, we develop a novel algorithm for Doppler acquisition in fast Fourier transform (FFT)-based Global Navigation Satellite System (GNSS) receivers. The Doppler estimation is carried out in FFT domain by finding the frequency shift which maximizes the energy of the correlation vector. Subsequently, energy detection is used for preliminary decision about the presence of the target code. Then, the final decision and code phase estimation are done in the time domain after taking the inverse fast Fourier transform (IFFT). It is shown that the proposed algorithm has the potential for reducing the average number of required IFFTs in the acquisition process. For improving the sensitivity of the proposed approach, time-domain block averaging and FFT-domain non-coherent integration are investigated as alternative methods. They exhibit rather similar performance improvement, but the non-coherent integration approach is found to be computationally more effective.

## Keywords

## 1 Introduction

The direct-sequence spread spectrum (DSSS) technique is a method in which a signal of narrow bandwidth is intentionally spread over a wider bandwidth in the frequency domain. It provides security and lower sensitivity towards noise, interference, and jamming in communication and positioning systems. Examples of systems using DSSS with code division multiple access (CDMA) are the Global Navigation Satellite Systems (GNSS), such as Global Positioning System (GPS) and Galileo.

In GNSS, the transmitter utilizes a pseudo random noise (PRN) sequence to expand a narrow-band signal over a wider spectrum. The PRN codes repeat with the period of *T*_{
c
}, and the codes used by different satellites are quasi-orthogonal [1]. This means that the cross-correlation function between two different codes or the auto-correlation between a specific code and a shifted version of it takes a small value. A correlation peak is observed when taking a correlation between the received signal and a code which is present in the received signal, and the two codes are aligned with each other [2, 3]. If the carrier-to-noise ratio (CNR) is low, then the GNSS receiver must process more than a single code period *T*_{
c
} of the received signal to find the code phase. Due to the unknown beginning of the PRN code in the received signal, the code phase is a random variable with uniform distribution over a known interval which is the length of the PRN code. The length of the GPS Coarse/Acquisition (C/A) codes is 1,023 chips with *T*_{
c
}=1 ms. The common approach to discover the code phase is to perform the correlation between the incoming baseband signal and a locally generated PRN code.

Another parameter which must be extracted by the receiver is the Doppler frequency shift caused by the satellite’s and the user’s motion. The Doppler frequency shift is also a random variable with uniform distribution over the interval of [−10,10] kHz. The state of the art to estimate the Doppler frequency shift is that the receiver fulfills a sequential search over the interval of [−10,10] kHz with a step size of *α*. The combination of search in the two dimensions for the code phase and the Doppler shift is called acquisition. The acquisition is performed either in the time domain, frequency domain, or combination of both [4–9].

The time domain acquisition is easy to implement on application-specific integrated circuit-based (ASIC) devices, but it is time consuming when it comes to utilization of software-defined radio (SDR) receivers. Thus, a faster alternative for SDR-based devices is fast Fourier transform (FFT)-based acquisition which, however, has relatively high computational complexity.

The high complexity of the FFT-based acquisition is caused by (a) wide bandwidth of the incoming baseband signal which forces the device to deal with long FFT and inverse fast Fourier transform (IFFT) and (b) utilization of the conventional sequential search to estimate the Doppler frequency shift. The reason why GNSS receivers process wide bandwidth signal is to have sharper correlation peak and reduce the effect of multi-path. Having narrow bandwidth in acquisition stage rounds the correlation peaks for both direct and multi-path signals. Increasing the bandwidth of the signal is a solution for the mentioned problem, but it leads to high complexity due to the need of computing repetitive long FFTs and IFFTs [10].

An alternative solution for the sequential search is to employ optimum search methods such as binary search [11]. The challenge of long FFTs and IFFTs can be partly relaxed through the use of multi-rate signal processing [12].

In this paper, we address the problem of performing a large number of IFFTs while the receiver searches for the Doppler frequency shift. First, we propose utilization of maximum likelihood estimation in the FFT domain to find and estimate the Doppler shift. Then, we employ the concept of energy detection to determine the presence of the desired signal in the frequency domain. This combination decreases the number of required IFFTs for FFT-based acquisition significantly. To the best of our knowledge, Doppler estimation in the FFT domain has not been elaborated in the GNSS literature.

In Section 2, the conventional FFT-based acquisition method is described. The FFT-based Doppler estimation algorithm is developed in Section 3. Numerical results and comparisons for GPS acquisition are presented in Section 4. Finally, our conclusions are given in Section 5.

## 2 FFT-based acquisition algorithm

### 2.1 Signal model

where *s*_{
l
}(*n*)=*A*_{
l
}*c*_{
l
}(*n*)*d*_{
l
} and *n*∈[0, *N*−1] where *N* is the code length in samples. Here, *A*_{
l
}, *c*_{
l
}(*n*), and *d*_{
l
} are the gain, the PRN code, and the navigation data, respectively. The navigation data is assumed to be constant over the acquisition time interval. Note that *s*_{
l
}(*n*) is the transmitted signal from the *l* th satellite and *n*_{
l
} is the delay in samples, ${f}_{{d}_{l}}$ is the normalized frequency shift due to the Doppler effect, *L* is the number of satellites in line of sight, and *w*(*n*) is additive white Gaussian noise with $E\left(\left|{s}_{l}^{2}\left(n\right)\right|\right)\ll E\left(\left|{w}^{2}\left(n\right)\right|\right)$. Thus, it is possible to assume that each *s*_{
l
}(*n*) is a wide-sense stationary (WSS) Gaussian process [2].

where *s*_{1}(*n*) is the target satellite signal, *s*_{
l
}(*n*) denotes the received signals from other satellites in line of sight, and ${w}_{1}\left(n\right)={\sum}_{l=2}^{L}{s}_{l}(n-{n}_{l}){e}^{\phantom{\rule{0.3em}{0ex}}j2\pi {f}_{{d}_{l}}n}+w\left(n\right)$ is the noise plus interference term.

### 2.2 Circular correlation and Doppler estimation

*z*(

*n*), and the corresponding real spreading code

*c*

_{1}(

*n*) can be expressed as

*Δ*

*f*

_{ l }is the normalized frequency offset after carrier plus partial Doppler removal,

*r*

_{1,1}(

*n*) is the correlation function of the target signal, and $u\left(n\right)={\sum}_{l=2}^{L}{r}_{1,l}\left(n\right)+{u}_{1}\left(n\right)$. This can be expressed in the frequency domain as

It follows that frequency shifts which are multiples of the FFT resolution (FFT bin spacing) can be implemented through shifting the FFT of the input signal. If this resolution is not sufficient in the Doppler search, then improved resolution can be reached by taking the FFT for the received baseband signal with partial Doppler removal. In the GPS case, the FFT resolution is commonly 1 kHz, while 500-Hz Doppler resolution is targeted at the acquisition stage.

The frequency interval in which the Doppler frequency shift belongs to is known to the receiver. It is commonly assumed to include also the GPS receiver’s local oscillator frequency offset and selected as [−10,10] kHz. Conventionally, in order to estimate the Doppler effect in the FFT-based receiver, a sequential search over the interval of [−10,10] kHz with a step size of *α*=0.5 kHz is performed. For each candidate Doppler frequency, the FFT of the resultant signal is multiplied by the conjugate FFT of a locally generated PRN code and an IFFT is computed. In the worst case, the receiver has to perform FFT for $\beta =\frac{20}{0.5}+1=41$ shifted versions of the input signal and multiply the resultant signal each time by the conjugate FFT of the PRN code. Then, it is needed to compute *β* IFFTs and search for the peak of the correlation function for each of them. Since the FFT bin spacing is 1 kHz, the FFTs with Doppler values of −10,−9,−8,…,10 kHz can be obtained from a single FFT just by shifting the FFT bins. Likewise, the Doppler cases of −9.5,−8.5,…,9.5 kHz can be obtained from a single FFT with 0.5-kHz shift implemented before FFT. Consequently, *β*+2 FFTs/IFFTs are needed altogether to test all possible Doppler values.

The conventional algorithm is as follows:

**Conventional algorithm**

- 1.
Strip off the carrier frequency and take the FFTs of the incoming signal and its 500-Hz shifted version.

- 2.
Perform the conjugate FFT of the locally generated PRN code.

- 3.
**For***D**o**p**p**l**e**r*=−10:0.5:10 kHz- (a)
Shift FFT of the incoming signal to compensate the Doppler frequency shift.

- (b)
Multiply the resultant signal from step 3a by the final result from step 2.

- (c)
Take the IFFT of the outcome of step 3b.

- (d)Find the acquisition margin (AM).
- (i)
If

*A**M*>*γ*, then terminate.

- (i)

- (a)

**End**
**End of algorithm**

Here, AM is the ratio of the maximum of the magnitude of the correlation function to its second maximum peak.

The drawback of conventional approach is that the receiver needs to perform *β*=41 times IFFT of length *N*=*f*_{
s
}*T*_{
c
} in the worst case. Here *f*_{
s
} and *N* are the sampling frequency and the FFT length, respectively. This increases the complexity of the system in comparison to time-domain acquisition, and in this paper, our goal is to overcome the problem by introducing a new algorithm.

## 3 Proposed algorithm

Due to the complexity caused by the widely implemented method of FFT-based acquisition, a big challenge is how to reduce the complexity of the overall system. One of the items that increases the complexity is the utilization of the sequential search method to attain the Doppler frequency shift. As mentioned, in the worst case, *β*+2=43 FFT/IFFT transform calculations are needed.

One approach to reduce the overall number of the required transforms is to employ new search algorithms such as the modified binary search [11]. Another solution is to appraise the Doppler frequency shift and descry the presence of the target GPS code in the frequency domain. By this, it might be possible to reduce the total required number of FFT/IFFTs in the worst case (Doppler of 10 kHz) from 43 to 3 which reduces the acquisition time considerably. Of course, we have to examine whether the acquisition performance, in terms of detection and false alarm probabilities, is sufficient in such FFT-domain acquisition.

Our proposed algorithm divides the acquisition stage into three steps: (a) estimate the Doppler frequency shift in the frequency domain, (b) compare the decision variable against a threshold to check whether the signal of interest is present, and (c) find the related code phase.

In the next subsections, first we describe the effect of the Doppler frequency shift on the acquisition stage. Then, we explain how to search for the Doppler in the frequency domain and finally how to utilize the energy detector and set the threshold to detect the presence of the desired signal.

### 3.1 Doppler frequency shift

One of the parameters that must be estimated in the acquisition stage is the Doppler frequency shift which is caused mainly by the Doppler effect resulting from the satellite’s and the user’s motion. It is a random variable with a uniform distribution over [−10, + 10] kHz. The residual frequency offset has two effects: (a) it attenuates the correlation function’s (CF) peak value significantly, and (b) it may cause fractional chip shift [13]. This is the reason why the GPS receiver must estimate the Doppler frequency shift with a reasonable error/offset [14]. Typically, ±250 Hz residual frequency offset range is considered acceptable at the acquisition stage.

*n*

_{ l }is the incoming signal’s code phase,

*m*

_{ l }is the PRN code’s code phase, and

*Δ*

*f*

_{ l }is the residual frequency offset. The maximum magnitude of the CF happens when the code phases are completely aligned. This means

*n*

_{ l }=

*m*

_{ l }.

*d*

_{ l }is constant over 1 ms of correlation time, and since

*c*

_{ i }(

*m*+

*n*

_{ l }) is a sequence of ±1, then ∣

*c*

_{ l }(

*m*+

*n*

_{ l })∣

^{2}=1 and thus

Equation (7) can be used for evaluating the effect of a given Doppler shift on the acquisition performance. It shows that the Doppler shift affects the CF’s peak in two ways: First, it introduces an exponential term of ${e}^{\phantom{\rule{0.3em}{0ex}}\mathrm{j\pi \Delta}{f}_{l}(N-1)}$ which is a constant phase rotation. Second, the term sin(*π* *Δ* *f*_{
l
}*N*)/ sin(*π* *Δ* *f*_{
l
}), attenuates the magnitude of the CF and may jeopardize the correlation process [13, 15]. Thus, before checking whether the signal is present, it is necessary to estimate the Doppler frequency shift with sufficient resolution.

### 3.2 Doppler search in the frequency domain

*z*(

*n*) is the received baseband signal after carrier and partial Doppler removal and

*c*

_{1}(

*n*) is the target PRN code. The noise is assumed to be additive complex circular white Gaussian (AWG) with distribution $\mathcal{N}(0,\phantom{\rule{0.3em}{0ex}}{\sigma}^{2})$. If the received signal is WSS and its length is sufficiently large, then the maximum likelihood estimate (MLE) can be found by minimizing [16]

*k*is the FFT index,

*k*

_{ d }is the trial Doppler, ${P}_{\mathit{\text{zz}}}(k;{k}_{d})={\mathcal{Z}}_{\mathit{\text{zz}}}(k-{k}_{d})+{\mathcal{Z}}_{\mathit{\text{zz}}}(-k+{k}_{d})$ and ${\mathcal{Z}}_{\mathit{\text{zz}}}\left(k\right)={\left|Z\left(k\right)\right|}^{2}$ is a low-pass power spectral density (PSD) of the FFT input signal,

*z*(

*n*), and

*I*(

*k*) is the periodogram of the target PRN code. Since ${\sum}_{k=-N}^{N}ln\left(\frac{{P}_{\mathit{\text{zz}}}(k,{k}_{d})}{{\sigma}^{2}}+1\right)$ does not depend on

*k*

_{ d }, then the ML solution can be simplified as

Equation (14) suggests performing a grid search in the frequency domain over the interval of [−10, + 10] kHz in order to find the frequency offset which gives the highest energy in the frequency domain. For the energy grid search (EGS), the required number of FFT/IFFTs is *N*_{
r
}=3, while for the conventional search, the number of required FFT/IFFTs is *N*_{
r
}=*β*+2. The price to be paid for reducing the required number of FFT/IFFTs is lower probability of detection for weak signals.

One approach to solve the mentioned problem is to perform the IFFT for the Doppler frequency shift which gives the maximum energy for EGS and checks whether the correlation function’s peak in the time domain is observable. If true, then terminate the search; otherwise, move to the Doppler frequency which gives the second maximum value and continue till the peak of correlation function is detectable.

### 3.3 Signal detection in the frequency domain

In the previous subsection, we explained how to search for the Doppler frequency shift in the frequency domain. Equation (14) shows that the maximum likelihood estimation of the Doppler frequency shift resembles energy detection.

In spite of the significant saving on the required number of IFFTs, the plain concept of the EGS for low CNR demonstrates low probability of detection compared with the conventional search. We modify our algorithm in order to overcome the mentioned drawback. Each time the receiver checks the maximum energy in the frequency domain to confirm whether the correct Doppler frequency shift is found, it performs the IFFT. If the correct Doppler frequency is not found, then the receiver moves to the next Doppler frequency which gives the second maximum in the energy and the search is terminated if the correct Doppler shift is found. By this, the probability of the detection improves. This approach has one more drawback. In the absence of the desired signal, the receiver must perform *β* IFFTs which increases the complexity of the proposed algorithm. To address this problem, we propose the utilization of the energy detector in the frequency domain to check whether the desired signal is present.

The notion of the energy detector has been used in many different areas of signal processing, and in the recent decade, it has been applied extensively in cognitive radios [17].

*r*

_{1,1}(

*n*) is the correlation function of the target signal, and

*u*(

*n*) is noise plus the cross-correlation functions for the signals of other satellites in line of sight. The decision statistic is

*N*, the length of the received signal, is sufficiently large, it is possible to assume that has a normal distribution of

*P*

_{ d }, and probability of false alarm,

*P*

_{ fa }, can be calculated from

where *γ* is the detection threshold.

This means that the total energy of a signal in both time and frequency domains are equal [18].

In the energy detector, the threshold depends on the power of the noise so it must be either known or possible to estimate. In the case of GNSS signals, the noise after the correlation stage, Equation (3), contains two parts: (a) the thermal noise, *w*(*n*), caused by the receiver itself and (b) the cross-correlation functions due to the presence of the other satellites, ${\sum}_{l=2}^{L}{r}_{1,l}\left(n\right)$. The first part can be estimated, but the second part is difficult if not impossible, and that is the source of the noise uncertainty in the utilization of the energy detector for the GNSS receiver. The effect of the uncertainty on the estimation of the noise introduces a limit on the performance of the energy detector [19, 20].

*γ*, is calculated as

After we determine an approximation of the power of noise using Equation (20), we then are able to use Equation (22) to calculate *γ*.

In Equation (22), the first term, $\left(\phantom{\rule{0.3em}{0ex}}\sum _{l=1}^{L}\phantom{\rule{0.3em}{0ex}}{\sigma}_{32,l}^{2}\right)\phantom{\rule{0.3em}{0ex}}\left(\phantom{\rule{0.3em}{0ex}}1\phantom{\rule{0.3em}{0ex}}+\phantom{\rule{0.3em}{0ex}}{\mathcal{Q}}^{-1}\phantom{\rule{0.3em}{0ex}}\left(\phantom{\rule{0.3em}{0ex}}{P}_{\mathit{\text{fa}}}\phantom{\rule{0.3em}{0ex}}\right)\phantom{\rule{0.3em}{0ex}}/\phantom{\rule{0.3em}{0ex}}\sqrt{N}\right)$, has a critical role when it comes to the matter of choosing *γ*. If there are no interference signals from other satellites, to choose *γ*, two parameters have to be considered, *P*_{
fa
} and ${\sigma}_{u}^{2}$; the lower the *P*_{
fa
}, the higher *γ* which leads to lower *P*_{
d
}. In our case, when there is interference from other satellites in line of sight (LOS), the term ${\sum}_{l=1}^{L}{\sigma}_{32,l}^{2}$ does not present the real value of the interference’s power. Then, we do face an error (bias value) in our estimation, and we have to choose *γ* and *P*_{
fa
} very conservatively which results in higher *P*_{
fa
} and lower *γ*[16].

*Δ*

*σ*

^{2}. If we use the desired PRN code instead of the PRN code 32, then

*Δ*

*σ*

^{2}is the noise uncertainty and $\delta {\sigma}_{l}^{2}={\sigma}_{32,l}^{2}-{\sigma}_{1,l}^{2}$. Uncertainty in the noise estimation may cause the detector to indicate that the desired signal is present even when it is not or to indicate that the desired signal is absent when it is present. It has been explained in [20] that if the uncertainty is higher than a certain level, the detector will fail for weak signals regardless of the number of samples to be processed. As a result, noise uncertainty introduces an SNR wall which is derived in [19] as follows:

where $\rho =1+\Delta {\sigma}^{2}/{\sigma}_{r}^{2}$.

Equation (23) shows that the noise uncertainty in GNSS receivers is caused by the number of satellites in line of sight, their power levels, and the cross-correlations between corresponding PRN codes and the target code and the unused code.

*L*, the better the probability of detection. The target PRN is PRN number 2 with a CNR of 52 dB-Hz,

*L*∈ [4,9] is the number of satellites in line of sight, and all the other satellites in line of sight have equal CNR. Here, we choose the

*P*

_{ fa }= 65

*%*to calculate

*γ*using Equation (22). Due to the uncertainty in calculating the power of the noise, we have to choose the

*P*

_{ fa }higher than usual.

### 3.4 Final algorithm

In subsections 3.2 and 3.3, we explained the search algorithm for the Doppler frequency shift and the detection procedure for the desired signal. As we mentioned, the problem with the plain EGS is that in spite of significant saving on the number of required IFFTs for strong signals, the algorithm’s performance for weak signals is not as good as the conventional approach. To solve the problem, we modified the search algorithm in order to be competitive with the conventional search, but this approach has a drawback. If the signal of interest is absent, then the receiver must go through the search list and perform *β* IFFTs. To deal with the mentioned problem, we employ an energy detector to detect the presence of the desired signal.

The final algorithm can be summarized as follows:

Here, *β* is the maximum number of required IFFTs, which in our case is 41.

### 3.5 Coherent block averaging

*B*non-overlapping blocks with the length of 1 ms (code epoch) and adding them together.

where 0≤*n*<*N*, *N* is the number of samples in 1 ms of signal, and *B* is the number of milliseconds to be block averaged, respectively.

*c*(

*n*+

*i*

*N*)=

*c*(

*n*) and

*d*(

*n*) can be assumed to be constant over averaging time

*B*≤20 ms, it is possible to rewrite (26) as follows:

### 3.6 Non-coherent integration

Another alternative to enhance the power of the incoming signal is utilization of non-coherent integration in the FFT domain. We take *B* milliseconds of consecutive incoming signal and transfer each millisecond individually into the frequency domain, and finally, we take sample-wise squared magnitudes of the *B* FFTs and average them. By this, the required number of transforms remains the same but the number of Doppler values in the search is reduced considerably, compared to BA with the same length.

## 4 Analysis, numerical comparison, and result

In this section, numerical and statistical results of our proposed algorithm are presented.

### 4.1 Numerical results

In our simulation study, we use GPS *L* 1 frequency of 1,575.42 MHz, C/A code of length 1,023 chips, chip rate of 1.023 MHz, and oversampling factor of 8. In this case, a timing error of one chip corresponds to about 300 m error in pseudorange. Conventionally, in acquisition stage, the target for timing error is ±0.5 chips.

In the signal of Equation (2), *L*=6, and we choose the PRN codes 1 to 6 to be used. The target code is number 2, and its CNR is in the range of [36, 59] dB-Hz. The average CNR from other satellites in LOS is 41 dB-Hz. In our case, they are as [39, 42, 36, 45, 40].

*β*+3 in the worst case. The price that we pay for the significant saving on IFFTs is low probability of detection for weak signals. To overcome the problem, we propose that after finding the maximum energy, the receiver performs an IFFT and checks for the correlation function’s peak. If it is detectable, the search is terminated; otherwise, the next local maximum value of the energy is checked, and the search is continued till the peak of the correlation function is visible.

*γ*, and the probability of false alarm,

*P*

_{ fa }, if we take 50 dB-Hz as the target CNR and

*P*

_{ d }=99

*%*as the target detection probability, then the threshold should be selected in such a way that the false alarm probability becomes

*P*

_{ fa }=0.65.

*P*

_{ fa }=0.5. Figure 10 displays the ROC curve when the GPS receiver utilizes the EGS plus non-coherent integration when 10 ms of incoming signal is processed. If the target CNR>45 dB-Hz and the target probability of detection is 99%, then the threshold should be selected in such a way that the false alarm probability becomes

*P*

_{ fa }=0.5.Figure 11 shows the result for our basic solution processing GPS signal over 1 ms interval. We can observe that the number of the required IFFTs on average for our proposed algorithm is significantly less than the number of required IFFTs for conventional search. The probability of detection is the same for both approaches.Figures 12, 13, 14 show the result when block averaging over 5, 10, and 20 ms of the incoming baseband signal is utilized. The result demonstrates an improvement for weak signals. Particularly, BA over 20 ms reduces the number of required IFFTs significantly. In Figure 15, the result for non-coherent integration over 10 ms is also shown.

### 4.2 Complexity comparison

In this subsection, we compare the complexity of the proposed algorithm with conventional FFT-based acquisition. As complexity metric, we use the number of real multiplications needed in the acquisition process.

*N*=8,192 are used, and each transform takes

*N*(log2(

*N*)+3)+4=131,076 real multiplications when using the efficient split-radix algorithm. This can be well approximated as 16

*N*real multiplications. Table 1 shows the number of required FFTs for different approaches. Note that when the BA is utilized, the frequency offset after Doppler removal must be less than 50 Hz for

*L*=10.

**Complexity evaluation of different FFT-based acquisition schemes**

Algorithm | Number of FFTs | Number of tested | Average number | Number of real | ||
---|---|---|---|---|---|---|

Doppler values | of IFFTs | multiplications | ||||

High CNR | Low CNR | High CNR | Low CNR | |||

Conventional FFT-based | 2 | 41 | 20.5 | 41 | 32 | 32 |

EGS (1 ms) | 2 | 41 | 1 | 25 | 36 | 36 |

EGS + BA (5 ms) | 10 | 201 | 1 | 25 | 180 | 180 |

EGS + BA (10 ms) | 20 | 401 | 1 | 25 | 360 | 360 |

EGS + BA (20 ms) | 40 | 801 | 1 | 25 | 720 | 720 |

EGS + NCI (10 ms) | 20 | 41 | 1 | 25 | 322 | 322 |

The FFT-domain decision variable can be calculated as ${\sum}_{k=0}^{N-1}{\left|Z(k-{k}_{d})\right|}^{2}\times {\left|{C}_{1}^{\ast}\left(k\right)\right|}^{2}$ where *Z*(*k*−*k*_{
d
}) is the shifted version of the incoming baseband signal and *k*_{
d
}∈[−10, + 10]. The squared magnitude FFT vectors for different codes can be pre-calculated and stored. In the basic EGS algorithm and with non-coherent integration (NCI), the squared magnitude FFT vector for the input needs to be calculated twice, for the 0- and 500-Hz offsets. With coherent block averaging of *N*_{BA} 1 ms intervals, this number becomes 2*N*_{BA}. The same FFTs and the same squared magnitude vectors are used for acquisition of all codes, so the effect of these calculations on the overall complexity is relatively small. What needs to be calculated intensively is the product of the squared magnitudes for each tested Doppler value. This takes *N* real multiplications for each Doppler test, if all the FFT bins are used. To cover all the Doppler cases, (40*N*_{BA}+1)*N* real multiplications are needed, which have about the same complexity as 2.5*N*_{BA} IFFTs. The conventional FFT-based algorithm uses a multiplication of two complex vectors of length *N* in the FFT domain, which is assumed to take 3*N* real multiplications.

Table 1 shows detailed comparison of the complexity of different FFT-based acquisition schemes. The number of real multiplications is given in two parts: The first part is independent of the number of different codes (*C*) covered in the search, and the second part is proportional to *C*. The ‘high CNR’ cases of Table 1 are cases where the correlation peak can be reliably detected in the frequency domain by the EGS method and in the time domain by the traditional approach. ‘Low CNR’ cases of the table correspond to the the situation where the code is not detectable anymore.

Due to the increased number of Doppler values to be tested, the coherent block averaging seems to be less efficient than the non-coherent integration approach. However, the complexity of the algorithm can be greatly reduced by doing the FFT domain multiplications only for the strong FFT bins of each code. Furthermore, it might be preferable to change the search strategy while considering all the PRN codes that can be expected to be present in the received signal. An alternative approach is to try to find the strongest codes first, without iterating the time-domain peak checking. This can be done by testing the highest FFT-domain energy cases for all possible codes, before going to the iterative peak detection. These ideas remain as a topics for further studies.

## 5 Conclusion

In this article, we propose a novel approach for FFT-based acquisition in GNSS receivers. Our approach contains utilization of both the EGS and the energy detector together. We use the EGS to estimate the Doppler frequency shift in FFT domain. Employing the EGS only causes a problem when the target signal is not present as the device must perform IFFTs for all the Doppler values included in the search before it is able to terminate the search. To solve this problem, we employ an energy detector aiming to detect the presence/absence of the desired incoming baseband signal in the frequency domain.

To improve the sensitivity, coherent block averaging methods in the time domain and non-coherent integration methods in the FFT domain were tested. The performance of these two approaches turned out to be rather similar, but the FFT-domain non-coherent integration method has significantly lower complexity. For 10-ms noncoherent integration, with CNRs at or above 43 dB-Hz, the Doppler could be estimated in the FFT domain reliably, requiring only one or two IFFTs for the acquisition. With lower CNRs, the number of required IFFTs grows rapidly, approaching 50*%* of the Doppler values with very low CNR or in the absence of the PRN. For example, when searching over 20 PRN codes out of which 4 are present at around 43 dB-Hz level, the complexity in terms of real multiplications is reduced by about 40*%* compared to the traditional FFT-based methods with 1-ms time interval.

In our future work, the main issue is improving the reliability of the detection of the presence/absence of PRN codes in the FFT domain. We will address the noise uncertainty and its effect on the performance of the proposed algorithm by trying to find improved methods for estimating the interference plus noise variance. We also plan to investigate the possibility of using a substantially smaller number of strongest FFT bins, as well optimized search strategy considering all the possible PRN codes. In addition, we will substitute the conventional linear search for the modified binary search while we search for the Doppler frequency shift and observe the effect.

## Declarations

## Authors’ Affiliations

## References

- Nighswander T, Ledvina B, Diamond J: GPS software attacks.
*19th ACM Conference on Computer and Communications Security, CCS 2012, Raleigh, NC, USA*16–18 Oct 2012.Google Scholar - Therrien CW:
*Discrete Random Signals and Statistical Signal Processing*. Prentice Hall, Upper Saddle River, NJ, USA; 1992.MATHGoogle Scholar - Misra P, Enge P:
*Global Positioning System. Signal, Measurements and Performance, Second Edition*. Ganga-Jamuna Press, Lincoln, MA, USA; 2006.Google Scholar - van Nee DJR, Coenen AJRM: New fast GPS code-acquisition technique using FFT.
*Electron. Lett*1991, 27(2):158-160. 10.1049/el:19910102View ArticleGoogle Scholar - Kaplan ED, Hegarty CJ:
*Understanding GPS: Principles and Applications, 2nd edn*. Artec House, Norwood, MA, USA; 2005.Google Scholar - Cao XL, Mu RZ, Yan YP: A novel threshold setting method for FFT-based GPS acquisition.
*11th International Conference on Computer Modelling and Simulation, 2009. UKSIM ’09, Cambridge, UK*2009, 497-501.View ArticleGoogle Scholar - Zheng Y: A software-based frequency domain parallel acquisition algorithm for GPS signal.
*2010 International Conference on Anti-Counterfeiting Security and Identification in Communication (ASID), Chengdu, China*18–20 July 2010, 298-301.View ArticleGoogle Scholar - Davenport R: FFT processing of direct sequence spreading codes using modern DSP microprocessors.
*National Aerospace and Electronics Conf, Dayton, OH, USA*20–24 May 1991.Google Scholar - Akopian D: Fast FFT based GPS satellite acquisition methods.
*Radar Sonar Navigation IEE Proc*2005, 152(4):277-286. 10.1049/ip-rsn:20045096View ArticleGoogle Scholar - Kos T, Markezic I, Pokrajcic J: Effects of multipath reception on GPS positioning performance.
*International Symposium ELMAR, Zadar, Croatia*15–17 Sept. 2010.Google Scholar - Soltanian B, Demirtas M, Gabbouj M: Reduced-complexity binary search for Doppler estimation in GNSS receivers.
*47th Asilomar Conference on Signals, Systems and Computers*3–6 Nov. 2013.Google Scholar - Soltanian B, Collin J, Takala J: The effect of the incoming signal decimation on the performance of the FFT-based acquisition stage in SDR GNSS receivers.
*5th ESA Workshop on Satellite Navigation Technologies (NAVITEC), Noordwijk, Netherlands*8–10 Dec. 2010.Google Scholar - Tsui J:
*Fundamentals of GPS Receivers: A Software Approach*. John Wiley & Sons, Inc., New York, USA; 2002.Google Scholar - Borre K, Akos DM, Bertelsen N, Rinder P, Jensen S:
*A Software-Defined GPS and Galileo Receiver - A Single-Frequency Approach*. Birkhauser, Boston; 2007.MATHGoogle Scholar - Dai L, Wang Z, Wang J, Song J: Joint code acquisition and Doppler frequency shift estimation for GPS signals.
*Vehicular Technology Conference*2010.Google Scholar - Kay SM:
*Fundamentals of Statistical Signal Processing Volume II Detection Theory*. Prentice-Hall, Upper Saddle River, NJ, USA; 1993.MATHGoogle Scholar - Cabric ATD, Brodersen R: Spectrum sensing measurements of pilot, energy, and collaborative detection.
*IEEE Military Commun. Conf. (MILCOM), Washington D.C., USA*23–25 Oct. 2006.Google Scholar - Schafer RW, Alan JRB, Oppenheim V:
*Discrete-Time Signal Processing*. Prentice-Hall, Upper Saddle River, NJ, USA; 1998.MATHGoogle Scholar - Tandra R, Sahai A: SNR walls for signal detection.
*IEEE J. Selected Topics Signal Process*2008, 2(1):4-17.View ArticleGoogle Scholar - Tandra R, Sahai A: Fundamental limits on detection in low SNR under noise uncertainty.
*International Conference on Wireless Networks, Communications and Mobile Computing, Maui HI, USA*13–16 June 2005.Google Scholar - Sahmoud M, Amin MG, Landry R: Acquisition of weak GNSS signals using a new block averaging pre-processing.
*IEEE/ION Position, Location and Navigation Symposium, Monterey, CA, USA*5–8 May 2008.Google Scholar

## Copyright

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly credited.