# Comparison of L1 and L5 Bands GNSS Signals Acquisition
## 3 Assessment of Processing Time and Memory Requirements
### Acquisition of a Data Channel  
This section discusses the acquisition of a data channel. This mainly concerns the GPS L1 C/A signal, since all the modern signals have a pilot channel.  
There are different methods to manage the data transition during the acquisition. Since high sensitivity is considered, the longest coherent integration time is desired. Therefore, the method that computes many accumulations in parallel starting at different times to test all the possibilities, called full-bits method with estimation of bit transition times in Reference [31], is considered. The highest accumulated value should be the one where the accumulation starts with the data bit. Consequently, the implementation would be the one of Figure 2. The size of the memory-based accumulators is \(N_{\text{P}}=f_{\text{S}}\ T_{\text{P}}\), with \(T_{\text{P}}\) the period of the PRN code, e.g., 1 ms for the L1 C/A signal.  
The size of the FFT can be \(N_{\text{FFT}}=N_{\text{P}}\) or nextpow2(\(2N_{\text{P}}\)), where nextpow2(\(n\)) means the power of two equal to or higher than \(n\), i.e., \(2^{\log{(n)}}\). To preserve the periodicity of the code, either the sampling frequency should give a length \(N_{\text{P}}\) that is a power of two, or the length should be doubled by zero-padding. To avoid the loss due to the data transition within the correlation, the length should be doubled by zero-padding. Therefore, to be as general as possible and consider a flexible choice on the sampling frequency, it will not be assumed that \(N_{\text{P}}\) is a power of two, and therefore \(N_{\text{FFT}}=\text{nextpow2(}2N_{\text{P}})\).  
Figure 1: Overview of the considered parallel code search with long integration. Dashed blocks are optional.  
The corresponding timing diagram is shown in Figure 3, from which we can deduce the processing time in clock cycle for one frequency bin:  
\[\begin{split}& T_{\text{FB}}=KN_{\text{FFT}}N_{\text{D}}+2(N_{ \text{FFT}}+L)+N_{\text{FFT}}(N_{\text{D}}-2)+N_{\text{P}}\\ &=KN_{\text{D}}(2N_{\text{P}}+N_{\text{Z}})+N_{\text{P}}(2N_{ \text{D}}-1)+N_{\text{Z}}N_{\text{D}}+2L3 pt\\ &=N_{\text{P}}[(K+1)2N_{\text{D}}+1]+N_{\text{Z}}[(K+1)N_{\text{D }}]+2L,\end{split} \tag{5}\]  
where \(K\) is the number of data bits accumulated non-coherently (i.e., the number of non-coherent accumulations here: \(K=N_{\text{NC}}\)), \(N_{\text{FFT}}=2N_{\text{P}}+N_{\text{Z}}\) with \(N_{\text{Z}}\) the number of zeros padded, \(N_{\text{D}}\) is the number of primary code periods in one data bit (\(N_{\text{D}}=20\) for the GPS L1 C/A signal), and \(L\) the latency of the FFT (i.e., the number of clock cycles between the first output sample and the last input sample).  
Regarding the amount of memory necessary, the memory-based accumulators require  
\[\begin{split}& M=N_{\text{D}}2N_{\text{P}}B_{\text{C}}+N_{\text{D }}N_{\text{P}}B_{\text{NC}}\text{ bits}\\ &=N_{\text{D}}N_{\text{P}}(2B_{\text{C}}+B_{\text{NC}})\text{ bits}\\ &=N_{\text{D}}N_{\text{P}}[3B_{\text{R}}+3[\log{}_{2}(N_{\text{D}} )]+[\log_{2}(K)]]\text{ bits},\end{split} \tag{6}\]  
where \(B_{\text{C}}\) is the number of bits used to quantize the output of the coherent accumulators (\(\mathbf{y}_{i}\)) and \(B_{\text{NC}}\) is the number of bits used to quantize the output of the non-coherent accumulators (\(\mathbf{z}_{i}\)), with  
\[B_{\text{C}}=B_{\text{R}}+\lceil\log{}_{2}(N_{\text{D}})\rceil, \tag{7}\]  
and  
\[\begin{split}& B_{\text{NC}}=B_{\text{C}}+\lceil\log_{2}(K)\rceil\\ &=B_{\text{R}}+\lceil\log{}_{2}(N_{\text{D}})+\log_{2}(K)\rceil, \end{split} \tag{8}\]  
where \(B_{\text{R}}\) is the number of bits used to quantize the output of the correlation (\(\mathbf{r}_{i}\)). Note that these last two equations assume that there is no truncation during the accumulations.  
Figure 2: Implementation of a data channel acquisition (timing diagram available in Figure 3).