# Performance and Evaluation of GNSS Receiver Vector Tracking Loop Based on Adaptive Cascade Filter
## 2 Design of Cascaded Adaptive Vector Tracking Loop
### Extended Kalman Navigation Filter Design
\right]_{n\times n} \tag{23}\]  
According to the linear relationship between code phase error \(\Delta\tau^{i}\) and pseudo-range error \(\Delta\rho^{i}\), carrier frequency error \(\Delta f^{i}\), and pseudo-range rate error \(\Delta\dot{\rho}^{i}\), the establishment of measurement information can be derived:  
\[\Delta\rho^{i}=\Delta\tau^{i}\cdot\lambda_{code}=\Delta\tau^{i}\frac{c}{f_{ code}} \tag{24}\]  
\[\Delta\dot{\rho}^{i}=\Delta f^{i}\cdot\lambda_{carrier}=\Delta f^{i}\frac{c}{f_{ carrier}} \tag{25}\]  
where \(\lambda_{code},\lambda_{carrier}\) are the wavelengths of the C/A chip and the carrier, \(c\) is the speed of light: 299,792,458 m/s. The main parameters that affect the performance of the EKF include the process noise matrix Q and the measurement noise covariance matrix R, which are related to the system dynamics and the pre-filter output noise, respectively. When there is unpredictable external interference, the system model may not reflect the true state of motion, the Q and R matrices are directly related to the system model. When the model parameters change, the system parameters need to be adjusted in time to improve the robustness of the filter. The innovation sequence refers to the difference between the a priori estimate and the latest measurement, which can be used to estimate the measurement noise and system process noise in real time, reduce the model estimation deviation, and obtain an accurate filtering estimate. It is defined as [11]:  
\[\
u_{k}=Z_{k}-H_{k}\hat{X}_{k,k-1} \tag{26}\]  
The theoretical covariance matrix of the innovation sequence is:  
\[\Gamma_{k}=E\Big{(}\
u_{k}\
u_{k}^{T}\Big{)}=H_{k}P_{k,k-1}H_{k}^{T}+R_{k} \tag{27}\]  
Therefore, the covariance of the innovation sequence in a fixed interval can be obtained through a sliding window to correct the \(R_{k}\) estimate in real time, and then the recursive formula can be used to reduce the amount of calculation:  
\[\Gamma_{k}=(1-d_{k})\Gamma_{k-1}+d_{k}\Big{(}\
u_{k}\
u_{k}^{T}\Big{)} \tag{28}\]  
where \(d_{k}=(1-b)/\left(1-b^{k+1}\right)\), \(0<b<1\) is the forgetting factor, and 0.95 is often taken. Then,  
\[R_{k}=\Gamma_{k}-H_{k}P_{k,k-1}H_{k}^{T} \tag{29}\]  
In addition, the relationship between the innovation sequence and state variables can be derived according to the filter equation:  
\[\hat{X}_{k}-\Phi_{k,k-1}\hat{X}_{k-1}=K_{k}\
u_{k} \tag{30}\]  
Then the update equation is:  
\[Q_{k}=K_{k}E\Big{(}\
u_{k}\
u_{k}^{T}\Big{)}K_{k}^{T} \tag{31}\]  
Then, the basic equation of the EKF navigation in discrete form is:  
\[\left\{ \begin{array}{l}\hat{X}_{k/k-1}=\Phi_{k,k-1}\hat{X}_{k-1}\\ P_{k,k-1}=\Phi_{k,k-1}P_{k-1}\Phi_{k,k-1}^{T}+Q_{k-1}\\ K_{k}=P_{k,k-1}H_{k}^{T}\big{(}H_{k}P_{k,k-1}{H_{k}}^{T}+R_{k}\big{)}^{-1}\\ \delta\hat{X}_{k}=K_{k}\big{(}Z_{k}-H_{k}\hat{X}_{k/k-1}\big{)}\\ \hat{X}_{k}=\hat{X}_{k/k-1}+\delta\hat{X}_{k}\\ P_{k}=(I-K_{k}H_{k})P_{k,k-1}(I-K_{k}H_{k})^{T}+K_{k}R_{k}K_{k}^{T}\end{array} \right. \tag{32}\]  
After the navigation filtering estimation, the position, velocity, and time information are corrected, and then the error state quantity is cleared. \[\left\{ \begin{array}{l}\widetilde{p}=\hat{p}+X_{k}(1:3)\\ \widetilde{\
u}=\hat{\upsilon}+X_{k}(4:6)\\ \widetilde{t}_{b}=\hat{t}_{b}+X_{k}(7)+\widetilde{t}_{d}\cdot T\\ \widetilde{t}_{d}=\hat{t}_{d}+X_{k}(8)\end{array} \right. \tag{33}\]  
where \(p,\upsilon,t_{b},t_{d}\) represent receiver position, velocity, clock drift, and clock drift rate, respectively. According to the ephemeris and receiver status, the carrier and code frequency for feedback correction of the NCO is predicted. \[\widetilde{f}_{code,j,k+1}=f_{code}+(\delta t_{d,k+1}+\delta\upsilon_{k+1} \alpha)f_{code}/c \tag{34}\]  
\[\widetilde{f}_{carrier,j,k+1}=f_{IF}+(\delta t_{d,k+1}+\delta\upsilon_{k+1} \alpha)f_{carrier}/c \tag{35}\]where \(\delta v_{k+1}=v^{i}_{k+1}-\widetilde{v}_{k+1}\) is the relative speed between the satellite and the receiver, \(f_{IF}\) is intermediate frequency, and \(t_{d,k+1}\) is the receiver clock drift rate (m/s).