Blogs >> Technology >>
Search Techniques for GNSS Signal Acquisition
Search Techniques for GNSS Signal Acquisition
From the previous articles, we recollect that acquisition process involves receiver to estimate code phase and Doppler offset (τ, fd). There needs to be an organized way to generate an estimate of these two within the receiver to make sure that code and carrier Doppler wipe off is done efficiently. In literature many algorithms have been proposed to come up with the best estimates. But all the algorithms have only
one central aim of determining the optimum values of τ, fd.
All the search algorithms involve receiver conducting a search over the (τ, fd) space as shown below.
Each cell of this space corresponds to a unique value of (τ, fd). The search involves staying starting from a pre-defined cell1 and moving in either direction by staying on each cell for sufficient time to determine whether a peak is present. A Peak corresponds to maximum energy meaning that the two codes matched
perfectly on correlation.
Serial Search Algorithm As seen in Figure above, the algorithm is based on multiplication of locally generated PRN code sequences and locally generated carrier signals. The PRN generator generates a PRN sequence corresponding to a specific satellite. The generated sequence has a certain code phase, from 0 to 1022 chips. The incoming signal is initially multiplied by this locally generated PRN sequence. After multiplication with the PRN sequence, the signal is multiplied by a locally generated carrier signal. Multiplication with the locally generated carrier signal generates the In-phase signal I , and multiplication with a 90◦ phase-shifted version of the locally generated carrier signal generates the quadrature signal Q.
The I and Q signals are integrated over 1 ms, corresponding to the length of one C/A code, and finally squared and added. Ideally, the signal power should be located in the In-phase part of the signal, as the C/A code is only modulated onto that. However, in this case the In-phase signal generated at the satellite does not necessarily correspond to the demodulated In-phase component. This is because the phase of the received signal is unknown. So to be certain that the signal is detected, it is necessary to investigate both the I and the Q signal.
The output is a value of correlation between the incoming signal and the locally generated signal. If a predefined threshold is exceeded, the frequency and code phase parameters are correct, and the parameters
can be passed on to the tracking algorithms.
To summarize, serial search consists of
1. Picking one PRN (meaning for one particular satellite)
2. Select one value of code phase from the search space
3. Searching for all possible Doppler offsets over search space for this particular PRN and for one particular selected code phase.
4. It may be possible that for all combinations of code phases and frequency offset values, no peak was found, in which case, the selected PRN needs to be changed.
The step 2 and 3 could be interchanged …for example; one could also select one value of Doppler offset and search for all the possible code phases.
The serial search algorithm performs two different sweeps: a frequency sweep over all possible carrier frequencies of IF ±10 kHz in steps of 500 Hz and a code phase sweep over all 1023 different code phases.
All in all, this sums up to a total of Parallel Frequency Space Search Acquisition The serial search acquisition method showed that it is a very time-consuming procedure to search sequentially through all possible values of the two parameters frequency and code phase. If any of the two parameters could be eliminated from the search procedure or if possible implemented in parallel, the performance of the procedure would increase significantly. As the name parallel frequency space search acquisition implies, this second method of acquisition parallelizes the search for the one parameter. This method utilizes the Fourier transform to perform a transformation from the time domain into the frequency
domain.
The incoming signal is multiplied by a locally generated PRN sequence, with a code corresponding to a specific satellite and a code phase between 0 and 1023 chips. The resulting signal is transformed into the frequency domain by a Fourier transform. The Fourier transform could be implemented as a discrete Fourier transform (DFT) or a fast Fourier transform (FFT). The FFT is the faster of the two; but it requires an input sequence with a radix-2 length, that is, 2n, where n takes positive integer value.
With a perfectly aligned PRN code, the output of the Fourier transform will show a distinct peak in magnitude. The peak will be located at the frequency index corresponding to the frequency of the continuous-wave signal and thereby the frequency of the carrier signal.
The accuracy of the determined frequency depends on the length of the DFT. The length corresponds to the number of samples in the analyzed data. If 1 ms of data is analyzed, the number of samples can be found as 1/1000 of the sampling frequency. That is, if the sampling frequency is fs = 10 MHz, the number of samples is N = 10,000. With a DFT length of 10,000, the first N/2 output samples represent the frequencies from 0 to fs / 2 Hz. That is, the frequency resolution of the output is With a sampling frequency of fs = 10 MHz the resulting frequency resolution is In this case, the accuracy of the estimated carrier frequency is 1 kHz compared to the accuracy of 500 Hz in serial search acquisition.
Where the serial search acquisition method steps through possible code phases and carrier frequencies, the parallel frequency space search acquisition only steps through the 1023 different code phases. This comes with the cost of a frequency domain transformation with each code phase.
To Summarize
1. Picking one particular PRN and multiplying (correlating) it with incoming signal
2. Select one code phase to begin with from 0 to 1023.
3. transform the incoming signal to frequency domain and look for the peak. If peak is found, then a
match for code phase is found.
4. If no peak is found, then select the next code phase and repeat the procedure.
5. It may be possible that for all combinations of code phases and frequency offset values, no peak was found, in which case, the selected PRN needs to be changed.
At the top the PRN code is modulated onto the carrier wave. In the middle is a perfectly aligned PRN sequence. At the bottom we recover the continuous wave after multiplying the incoming signal with the perfectly aligned PRN sequence. Of course, this only happens when the locally generated PRN code is perfectly aligned with the code in the incoming signal. If the incoming signal contains signal components from other satellites, these components will be minimized as a result of the cross-correlation properties of the PRN sequences.
one central aim of determining the optimum values of τ, fd.
All the search algorithms involve receiver conducting a search over the (τ, fd) space as shown below.
Each cell of this space corresponds to a unique value of (τ, fd). The search involves staying starting from a pre-defined cell1 and moving in either direction by staying on each cell for sufficient time to determine whether a peak is present. A Peak corresponds to maximum energy meaning that the two codes matched
perfectly on correlation.
Serial Search Algorithm As seen in Figure above, the algorithm is based on multiplication of locally generated PRN code sequences and locally generated carrier signals. The PRN generator generates a PRN sequence corresponding to a specific satellite. The generated sequence has a certain code phase, from 0 to 1022 chips. The incoming signal is initially multiplied by this locally generated PRN sequence. After multiplication with the PRN sequence, the signal is multiplied by a locally generated carrier signal. Multiplication with the locally generated carrier signal generates the In-phase signal I , and multiplication with a 90◦ phase-shifted version of the locally generated carrier signal generates the quadrature signal Q.
The I and Q signals are integrated over 1 ms, corresponding to the length of one C/A code, and finally squared and added. Ideally, the signal power should be located in the In-phase part of the signal, as the C/A code is only modulated onto that. However, in this case the In-phase signal generated at the satellite does not necessarily correspond to the demodulated In-phase component. This is because the phase of the received signal is unknown. So to be certain that the signal is detected, it is necessary to investigate both the I and the Q signal.
The output is a value of correlation between the incoming signal and the locally generated signal. If a predefined threshold is exceeded, the frequency and code phase parameters are correct, and the parameters
can be passed on to the tracking algorithms.
To summarize, serial search consists of
1. Picking one PRN (meaning for one particular satellite)
2. Select one value of code phase from the search space
3. Searching for all possible Doppler offsets over search space for this particular PRN and for one particular selected code phase.
4. It may be possible that for all combinations of code phases and frequency offset values, no peak was found, in which case, the selected PRN needs to be changed.
The step 2 and 3 could be interchanged …for example; one could also select one value of Doppler offset and search for all the possible code phases.
The serial search algorithm performs two different sweeps: a frequency sweep over all possible carrier frequencies of IF ±10 kHz in steps of 500 Hz and a code phase sweep over all 1023 different code phases.
All in all, this sums up to a total of Parallel Frequency Space Search Acquisition The serial search acquisition method showed that it is a very time-consuming procedure to search sequentially through all possible values of the two parameters frequency and code phase. If any of the two parameters could be eliminated from the search procedure or if possible implemented in parallel, the performance of the procedure would increase significantly. As the name parallel frequency space search acquisition implies, this second method of acquisition parallelizes the search for the one parameter. This method utilizes the Fourier transform to perform a transformation from the time domain into the frequency
domain.
The incoming signal is multiplied by a locally generated PRN sequence, with a code corresponding to a specific satellite and a code phase between 0 and 1023 chips. The resulting signal is transformed into the frequency domain by a Fourier transform. The Fourier transform could be implemented as a discrete Fourier transform (DFT) or a fast Fourier transform (FFT). The FFT is the faster of the two; but it requires an input sequence with a radix-2 length, that is, 2n, where n takes positive integer value.
With a perfectly aligned PRN code, the output of the Fourier transform will show a distinct peak in magnitude. The peak will be located at the frequency index corresponding to the frequency of the continuous-wave signal and thereby the frequency of the carrier signal.
The accuracy of the determined frequency depends on the length of the DFT. The length corresponds to the number of samples in the analyzed data. If 1 ms of data is analyzed, the number of samples can be found as 1/1000 of the sampling frequency. That is, if the sampling frequency is fs = 10 MHz, the number of samples is N = 10,000. With a DFT length of 10,000, the first N/2 output samples represent the frequencies from 0 to fs / 2 Hz. That is, the frequency resolution of the output is With a sampling frequency of fs = 10 MHz the resulting frequency resolution is In this case, the accuracy of the estimated carrier frequency is 1 kHz compared to the accuracy of 500 Hz in serial search acquisition.
Where the serial search acquisition method steps through possible code phases and carrier frequencies, the parallel frequency space search acquisition only steps through the 1023 different code phases. This comes with the cost of a frequency domain transformation with each code phase.
To Summarize
1. Picking one particular PRN and multiplying (correlating) it with incoming signal
2. Select one code phase to begin with from 0 to 1023.
3. transform the incoming signal to frequency domain and look for the peak. If peak is found, then a
match for code phase is found.
4. If no peak is found, then select the next code phase and repeat the procedure.
5. It may be possible that for all combinations of code phases and frequency offset values, no peak was found, in which case, the selected PRN needs to be changed.
At the top the PRN code is modulated onto the carrier wave. In the middle is a perfectly aligned PRN sequence. At the bottom we recover the continuous wave after multiplying the incoming signal with the perfectly aligned PRN sequence. Of course, this only happens when the locally generated PRN code is perfectly aligned with the code in the incoming signal. If the incoming signal contains signal components from other satellites, these components will be minimized as a result of the cross-correlation properties of the PRN sequences.
|