# Hard SyDR: A Benchmarking Environment for Global Navigation Satellite System Algorithms +
## 2 Background and Motivation
### GNSS Processing Stages and Computational Complexity
The details of the RF signal, algorithms, and parameters used are provided in Table 1. Execution time is measured using the time.perf_counter_ns functionality in  
Figure 1: Typical GNSS processing chain, as implemented in SyDR. Python, which is recommended in the Python PEP guidelines for performance comparison [25]. In these plots, we separate the processing stages into a number of functions within SyDR to achieve a more fine-grained resolution of the processing costs in and between the stages. We evaluate this processing cost over a scenario with 15 s of RF data (details in Table 1). We also propose two metrics to evaluate the processing cost: the average processing time per epoch (left) normalized by the highest-cost process (i.e., Signal Search), and the total processing time (right) normalized by the total processing time. An \"epoch\" is defined here as each millisecond of RF data fed to the channel. Normalization of the results is performed to ease comparison. We do not include the positioning stage in our comparison, as it is performed outside the processing flow of a single channel. However, we assume it is much less computationally expensive than both the acquisition and tracking stages, knowing the low rate with which the positioning is executed (\(\sim\)1-10 Hz) compared with the other stages (\(\sim\)1000 Hz) and the few arithmetic operations required. While falling victim to the aforementioned limitations and pitfalls of comparing processing times of software, the results presented can still provide some gross/coarse insights on the promising regions for optimization. For instance, the assumption that acquisition is more costly than tracking is true and clearly visible in the left graph. In fact, the difference is greater than two orders of magnitude when compared to correlator operations. However, when integrating this processing time over several seconds of data, tracking has the highest total processing time by far. This is expected as the acquisition is \begin{table}
\begin{tabular}{l l l} \hline \hline \multicolumn{3}{c}{**Reference Dataset**} \\ \hline Date & & 2021.11.30, \(\sim\) 8:40 (UTC) \\ Duration & & 15 s (15,000 ms) \\ Location & & TAU Rooftop (open-sky) \\ Dynamic & & Static \\ Antenna & & Novatel GPS-703-GGG \\ \hline Instruments & RF Logger & NI USRP-2953R \\ Clock & Spectracom GSG-6 \\ \hline Frequency & Center & 1575.42 MHz (L1) \\  & Bandwidth & 120 MHz \\  & Sampling frequency & 10 MHz \\  & Quantization & 8 bits \\  & 1/Q & Complex \\ \hline \multicolumn{3}{c}{**Acquisition**} \\ \hline Method & & Parallel Code Phase Search \\ Doppler Range & & \(\pm\) 5000 Hz, 250 Hz steps \\ Integration & & No integration (1 ms only) \\ Threshold & & Ratio two highest peak, 1.5 \\ \hline \multicolumn{3}{c}{**Tracking**} \\ \hline Method & & Early Prompt Late \\ Correlator spacing & & \(-\)0.5/0/0.5 \\ \hline \multirow{3}{*}{DLL} & PDI & 0.001 \\  & Damping ratio & 0.7 \\ \cline{1-1}  & Noise bandwidth & 2.0 Hz \\ \cline{1-1}  & Loop gain & 1.0 \\ \hline \multirow{3}{*}{PLL} & PDI & 0.001 \\  & Damping ratio & 0.7 \\ \cline{1-1}  & Noise bandwidth & 25.0 Hz \\ \cline{1-1}  & Loop gain & 0.25 \\ \hline \end{tabular}
\end{table} 
Table 1: Simulation parameters used in SyDR and Hard SyDR. performed only once at the beginning of this scenario, and the channel spends most of the processing time in the tracking stage. Yet, the important conclusion is that while acquisition might be more power-hungry than tracking, minor optimizations in the tracking stage could ultimately lead to considerably larger energy savings. Thus, while research over the last years has focused on reducing acquisition complexity [1], greater energy savings could be achieved with improvements in the correlator complexity. Notably, several assumptions need to be taken into account for an enlightened interpretation of these results, besides the parameters listed in Table 1, such as the following:  
* We use a simple PCPS algorithm for acquisition, to which there are many lower-complexity alternatives, such as QuickSynch [26].