PART2 » History » Version 18
Version 17 (JANVIER, Thibault, 03/22/2016 04:01 PM) → Version 18/44 (JANVIER, Thibault, 03/22/2016 04:02 PM)
h1. PART 3 : Acquisition and Tracking.
{{toc}} {{>toc}}
---
h2. 1- Introduction.
h3. a- General overview of a GPS receiver using CDMA technique.
The GPS signal generation scheme has been detailed in [[PART|PART 2 : GPS signals generation]] generation.]] and is using a CDMA technique which spreading sequences are the PRN codes. Thereby, the major steps of the whole communication chain can be summarized by the figure below.
p=. !1.png!
*Figure 3.1* : .
*[ See Kassas_Graphical_Approach_to_GPS_SDR II - GPS RECEIVED SIGNAL MODEL ]*
At the output of the receiver front-end, after down-conversion to baseband, the signal x can be expressed as follows:
p=. !2.png!
*Figure 3.2* : .
Where:
*A* is the amplitude of the signal
*τ_j* = jT is the sampling time
*T* is the sampling period
*t_d(τ_j)** is the time difference between the start time of the navigation sequence that is being sampled at τj and τj = phase of the incoming navigation data
*t_s(τ_j)* is the time difference between the start time of the spreading sequence that is being sampled at τj and τj = phase of the incoming PRN sequence
*θ* is the phase shift due to non-coherent down-conversion to baseband (Doppler shift)
*n* is a white Gaussian noise
p=. !3.png!
*Figure 3.3* : .
*T_d* is the symbol period
*T_c* is the chip period
*d_k* is a navigation symbol taking its values in ±1
*c_k* is a chip symbol taking its values in ±1
*π_Td* is the standard pulse function of width Td
*π_Tc* is the standard pulse function of width Tc
*N_c* is the number of chips in one spreading code
h3. b- List of the key parameters in the implementation of a GPS receiver.
To decode navigation data, one first needs to remove the incoming carrier from the signal *(insert ref here on the general overview of a GPS receiver using CDMA technique)*. To do so, the carrier frequency has to be known to generate a local carrier signal and down-convert the incoming signal to baseband. Nonetheless, this carrier frequency might deviate from the expected value. Indeed, the relative motion of the satellite with respect to the receiver induces a Doppler effect that shifts the frequency of the incoming carrier. If the GPS receiver is moving, it is reasonable to assume that the maximum Doppler shift for the L1 frequency is around ± 10 kHz. Otherwise, for a stationary GPS receiver, the maximum Doppler shift for the L1 frequency is around ± 5 kHz. This uncertainty regarding the carrier frequency will have to be dealt with in the implementation of the GPS receiver *(see part xx, insert ref scheme regarding acquisition and carrier tracking)*
Another key parameter is related to the PRN sequences that are used to spread the information. First of all, the satellites are differentiated by 32 different PRN sequences. Consequently, the GPS receiver has to search for the right PRN code among all the PRN sequences to remove the spreading code from the signal and decode the data. Still, knowing the right PRN code to despread the signal at the receiving side is not sufficient. Indeed, PRN codes have high correlation only for zero lag. As such, it is of prime concern to know the incoming code phase in order to generate a local PRN code that is perfectly aligned with the incoming one. The software-defined GPS receiver will have to address and overcome this issue *(insert ref, Acquisition and tracking)*.
Block diagram of a GPS receiver according to the previous key parameters that have been highlighted.
p=. !4.png!
*Figure 3.4* : .
---
h2. 2- Acquisition.
In order to receive and efficiently decode navigation data, the receiver must know which satellites are initially visible. This can be achieved using two common methods referred to as warm start and cold start. In a warm start, the receiver uses the information it has stored from the previous results and is able to compute which satellites are visible. In a cold start, the receiver has no stored information and has to search for the visible satellites. This process is called acquisition and aims at determining the visible satellites as well as the coarse values of the carrier frequency and the code phase of the satellite signals (*insert ref, list of the key parameters in the implementation of a GPS receiver*). Acquisition is quite time-consuming as it has to search through all possible satellites (all PRN sequences), all possible carrier frequencies taking into account the Doppler shift and all possible code phases of a given PRN sequence. As a result, a 2-dimensional search in frequency (Doppler shift) and time (code phase) is carried out for each PRN sequence. This process can be performed using a serial search acquisition, a parallel frequency space search acquisition or a parallel code phase search acquisition. These three commons methods have different characteristics regarding the execution time, their complexities and their accuracies. They will be briefly depicted in the three following subsections.
h3. a- Serial Search Acquisition.
p=. !5.png!
*Figure 3.5* : .
The serial search acquisition procedure is based on the C/A code correlation properties (*insert ref part xx*) according to which the cross correlation between two different C/A codes is really low and the autocorrelation is high only for zero lag. The algorithm is described just below.
The incoming signal is multiplied by a given C/A code with a certain code phase between 0 and 1022 chips. Then, the signal is mixed with a locally generated carrier signal to remove the carrier wave of the received signal. This generates an in-phase signal I and a quadrature signal Q. As the C/A code is modulated onto the I signal, one should only take into consideration the I signal. Nevertheless, the down-conversion is non-coherent. This means that the locally generated carrier wave used to down-convert the incoming signal is not in phase with the incoming carrier wave. As a consequence, the signal of interest is divided on both I and Q signals after down-conversion. Thus, it is necessary that one should use both of the I and Q signals. These I and Q signals are integrated over 1 ms which correspond to the length of one C/A code. By doing so, one is correlating the incoming PRN sequence with the locally generated C/A code on both I and Q signals. The outputs of both I and Q signals are finally squared and added. The final result is compared to a threshold. If the threshold is exceeded, the frequency and code phase parameters used for the locally generated signals are correct for the PRN sequence that is considered. If the threshold is not exceeded, this could be due to several reasons that are listed just below:
- The locally generated PRN sequence is not the same as the one that is received, which means that the receiver is not configured to receive signals from the actually targeted satellite.
- The locally generated PRN sequence is the right one but its code phase does not match the incoming PRN sequence.
- The locally generated carrier wave does not have the same frequency as the incoming carrier wave because of the Doppler shift.
The GPS receiver cannot know the cause that leads to low correlation. It will therefore proceed using a two-dimensional search in frequency and time for each PRN sequence in order to find the right frequency and the right code phase for the PRN sequence that is considered. Considering that the Doppler shift is around ± 10 kHz, it is reasonable to take a frequency step of 500 Hz resulting in 41 frequencies around the theoretical L1 frequency. For each frequency, 1023 different code phases are tried for the PRN sequence that is considered (recall that one C/A code contains 1023 chips). The output is computed for all the pairs “frequency/code phase” and can be plotted on a 3D graph as shown on *figures XX and XX*. Then, the maximum value from all the possibilities is computed. If this maximum does not exceed the threshold, the PRN sequence for which the search has been done corresponds to a satellite that is not visible to the receiver and the search has to be carried out for another PRN sequence. If the maximum exceeds the threshold, the satellite is acquired with coarse values of its carrier frequency and code phase.
h3. b- Parallel frequency space search acquisition.
The serial search acquisition implies to test every combination of frequency and code phase of a given PRN sequence before being able to tell if the acquisition is successful or not. This process is really time-consuming. If the search procedure of one of the two parameters could be implemented in parallel, this would drastically decrease the acquisition time. The parallel frequency space search acquisition aims at automatically giving a coarse value of the frequency carrier of the incoming signal once the right code phase has been found. It is implemented as follows:
p=. !6.png!
*Figure 3.6* : .
The incoming signal is multiplied by a given PRN sequence which code phase varies between 0 and 1022 chips. A Fourier transform is then used to assess the previous result in the frequency domain. The Fourier transform gives a complex signal and the output is obtained by taking the squared magnitude of this signal. When the locally generated PRN sequence corresponds to the satellite that is targeted and when the phase of this locally generated PRN sequence perfectly matches the one of the PRN sequence from the incoming signal, the output of the multiplication is illustrated as follows *(insert ref, properties of CDMA techniques)*:
p=. !7.png!
*Figure 3.7* : .
As such, the result corresponds to the carrier wave of the incoming signal. Consequently, the final output corresponds to the squared magnitude of the Fourier transform of a sine wave. In a nutshell, with a perfectly aligned PRN code of a visible satellite, the output displays a distinct peak in magnitude that corresponds to the real carrier frequency of the targeted satellite. This peak can be found using a threshold. When this threshold is exceeded, the satellite is acquired with coarse values of its carrier frequency and code phase. *(insert image p 82 of the book)*
h3. c- Parallel code phase search acquisition.
---
h2. 3- Tracking.
h3. a-
p=. !002.png!
*Figure 3.8* : from [2].
p=. !001.jpg!
---
*References :*
*[1]* K. Borre, D. M. Akos, N. Bertelsen, P. Rinder, S. H. Jensen, A software-defined GPS and GALILEO receiver
*[2]* D. Kubrak, GNSS Signal Tracking Workshop, March 2016
{{toc}} {{>toc}}
---
h2. 1- Introduction.
h3. a- General overview of a GPS receiver using CDMA technique.
The GPS signal generation scheme has been detailed in [[PART|PART 2 : GPS signals generation]] generation.]] and is using a CDMA technique which spreading sequences are the PRN codes. Thereby, the major steps of the whole communication chain can be summarized by the figure below.
p=. !1.png!
*Figure 3.1* : .
*[ See Kassas_Graphical_Approach_to_GPS_SDR II - GPS RECEIVED SIGNAL MODEL ]*
At the output of the receiver front-end, after down-conversion to baseband, the signal x can be expressed as follows:
p=. !2.png!
*Figure 3.2* : .
Where:
*A* is the amplitude of the signal
*τ_j* = jT is the sampling time
*T* is the sampling period
*t_d(τ_j)** is the time difference between the start time of the navigation sequence that is being sampled at τj and τj = phase of the incoming navigation data
*t_s(τ_j)* is the time difference between the start time of the spreading sequence that is being sampled at τj and τj = phase of the incoming PRN sequence
*θ* is the phase shift due to non-coherent down-conversion to baseband (Doppler shift)
*n* is a white Gaussian noise
p=. !3.png!
*Figure 3.3* : .
*T_d* is the symbol period
*T_c* is the chip period
*d_k* is a navigation symbol taking its values in ±1
*c_k* is a chip symbol taking its values in ±1
*π_Td* is the standard pulse function of width Td
*π_Tc* is the standard pulse function of width Tc
*N_c* is the number of chips in one spreading code
h3. b- List of the key parameters in the implementation of a GPS receiver.
To decode navigation data, one first needs to remove the incoming carrier from the signal *(insert ref here on the general overview of a GPS receiver using CDMA technique)*. To do so, the carrier frequency has to be known to generate a local carrier signal and down-convert the incoming signal to baseband. Nonetheless, this carrier frequency might deviate from the expected value. Indeed, the relative motion of the satellite with respect to the receiver induces a Doppler effect that shifts the frequency of the incoming carrier. If the GPS receiver is moving, it is reasonable to assume that the maximum Doppler shift for the L1 frequency is around ± 10 kHz. Otherwise, for a stationary GPS receiver, the maximum Doppler shift for the L1 frequency is around ± 5 kHz. This uncertainty regarding the carrier frequency will have to be dealt with in the implementation of the GPS receiver *(see part xx, insert ref scheme regarding acquisition and carrier tracking)*
Another key parameter is related to the PRN sequences that are used to spread the information. First of all, the satellites are differentiated by 32 different PRN sequences. Consequently, the GPS receiver has to search for the right PRN code among all the PRN sequences to remove the spreading code from the signal and decode the data. Still, knowing the right PRN code to despread the signal at the receiving side is not sufficient. Indeed, PRN codes have high correlation only for zero lag. As such, it is of prime concern to know the incoming code phase in order to generate a local PRN code that is perfectly aligned with the incoming one. The software-defined GPS receiver will have to address and overcome this issue *(insert ref, Acquisition and tracking)*.
Block diagram of a GPS receiver according to the previous key parameters that have been highlighted.
p=. !4.png!
*Figure 3.4* : .
---
h2. 2- Acquisition.
In order to receive and efficiently decode navigation data, the receiver must know which satellites are initially visible. This can be achieved using two common methods referred to as warm start and cold start. In a warm start, the receiver uses the information it has stored from the previous results and is able to compute which satellites are visible. In a cold start, the receiver has no stored information and has to search for the visible satellites. This process is called acquisition and aims at determining the visible satellites as well as the coarse values of the carrier frequency and the code phase of the satellite signals (*insert ref, list of the key parameters in the implementation of a GPS receiver*). Acquisition is quite time-consuming as it has to search through all possible satellites (all PRN sequences), all possible carrier frequencies taking into account the Doppler shift and all possible code phases of a given PRN sequence. As a result, a 2-dimensional search in frequency (Doppler shift) and time (code phase) is carried out for each PRN sequence. This process can be performed using a serial search acquisition, a parallel frequency space search acquisition or a parallel code phase search acquisition. These three commons methods have different characteristics regarding the execution time, their complexities and their accuracies. They will be briefly depicted in the three following subsections.
h3. a- Serial Search Acquisition.
p=. !5.png!
*Figure 3.5* : .
The serial search acquisition procedure is based on the C/A code correlation properties (*insert ref part xx*) according to which the cross correlation between two different C/A codes is really low and the autocorrelation is high only for zero lag. The algorithm is described just below.
The incoming signal is multiplied by a given C/A code with a certain code phase between 0 and 1022 chips. Then, the signal is mixed with a locally generated carrier signal to remove the carrier wave of the received signal. This generates an in-phase signal I and a quadrature signal Q. As the C/A code is modulated onto the I signal, one should only take into consideration the I signal. Nevertheless, the down-conversion is non-coherent. This means that the locally generated carrier wave used to down-convert the incoming signal is not in phase with the incoming carrier wave. As a consequence, the signal of interest is divided on both I and Q signals after down-conversion. Thus, it is necessary that one should use both of the I and Q signals. These I and Q signals are integrated over 1 ms which correspond to the length of one C/A code. By doing so, one is correlating the incoming PRN sequence with the locally generated C/A code on both I and Q signals. The outputs of both I and Q signals are finally squared and added. The final result is compared to a threshold. If the threshold is exceeded, the frequency and code phase parameters used for the locally generated signals are correct for the PRN sequence that is considered. If the threshold is not exceeded, this could be due to several reasons that are listed just below:
- The locally generated PRN sequence is not the same as the one that is received, which means that the receiver is not configured to receive signals from the actually targeted satellite.
- The locally generated PRN sequence is the right one but its code phase does not match the incoming PRN sequence.
- The locally generated carrier wave does not have the same frequency as the incoming carrier wave because of the Doppler shift.
The GPS receiver cannot know the cause that leads to low correlation. It will therefore proceed using a two-dimensional search in frequency and time for each PRN sequence in order to find the right frequency and the right code phase for the PRN sequence that is considered. Considering that the Doppler shift is around ± 10 kHz, it is reasonable to take a frequency step of 500 Hz resulting in 41 frequencies around the theoretical L1 frequency. For each frequency, 1023 different code phases are tried for the PRN sequence that is considered (recall that one C/A code contains 1023 chips). The output is computed for all the pairs “frequency/code phase” and can be plotted on a 3D graph as shown on *figures XX and XX*. Then, the maximum value from all the possibilities is computed. If this maximum does not exceed the threshold, the PRN sequence for which the search has been done corresponds to a satellite that is not visible to the receiver and the search has to be carried out for another PRN sequence. If the maximum exceeds the threshold, the satellite is acquired with coarse values of its carrier frequency and code phase.
h3. b- Parallel frequency space search acquisition.
The serial search acquisition implies to test every combination of frequency and code phase of a given PRN sequence before being able to tell if the acquisition is successful or not. This process is really time-consuming. If the search procedure of one of the two parameters could be implemented in parallel, this would drastically decrease the acquisition time. The parallel frequency space search acquisition aims at automatically giving a coarse value of the frequency carrier of the incoming signal once the right code phase has been found. It is implemented as follows:
p=. !6.png!
*Figure 3.6* : .
The incoming signal is multiplied by a given PRN sequence which code phase varies between 0 and 1022 chips. A Fourier transform is then used to assess the previous result in the frequency domain. The Fourier transform gives a complex signal and the output is obtained by taking the squared magnitude of this signal. When the locally generated PRN sequence corresponds to the satellite that is targeted and when the phase of this locally generated PRN sequence perfectly matches the one of the PRN sequence from the incoming signal, the output of the multiplication is illustrated as follows *(insert ref, properties of CDMA techniques)*:
p=. !7.png!
*Figure 3.7* : .
As such, the result corresponds to the carrier wave of the incoming signal. Consequently, the final output corresponds to the squared magnitude of the Fourier transform of a sine wave. In a nutshell, with a perfectly aligned PRN code of a visible satellite, the output displays a distinct peak in magnitude that corresponds to the real carrier frequency of the targeted satellite. This peak can be found using a threshold. When this threshold is exceeded, the satellite is acquired with coarse values of its carrier frequency and code phase. *(insert image p 82 of the book)*
h3. c- Parallel code phase search acquisition.
---
h2. 3- Tracking.
h3. a-
p=. !002.png!
*Figure 3.8* : from [2].
p=. !001.jpg!
---
*References :*
*[1]* K. Borre, D. M. Akos, N. Bertelsen, P. Rinder, S. H. Jensen, A software-defined GPS and GALILEO receiver
*[2]* D. Kubrak, GNSS Signal Tracking Workshop, March 2016