## 3 VTL Implementation  
There have been many studies of VTL implementation. The initial VDLL implementation concept was well explained in [7]. Recently, [13, 17] described VDLL, VFLL and VDFLL with EKF. The VTL implementation in this paper does not significantly differ from the previous studies. We implemented VDFLL with EKF in a software receiver. Figure 4 shows the workflow of the VDLL we implemented. Its notation follows [13]. The VTL algorithm starts with the discriminator output \(\Delta\widetilde{\rho}\) and the pseudorange measurement \(\widetilde{\rho}\) :  
* Measured pseudorange
* Discriminator output \(\left(\Delta\widetilde{\rho}=\rho_{true}-\widetilde{\rho}+n\right)\)
* pseudorange estimation noise
* true pseudorange (unknown)
* pseudorange estimate \(\left(\hat{\rho}=\Psi\left(\hat{x}\right)=\left|x_{sat}-\hat{x}\right|+c\cdot t _{u}\right)\)  
Figure 4: Construction of VDLL. Figure 3: _Cont._  
\(\hat{x}\) : user position state vector \(x_{sat}\) : satellite position vector \(c\) : speed of light \(t_{u}\) : user receiver clock offset \(K\) : Kalman gain \(H\) : Geometric matrix consisted of line of sight vectors. In the discriminator output model, \(\Delta\tilde{\rho}\approx\rho_{true}-\tilde{\rho}+n\) ; the true pseudorange \(\rho_{true}\) is unknown. It is therefore approximated as:  
\[\hat{\rho}_{true}\approx\Delta\tilde{\rho}+\tilde{\rho} \tag{1}\]  
Next, an error estimate \(\big{(}\tilde{\rho}+\Delta\rho\big{)}-\hat{\rho}\) can be used as a Kalman filter input. The construction of the EKF is established, as shown in Figure 5[18]. From the output of the navigation EKF, navigation states are updated. From these results, updated pseudorange estimates are calculated:  
\[\hat{\rho}=\Psi\big{(}\hat{x}\big{)}=\big{|}x_{sat}-\hat{x}\big{|}+c\cdot t_{u }=\sqrt{\big{(}x_{i}-x_{u}\big{)}^{2}+\big{(}y_{i}-y_{u}\big{)}^{2}+\big{(}z_{i }-z_{u}\big{)}^{2}}+c\cdot t_{u}\,, \tag{2}\]  
where : \(x_{i},y_{i},z_{i}\) : \(x\),\(y\),\(z\) position of \(i\)th satellite. In addition to the updated pseudorange estimates, estimates of pseudorange errors are required. The innovation term of the EKF, \(\Delta\hat{x}\), can be propagated to the line of sight (LOS) of each satellite by multiplying by a geometric matrix H, consisting of LOS vectors, to generate the error estimates:  
\[\Delta\hat{\rho}=H\cdot\Delta\hat{x}\,,\]  
where:  
\[H= \begin{bmatrix}a_{x}^{1}&a_{y}^{1}&a_{z}^{1}&-1\\ \vdots&\vdots&\vdots&\vdots\\ a_{x}^{N}&a_{y}^{N}&a_{z}^{N}&-1\end{bmatrix}  \tag{3}\]  
Figure 5: EKF construction. \(a_{x}^{k},\ a_{y}^{k},\ a_{z}^{k}\) : LOS elements of \(x\), \(y\), \(z\) directions, respectively, to the \(k\)-th satellite  
Now, the reference pseudorange can be calculated by summing the updated pseudorange estimate, Equation (2), and the pseudorange error estimate, Equation (3):  
\[\hat{\rho}^{+}=\hat{\rho}+\Delta\hat{\rho}=\Psi\big{(}\hat{x}\big{)}+H\cdot \Delta\hat{x} \tag{4}\]  
Finally, the tracking control input is generated by subtracting the reference pseudorange from the measured pseudorange:  
\[\Delta\hat{\rho}^{+}=\hat{\rho}^{+}-\widetilde{\rho}=\Psi\big{(}\hat{x}\big{)}+ H\cdot\Delta\hat{x}-\widetilde{\rho} \tag{5}\]  
Implementation of the VFLL is similar to that of the VDLL. Its workflow is shown in Figure 6. In the VFLL, the frequency discriminator output and range-rate measurements are used instead of the code discriminator output and pseudorange measurements. Velocity navigation states are used in the EKF. VDFLL is a combined version of VDLL and VFLL. Its Kalman filter states are position and velocity elements including clock offset and clock drift error:  
\[