Continuous-time extended Kalman filter Model : \begin{align} \dot{\mathbf{x}}(t) &= f\bigl(\mathbf{x}(t), \mathbf{u}(t)\bigr) \\ \mathbf{z}(t) &= h\bigl(\mathbf{x}(t)\bigr)(t) \end{align}
Initialize : \hat{\mathbf{x}}(t_0)=E\bigl[\mathbf{x}(t_0)\bigr] \text{, } \mathbf{P}(t_0)=Var\bigl[\mathbf{x}(t_0)\bigr]
Predict-Update :\begin{align} \dot{\hat{\mathbf{x}}}(t) &= f\bigl(\hat{\mathbf{x}}(t),\mathbf{u}(t)\bigr)+\mathbf{K}(t)\Bigl(\mathbf{z}(t)-h\bigl(\hat{\mathbf{x}}(t)\bigr)\Bigr)\\ \dot{\mathbf{P}}(t) &= \mathbf{F}(t)\mathbf{P}(t)+\mathbf{P}(t)\mathbf{F}(t)^{T}-\mathbf{K}(t)\mathbf{H}(t)\mathbf{P}(t)+\mathbf{Q}(t)\\ \mathbf{K}(t) &= \mathbf{P}(t)\mathbf{H}(t)^{T}\mathbf{S}(t)^{-1}\\ \mathbf{F}(t) &= \left . \frac{\partial f}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t),\mathbf{u}(t)}\\ \mathbf{H}(t) &= \left . \frac{\partial h}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t)} \end{align} Unlike the discrete-time extended Kalman filter, the prediction and update steps are coupled in the continuous-time extended Kalman filter.
Discrete-time measurements Most physical systems are represented as continuous-time models while discrete-time measurements are frequently taken for state estimation via a digital processor. Therefore, the system model and measurement model are given by : \begin{align} \dot{\mathbf{x}}(t) &= f\bigl(\mathbf{x}(t), \mathbf{u}(t)\bigr) + \mathbf{w}(t) &\mathbf{w}(t) &\sim \mathcal{N}\bigl(\mathbf{0},\mathbf{Q}(t)\bigr) \\ \mathbf{z}_k &= h(\mathbf{x}_k) + \mathbf{v}_k &\mathbf{v}_k &\sim \mathcal{N}(\mathbf{0},\mathbf{R}_k) \end{align} where \mathbf{x}_k=\mathbf{x}(t_k).
Initialize : \hat{\mathbf{x}}_{0|0}=E\bigl[\mathbf{x}(t_0)\bigr], \mathbf{P}_{0|0}=E\bigl[\left(\mathbf{x}(t_0)-\hat{\mathbf{x}}(t_0)\right)\left(\mathbf{x}(t_0)-\hat{\mathbf{x}}(t_0)\right)^T\bigr]
Predict : \begin{align} \text{solve } &\begin{cases} \dot{\hat{\mathbf{x}}}(t) = f\bigl(\hat{\mathbf{x}}(t), \mathbf{u}(t)\bigr) \\ \dot{\mathbf{P}}(t) = \mathbf{F}(t)\mathbf{P}(t)+\mathbf{P}(t)\mathbf{F}(t)^T+ \mathbf{Q}(t) \end{cases}\qquad \text{with } \begin{cases} \hat{\mathbf{x}}(t_{k-1}) = \hat{\mathbf{x}}_{k-1|k-1} \\ \mathbf{P}(t_{k-1}) = \mathbf{P}_{k-1|k-1} \end{cases} \\ \Rightarrow &\begin{cases} \hat{\mathbf{x}}_{k|k-1} = \hat{\mathbf{x}}(t_k) \\ \mathbf{P}_{k|k-1} = \mathbf{P}(t_k) \end{cases} \end{align} where : \mathbf{F}(t) = \left. \frac{\partial f}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t),\mathbf{u}(t)}
Update :\mathbf{K}_{k} = \mathbf{P}_{k|k-1}\mathbf{H}_{k}^{T}\bigl(\mathbf{H}_{k}\mathbf{P}_{k|k-1}\mathbf{H}_{k}^{T} + \mathbf{R}_{k}\bigr)^{-1} :\hat{\mathbf{x}}_{k|k} = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_{k}\bigl(\mathbf{z}_{k} - h(\hat{\mathbf{x}}_{k|k-1})\bigr) :\mathbf{P}_{k|k} = (\mathbf{I} - \mathbf{K}_{k}\mathbf{H}_{k})\mathbf{P}_{k|k-1} where : \textbf{H}_{k} = \left . \frac{\partial h}{\partial \textbf{x} } \right \vert _{\hat{\textbf{x}}_{k|k-1}} The update equations are identical to those of discrete-time extended Kalman filter. However, higher order EKFs tend to only provide performance benefits when the measurement noise is small.
Non-additive noise formulation and equations The typical formulation of the
EKF involves the assumption of
additive process and measurement noise. This assumption, however, is not necessary for
EKF implementation. Instead, consider a more general system of the form: :\boldsymbol{x}_{k} = f(\boldsymbol{x}_{k-1}, \boldsymbol{u}_{k-1}, \boldsymbol{w}_{k-1}) :\boldsymbol{z}_{k} = h(\boldsymbol{x}_{k}, \boldsymbol{v}_{k}) Here
wk and
vk are the process and observation noises which are both assumed to be zero mean
multivariate Gaussian noises with
covariance Qk and
Rk respectively. Then the
covariance prediction and innovation equations become : \boldsymbol{P}_{k|k-1} = {{{\boldsymbol{F}_{k-1}}}} {\boldsymbol{P}_{k-1|k-1}}{{{\boldsymbol{F}_{k-1}^T}}} {+} {\boldsymbol{L}_{k-1}} {\boldsymbol{Q}_{k-1}}{\boldsymbol{L}^{T}_{k-1}} : \boldsymbol{S}_{k} = {{\boldsymbol{H}_{k}}}{\boldsymbol{P}_{k|k-1}}{{\boldsymbol{H}_{k}^T}} {+} {\boldsymbol{M}_{k}} {\boldsymbol{R}_{k}} {\boldsymbol{M}_{k}^{T}} where the matrices \boldsymbol{L}_{k-1} and \boldsymbol{M}_{k} are Jacobian matrices: : {{\boldsymbol{L}_{k-1}}} = \left . \frac{\partial f}{\partial \boldsymbol{w} } \right \vert _{\hat{\boldsymbol{x}}_{k-1|k-1},\boldsymbol{u}_{k-1}} : {{\boldsymbol{M}_{k}}} = \left . \frac{\partial h}{\partial \boldsymbol{v} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}} The predicted state estimate and measurement residual are evaluated at the mean of the process and measurement noise terms, which is assumed to be zero. Otherwise, the non-additive noise formulation is implemented in the same manner as the additive noise
EKF.
Implicit extended Kalman filter In certain cases, the observation model of a nonlinear system cannot be solved for \boldsymbol{z}_{k}, but can be expressed by the
implicit function: :h(\boldsymbol{x}_{k}, \boldsymbol{z'}_{k}) = \boldsymbol{0} where \boldsymbol{z}_{k} = \boldsymbol{z'}_{k} + \boldsymbol{v}_{k} are the noisy observations. The conventional extended Kalman filter can be applied with the following substitutions: : {{\boldsymbol{R}_{k}}} \leftarrow {{\boldsymbol{J}_{k}}} {{\boldsymbol{R}_{k}}} {{\boldsymbol{J}_{k}^{T}}} : \tilde{\boldsymbol{y}}_{k} \leftarrow -h(\hat{\boldsymbol{x}}_{k|k-1}, \boldsymbol{z}_{k}) where: : {{\boldsymbol{J}_{k}}} = \left . \frac{\partial h}{\partial \boldsymbol{z} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}, \boldsymbol{z}_{k}} Here the original observation covariance matrix {{\boldsymbol{R}_{k}}} is transformed, and the innovation \tilde{\boldsymbol{y}}_{k} is defined differently. The Jacobian matrix {{\boldsymbol{H}_{k}}} is defined as before, but determined from the implicit observation model h(\boldsymbol{x}_{k}, \boldsymbol{z}_{k}). == Modifications and alternatives ==