1 INTRODUCTION

Global Navigation Satellite System (GNSS) is a system based on satellite navigation and has been widely used for military and civilian applications for precise identification of position and time everywhere on earth. GNSS allows the position to be determined with high precision. The precise position and time can be used in scientific experiments as a reference. With the help of GNSS time and position can be determined with the following accuracy [1, 2]:

(1) Position (altitude, latitude, and longitude) can be determined with an accuracy of 20 m to about 1 mm.

(2) Time [Coordinated Universal Time (UTC)] can be determined with an accuracy of between 60 ns to about 3 × 10−13 s.

GNSS performs a vital role in high precision navigation and still emerging [3].

2 TYPES OF GNSS

The major GNSS constellations are: GPS, GLONASS, Galileo, BeiDou Navigation Satellite System. Until now, the United States NAVSTAR GPS is in the modernization phase with several new services and modulations, the Russian GNSS (GLONASS) has now been revitalized and now is fully operational since 2011, the European Union’s Galileo has completed its In-Orbit Validation phase and is expected to be operational in early 2019, and the Chinese Navigation Satellite System BeiDou became operational in Asia Pacific region in December 2012 and will become a Global Navigation Satellite System by 2020.

A GPS

Global Positioning System (GPS) is a GNSS system designed and developed by the United States of America in 1973. There are six orbits for 32 GPS satellites. These orbitals are at an inclination of 55° and are separated by 60° from each other. GPS is used all around the world from 1994. All GPS satellites broadcast navigation information and pseudo-random (PRN) codes and on three different frequency bands, L1 (1575.42 MHz), L2 (1227.6 MHz), and L5 (1176.45 MHz) [4]. The frequencies are generated depending upon the generation of the satellite. All GPS satellites have their own PRN code and the same frequency bands (L1 and L2 or L1, L2 and L5).

B GLONASS

GLONASS is the GNSS system developed by Russia, and the development program of GLONASS started in 1976. On 12 October 1982, the first three satellites of GLONASS were launched into orbit and numerous satellites were launched afterward until full constellation was achieved in December 1995. GLONASS had been a fully functional global navigation system with 24 satellites [5] but due to the collapse of the Soviet Union and financial problems number of satellite reduced from 24 to 6 operational satellites in 2001. After 2001, GLONASS had been in a revitalization phase and a program was initiated for the restoration of the full constellation. GLONASS achieved 100% coverage of Russian territory by 2010 and the full operational capability with 24 satellites was reinstated in October 2011 [6].

The biggest difference of GLONASS with other GNSS systems is that it uses Frequency Division Multiple Access (FDMA). It means that every GLONASS satellite transmits the same PRN code but with a separate frequency. The next generation GLONASS satellites (GLONASS-K) will also use code division multiplexed access (CDMA) signal for compatibility with GPS, Galileo, and BeiDou navigation systems.

C Galileo

Galileo is the GNSS system developed by the European Union. It is expected to be a Global Satellite Navigation System by 2019 with thirty satellites (in which twenty-seven are operational and three active spares). On 21 October 2011, first two satellites were launched, for the validation of the system. On the same day in 2012, the next two satellites were launched. On 12 March 2013, the first position determination relying only on Galileo satellites was achieved. As of July 2017, 26 out of 30 planned satellites are in orbit [7]. Due to the use of a new modulation scheme, which is known as Binary Offset Carrier (BOC) and Multiplexed Binary Offset Carrier (MBOC) the Galileo system’s precision of the user position will improve. A precision of 4 to 15 m is expected for the open service.

D BeiDou

China’s second-generation satellite navigation system known as BeiDou Satellite Navigation System (BDS), also known as BeiDou-2, it will be a global satellite navigation system comprising thirty five satellites and could offer navigation, positioning and timing services to users on a continuous worldwide basis to its international customers upon its completion in 2020 [8, 9].

BDS began providing Initial Operational Services e.g. initial passive positioning, timing, and navigation services in China in December 2011, with 10 (5 GEO satellites and 5 IGSO) satellites and started offering services to the entire Asia Pacific area in December 2012 with fourteen satellites. Currently, 33 satellites of BDS have been launched. Till 2020, BDS could be a Global Satellite Navigation System with thirty-five satellites, 5 GEO satellites and 30 non-GEO satellites (27 MEO and 3 IGSO) [10].

3 GNSS RECEIVER OPERATION

The GNSS receiver signal processing is based on a channelized structure. Figure 1 shows an overview of a receiver channel. Before channel allocation to a satellite, the receiver has to acquire which satellites are currently visible. The acquisition offers rough estimates of signal parameters. With the help of a tracking block, these parameters are refined. After carrier and code tracking, the navigation information may be extracted from navigation message and pseudo ranges may be calculated [11].

Fig. 1.
figure 1

Receiver channel block diagram.

4 GNSS SIGNAL ACQUISITION

The GNSS signals lie below the thermal noise floor and are DSSS, so acquisition must be done in order to detect the presence of the signal. The reason for the acquisition is to recognize how many satellites are currently visible to the user segment; also the acquisition must determine the code phase and frequency of satellite signals [11].

The code phase represents the starting point of the C/A code in the current GNSS navigation message. Knowing the code phase is important with the intention to generate local PRN code that is perfectly aligned with the incoming PRN code. After alignment, the incoming code can be separated from the signal. These PRN codes have high correlation only if there is no lag, i.e., the 2 signals have to be faultlessly aligned to dispose of the incoming code. The 3rd-factor carrier frequency corresponds to an intermediate frequency (IF) in case of down conversion. The Intermediate Frequency for the L1 band is 1575.42 MHz. The frequency can deviate from the estimated value. As the satellite is rotating around earth and earth is also rotating about its axis, it causes a Doppler effect that results in a lower or higher frequency. In the worst case, the frequency can digress up to ±10 kHz. In order to be able to generate a local carrier signal, the frequency of the signal must be known. With the help of this signal, the incoming signal from the carrier is removed. For most cases, searching the frequencies with a maximum error less than or equal to 500 Hz is sufficient.

In a hardware receiver, the acquisition is accomplished using ASIC and in a software receiver, it is executed in software.

5 MULTI-GNSS RECEIVERS

A system that can calculate the position, the time and the velocity by receiving satellite signals broadcasted from multiple satellite navigation systems is called Multi-GNSS receiver. Modern GNSS receivers will have four GNSS constellations available, each GNSS constellation broadcasting on two frequencies and will have many signals and modulation schemes. Due to which modern GNSS receivers are becoming more complicated devices [12, 13]. Moreover, receiver applications have also complicated the GNSS receivers. Applications like surveying and mapping, precise timing services, aviation, maritime, personal or military navigation, GNSS receiver may consist of several strategies of acquisition and tracking, each is used for different functionality [14]. So for multi-constellation receivers’ software receiver platform can be used.

As the processing strategies and combination of pseudo-ranging signals are becoming prodigious, there is a great need for the signal independent receiver design. The receiver should include codes that are more adaptable to new signals. As basic software receiver includes acquisition, tracking, navigation data extraction and the knowledge of modulation schemes. Therefore, a receiver cannot be made entirely signal independently. However, some of the modules of the receiver can be made signal independent. Among these modules include acquisition and tracking modules.

A Advantages of Multi-GNSS Receivers

Multi-GNSS receivers have many advantages over stand-alone GNSS receivers. Multi-GNSS receivers have extreme position accuracy because of the increased number of satellites compared to stand-alone positioning.

Multi-GNSS receivers collect much more satellite signals even in severe environments (e.g., urban valleys, etc.) where the stand-alone positioning is difficult, so multi-GNSS receivers have a higher success rate of the positioning [15]. In Multi-GNSS receivers, the self-healing property ensures that in case of loss of track for any constellation, the receiver can still output reliable data by calculating signal processing of alternate constellation.

Multi GNSS receivers are also reliable as they are secured, and have the anti-jamming ability for essential applications and by using different frequency bands, which includes GPS L1 C/A, GLONASS L1OF, and BeiDou B1I, they improved robustness against interferences.

B Principle of Multi-GNSS Receivers

The multi-GNSS navigation system has the same principle as a stand-alone navigation system. The basic technique of multi-GNSS satellite navigation is that the receiver receives the transmitted information from the stand-alone GNSS system of several constellations. After that, these signals are combined with the help of software algorithms for navigation data extraction. The technology behind is that the multi-GNSS constellations signals are simulated and then the coordinate and time reference systems of different satellite constellations are unified. Then the navigation information received from multi-GNSS constellation is integrated for integrated navigation. Lastly, satellite fault detection and isolation algorithms and satellite selection algorithms are used for receiver position calculation using multi-GNSS constellation.

6 METHODS OF ACQUISITION

A Serial Search Acquisition

In the coded division multiple access (CDMA) systems serial search acquisition is regularly used as an algorithm for GNSS receivers. The block diagram of the serial search acquisition algorithm is shown in Fig. 2 [9].

Fig. 2.
figure 2

Serial search acquisition.

In the serial search algorithm, multiplication is made for the locally generated carrier signals and locally generated PRN code. At first, the received signal is multiplied with the locally generated replica that is generated with the help of the PRN generator corresponding to a precise satellite. After that this signal is multiplied with the locally generated carrier replica. When carrier replica is multiplied with the incoming signal, it generates in-phase branch I, and 90° phase-shifted code replica the quadrature branch Q, from where navigation message is separated.

The generated I branch and quadrature Q branch are integrated over 1 ms that is essentially the length of one C/A code, and after that, they are squared and added. Ideally, all the signal power must be placed in I branch of the signal, as it contains C/A code. However, I branch generated from satellite does not usually correspond to the demodulated I branch, due to the unknown phase of the received signal. So, both I and Q branch are investigated. The result is the correlation value of the incoming signal and the locally generated signal. If a predetermined threshold is surpassed, the frequency and code phase parameters are obtained and passed on to the tracking part. This method performs two different sweeps, a frequency sweep and a code sweep. Frequency sweep is performed over all possible carrier frequencies of Intermediate Frequency ±10 kHz in steps of 500 Hz and sweep of code phase is performed for all the 1023 different code phases.

The correlation in discrete time domain is expressed as

$$\begin{gathered} {{R}^{2}}\left[ m \right] = {{\sum\limits_{j = 0}^{k - 1} {\left( {\left[ {\sum\limits_{n = jNL}^{\left( {j + 1} \right)NL - 1} {x\left[ n \right]{\text{CA}}\left[ n \right]\cos \left[ {\omega n} \right]} } \right]} \right.} }^{2}} \\ + \,\,{{\left[ {\sum\limits_{n = jNL}^{\left( {j + 1} \right)NL - 1} {x\left[ n \right]{\text{CA}}\left[ n \right]\sin \left[ {\omega n} \right]} } \right]}^{2}}, \\ \end{gathered} $$
((1))

where, x[n] is digital IF signal, CA is locally generated C/A code, ω is the radian frequency, n is the nth sample and m is the number of phase shifted samples of the replicated CA, N is no of samples and k is no of correlation. If we set smaller values for N and k, allows faster acquisition. On the other hand, if we choose larger values for N and k, it will reduce the probability of false acquisition and the acquisition of weaker signals will be improved.

B FFT Acquisition

In the algorithm of serial search, acquisition searching is successively performed in 2 different dimensions, i.e., code phase and frequency. Searching the correct frequency and code phase is a time consuming and wearing process. To expedite the searching process, it will be very convenient to eliminate one parameter from the search process or to implement one process in parallel if possible. So, in order to expedite the searching process, parallel search schemes based on FFT and Inverted FFT (IFFT) are used [16].

In FFT acquisition algorithm, GPS Signals are converted from a time domain into the frequency domain. In this way, one of the parameters is eliminated, so less time will be required for acquisition. Figure 3 shows the FFT base acquisition algorithm.

Fig. 3.
figure 3

FTT acquisition.

In FFT acquisition, the incoming GNSS signal is first multiplied with the locally generated carrier replica. Multiplication with carrier replica generates the in-phase component I and the quadrature component Q. The in-phase component I and Quadrature component Q are combined, and FFT of the result is taken to transform the time domain signal into the frequency domain. Suppose it is an output 1. Local PRN codes are generated, and the FFT of the generated codes is taken to transform them into the frequency domain, and a conjugate of the result is taken, which is output 2.

Output 1 is multiplied with the output 2 due to which output three is generated. Both the outputs are multiplied in the frequency domain i.e., they are correlated in the time domain. Inverse FFT of the result is taken in order to convert the signal in time domain, and if the output value exceeds a predetermined threshold the corresponding frequency and the code phase are said to be acquired, otherwise the carrier is incremented in steps of 500 Hz to perform acquisition again in order to compensate the Doppler Effect [17].

The above procedure is the FFT based circular correlation, and in this method, by defining the absolute value of correlation function, the coarse Doppler shift and code delay at the highest correlation peak can be directly detected that is defined by the. FFT based acquisition method minimizes the search time for acquisition and with the help of this method 1ms data of C/A code signal is directly acquired which is not possible in case of the serial search acquisition process. However, the resolution of the frequency search is dependent on the length of the signal: the shorter the signal, the poor will be the resolution.

7 PRN CODE GENERATION

A GPS PRN Code Generation

The GPS C/A (coarse/acquisition) signals belong to a unique family of Pseudo-Random Noise (PRN) codes known as the Gold codes [5]. Gold codes are used due to their autocorrelation and cross-correlation properties. Each satellite has its C/A code. These signals are generated from the product of two 1.023-bit PRN sequences generated from two 10-bit linear feedback shift registers (LFSR) G1 and G2 [18]. These registers are initialized with all ones, and the generating polynomials are given as

$${\text{G}}1 = 1 + {{x}^{3}} + {{x}^{{10}}},$$
((2))
$${\text{G}}2 = 1 + {{x}^{2}} + {{x}^{3}} + {{x}^{6}} + {{x}^{8}} + {{x}^{9}} + {{x}^{{10}}}.$$
((3))

C/A code for a specific satellite is generated by taking exclusive-or output of the G1 LFSR with the delayed version of G2 LFSR output. The G2 delayed effect is obtained by the exclusive-or of two selected stages from the G2 LFSR [19]. The GPS C/A code generator is given in Fig. 4.

Fig. 4.
figure 4

GPS C/A code generator.

B GLONASS PRN Code Generation

GLONASS PRN code is a sequence of maximum length of shift register. GLONASS PRN code has a period of 1 ms and bit rate 511 kbps. It has a 9-stage shift register and the 7th stage is considered as the output. The registers are initialized with the sequence (111111111). 111111100 is the first character of the PRN code. It is repeated every 1 ms [20]. The generating polynomial is

$${\text{G}}1 = 1 + {{x}^{5}} + {{x}^{9}}.$$
((4))

The structure of shift register used for GLONASS ranging code generation is given in Fig. 5.

Fig. 5.
figure 5

GLONASS PRN code generator.

C BeiDou B1I Ranging Code

The BeiDou B1I ranging code has a chip rate of 2.046 × \({{10}^{6}}\) chips per second and the length is 2046 chips. This ranging code is also referred to as balanced Gold code truncated with the final one chip. It is generated by the means of two eleven bit linear shift registers G1 and G2. These two registers are modulo-2 added to generate the ranging code.

The corresponding polynomials of G1 and G2 are as follows [6]:

$${\text{G}}1 = 1 + x + {{x}^{7}} + {{x}^{8}} + {{x}^{9}} + {{x}^{{10}}} + {{x}^{{11}}},$$
((5))
$${\text{G}}2 = 1 + x + {{x}^{2}} + {{x}^{3}} + {{x}^{4}} + {{x}^{5}} + {{x}^{8}} + {{x}^{9}} + {{x}^{{11}}}.$$
((6))

In the case of C/A code the initial states assigned to G1 and G2 registers are all ones but in the case of BeiDou B1I ranging code the initial states of G1 and G2 are not all one. The initial states are G1: 01010101010 and G2: 01010101010. The BeiDou B1I ranging code generator is illustrated in the Fig. 6.

Fig. 6.
figure 6

BeiDou B1 ranging code generator.

Fig. 7.
figure 7

Acquisition algorithm.

8 ACQUISITION ALGORITHM

To get the acquisition results following algorithm is used:

Step 1. Calculate the sampling period by inverting the sampling frequency.

Step 2. Collect two 1 ms data samples to avoid any data bit issues.

Step 3. Select 29 values of frequencies as search space for frequency and arbitrarily select frequency bin to be 500 Hz.

Step 4. Generate all C/A codes (Gold codes) and sample them according to the sampling frequency of the signal.

Step 5. Perform FFT on the generated C/A code and take conjugate of the result. Assume that output to be output 1.

Step 6. Generate carrier wave frequency (local oscillator) grid with 0.5 kHz step.

Step 7. Generate local sine and cosine.

Step 8. Multiply GNSS data samples separately by sine and cosine part of local oscillator to form I and Q components and add them to make the baseband signal S = I + iQ.

Step 9. Convert the base band signal into the frequency domain by taking FFT. Assume that output to be output 2.

Step 10. Multiply Output 2 with output 1 and get output 3. The outputs are multiplied in the frequency domain i.e. they are correlated in the time domain.

Step 11. Take IFFT of the output 3 and store whichever ms data sample has the highest power as a result.

Step 12. Search the second highest peak of correlation in the same frequency bin.

Step 13. Divide the first highest peak with the second highest peak to find acquisition metric and if the acquisition metric value is higher than the threshold value, the corresponding PRN is acquired.

Step 14. If acquisition metric value is not greater than the threshold value, increment the carrier in steps of 500 Hz to perform acquisition again in order to compensate the Doppler Effect.

9 GPS ACQUISITION RESULTS

Figure 8 shows acquisition results for the GPS data downloaded from the following link: http://kom.aau.dk/ project/softgps/download/data/compactdata_20050407_ 142600.zip

Fig. 8.
figure 8

GPS acquisition results.

The description of the data file compactdata_ 20050407_14600.zip can be found at http://kom.aau.dk/ project/softgps/data.php.

The sampling frequency of the data is 12 MHz and the IF is 3.563 MHz. Signals are sampled using ubit1 data type. Ubit1 means 1 bit within the file is representative of 1 sample e.g. 1 byte consists of 8 samples. The following GPS PRN’s are present in the compactdata_20050407_142600.bin file: 01, 03, 07, 14, 19, 20, 22, 24, 28 and 31.

The frequency and the code phase of the acquired GPS satellites for compactdata_20050407_ 142600.bin file are given in Table 1. The acquired signals are sorted according to the signal strength.

Table 1.   Frequency and code phase of the acquired GPS satellites

10 GLONASS ACQUISITION RESULTS

Figure 9 shows GLONASS acquisition results for “GLONASSData.dat” file. This data is a small chunk of large GNSS data file obtained from Spirent GSS6700 GNSS simulator. It contains GPS and GLONASS data. The data is only enough to allow acquisition and process the data to show acquired satellites. Its sampling frequency is 130 MHz for both GPS and GLONASS, and the Intermediate frequencies are 15.42 MHz for GPS and 42 MHz for GLONASS. The sampling frequency, IF frequency and other parameters of acquisition are set in setting function by default. The signal is sampled using unit8 data type. Unit 8 means 8-bit unsigned integers, and it consists of all whole numbers from 0 to 255. The following frequency channel numbers (FCH numbers) are present in the file: –7, –4, –2, 0, 1, 2, 4 and 5.

Fig. 9.
figure 9

GLONASS acquisition results.

The frequency and the deviation of the acquired satellites are given below in Table 2. The acquired signals are sorted according to the signal strength.

Table 2.   Frequency and deviation of the acquired GLONASS satellites

11 BEIDOU ACQUISITION RESULTS

Figure 10 shows BeiDou acquisition results for BeidouData.dat file. Its sampling frequency is 14.4 MHz and Intermediate Frequency is 2.898 MHz. Signal is sampled using ubit1 data type. The following BeiDou PRN’s are presented in the file: 1, 3, 6 and 7.

Fig. 10.
figure 10

BeiDou acquisition results.

12 CONCLUSIONS

In this research, Multi-GNSS signal acquisition process is analyzed using Fast Fourier Transform (FFT) method. Based on the software platform of MATLAB, GPS, GLONASS, and signals are acquired from the real IF down converted and sampled signal records of GPS, GLONASS, and BeiDou. FFT based acquisition is faster and more effective than the serial search acquisition process. With FFT based acquisition 1 ms data of C/A code signal can be directly acquired which is not possible in case of the serial search acquisition process.

This work is helpful for the efficient design of the Multi-GNSS receivers. The acquisition parameters obtained in this thesis can be used for algorithm simulation and real-time study of software GNSS receivers such as signal tracking, bit and frame synchronization, navigation message data extraction and computation of position.