## 5 Vector Tracking Loop Architectures
#### Vector Tracking Module  
Figure 4 shows a flow chart of the steps carried out by a vector-based GPS SDR. VT requires the knowledge of the code phase \(\hat{\varphi}_{k}^{m}\), code frequency \(\hat{f}_{code,\,k}^{m}\), carrier frequency \(\hat{f}_{carr,k+1}^{m}\), clock bias \(b_{r,k}\), clock drift \(d_{r,k}\), user position \(x_{k}\), user velocity \(v_{k}\) and transmit time \(t_{tr,\,k}^{m}\) at the beginning of its operation. The subscript \(k\) denotes the time epoch, and the superscript \(m\) represents the mth satellite. In the  
Figure 3: Vector tracking loop architectures. Vector delay lock loop (VDLL) (**top-left**), vector frequency lock loop (VFLL) (**top-right**), and vector delay frequency lock loop (VDFLL) (**bottom**). beginning, ST is activated for thirty-seven seconds to be able to acquire and decode the ephemeris data and consequently compute the navigation solution to initialize the VT module with all the required parameters. The position and velocity are predicted based on the models described by the following equations [20]:  
\[\hat{x}_{k+1}=x_{k}+\Delta T\;v_{k}, \tag{1}\]  
\[\hat{v}_{k+1}=v_{k}, \tag{2}\]  
where'represents predicted value, and \(\Delta T\) denotes the time interval between \(k\)th and \((k+1)\)th. Next, the code phase, the carrier frequency is predicted based on the expected user position, velocity, and the satellites position, velocity calculated from extracting the ephemeris [16]. \[\hat{\varphi}_{k+1}^{m}=\varphi_{m,k}+\left[\Delta x_{k\to k+1}^{m}- \Delta T\;v_{k}\right]^{T}.1_{m,k+1}+\Delta T_{c}, \tag{3}\]  
\[\hat{f}_{code,k+1}^{m}=\left(1+t_{d,k}+\left[v_{k}^{m}-v_{k}\right]^{T}.1_{k+1} ^{m}\right)\!f_{code}/c, \tag{4}\]  
\[f_{carr,k+1}^{m}=\left(1+t_{d,k}+\left[v_{k}^{m}-v_{k}\right]^{T}.1_{k+1}^{m} \right)\!f_{carr}/c, \tag{5}\]  
where \(\Delta x_{k\to k+1}^{m}\) is the displacement vector of the \(m\)th satellite from epoch \(k\) to \(k\;+1\), \(c\) is the speed of light, \(v_{k}^{m}\) is the \(m\)th satellite velocity, \(1_{m,k+1}\) is the LOS vector between the receiver and the \(m\)th satellite, \(f_{code}\) is the nominal code frequency (1.023 MHz for the C/A code) and \(f_{carr}\) is the nominal carrier frequency (1575.42 MHz for GPS L1 signal). Afterwards, the local replicas of the code and carrier are generated based on the predicted code phase, and carrier frequency and these replicas are correlated with the incoming signal. Next, the code and carrier discriminators output the code phase and carrier frequency errors that correspond to the LOS projections of the errors between the actual position and velocity and their predicted counterpart (i.e., \((x_{k+1}-\hat{x}_{k+1}).1_{k}^{m}\) and \((v_{k+1}-\hat{v}_{k+1}).1_{k}^{m}\)). The code phase error is expressed as a function of the user position error as follows  
\[E_{code,k}=\varphi_{k}^{m}-\hat{\varphi}_{k}^{m}+\eta_{k}^{m}=b_{r,k}+[x_{k+1} -\hat{x}_{k+1}].1_{k}^{m}+\eta_{k}^{m}, \tag{6}\]  
where \(E_{code,k}\) is the code phase error, and \(\eta_{k}^{m}\) is the noise term. Likewise, the relationship between carrier frequency error and user velocity error can be represented as follows:  
\[E_{carr,k}=f_{carr,k}^{m}-\hat{f}_{carr,k}^{m}+w_{k}^{m}=\Delta d_{r,k}+[v_{k+ 1}-\hat{v}_{k+1}].1_{k}^{m}+w_{k}^{m}, \tag{7}\]  
where \(E_{carr,k}\) represents the carrier frequency error, \(\Delta d_{r,k}\) is the difference between the clock drift at epoch \(k\!\left(d_{r,k}\right)\) and epoch \(k-1\!\left(d_{r,k}\right)\) and \(  
In a similar fashion, the velocity at time epoch \(k\) is assumed to be known; thus, the velocity error can be modeled as WGN. The velocity error at time epoch \((k~{}+~{}1)\) can be expressed as:  
\[\delta v_{k+1}=\varrho_{k+1}, \tag{9}\]  
where \(\varrho_{k+1}\) is WGN. The receiver clock bias is caused by the clock drift in the interval between \((k\text{th}\rightarrow(k+1)\text{th})\) time epochs, and hence it is modeled as a function of the clock drift.