1 Introduction

A typical GPS receiver has two basic functions: acquisition and tracking. In the acquisition section, the approximate values of the carrier frequency and code phase of the received signal are estimated and in tracking section, more precise calculation of these parameters is done and satellite navigation information is extracted.

The typical carrier-to-noise ratio (C/N0) value of an ideal GPS receiver ranges from 37 to 45 dB-Hz. In signal fading environments, such as urban and suburban canyons, indoor situations as well as noisy conditions, C/N0 is less than the required value and it makes it difficult to detect the code phase and acquire GPS signals correctly and then track them [1, 2].

A variety of algorithms have been proposed to solve this problem such as coherent and non-coherent integration, differential accumulation, wavelet denoising methods, the inertial navigation system (INS) aided algorithms, match filtering, Kalman filtering and fast Fourier transform (FFT)-based estimation methods [2,3,4,5,6,7].

In acquisition section, the traditional post correlation detection methods (coherent, non-coherent and differential detection approaches) try to increase the signal to noise ratio (SNR) of received signal by extending the integration time, but they fail to recover a noisy GPS signal with C/N0 as low as 15 dB-Hz. Moreover, coherent and differential methods are limited by navigation bit sign transition and the integration time cannot be extended more than 20 ms in these methods. In the non-coherent method, the integration time can be extended more than 20 ms, but this approach suffers from squaring loss and Doppler effect on code length [2, 8, 9]. Wavelet denoising method has better performance compared to traditional post correlation detection methods and improves the receiver’s sensitivity instead of extending integration time, but has high computational complexity. By using INS aided algorithms, the receiver dynamics can be eliminated. However, this approach has high implementation costs. Finally, matched filtering method has advantages in acquisition speed and hardware complexity, but it is sensitive to Doppler effect and in presence of Doppler, its ability is decreased or even fails in its functionality [10, 11].

Traditional GPS receivers use tracking loop filters to track satellite signals. For tracking weak signals, many methods exist such as FFT-based estimation methods, vector tracking algorithms, Kalman filtering and INS aided tracking methods.

The FFT-based tracking method needs long GPS signal for FFT operation to enhance the resolution. With the increase of data length, the SNR gain of the FFT operation is attenuated which makes existing FFT-based tracking methods not applicable to highly noisy GPS signals [3]. Vector tracking algorithms do not process signals separately and use a single Kalman filter to simultaneously track the GPS signals and estimate the user position in the time domain. These algorithms are functioning at lower SNR than traditional tracking algorithms, but have high computational complexity and implementation costs [12].

In many scenarios, the navigation filter is assisted by INS to improve the tracking performance. The receiver dynamics can be eliminated by this method. Since the tracking loops no longer have to track the receiver dynamics, the greater noise rejection is allowed. Despite this benefit, inertial measurement units (IMU) suffer from the problem that their errors are accumulative over time. Once the error becomes large enough, it could interfere with the tracking loop and therefore the signal tracking fails [3, 13,14,15].

In this paper, in the acquisition section, a parallel method called squared segmented matched filter-fast Fourier transform (SSMF-FFT) is presented in which the hardware complexity has diminished due to the reduction in the size of the FFT block. Moreover, in the presence of Doppler, it is a good solution to find the frequency offsets. In the SSMF algorithm, a SSMF is used to acquire the code phase and FFT is used to acquire frequency. We used a fuzzy system to calculate the number of batches in the SSMF algorithm.

Also, in the tracking section, the fractional Fourier transform (FRFT) and fuzzy Kalman filter (FKF) are used for reducing carrier phase, frequency, and acceleration error.

This paper is organized as follows. In Sect. 2, the GPS receiver structure is briefly reviewed. In Sect. 3, the proposed algorithm is described. In Sect. 4, the fuzzy SSMF-FFT algorithm and their relationship in the signal acquisition section are expressed. In Sect. 5, the detection probability and the minimum amount of SNR required for detection in different situations are calculated. In Sect. 6, the FRFT and the proposed FKF in signal tracking are investigated. In Sect. 7, simulation results and their analysis are presented and in Sect. 8, the conclusion is drawn.

2 GPS Receiver Structure

Finding the user’s location by using the GPS receiver requires a deep insight into the structure of the GPS signal and understanding how the relevant measurements are performed. Each GPS receiver includes two hardware and software sections and the hardware section is called the front-end [16].

The main purpose of the front-end components is to prepare the received signal from the antenna for sampling in the analog-to-digital converter. It is performed by local amplifiers, filters, and oscillators. The software section consists of three parts: acquisition, tracking and navigation, as shown in Fig. 1 [17].

Fig. 1
figure 1

Block diagram of the GPS receiver

The purpose of the acquisition is to get approximate values of the carrier frequency and code phase of the signal sent from the satellites in line of sight. GPS signal acquisition is a prerequisite for tracking and positioning. Generally, signal acquisition in both serial and parallel modes are used. Parallel searches are divided into two groups of searching in the frequency space and searching in the code phase space [3, 18].

In the tracking section, on a more precise calculation of the code phase and the carrier frequency, these parameters are continuously estimated for the satellites in the line of sight and finally satellite navigation information is extracted. The code track loop output is a code sequence that its phase exactly matches the input signal phase. So, in general, the tracking section can be considered as two acts. One is the production of a carrier with a suitable frequency and phase, or carrier tracking, and the other is the generation of code with the matched phase or code tracking.

In this paper, in the acquisition section, a parallel method called SSMF-FFT is presented in which the hardware complexity has been diminished due to the reduction in the size of the FFT block and in the presence of Doppler, it is a good solution to find the frequency offsets. We also used a fuzzy system to calculate the number of batches in the SSMF algorithm.

In tracking section, the FRFT and FKF are used for reducing carrier phase, frequency and acceleration error.

3 Proposed Algorithm

In this paper, to improve the acquisition of GPS signals in weak signal conditions with an average SNR of 15 dB, the SSMF-FFT algorithm has been used for the sake of tracking split square filter, code phase and offset frequency of Doppler effect.

The proposed algorithm is shown in Fig. 2. The blue blocks represent a signal acquisition process and green blocks represent a tracking process. In this architecture, the NCO1 is used for initial signal de-modulation and it maintains the oscillation frequency after secondary demodulation.

Fig. 2
figure 2

The proposed algorithm

NCO2 is used for the secondary de-modulation of the signal, to which the tracking section is related. The phase discriminator detects the remainder of the secondary de-modulation phase. At the end, the Kalman filter assembles the phase error of the carrier and provides the ring tracking feedback. In this diagram, the blue blocks and the green blocks are related to the signal acquisition and signal tracing, respectively.

4 Signal Acquisition

In this section, the proposed algorithm for acquiring GPS signals is introduced.

4.1 GPS Signal Structure

The signal of each GPS satellite with the C/A code on the L1 band can be expressed as follows:

$$S\left( t \right) = \sqrt A C\left( t \right)D\left( t \right)e^{{j2\pi \left( {f_{c} t + f_{d} t} \right) + \varphi_{0} }} + n\left( t \right)$$
(1)

where A is the average signal strength, \(f_{d}\) is the Doppler frequency shift,\(\varphi_{0}\) is the carrier phase, n(t) is the white Gaussian noise and \(f_{c}\) is the carrier frequency which is equal to 1575.2 MHz, modulated by digital C/A codes and navigation data D(t). C/A code contains 1023 chips which is repeated every 1 ms throughout the length of the code; so that the rate of this code is 1.023 MHz. Chips are 0 and 1 as bits, but since they do not contain any information, the word “chip” is used.

4.2 Matched Filter

Using the Matched Filter (MF), the SNR can be maximized, and as a result, target detection is maximized. The MF can be used to perform acquisition in weak signal environments [19,20,21]. For a signal such as S(t) whose noise is n(t), the MF requires a filter h(t), which maximizes the output SNR [22,23,24,25]:

The relations of Fig. 3 are:

Fig. 3
figure 3

Block diagram of MF

$$S_{0} \left( t \right) = S\left( t \right)*h\left( t \right)$$
(2)
$$n_{0} \left( t \right) = n\left( t \right)*h\left( t \right)$$
(3)

In which (*) performs convolution [25, 26]:

$$SNR_{MAX} = \frac{{\mathop \smallint \nolimits_{ - \infty }^{\infty } \left| {S\left( t \right)} \right|^{2} dt}}{N\left( f \right)}$$
(4)

The MF, by correlate the received and local signal, increases the SNR level, but it’s sensitive to the Doppler shift, and does not have functionality in its presence. Doppler shift causes the frequency mismatch between the carrier used in the receiver and the carrier of the received signals. This sensitivity depends on the amount of Doppler shifts and the length of the MF. For this reason, the GPS receiver must divide the MF into different parts to calculate the Doppler code phase. The attenuation resulting from the output of the MF, due to the Doppler effect, can be expressed as follows:

$$L\left( {f_{d} } \right) = \frac{{\sin (2\pi f_{d} N_{c} T_{ch} )}}{{2\pi f_{d} N_{c} T_{ch} }}$$
(5)

In this equation, \(f_{d}\) is the Doppler frequency, \(T_{ch}\) is the length of the chip code length and \(N_{c}\) the length of the code. In following sections, the amount of attenuation resulting from the segmented matched filter (SMF) and SSMF will be investigated [27,28,29,30].

4.3 SSMF-FFT Fuzzy Algorithm

The data received from the satellite is a long signal, and the C/A code contains 1023 chips, which each millisecond is repeated in the entire length of the code. First, we multiply the signal in a local carrier to remove its carrier. Then, the shifted signal and the local C/A code are divided into several batches, and the corresponding batches are multiplied in each other, and their correlation is calculated. For specifying the number of batches, a fuzzy system is used. Figure 4 shows the fuzzy logic system structure [31]. As shown in this figure, the inputs of the proposed fuzzy system are batches length (D) and the input signal SNR, and the output is the number of batches for the SSMF-FFT algorithm to obtain the best output in the acquisition. Given the amount of variation within the batch length, its value is obtained experimentally. Figures 5 and 6 show the input and output membership functions in the fuzzy system. Table 1 shows the rules used in the fuzzy system.

Fig. 4
figure 4

Proposed fuzzy system for specifying batches number

Fig. 5
figure 5

Inputs memberships

Fig. 6
figure 6

Output memberships

Table 1 The fuzzy system rules

The centroid method has been used as defuzzification strategy. The definite output is obtained by using Eq. (6):

$$\bar{y} = \frac{{\mathop \sum \nolimits_{i = 1}^{n} y_{i} u\left( {y_{i} } \right)}}{{\mathop \sum \nolimits_{i = 1}^{n} u\left( {y_{i} } \right)}}$$
(6)

In this equation, n is the number of fuzzy output sets, \(y_{i}\) is the numeric value of the output of the ith membership function, and \(u\left( {y_{i} } \right)\) denotes the membership value of the fuzzy function for \(y_{i}\). Figure 7 shows the output of the fuzzy system.

Fig. 7
figure 7

X values obtained from the fuzzy system

Figure 8 shows the algorithm of the proposed method in the signal acquisition section. Equation (7) shows the kth SMF output:

Fig. 8
figure 8

Proposed SSMF-FFT algorithm in signal acquisition

$$M\left( k \right) = \sqrt P D\left( k \right)e^{{j2\pi kf_{d} t + \varphi_{0} }} + n\left( k \right)$$
(7)

Sometimes, the navigation bit sign transition is inevitable and causes errors in SMF computing. The SSMF method is used to fix this problem and increase the power of visible satellites. In this way, the square of each SMF output is calculated and new D points are generated. New D points are described by the Eq. (8):

$$O\left( k \right) = M^{2} \left( k \right)$$
(8)

By determining the peak, the code phase and the Doppler frequency are obtained. Finally, in order to accurately determine the Doppler frequency from the FFT result, the following procedure is performed.

Since the output of SSMFs are D-points, consequently at the FFT output, D points are obtained. The first D/2 samples represent the frequency range from 0 to \(f_{s} /2\). So, the frequency resolution is equal to:

$$\Delta f = \frac{{\frac{{f_{s} }}{2}}}{{\frac{D}{2}}} = \frac{{f_{s} }}{D}$$
(9)

As a result, the frequency of the kth point is expressed as Eq. (10):

$$f_{k} = k\Delta f = \frac{{kf_{s} }}{D}$$
(10)

In the SMF, the amount of attenuation that is imposed by Doppler effect and partitioning of the filter is obtained from Eq. (11):

$$L\left( {f_{d} } \right) = \left( {\frac{1}{{2\pi f_{d} T_{code} }}} \right)^{2} *\mathop \sum \limits_{k = 1}^{{N_{s} }} \left( {\sin \left( {\frac{{2\pi kf_{d} T_{code} }}{X}} \right) - \sin \left( {\frac{{2\pi \left( {k - 1} \right)f_{d} T_{code} }}{X}} \right)} \right)^{2}$$
(11)

where X is the number of segments, \(T_{code}\) is the length of the code and \(f_{d}\) is the Doppler frequency. In the SSMF, due to squaring, the signal will be less weakened.

5 Detection Probability and False Alert Probability

Two important parameters in the acquisition section are the detection probability and false alert probability. The false alert probability is possibility of exceeding the noise from threshold level and then an unreal purpose is revealed. The detection probability is possibility of exceeding the signal from threshold level. These probabilities are function of each other and the level of the SNR. In this paper, the likelihood ratio test (LRT) detector is used in the receiver. Theoretical relations for the detection probability and the false alert probability for the LRT detector are expressed as follows:

$$P_{d} = \mathop \int \limits_{{V_{t} }}^{\infty } p_{s} dz$$
(12)
$$P_{fa} = \mathop \int \limits_{{V_{t} }}^{\infty } p_{n} dz$$
(13)

where \(V_{t}\) is the threshold, \(p_{s} \left( z \right)\) is probability density function (PDF) of noise in the presence of signal with non-zero mean, \(p_{s} \left( z \right)\) is PDF of noise in the absence of signal with a zero mean, Pd is the probability of detection and Pfa is the probability of a false alert. The following relations are used to calculate PDFs:

$$p_{s} \left( z \right) = \left\{ {\begin{array}{*{20}l} {\frac{z}{{\sigma_{n}^{2} }}e^{{ - \left( {\frac{{z^{2} + A^{2} }}{{2\sigma_{n}^{2} }}} \right)}} I_{0} \left( {\frac{zA}{{\sigma_{n}^{2} }}} \right), } \hfill & { z \ge 0} \hfill \\ {0, } \hfill & {z < 0} \hfill \\ \end{array} } \right.$$
(14)
$$p_{n} \left( z \right) = \frac{z}{{\sigma_{n}^{2} }}e^{{ - \left( {\frac{{z^{2} }}{{2\sigma_{n}^{2} }}} \right)}}$$
(15)

In the above equations, z is the random variable, \(\sigma_{n}^{2}\) is the noise power, A is the signal amplitude and \(I_{0} \left( {\frac{zA}{{\sigma_{n}^{2} }}} \right)\) is the zero degree modified Bessel function.

$$P_{fa} = e^{{ - \left( {\frac{{V_{t}^{2} }}{{2\sigma_{n}^{2} }}} \right)}}$$
(16)
$$V_{t} = \frac{{\sigma_{n}^{2 } }}{2} F_{{x_{2}^{2} }}^{ - 1} \left( {1 - P_{fa} } \right)$$
(17)
$$P_{d} = 1 - F_{{x_{2}^{2} }} \left( {\frac{1}{{1 + SNR_{0} }} F_{{x_{2}^{2} }}^{ - 1} \left( {1 - P_{fa} } \right)} \right)$$
(18)

where \(F_{{x_{2}^{2} }}^{ - 1}\) is the inverse Chi squared distribution function with two degree of freedom. The SNR in the GPS receiver detector is obtained from Eqs. (19) and (20):

$$SNR_{i} = \frac{{P^{2} }}{{2\sigma_{n}^{2 } }}$$
(19)
$$SNR_{0} = \left( {L\left( {f_{d} } \right)G_{MF |SMF |SSMF} /q} \right)*SNR_{i}$$
(20)

where \(SNR_{i}\) is the SNR before the detector, P is the signal power and \(L\left( {f_{d} } \right)\) is the attenuation value obtained in the detector, due to the Doppler effect and the separation of the filter. \(G_{MF |SMF |SSMF}\) is the gain of MF, SMF or SSMF and q is a parameter which is dependent on the type of used code. For C/A code, q  = Nc. The probability of false alert in MF relations equals \(P_{fa} = 10^{ - 6}\). In the detector, threshold value for \(P_{fa} = 10^{ - 6}\) is equal to 108, which corresponds to the theoretical value in Eqs. (14) and (15) [27,28,29,30].

6 Signal Tracking

As mentioned before, in the tracking section, the phase lock loop (PLL) locks the carrier phase of the GPS signal and its design is difficult in weak signals and noisy environments. In case of losing lock on the signal, the receiver will not be able to calculate the Doppler frequency and the system will diverge. Therefore, a robust algorithm for the GPS receiver PLL is very vital. To improve tracking, a Kalman filter-based PLL has been used to reinforce it against weak signal environments. To be able to separate navigation information from the received signal, we need to produce a local transcript of the carrier-quite similar to what we get on the incoming signal. To do this, usually a PLL or a frequency locking loop (FLL) is used. Since the carrier frequency is much more than the frequency of the code, so the Doppler frequency has greater effect on the carrier. In this paper, our focus will be on strengthening the PLL.

6.1 Fractional Fourier Transform

FRFT is generalized from ordinary Fourier transform. First time in 1980, Namias introduced FRFT as an instrument for second-order Hamiltonian solution in quantum mechanic systems. Nowadays, it is used as a mathematical tool in signal processing and optic. Suppose \(u = u\left( {x,y} \right)\) is a signal in special domain and \(F\left\{ u \right\} = \tilde{U}\left( {f_{x} ;f_{y} } \right)\) is ordinary Fourier transform of \(u\). It means that:

$$F\left\{ u \right\} = \mathop \int \limits_{ - \infty }^{ + \infty } \mathop \int \limits_{ - \infty }^{ + \infty } u\left( {x,y} \right)exp\left( { - 2\pi i\left( {f_{x} x + f_{y} y} \right)} \right)dxdy$$
(21)

FRFT with α order is defined by \(F^{\alpha } \left\{ u \right\} = \tilde{U}_{\alpha } \left( {\tilde{f}_{x} ;\tilde{f}_{y} } \right)\) that \(\tilde{f}x,y\) expresses the domain between time and frequency. FRFT is defined with the help of the kernel \(K_{\alpha }\) as:

$$K_{\alpha } \left( {t,u} \right) = \left\{ {\begin{array}{*{20}l} {\sqrt {\frac{1 - jcot\alpha }{2\pi }} exp\left( {j\frac{{t^{2} + u^{2} }}{2}cot\alpha - jutcsc\alpha } \right),} \hfill & {\alpha \ne n\pi } \hfill \\ {\delta \left( {t - u} \right), } \hfill & {\alpha = 2n\pi } \hfill \\ {\delta \left( {t + u} \right),} \hfill & {\alpha = \left( {2n \pm 1} \right)\pi } \hfill \\ \end{array} } \right.$$
(22)

where in it:

$$\sqrt {\frac{1 - jcot\alpha }{2\pi }} = \sqrt {\frac{{ - je^{i\alpha } }}{2\pi sin\alpha }}$$
(23)

Therefore, the FRFT of signal \(S\left( t \right)\) is defined by Eq. (24):

$$S_{P} \left( u \right) = \left\{ {F_{P} \left[ {s\left( t \right)} \right]} \right\} = \mathop \smallint \limits_{ - \infty }^{ + \infty } K_{P} \left( {t,u} \right)s\left( t \right) dt$$
(24)

where \(P\) is order of FRFT, \(\alpha = P\pi / 2\) is rotation angle and \(F_{P} \left[ {s\left( t \right)} \right]\) is Fourier transform operator. When we have \(P = 4n + 1\), \(\alpha = 2n\pi + \pi /2\), signal alters from time domain to frequency domain and FRFT operates like an ordinary Fourier transform. Whatever the FRFT rotation angle is more suitable, the signal energy is more concentrated. Therefore, a peak in fractional Fourier domain is produced. FRFT searches the peak in a two-dimensional space. The calculated acceleration and frequency should be followed by the relations below:

$$f_{d} < \frac{1}{2\Delta t}$$
(25)
$$a_{max} < \frac{1}{2h\Delta tT}$$
(26)

where \(h = 5.2550 Hz.s/m\) and \(T = D\Delta t\). That ∆t is integration time and D is FRFT batches length [3]. The Doppler frequency and acceleration resulted from FRFT are the inputs of the FKF.

6.2 Kalman Filter-Based PLL

Kalman filter is one of the most widely used tracking methods. In this filter, it is assumed that the model of the system and the observations are linear and noise vectors of state and observation are Gaussian and independent of each other, state and observation. This filter uses a recursive filtering method for systems with linear time invariant state equations and ideal is optimal and efficiently computable for these systems. The PLL tracking function is affected by several factors, including SNR, thermal noise and so on. So, a solution to this problem is to use the Kalman filter which makes the input of the numerically controlled oscillator (NCO) less noisy. The Kalman filter relations are expressed as follows:

$$x_{k} = Ax_{k - 1} + Bu_{k} + w_{k - 1}$$
(27)
$$z_{k} = Hx_{k} + v_{k}$$
(28)

In which x is the state vector, z is the measurement vector, A is the state transition matrix, B is the control matrix, u is the control vector, H is the measurement matrix and \(w_{k}\) and \(v_{k}\) are observation noise and measurement noise, respectively. The distribution of normal probabilities is according to the following relationships:

$$p\left( w \right)\sim{\text{N}}\left( {0,Q} \right)$$
(29)
$$p\left( v \right)\sim{\text{N}}\left( {0,R} \right)$$
(30)

In the above equation, Q is the observation covariance matrix and R is the measurement covariance matrix [32, 33]. The block diagram of second-order Kalman filter-based PLL for tracking the signals is shown in Fig. 9.

Fig. 9
figure 9

Costas loop with second-order Kalman filter

The discriminator used in this method is expressed according to Eq. (31):

$$\tau = arctg\left( {\frac{{Q_{p} }}{{I_{p} }}} \right)$$
(31)

The used Kalman filter relationships are:

$$x = \left[ {\begin{array}{*{20}c} {\Delta \delta } \\ {\Delta \partial } \\ \end{array} } \right]$$
(32)
$$z = \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & 1 \\ \end{array} } \right]x$$
(33)

where Δδ is the carrier phase error and \(\Delta \partial\) is the carrier frequency error. In Fig. 10, another block diagram for calculating phase, frequency and acceleration error in low SNR conditions using third-order FKF is presented. According to Fig. 10, acceleration and frequency that are computed by FRFT along with phase error enter the Kalman filter.

Fig. 10
figure 10

Costas loop with third-order FKF

The used Kalman filter equations in suggested method are expressed as follows:

$$x = \left[ {\begin{array}{*{20}c} {\partial \delta } \\ {\partial f} \\ {\partial a} \\ \end{array} } \right]$$
(34)
$$z = \left[ {\begin{array}{*{20}c} 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} } \right]x$$
(35)

where ∂δ is phase error, ∂f is frequency error and ∂a is acceleration error. Q is derived from fuzzy system. The proposed fuzzy system inputs are observation noise and measurement difference and alpha is the output that scales Q matrix for reducing tracking error (Fig. 11). The membership functions are presented in Fig. 12. Table 2 shows the rules used in the fuzzy system.

Fig. 11
figure 11

The block diagram of fuzzy system used in tracking section

Fig. 12
figure 12

Inputs and output membership functions of fuzzy system in tracking section

The definite output of fuzzy system is according to Eq. (6). Equations (36) and (37) are fuzzy system inputs.

Table 2 Fuzzy system rules in tracking section
$$A = z_{k} - Hx_{k}$$
(36)
$$B = z_{k} - z_{k - 1}$$
(37)

We extract a factor from the fuzzy system that scales Q matrix based on Eq. (38):

$$Q_{new} = alfa \times Q_{old}$$
(38)

7 Simulation Results

In this paper, all simulations are done by Matlab software. We examined the proposed method with two static datasets in a weak signal environment. The test setup for data collection is shown in Fig. 13.

Fig. 13
figure 13

The test setup for data collection

The characteristics of the datasets are as follows. The chip rate of the used C/A code is 1.023 Mchip/s, the number of chips in each period of the sequence are 1023 chips, the carrier frequency is 1575.42 MHz, the IF frequency is 1.4 MHz and the sampling frequency is 4 MHz. The maximum Doppler frequency range is 45 kHz. All processing was done on a laptop Acer 5750G with core i5 2 GHz CPU.

In the first part of the test, the detection probability of GPS signal using MF, SMF and SSMF methods is compared. It can be seen in Figs. 14, 15 and 16 that, in order to have a definite detection probability in the filter, by increasing the Doppler frequency, the required SNR is increased. As you can see, in SMF and SSMF methods, less amount of SNR is required to detect the same target.

Fig. 14
figure 14

The detection probability of GPS signal using MF/SMF/SSMF with fd = 4 kHz

Fig. 15
figure 15

The detection probability of GPS signal using MF/SMF/SSMF with fd = 12 kHz

Fig. 16
figure 16

The detection probability of GPS signal using MF/SMF/SSMF with fd = 19 kHz

For example, to have a detection probability of 0.9 in the Doppler frequency of 19 kHz (according to Fig. 16), signal-to-noise ratios in MF, SMF and SSMF methods are 60 dB, 50 dB and 22 dB, respectively.

In Fig. 17, Doppler dipole curve is plotted for MF/SMF/SSMF. It is observed that by increasing Doppler frequency, the amount of attenuation in the MF increases and the curve is completely descending. In SMF and SSMF methods, the Doppler frequency has less effect on the curve. In Fig. 17, the maximum Doppler frequency is 20 kHz.

Fig. 17
figure 17

Doppler attenuation curve in MF, SMF and SSMF methods

It should be noted that in non-Doppler conditions, the MF gain is better than the SMF and SSMF. This is due to the division and reduction of code correlation in SMF and SSMF. It is observed that the MF fails to function in the presence of Doppler. In the SMF method, the Doppler effect is less than the MF, but it has a higher attenuation than the MF method. The SSMF method has less attenuation than the SMF method and its sensitivity to Doppler has decreased.

In Figs. 18 and 19, satellites that can be seen after acquisition by the SSMF-FFT and the conventional method for SNR = 15 dB are shown. When the power of the satellite is more than the threshold, the satellite is visible and shown in green; otherwise, the satellite is invisible and shown in blue.

Fig. 18
figure 18

Satellites in the receiver’s view for the first data: a the conventional method and b the proposed method

Fig. 19
figure 19

Satellites in the receiver’s view for the second data: a the conventional method and b the proposed method

In the tracking section, we reduced the SNR to 12 dB, and the proposed method worked well. Figure 20 shows the carrier error in the first data for satellite 19 by applying the Kalman filter and without applying the Kalman filter.

Fig. 20
figure 20

Carrier phase error for satellite 19 in the first data: a without applying Kalman filter and b after applying Kalman filter

As can be seen, the amount of carrier phase error has been reduced by applying the Kalman filter. Figure 21 shows the carrier frequency error in the first data for satellite 19 after applying the Kalman filter and without applying the Kalman filter. As can be seen, by applying the second-order Kalman filter, the amount of dispersion and the variance of the output error have decreased.

Fig. 21
figure 21

Carrier frequency error for satellite 19 in the first data: a without applying Kalman filter and b after applying Kalman filter

Figures 22 and 23 show the existence and absence of a second-order Kalman filter for second data. In this data, after applying the Kalman filter, the tracking error is reduced.

Fig. 22
figure 22

Carrier phase error for satellite 21 in the second data: a without applying Kalman filter and b after applying Kalman filter

Fig. 23
figure 23

Carrier frequency error for satellite 21 in the second data: a without applying Kalman filter and b after applying Kalman filter

Figures 24 and 25 represent the frequency error and acceleration error for first data, before and after third-order FKF.

Fig. 24
figure 24

Frequency error for satellite 19 in the first data with SNR = 12 dB: a after applying Kalman filter and b after applying FKF

Fig. 25
figure 25

Acceleration error for satellite 19 in the first data with SNR = 12 dB: a after applying Kalman filter and b after applying FKF

Figures 26 and 27 represent frequency error and acceleration error for second data, before and after applying third-order FKF.

Fig. 26
figure 26

Frequency error for satellite 21 in the second data with SNR = 12 dB: a after applying Kalman filter and b after applying FKF

Fig. 27
figure 27

Acceleration error for satellite 21 in the second data with SNR = 12 dB: a after applying Kalman filter and b after applying FKF

Figures 28 and 29 show the output of the navigation section containing position information.

Fig. 28
figure 28

The position obtained from the first data: a the conventional method and b the proposed method

Fig. 29
figure 29

The position obtained from the second data: a the conventional method and b the proposed method

As can be seen, all evidence suggests that the proposed method works better than traditional methods. Tables 3, 4 and 5 show the variance of carrier phase, frequency and acceleration error, before and after applying the FKF, respectively.

Table 3 The variance of carrier phase error (degree) in the signal tracking section
Table 4 The variance of carrier frequency error (Hz) in the signal tracking section
Table 5 The variance of acceleration error (\({\raise0.7ex\hbox{$m$} \!\mathord{\left/ {\vphantom {m {s^{2} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${s^{2} }$}}\)) in the signal tracking section

According to Tables 3, 4 and 5, the tracking error variance has been appreciably reduced by applying FKF. In Table 6, we investigated the positioning root mean square error (RMSE) for two data before and after applying the proposed algorithm. It is seen that the RMSE is lowered and positioning is done better.

Table 6 The RMSE of positioning

8 Conclusion

In this paper, in acquisition section, a method for improving the acquisition of satellite signals in GPS receivers based on the SSMF-FFT algorithm was proposed. We used a fuzzy system to calculate the number of batches. The proposed method had a good yield to compensate the Doppler effect and reinforce receiver in weak signal conditions. The SSMF was easy to implement and had a good performance and accelerated the acquisition speed. In tracking section, for decreasing tracking error in weak signal conditions, a method based on FRFT and FKF was proposed. Simulation results on two weak signal data indicated that acquisition and tracking were done better and the user positioning error improved more than 35%.