# Student's t Kernel-Based Maximum Correntropy Criterion Extended Kalman Filter for GPS Navigation
## 3 Student's t Kernel-Based Maximum Correntropy Criterion Extended Kalman Filter
### Algorithm for the Student's t Kernel-Based Maximum Correntropy Criterion Extended Kalman Filter  
The state estimate equation is given by  
\[\mathbf{x}_{k}=\overset{\boldsymbol{\wedge}}{\boldsymbol{\kappa}}_{k|k-1}+ \widetilde{\mathbf{K}}_{k}(\mathbf{z}_{k}-h(\overset{\boldsymbol{\wedge}}{ \boldsymbol{\kappa}}_{k|k-1}))\]  
and the obtained Kalman gain is  
\[\widetilde{\mathbf{K}}_{k}=\widetilde{\mathbf{P}}_{k|k-1}\mathbf{H}_{k}^{T}( \mathbf{H}_{k}\widetilde{\mathbf{P}}_{k|k-1}\mathbf{H}_{k}^{T}+\widetilde{ \mathbf{R}}_{k})^{-1}\]  
The covariance matrix for updated state can be  
\[\widetilde{\mathbf{P}}_{k}=(\mathbf{I}-\widetilde{\mathbf{K}}_{k}\mathbf{H}_ {k})\widetilde{\mathbf{P}}_{k|k-1}(\mathbf{I}-\widetilde{\mathbf{K}}_{k} \mathbf{H}_{k})^{T}+\widetilde{\mathbf{K}}_{k}\widetilde{\mathbf{R}}_{k} \widetilde{\mathbf{K}}_{k}^{T}\]  
The computational steps for the Student's t kernel for MCCEKF (STMCCEKF) are as follows:  
1. \(k=1\), select the error tolerance \(\varepsilon\) and the kernel bandwidth \(\sigma\);
2. For the prior estimation steps, 1. Calculate the prior state estimate and the prior error covariance matrix \[\overset{\boldsymbol{\wedge}}{\boldsymbol{\kappa}}_{k|k-1}=f( \overset{\boldsymbol{\wedge}}{\boldsymbol{\kappa}}_{k-1})\] \[\mathbf{P}_{k|k-1}=\boldsymbol{\Phi}_{k-1}\mathbf{P}_{k-1} \boldsymbol{\Phi}_{k-1}^{T}+\mathbf{Q}_{k-1}\] 2. Use Cholesky decomposition for \(\mathbf{B}_{k,\mathbf{P}}\) and \(\mathbf{B}_{k,\mathbf{R}}\). 3. The prior estimation process, the predicted measurement, and its associated covariance matrix are as follows: \[\mathbf{B}_{k}^{-1} \begin{bmatrix}\mathbf{x}_{k|k-1}\\ \mathbf{z}_{k}\end{bmatrix} =\mathbf{B}_{k}^{-1} \begin{bmatrix}\mathbf{x}_{k} \\ h(\mathbf{x}_{k})\end{bmatrix} +\mathbf{B}_{k}^{-1}\mathbf{\delta}_{k}\]
3. For posterior estimation, 1. \(t=1\), \(\overset{\boldsymbol{\wedge}}{\mathbf{x}}_{k}=\overset{\boldsymbol{\wedge}}{ \mathbf{x}}_{k|k-1}\). 2. Perform iteration: 1. \(\mathbf{e}_{x}=\mathbf{B}_{\mathbf{P}}^{-1}(\mathbf{x}_{k}-\overset{ \boldsymbol{\wedge}}{\mathbf{x}}_{k|k-1})\); \(\mathbf{e}_{z}=\mathbf{B}_{\mathbf{R}}^{-1}(\mathbf{z}_{k}-h(\mathbf{x}_{k}))\) 2. \(\mathbf{\Lambda}_{\mathbf{x}}^{(t-1)}=diag(\ \ (\frac{\upsilon^{2}S_{\
u\sigma}(\mathbf{e}_{x,1})}{\upsilon^{2}+\mathbf{e}_{x,1}^{2}}),\ \ \ \ldots\ \,\ (\frac{ (\upsilon^{2}S_{\
u\sigma}(\mathbf{e}_{x,\
u})}{\upsilon^{2}+\mathbf{e}_{x,1}^ {2}})\ )\ )\) 3. \(\mathbf{\Lambda}_{\mathbf{x}}^{(t-1)}=diag(\ \ (\ \frac{\upsilon^{2}S_{\
u\sigma}(\mathbf{e}_{x,1})}{\upsilon^{2}+\mathbf{e}_{x,1}^{2}}),\ \ \ \ldots\ \,\ (\frac{ (\upsilon^{2}S_{\
u\sigma}(\mathbf{e}_{x,\
u})}{\upsilon^{2}+\mathbf{e}_{x,1}^ {2}})\ )\ )\) 4. \(\widetilde{\mathbf{P}}_{k|k-1}^{(t-1)}=\mathbf{B}_{k,\mathbf{P}}\mathbf{ \Lambda}_{\mathbf{x}}^{(t-1)}\mathbf{B}_{k,\mathbf{P}}^{T};\widetilde{\mathbf{ R}}_{k|k-1}^{(t-1)}=\mathbf{B}_{k,\mathbf{R}}\mathbf{\Lambda}_{\mathbf{x}}^{(t-1)} \mathbf{B}_{k,\mathbf{R}}^{T}\) 5. \(\widetilde{\mathbf{K}}_{k}^{(t-1)}=\widetilde{\mathbf{P}}_{k|k-1}^{T}\mathbf{ H}_{k}^{T}(\mathbf{H}_{k}\widetilde{\mathbf{P}}_{k|k-1}^{(t-1)}\mathbf{H}_{k}^{T}+ \widetilde{\mathbf{R}}_{k}^{(t-1)})^{-1}\) 6. \(\mathbf{\chi}_{k|k-1}^{(t)}=\overset{\boldsymbol{\wedge}}{\mathbf{x}}_{k|k-1}^ {(t-1)}-\widetilde{\mathbf{K}}_{k}^{(t-1)}\ (\mathbf{z}_{k}-h(\overset{\boldsymbol{\wedge}}{ \mathbf{x}}_{k|k-1}))\) 7. \(\widetilde{\mathbf{P}}_{k}^{(t)}=(\mathbf{I}-\mathbf{K}_{k}^{(t-1)}\mathbf{H}_{k} )\widetilde{\mathbf{P}}_{k|k-1}^{(t-1)}(\mathbf{I}-\mathbf{K}_{k}^{(t-1)} \mathbf{H}_{k})^{T}+\mathbf{K}_{k}^{(t-1)}\widetilde{\mathbf{R}}_{k}(\mathbf{K }_{k}^{(t-1)})^{T}\) 8.