# Performance Evaluation of Adaptive Tracking Techniques with Direct-State Kalman Filter +
## 5 Results
### Complexity  
Table 2 shows the added number of additions, multiplications, and divisions required for each adaptive technique in the DSKF compared to the standard STL. The total number of operations is marked as red, orange, and green, depending on the level of complexity. The colors vary from the most complex one, marked in red, to the simplest one, marked in green. The presented equivalence between the DSKF and the standard STL (see Figures 4 and 5) shows that only the Kalman gain calculation (i.e., yellow block of Figure 4) must be included. The \(C/N_{0}\)-based DSKF adapts \(R\) based on Equation (30), being \(q\) a constant value. In contrast, the LBCA-based DSKF set \(R\) to a constant value, while adapting \(q\) using the LBCA. This technique needs additional complexity to map the loop bandwidth with the steady-state process variance \(q\) (see Equation (47)). The LUT-DSKF significantly reduces the complexity by calculating the convergence of the Kalman gains \(\mathbf{K}\) in the steady-state. In the LBCA-based LUT-DSKF, the relation between the \(B\) and \(\mathbf{K}\) is used (see Equation (38)) to update the filter coefficients. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Tracking Technique** & **Configuration** & **Label** & \(\overline{\text{P}}_{\text{System}}\) & \(\overline{\text{P}}_{\text{System}}\) \\  & & & **Static** & **Dynamic** \\ \hline \multirow{2}{*}{\(C/N_{0}\)-based DSKF} & \(q=1000\), \(N=100\) & \(T_{1}\) & 0.910 & 0.535 \\  & \(q=1000\), \(N=500\) & \(T_{2}\) & 0.909 & 0.538 \\ \hline LBCA-based DSKF & \(g_{\text{Max}}=0.1\), \(T_{\text{LBCA}}=0.14\) & \(T_{3}\) & 0.877 & 0.583 \\ \hline LBCA-based LUT-DSKF & \(g_{\text{Max}}=0.1\), \(T_{\text{LBCA}}=0.14\) & \(T_{4}\) & 0.912 & 0.628 \\ \hline LBCA-based PLL & \(g_{\text{Max}}=0.1\), \(T_{\text{LBCA}}=0.14\) & \(T_{5}\) & 0.911 & 0.627 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Overall system performance of adaptive tracking techniques. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Tracking Technique** & **Sub-Module** & \multicolumn{3}{c}{**Added Number of Operations:**} \\  & **Module** & **Additions** & **Multiplications** & **Divisions** \\ \hline \multirow{5}{*}{C/N\({}_{0}\)-based DSKF} & Error Cov. Prediction (17) & 27 & 18 & - \\  & Kalman Gain Calculation (20) and (21) & 1 & 3 & 1 \\  & Error Cov. Update (23) & 9 & 9 & - \\  & Measurement Noise Cov. (30) & 1 & 5 & 2 \\ \cline{2-5}  & **Total** & 38 & 38 & 3 \\ \hline \multirow{5}{*}{LBCA-based DSKF} & Error Cov. Prediction (17) & 27 & 18 & - \\  & Kalman Gain Calculation (20) and (21) & 1 & 3 & 1 \\  & Error Cov. Update (23) & 9 & 9 & - \\  & LBCA + PLAN [7] & 6 & 7 & 1 \\  & \(q\) and \(B\) relation (47) & 0 & 6 & 0 \\ \cline{2-5}  & **Total** & 45 & 37 & 2 \\ \hline \multirow{2}{*}{LBCA-based LUT-DSKF} & LBCA + PLAN [7] & 6 & 7 & 1 \\  & **K** and \(B\) relation (38) & 0 & 9 & 0 \\ \cline{2-5}  & **Total** & 6 & 16 & 1 \\ \hline \multirow{2}{*}{LBCA-based PLL} & LBCA + PLAN [7] & 6 & 7 & 1 \\ \cline{2-5}  & **Total** & 6 & 7 & 1 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Complexity of adaptive tracking techniques based on the added number of operations. In all the LBCA-based techniques, the weighting function of the LBCA technique is approximated using the piecewise linear approximation of nonlinearities (PLAN) technique [7]. Table 3 shows the time complexity of the standard PLL and each adaptive tracking technique. The time complexity measures the algorithm's processing time in software on the processing platform. The same procedure as in previous research is carried out [7]. An Intel Skylake micro-architecture with a clock speed of 3700 MHz is used to evaluate the time complexity of each technique. The code is implemented in C++, and a for-loop is used to iterate the operation of a loop filter \(3\times 10^{8}\) times. The processing time of each method is measured using the _chrono_ library [46], and the _operf_ Linux profiler tool is used to analyze the utilization of the used libraries during the algorithm's execution [47].