My presentation slides
The Kalman Filter is a mathematical algorithm used for estimating and predicting the state of a dynamic system, particularly in the presence of noisy or uncertain data. It consist of five equations.
Predict State
Predict State: x ^ n + 1 , n = F x ^ n , n + G u n + ฯ n \hat{x}_{n+1,n} = F\hat{x}_{n,n} + Gu_n + \omega_n x ^ n + 1 , n โ = F x ^ n , n โ + G u n โ + ฯ n โ Predict Noise: P ^ n + 1 , n = F P ^ n , n F T + Q \hat{P}_{n+1,n} = F\hat{P}_{n,n}F^T + Q P ^ n + 1 , n โ = F P ^ n , n โ F T + Q
Update State
Kalman Gain: K n = P n , n โ 1 H T ( H P n , n โ 1 H T + R n ) โ 1 K_n = P_{n, n-1}H^T(HP_{n,n-1}H^T + R_n)^{-1} K n โ = P n , n โ 1 โ H T ( H P n , n โ 1 โ H T + R n โ ) โ 1 Update State: x ^ n , n = x ^ n , n โ 1 + K n ( z n โ H x ^ n , n โ 1 ) \hat{x}_{n,n} = \hat{x}_{n,n-1} + K_n(z_n-H\hat{x}_{n,n-1}) x ^ n , n โ = x ^ n , n โ 1 โ + K n โ ( z n โ โ H x ^ n , n โ 1 โ ) Update Noise: P n , n = ( I โ K n H ) P n , n โ 1 ( I โ K n H ) T + K n R n K n T P_{n,n} = (I-K_nH)P_{n,n-1}(I-K_nH)^T + K_nR_nK_n^T P n , n โ = ( I โ K n โ H ) P n , n โ 1 โ ( I โ K n โ H ) T + K n โ R n โ K n T โ
x ^ n + 1 , n = F x ^ n , n + G u n + ฯ n \hat{x}_{n+1,n} = F\hat{x}_{n,n} + Gu_n + \omega_n x ^ n + 1 , n โ = F x ^ n , n โ + G u n โ + ฯ n โ
Item Mean x ^ n + 1 , n \hat{x}_{n+1,n} x ^ n + 1 , n โ predicted system state vector at time step n + 1 n+1 n + 1 x ^ n , n \hat{x}_{n,n} x ^ n , n โ estimated system state vector at time step n n n u n u_n u n โ a control variable or input variable - a measurable (deterministic) input to the system w n w_n w n โ a process noise or disturbance - an unmeasurable input that affects the state F F F a state transition matrix G G G a control matrix or input transition matrix (mapping control to state variables)
x ^ โ = F x ^ t โ 1 + B u t โ 1 \hat x^- = F\hat x_{t-1} + Bu_{t-1} x ^ โ = F x ^ t โ 1 โ + B u t โ 1 โ P t โ = F P t โ 1 F T + Q P_t^- = FP_{t-1}F^T+Q P t โ โ = F P t โ 1 โ F T + Q x ^ t = x ^ t โ + K t ( Z t โ H x ^ t โ ) \hat x_t = \hat x_t^- + K_t(Z_t - H\hat x_t^-) x ^ t โ = x ^ t โ โ + K t โ ( Z t โ โ H x ^ t โ โ )
K t = P t โ H T ( H P t โ H T + R ) โ 1 K_t = P_t^-H^T(HP_t^-H^T+R)^{-1} K t โ = P t โ โ H T ( H P t โ โ H T + R ) โ 1
P t = ( I โ K t H ) P t โ P_t=(I - K_tH)P_t^- P t โ = ( I โ K t โ H ) P t โ โ
Get the best estimation using the measurment.
Kalman gamin.
Update the noise distribution of best estimates.
K t K_t K t โ : Kalman gainR R R : Observation covariance
Mean ฮผ = 1 N โ n = 1 N V n \mu = \frac{1}{N}\displaystyle\sum_{n=1}^{N}V_n ฮผ = N 1 โ n = 1 โ N โ V n โ Expectation: The mean of multiple measurements๏ผ similar with mean Variance: ฯ 2 = 1 N โ n = 1 N ( V n โ ฮผ ) 2 \sigma^2 = \frac{1}{N} \displaystyle\sum_{n=1}^{N}(V_n-\mu)^2 ฯ 2 = N 1 โ n = 1 โ N โ ( V n โ โ ฮผ ) 2 Standard Variance: ฯ \sigma ฯ Normal Distribution (All called Gaussian Distribution)f ( x ; ฮผ , ฯ 2 ) = 1 2 ฯ ฯ 2 e โ ( x โ ฮผ ) 2 2 ฯ 2 f(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{\frac{-(x-\mu)^2}{2\sigma^2}} f ( x ; ฮผ , ฯ 2 ) = 2 ฯ ฯ 2 โ 1 โ e 2 ฯ 2 โ ( x โ ฮผ ) 2 โ Typically, measurement errors are normally distributed. The Kalman filter assumes that the measurement errors have a normal distribution. Estimation: An estimate of the hidden state of the system. Accuracy: Describes how close a measured value is to the true value. Precision: Describes the deviation distribution of a series of measured values relative to the same true valueInfo
High-precision systems have measurements with very low variance (i.e., low uncertainty), while low-precision systems have high variance (i.e., high uncertainty).
Info
Typically, measurement errors are normally distributed. The Kalman filter assumes that the measurement errors have a normal distribution.
How to weight a x x x gold.
Measure a gold Info
item mean x x x The true weight of the gold. z n z_n z n โ The measurement of gold. x ^ n , n \hat{x}_{n,n} x ^ n , n โ The estimation of x x x using the measurement at n moment x ^ n + 1 , n \hat{x}_{n+1,n} x ^ n + 1 , n โ It is the prediction of the future state (time n + 1 n+1 n + 1 ) at time n n n , recorded as x n + 1 , n x_{n+1,n} x n + 1 , n โ , or extrapolation. x ^ n โ 1 , n โ 1 \hat{x}_{nโ1,nโ1} x ^ n โ 1 , n โ 1 โ The estimated value of x x x at time n โ 1 nโ1 n โ 1 , using the measured value z n โ 1 z_{nโ1} z n โ 1 โ at time n โ 1 nโ1 n โ 1 . x ^ n , n โ 1 \hat{x}_{n,n-1} x ^ n , n โ 1 โ Apriori estimate - a prediction of the system state at time n at time nโ1 (Annotation: for the n t h n^{th} n t h time, x n , n โ 1 x_{n,nโ1} x n , n โ 1 โ is a priori estimate, x n + 1 , n x_{n+1, n} x n + 1 , n โ is prediction)
In order to estimate x n , n x_{n,n} x n , n โ , we need to store all historical measurements, which is very expensive on memory. And every time a new measurement value is obtained, the calculation needs to be completely restarted from the first measurement, which also consumes a huge amount of CPU computing power. A more realistic consideration is that it is best to only store the estimated value x n โ 1 , n โ 1 x_{nโ1,nโ1} x n โ 1 , n โ 1 โ of the previous moment, and simply update it after new measurements are completed.
Formula Meaning x ^ n , n = 1 n โ i = 1 n ( Z i ) \hat x_{n,n} = \frac{1}{n}\sum_{i=1}^{n}(Z_i) x ^ n , n โ = n 1 โ โ i = 1 n โ ( Z i โ ) The mean of measurement = 1 n ( โ i = 1 n โ 1 ( Z i ) + Z n ) = \frac{1}{n}(\sum_{i=1}^{n-1}(Z_i)+ Z_n) = n 1 โ ( โ i = 1 n โ 1 โ ( Z i โ ) + Z n โ ) = 1 n โ i = 1 n โ 1 ( Z i ) + 1 n Z n = \frac{1}{n}\sum_{i=1}^{n-1}(Z_i)+ \frac{1}{n}Z_n = n 1 โ โ i = 1 n โ 1 โ ( Z i โ ) + n 1 โ Z n โ = 1 n n โ 1 n โ 1 โ i = 1 n โ 1 ( Z i ) + 1 n Z n = \frac{1}{n}\frac{n-1}{n-1}\sum_{i=1}^{n-1}(Z_i)+ \frac{1}{n}Z_n = n 1 โ n โ 1 n โ 1 โ โ i = 1 n โ 1 โ ( Z i โ ) + n 1 โ Z n โ = n โ 1 n 1 n โ 1 โ i = 1 n โ 1 ( Z i ) + 1 n Z n ) = \frac{n-1}{n}\textcolor{orange}{\frac{1}{n-1}\sum_{i=1}^{n-1}(Z_i)}+ \frac{1}{n}Z_n) = n n โ 1 โ n โ 1 1 โ โ i = 1 n โ 1 โ ( Z i โ ) + n 1 โ Z n โ ) The orange item is the estimation at time n-1 = n โ 1 n x ^ n โ 1 , n โ 1 + 1 n Z n ) = \frac{n-1}{n}\textcolor{orange}{\hat x_{n-1, n-1}}+ \frac{1}{n}Z_n) = n n โ 1 โ x ^ n โ 1 , n โ 1 โ + n 1 โ Z n โ ) = x ^ n โ 1 , n โ 1 โ 1 n x ^ n โ 1 , n โ 1 + 1 n Z n = \hat x_{n-1, n-1} - \frac{1}{n}\hat x_{n-1, n-1}+ \frac{1}{n}Z_n = x ^ n โ 1 , n โ 1 โ โ n 1 โ x ^ n โ 1 , n โ 1 โ + n 1 โ Z n โ = x ^ n โ 1 , n โ 1 โ 1 n ( x ^ n โ 1 , n โ 1 + Z n ) = \hat x_{n-1, n-1} - \frac{1}{n}(\hat x_{n-1, n-1} + Z_n) = x ^ n โ 1 , n โ 1 โ โ n 1 โ ( x ^ n โ 1 , n โ 1 โ + Z n โ ) The final formula
The final formula is the status update equation . One of five equations of Kalman filter.
Accelerate: v = ฮ x ฮ t v= \frac{\Delta x}{\Delta t} v = ฮ t ฮ x โ Velocity prediction: x n + 1 = x n + ฮ t โ v n x_{n+1} = x_n + \Delta t*v_n x n + 1 โ = x n โ + ฮ t โ v n โ Velocity update: v n + 1 = v n v_{n+1} = v_n v n + 1 โ = v n โ
Alt text Position p t = p t โ 1 + v t โ 1 ฮ t + u t ฮ t 2 2 p_t = p_{t-1} + v_{t-1}\Delta t + u_t\frac{\Delta t^2}{2} p t โ = p t โ 1 โ + v t โ 1 โ ฮ t + u t โ 2 ฮ t 2 โ Speed v t = v t โ 1 + u t ฮ t v_t = v_{t-1} + u_t\Delta t v t โ = v t โ 1 โ + u t โ ฮ t
The two formula could be transfored into
[ p t v t ] = [ 1 ฮ t 0 1 ] [ p t โ 1 v t โ 1 ] + [ ฮ t 2 2 ฮ t ] u t \begin{bmatrix} p_t\\ v_t \end{bmatrix} = \begin{bmatrix} 1 & \Delta t\\ 0 & 1 \end{bmatrix}\begin{bmatrix} p_{t-1}\\ v_{t-1} \end{bmatrix} + \begin{bmatrix} \frac{\Delta t^2}{2}\\ \Delta t \end{bmatrix}u_t [ p t โ v t โ โ ] = [ 1 0 โ ฮ t 1 โ ] [ p t โ 1 โ v t โ 1 โ โ ] + [ 2 ฮ t 2 โ ฮ t โ ] u t โ
F t = [ 1 ฮ t 0 1 ] , B t = [ ฮ t 2 2 ฮ t ] u t F_t = \begin{bmatrix} 1 & \Delta t\\ 0 & 1 \end{bmatrix}, B_t = \begin{bmatrix} \frac{\Delta t^2}{2}\\ \Delta t \end{bmatrix}u_t F t โ = [ 1 0 โ ฮ t 1 โ ] , B t โ = [ 2 ฮ t 2 โ ฮ t โ ] u t โ
Then the formulas could be transformed intox ^ โ = F x ^ t โ 1 + B u t โ 1 \hat x^- = F\hat x_{t-1} + Bu_{t-1} x ^ โ = F x ^ t โ 1 โ + B u t โ 1 โ
If we want to track a plane, how to do it. The state will be x = x 0 + v 0 ฮ t + 1 2 a ฮ t 2 x = x_0 + v_0\Delta t + \frac{1}{2}a\Delta t^2 x = x 0 โ + v 0 โ ฮ t + 2 1 โ a ฮ t 2
Info
Item Mean x x x The position of an airplan x 0 x_0 x 0 โ The initial postion v 0 v_0 v 0 โ The initial speed a a a The acceleration ฮ t \Delta t ฮ t Sample period
Predict State
Predict State: x ^ n + 1 , n = F x ^ n , n + G u n + ฯ n \hat{x}_{n+1,n} = F\hat{x}_{n,n} + Gu_n + \omega_n x ^ n + 1 , n โ = F x ^ n , n โ + G u n โ + ฯ n โ Predict Noise: P ^ n + 1 , n = F P ^ n , n F T + Q \hat{P}_{n+1,n} = F\hat{P}_{n,n}F^T + Q P ^ n + 1 , n โ = F P ^ n , n โ F T + Q
Update States
Kalman Gain: K n = P n , n โ 1 H T ( H P n , n โ 1 H T + R n ) โ 1 K_n = P_{n, n-1}H^T(HP_{n,n-1}H^T + R_n)^{-1} K n โ = P n , n โ 1 โ H T ( H P n , n โ 1 โ H T + R n โ ) โ 1 Update State: x ^ n , n = x ^ n , n โ 1 + K n ( z n โ H x ^ n , n โ 1 ) \hat{x}_{n,n} = \hat{x}_{n,n-1} + K_n(z_n-H\hat{x}_{n,n-1}) x ^ n , n โ = x ^ n , n โ 1 โ + K n โ ( z n โ โ H x ^ n , n โ 1 โ ) Update Noise: P n , n = ( I โ K n H ) P n , n โ 1 ( I โ K n H ) T + K n R n K n T P_{n,n} = (I-K_nH)P_{n,n-1}(I-K_nH)^T + K_nR_nK_n^T P n , n โ = ( I โ K n โ H ) P n , n โ 1 โ ( I โ K n โ H ) T + K n โ R n โ K n T โ
x ^ n + 1 , n = F x ^ n , n + G u n + ฯ n \hat{x}_{n+1,n} = F\hat{x}_{n,n} + Gu_n + \omega_n x ^ n + 1 , n โ = F x ^ n , n โ + G u n โ + ฯ n โ
Item Mean x ^ n + 1 , n \hat{x}_{n+1, n} x ^ n + 1 , n โ Predicted system state vector at time step n + 1 n+1 n + 1 x ^ n , n \hat{x}_{n, n} x ^ n , n โ Estimated system state vector at time step n n n u n u_n u n โ Control variable or input variable - a measurable (deterministic) input to the system ฯ n \omega_n ฯ n โ process noise or disturbance - an unmeasurable input that affects the state F F F state transition matrix G G G control matrix or input transition matrix (mapping control to state variables)
Consider an airplane moving in three-dimensional space with constant acceleration.
The state vector x ^ n = [ x y y x ห y ห z ห x ยจ y ยจ z ยจ ] \hat{x}_n = \begin{bmatrix} x \\ y \\ y \\ \dot{x} \\ \dot{y} \\ \dot{z} \\ \ddot{x} \\ \ddot{y} \\ \ddot{z} \end{bmatrix} x ^ n โ = โ x y y x ห y ห โ z ห x ยจ y ยจ โ z ยจ โ โ
The state transition matrix F = [ 1 0 0 ฮ t 0 0 0.5 ฮ t 2 0 0 0 1 0 0 ฮ t 0 0 0.5 ฮ t 2 0 0 0 1 0 0 ฮ t 0 0 0.5 ฮ t 2 0 0 0 1 0 0 ฮ t 0 0 0 0 0 0 1 0 0 ฮ t 0 0 0 0 0 0 1 0 0 ฮ t 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 ] F = \begin{bmatrix} 1 & 0 & 0 &\Delta{t} & 0 & 0 & 0.5\Delta{t^2} & 0 & 0\\ 0 & 1 & 0 & 0 &\Delta{t} & 0 & 0 & 0.5\Delta{t^2} & 0\\ 0 & 0 & 1 & 0 & 0 &\Delta{t} & 0 & 0 & 0.5\Delta{t^2}\\ 0 & 0 & 0 & 1 & 0 & 0 &\Delta{t} & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 &\Delta{t} & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 &\Delta{t}\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix} F = โ 1 0 0 0 0 0 0 0 0 โ 0 1 0 0 0 0 0 0 0 โ 0 0 1 0 0 0 0 0 0 โ ฮ t 0 0 1 0 0 0 0 0 โ 0 ฮ t 0 0 1 0 0 0 0 โ 0 0 ฮ t 0 0 1 0 0 0 โ 0.5ฮ t 2 0 0 ฮ t 0 0 1 0 0 โ 0 0.5ฮ t 2 0 0 ฮ t 0 0 1 0 โ 0 0 0.5ฮ t 2 0 0 ฮ t 0 0 1 โ โ
The state extrapolation equation is:[ 1 0 0 ฮ t 0 0 0.5 ฮ t 2 0 0 0 1 0 0 ฮ t 0 0 0.5 ฮ t 2 0 0 0 1 0 0 ฮ t 0 0 0.5 ฮ t 2 0 0 0 1 0 0 ฮ t 0 0 0 0 0 0 1 0 0 ฮ t 0 0 0 0 0 0 1 0 0 ฮ t 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 ] [ x ( n โ 1 ) y ( n โ 1 ) z ( n โ 1 ) x ห ( n โ 1 ) y ห ( n โ 1 ) z ห ( n โ 1 ) x ยจ ( n โ 1 ) y ยจ ( n โ 1 ) z ยจ ( n โ 1 ) ] โ { x n = x n โ 1 + v n โ 1 ฮ t + 1 2 a n โ 1 ฮ t 2 y n = y n โ 1 + v n โ 1 ฮ t + 1 2 a n โ 1 ฮ t 2 z n = z n โ 1 + v n โ 1 ฮ t + 1 2 a n โ 1 ฮ t 2 x ห n = x ห n โ 1 + x ยจ n โ 1 ฮ t y ห n = y ห n โ 1 + 7 ยจ n โ 1 ฮ t z ห n = z ห n โ 1 + z ยจ n โ 1 ฮ t x ยจ n = x ยจ n โ 1 y ยจ n = y ยจ n โ 1 z ยจ n = z ยจ n โ 1 \begin{bmatrix} 1 & 0 & 0 &\Delta{t} & 0 & 0 & 0.5\Delta{t^2} & 0 & 0\\ 0 & 1 & 0 & 0 &\Delta{t} & 0 & 0 & 0.5\Delta{t^2} & 0\\ 0 & 0 & 1 & 0 & 0 &\Delta{t} & 0 & 0 & 0.5\Delta{t^2}\\ 0 & 0 & 0 & 1 & 0 & 0 &\Delta{t} & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 &\Delta{t} & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 &\Delta{t}\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x_{(n-1)} \\ y_{(n-1)} \\ z_{(n-1)} \\ \dot{x}_{ (n-1)} \\ \dot{y}_{ (n-1)} \\ \dot{z}_{ (n-1)} \\ \ddot{x}_{(n-1)} \\ \ddot{y}_{(n-1)} \\ \ddot{z}_{(n-1)} \end{bmatrix} \rightarrow \begin{cases} x_n = x_{n-1} + v_{n-1}\Delta t + \frac{1}{2}a_{n-1}\Delta t^2\\ y_n = y_{n-1} + v_{n-1}\Delta t + \frac{1}{2}a_{n-1}\Delta t^2\\ z_n = z_{n-1} + v_{n-1}\Delta t + \frac{1}{2}a_{n-1}\Delta t^2\\ \dot{x}_n = \dot{x}_{n-1} + \ddot{x}_{n-1}\Delta{t}\\ \dot{y}_n = \dot{y}_{n-1} + \ddot{7}_{n-1}\Delta{t}\\ \dot{z}_n = \dot{z}_{n-1} + \ddot{z}_{n-1}\Delta{t}\\ \ddot{x}_{n} = \ddot{x}_{n-1}\\ \ddot{y}_{n} = \ddot{y}_{n-1}\\ \ddot{z}_{n} = \ddot{z}_{n-1} \end{cases} โ 1 0 0 0 0 0 0 0 0 โ 0 1 0 0 0 0 0 0 0 โ 0 0 1 0 0 0 0 0 0 โ ฮ t 0 0 1 0 0 0 0 0 โ 0 ฮ t 0 0 1 0 0 0 0 โ 0 0 ฮ t 0 0 1 0 0 0 โ 0.5ฮ t 2 0 0 ฮ t 0 0 1 0 0 โ 0 0.5ฮ t 2 0 0 ฮ t 0 0 1 0 โ 0 0 0.5ฮ t 2 0 0 ฮ t 0 0 1 โ โ โ x ( n โ 1 ) โ y ( n โ 1 ) โ z ( n โ 1 ) โ x ห ( n โ 1 ) โ y ห โ ( n โ 1 ) โ z ห ( n โ 1 ) โ x ยจ ( n โ 1 ) โ y ยจ โ ( n โ 1 ) โ z ยจ ( n โ 1 ) โ โ โ โ โฉ โจ โง โ x n โ = x n โ 1 โ + v n โ 1 โ ฮ t + 2 1 โ a n โ 1 โ ฮ t 2 y n โ = y n โ 1 โ + v n โ 1 โ ฮ t + 2 1 โ a n โ 1 โ ฮ t 2 z n โ = z n โ 1 โ + v n โ 1 โ ฮ t + 2 1 โ a n โ 1 โ ฮ t 2 x ห n โ = x ห n โ 1 โ + x ยจ n โ 1 โ ฮ t y ห โ n โ = y ห โ n โ 1 โ + 7 ยจ n โ 1 โ ฮ t z ห n โ = z ห n โ 1 โ + z ยจ n โ 1 โ ฮ t x ยจ n โ = x ยจ n โ 1 โ y ยจ โ n โ = y ยจ โ n โ 1 โ z ยจ n โ = z ยจ n โ 1 โ โ
The state vector x ^ n \hat{x}_n x ^ n โ that describes the estimated airplane position and velocity in a cartesian coordinate system like below.
x ^ n = { x ^ n y ^ n z ^ n x ห ^ n y ห ^ n z ห ^ n \hat{x}_n = \begin{cases} \hat{x}_n\\ \hat{y}_n\\ \hat{z}_n\\ \hat{\dot{x}}_n\\ \hat{\dot{y}}_n\\ \hat{\dot{z}}_n \end{cases} x ^ n โ = โฉ โจ โง โ x ^ n โ y ^ โ n โ z ^ n โ x ห ^ n โ y ห โ ^ โ n โ z ห ^ n โ โ
The control vector u n u_n u n โ that describes the measured airplane acceleration in a cartesian coordinate systemu n = [ x ยจ n y ยจ n z ยจ n ] u_n = \begin{bmatrix} \ddot{x}_n\\ \ddot{y}_n\\ \ddot{z}_n \end{bmatrix} u n โ = โ x ยจ n โ y ยจ โ n โ z ยจ n โ โ โ
The state transition matrix: F = [ 1 0 0 ฮ t 0 0 0 1 0 0 ฮ t 0 0 0 1 0 0 ฮ t 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ] F = \begin{bmatrix} 1 & 0 & 0 &\Delta{t} & 0 & 0\\ 0 & 1 & 0 & 0 &\Delta{t} & 0\\ 0 & 0 & 1 & 0 & 0 &\Delta{t}\\ 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix} F = โ 1 0 0 0 0 0 โ 0 1 0 0 0 0 โ 0 0 1 0 0 0 โ ฮ t 0 0 1 0 0 โ 0 ฮ t 0 0 1 0 โ 0 0 ฮ t 0 0 1 โ โ
The control matrix: G = [ 0.5 ฮ t 2 0 0 0 0.5 ฮ t 2 0 0 0 0.5 ฮ t 2 ฮ t 0 0 0 ฮ t 0 0 0 ฮ t ] G = \begin{bmatrix} 0.5\Delta{t^2} & 0 & 0\\ 0 & 0.5\Delta{t^2} & 0\\ 0 & 0 & 0.5\Delta{t^2}\\ \Delta{t} & 0 & 0\\ 0 &\Delta{t} & 0\\ 0 & 0 &\Delta{t} \end{bmatrix} G = โ 0.5ฮ t 2 0 0 ฮ t 0 0 โ 0 0.5ฮ t 2 0 0 ฮ t 0 โ 0 0 0.5ฮ t 2 0 0 ฮ t โ โ
Thus the state prediction formula x ^ n + 1 , n = F x ^ n , n + G u n \hat{x}_{n+1,n} = F\hat{x}_{n,n} + Gu_n x ^ n + 1 , n โ = F x ^ n , n โ + G u n โ will transform like below.
x ^ n + 1 , n = [ x ( n + 1 , n ) y ( n + 1 , n ) z ( n + 1 , n ) x ห ( n + 1 , n ) y ห ( n + 1 , n ) z ห ( n + 1 , n ) ] = [ 1 0 0 ฮ t 0 0 0 1 0 0 ฮ t 0 0 0 1 0 0 ฮ t 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ] [ x ( n , n ) y ( n , n ) z ( n , n ) x ห ( n , n ) y ห ( n , n ) z ห ( n , n ) ] + [ 0.5 ฮ t 2 0 0 0 0.5 ฮ t 2 0 0 0 0.5 ฮ t 2 ฮ t 0 0 0 ฮ t 0 0 0 ฮ t ] [ x ยจ n y ยจ n z ยจ n ] \hat{x}_{n+1,n} = \begin{bmatrix} x_{(n+1,n)} \\ y_{(n+1,n)} \\ z_{(n+1,n)} \\ \dot{x}_{(n+1,n)} \\ \dot{y}_{(n+1,n)} \\ \dot{z}_{(n+1,n)} \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 &\Delta{t} & 0 & 0\\ 0 & 1 & 0 & 0 &\Delta{t} & 0\\ 0 & 0 & 1 & 0 & 0 &\Delta{t}\\ 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} x_{(n,n)} \\ y_{(n,n)} \\ z_{(n,n)} \\ \dot{x}_{(n,n)} \\ \dot{y}_{(n,n)} \\ \dot{z}_{(n,n)} \end{bmatrix} + \begin{bmatrix} 0.5\Delta{t^2} & 0 & 0\\ 0 & 0.5\Delta{t^2} & 0\\ 0 & 0 & 0.5\Delta{t^2}\\ \Delta{t} & 0 & 0\\ 0 &\Delta{t} & 0\\ 0 & 0 &\Delta{t} \end{bmatrix}\begin{bmatrix} \ddot{x}_n\\ \ddot{y}_n\\ \ddot{z}_n \end{bmatrix} x ^ n + 1 , n โ = โ x ( n + 1 , n ) โ y ( n + 1 , n ) โ z ( n + 1 , n ) โ x ห ( n + 1 , n ) โ y ห โ ( n + 1 , n ) โ z ห ( n + 1 , n ) โ โ โ = โ 1 0 0 0 0 0 โ 0 1 0 0 0 0 โ 0 0 1 0 0 0 โ ฮ t 0 0 1 0 0 โ 0 ฮ t 0 0 1 0 โ 0 0 ฮ t 0 0 1 โ โ โ x ( n , n ) โ y ( n , n ) โ z ( n , n ) โ x ห ( n , n ) โ y ห โ ( n , n ) โ z ห ( n , n ) โ โ โ + โ 0.5ฮ t 2 0 0 ฮ t 0 0 โ 0 0.5ฮ t 2 0 0 ฮ t 0 โ 0 0 0.5ฮ t 2 0 0 ฮ t โ โ โ x ยจ n โ y ยจ โ n โ z ยจ n โ โ โ
P ( n + 1 , n ) = F P n , n F T + Q P_{(n+1, n)} = FP_{n,n}F^T + Q P ( n + 1 , n ) โ = F P n , n โ F T + Q
Item Mean P n , n P_{n,n} P n , n โ The squared uncertainty of an estimate (covariance matrix) of the current state P n , n P_{n,n} P n , n โ The squared uncertainty of a prediction (covariance matrix) for the next state F F F The state transition matrix that we derived in the "Modeling linear dynamic systems" section Q Q Q The process noise matrix
Assume that the process noise is equal to zero (Q=0)
P ( n + 1 , n ) = F P n , n F T P_{(n+1, n)} = FP_{n,n}F^T P ( n + 1 , n ) โ = F P n , n โ F T
Becuase of: P = C O V ( x ) = E ( ( x โ ฮผ x ) ( x โ ฮผ x ) T ) P = COV(x) = E((x-\mu_x)(x-\mu_x)^T) P = CO V ( x ) = E (( x โ ฮผ x โ ) ( x โ ฮผ x โ ) T )
Thus, P n , n = E ( ( x ^ n , n โ ฮผ x n , n ) ( x ^ n , n โ ฮผ x n , n ) T ) P_{n,n} = E((\hat{x}_{n,n} - \mu_{x_{n,n}})(\hat{x}_{n,n} - \mu_{x_{n,n}})^T) P n , n โ = E (( x ^ n , n โ โ ฮผ x n , n โ โ ) ( x ^ n , n โ โ ฮผ x n , n โ โ ) T )
Because of the state prediction likex ^ n + 1 , n = F x ^ n , n + G u ^ n , n \hat{x}_{n+1, n} = F\hat{x}_{n, n} + G\hat{u}_{n,n} x ^ n + 1 , n โ = F x ^ n , n โ + G u ^ n , n โ
Therefore:
P n + 1 , n = E ( ( x ^ n + 1 , n โ ฮผ x n + 1 , n ) ( x ^ n + 1 , n โ ฮผ x n + 1 , n ) T ) โ = E ( ( F x ^ n , n + G u ^ n , n โ F ฮผ x n , n โ G u ^ n , n ) ( F x ^ n , n + G u ^ n , n + G u ^ n , n โ F ฮผ x n , n โ G u ^ n , n ) T ) โ = E ( F ( x ^ n , n โ ฮผ x n , n ) ( F ( x ^ n , n โ ฮผ x n , n ) ) T ) โ = E ( F ( x ^ n , n โ ฮผ x n , n ) ( x ^ n , n โ ฮผ x n , n ) T F T ) โ = F E ( ( x ^ n , n โ ฮผ x n , n ) ( x ^ n , n โ ฮผ x n , n ) T ) โ = F P n , n F T \begin{equation} \begin{split} P_{n+1, n} =& E((\hat{x}_{n+1,n} -\mu_{x_{n+1,n}})(\hat{x}_{n+1,n} -\mu_{x_{n+1,n}})^T)\\ \dArr \\ =&E((F\hat{x}_{n,n} + G\hat{u}_{n,n}-F\mu_{x_{n,n}} - G\hat{u}_{n,n})(F\hat{x}_{n,n} + G\hat{u}_{n,n} + G\hat{u}_{n,n}-F\mu_{x_{n,n}}-G\hat{u}_{n,n})^T)\\ \dArr \\ =&E(F(\hat{x}_{n,n} -\mu_{x_{n,n}})(F(\hat{x}_{n,n} -\mu_{x_{n,n}}))^T) \\ \dArr \\ =& E(F(\hat{x}_{n,n} - \mu_{x_{n,n}})(\hat{x}_{n,n} - \mu_{x_{n,n}})^TF^T) \\ \dArr \\ =& FE((\hat{x}_{n,n} - \mu_{x_{n,n}})(\hat{x}_{n,n} - \mu_{x_{n,n}})^T) \\ \dArr \\ =& FP_{n,n}F^T \end{split} \end{equation} P n + 1 , n โ = โ = โ = โ = โ = โ = โ E (( x ^ n + 1 , n โ โ ฮผ x n + 1 , n โ โ ) ( x ^ n + 1 , n โ โ ฮผ x n + 1 , n โ โ ) T ) E (( F x ^ n , n โ + G u ^ n , n โ โ F ฮผ x n , n โ โ โ G u ^ n , n โ ) ( F x ^ n , n โ + G u ^ n , n โ + G u ^ n , n โ โ F ฮผ x n , n โ โ โ G u ^ n , n โ ) T ) E ( F ( x ^ n , n โ โ ฮผ x n , n โ โ ) ( F ( x ^ n , n โ โ ฮผ x n , n โ โ ) ) T ) E ( F ( x ^ n , n โ โ ฮผ x n , n โ โ ) ( x ^ n , n โ โ ฮผ x n , n โ โ ) T F T ) FE (( x ^ n , n โ โ ฮผ x n , n โ โ ) ( x ^ n , n โ โ ฮผ x n , n โ โ ) T ) F P n , n โ F T โ โ โ
Becuase of process noise ฯ \omega ฯ exists, thus x ^ n + 1 , n + F x ^ n , n + G u ^ n , n + ฯ n \hat{x}_{n+1,n} + F\hat{x}_{n,n} + G\hat{u}_{n,n} + \omega_n x ^ n + 1 , n โ + F x ^ n , n โ + G u ^ n , n โ + ฯ n โ
Where ฯ n \omega_n ฯ n โ is the process noise at the time step n n n .
We've seen that the process noise variance has a critical influence on the Kalman Filter performance. Too small q q q causes a lag error (see Example 7 ).. If the q q q value is too high, the Kalman Filter follows the measurements (see Example 8 ) and produces noisy estimations.
The process noise can be independent between different state variables. In this case, the process noise covariance matrix Q ห \bar Q Q ห โ is a diagonal matrix:
Q = [ q 11 0 โฆ 0 0 q 22 โฆ 0 โฎ โฎ โฑ โฎ 0 0 . . . q k k ] Q = \begin{bmatrix} q_{11} & 0 & \ldots & 0 \\ 0 & q_{22} & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & ... & q_{kk} \end{bmatrix} Q = โ q 11 โ 0 โฎ 0 โ 0 q 22 โ โฎ 0 โ โฆ โฆ โฑ ... โ 0 0 โฎ q kk โ โ โ
The process noise can also be dependent. For example, the constant velocity model assumes zero acceleration (a = 0 a=0 a = 0 ). However, a random variance in acceleration ฯ 2 a ฯ2a ฯ 2 a causes a variance in velocity and position. In this case, the process noise is correlated with the state variables.
There are two models for the environmental process noise.
Discrete noise model Continuous noise model The generalized measurementz n = H x n + v n z_n = Hx_n + v_n z n โ = H x n โ + v n โ
Item Mean Dimension z n z_n z n โ measurement vector n x ร 1 n_x \times 1 n x โ ร 1 x n x_n x n โ true system state (hidden state) n z ร 1 n_z \times 1 n z โ ร 1 v n v_n v n โ Random noise vector n z ร n x n_z \times n_x n z โ ร n x โ H H H an observation matrix n z ร 1 n_z \times 1 n z โ ร 1
In many cases, the measured value is not the desired system state . For example, a digital electric thermometer measures an electric current, while the system state is the temperature. There is a need for a transformation of the system state (input) to the measurement (output).
The purpose of the observation matrix H H H is to convert the system state into outputs using linear transformations .
Scaling A range meter sends a signal toward a destination and receives a reflected echo. The measurement is the time delay between the transmission and reception of the signal. The system state is the range .
In this case, we need to perform a scaling:
z n = [ 2 c ] x n + v n z_n = [\frac{2}{c}]x_n + v_n z n โ = [ c 2 โ ] x n โ + v n โ
Item Desc H H H [ 2 c ] [\frac{2}{c}] [ c 2 โ ] c c c The speed of light x n x_n x n โ The range z n z_n z n โ The measured time delay
State Selection Sometimes certain states are measured while others are not. For example, the first, third, and fifth states of a five-dimensional state vector are measurable, while the second and fourth states are not measurable:
z n = H x n + v n = [ 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 ] [ x 1 x 2 x 3 x 4 x 5 ] + v n = [ x 1 x 3 x 5 ] + v n z_n = Hx_n + v_n = \begin{bmatrix} 1 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4\\ x_5 \end{bmatrix} + v_n = \begin{bmatrix} x_1\\ x_3\\ x_5 \end{bmatrix} + v_n z n โ = H x n โ + v n โ = โ 1 0 0 โ 0 1 0 โ 0 0 1 โ 0 0 0 โ 0 0 0 โ โ โ x 1 โ x 2 โ x 3 โ x 4 โ x 5 โ โ โ + v n โ = โ x 1 โ x 3 โ x 5 โ โ โ + v n โ
Combination of States Sometimes some combination of states can be measured instead of each separate state . For example, maybe the lengths of the sides of a triangle are the states, and only the total perimeter can be measured:
z n = H x n + v n = [ 1 1 1 ] [ x 1 x 2 x 3 ] + v n = ( x 1 + x 2 + x 3 ) + v n z_n = Hx_n + v_n = \begin{bmatrix} 1 & 1 & 1 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\\ x_3 \end{bmatrix} + v_n = (x_1 + x_2 + x_3)+ v_n z n โ = H x n โ + v n โ = [ 1 โ 1 โ 1 โ ] โ x 1 โ x 2 โ x 3 โ โ โ + v n โ = ( x 1 โ + x 2 โ + x 3 โ ) + v n โ
The State Update Equation in the matrix form is given by
x ^ n , n = x ^ n , n โ 1 + K n ( z n โ H x ^ n , n โ 1 ) \hat{x}_{n,n} = \hat{x}_{n,n-1} + K_n(z_n - H\hat{x}_{n,n-1}) x ^ n , n โ = x ^ n , n โ 1 โ + K n โ ( z n โ โ H x ^ n , n โ 1 โ )
Item Mean Dimensions x ^ n , n \hat{x}_{n,n} x ^ n , n โ Estimated system state vector at time step n n n n x ร 1 n_x \times 1 n x โ ร 1 x ^ n , n โ 1 \hat{x}_{n,n-1} x ^ n , n โ 1 โ Predicted system state vector at time step n โ 1 nโ1 n โ 1 n x ร 1 n_x \times 1 n x โ ร 1 K n K_n K n โ Kalman Gain n x ร n z n_x \times n_z n x โ ร n z โ z n z_n z n โ Measurement n z ร 1 n_z \times 1 n z โ ร 1 H H H observation matrix n z ร n x n_z \times n_x n z โ ร n x โ
Pay attention to the dimensions . If, for instance, the state vector has 5 dimensions, while only 3 dimensions are measurable (the first, third, and fifth states):x n = [ x 1 x 2 x 3 x 4 x 5 ] x_n = \begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4\\ x_5 \end{bmatrix} x n โ = โ x 1 โ x 2 โ x 3 โ x 4 โ x 5 โ โ โ
z n = [ z 1 z 2 z 3 ] z_n = \begin{bmatrix} z_1\\ z_2\\ z_3 \end{bmatrix} z n โ = โ z 1 โ z 2 โ z 3 โ โ โ
H = [ 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ] H = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} H = โ 1 0 0 โ 0 0 0 โ 0 1 0 โ 0 0 0 โ 0 0 1 โ โ
z n โ H x ^ n , n โ 1 = [ z 1 z 3 z 5 ] โ [ 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ] [ x 1 x 2 x 3 x 4 x 5 ] = [ z 1 โ x ^ 1 z 3 โ x ^ 3 z 5 โ x ^ 5 ] z_n - H\hat{x}_{n,n-1} = \begin{bmatrix} z_1\\ z_3\\ z_5 \end{bmatrix} - \begin{bmatrix} 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4\\ x_5 \end{bmatrix} = \begin{bmatrix} z_1-\hat{x}_1\\ z_3-\hat{x}_3\\ z_5-\hat{x}_5 \end{bmatrix} z n โ โ H x ^ n , n โ 1 โ = โ z 1 โ z 3 โ z 5 โ โ โ โ โ 1 0 0 โ 0 0 0 โ 0 1 0 โ 0 0 0 โ 0 0 1 โ โ โ x 1 โ x 2 โ x 3 โ x 4 โ x 5 โ โ โ = โ z 1 โ โ x ^ 1 โ z 3 โ โ x ^ 3 โ z 5 โ โ x ^ 5 โ โ โ
P n + 1 , n = F P n , n F T + Q P_{n+1,n} = FP_{n,n}F^T+Q P n + 1 , n โ = F P n , n โ F T + Q
Item Mean P n , n P_{n,n} P n , n โ The squared uncertainty of an estimate (covariance matrix) of the current state P n + 1 , n P_{n+1,n} P n + 1 , n โ The squared uncertainty of a prediction (covariance matrix) for the next state F F F The state transition matrix that we derived in the "Modeling linear dynamic systems" section Q Q Q The process noise matrix
The Estimate covariance without process noise Assume the process noise is equals to zero (Q = 0 Q=0 Q = 0 )P n + 1 , n = F P n , n F T P_{n+1,n} = FP_{n,n}F^T P n + 1 , n โ = F P n , n โ F T โ \downarrow โ C O V ( x ) = E ( ( x โ ฮผ x ) ( x โ ฮผ z ) T ) COV(x) = E((x-\mu_x)(x-\mu_z)^T) CO V ( x ) = E (( x โ ฮผ x โ ) ( x โ ฮผ z โ ) T )
x x x is the system state vector
P n , n P_{n,n} P n , n โ x ^ n , n โ ฮผ x n , n \hat{x}_{n,n} -\mu_{x_{n,n}} x ^ n , n โ โ ฮผ x n , n โ โ
E ( ( x ^ n , n โ ฮผ x n , n ) ( x ^ n , n โ ฮผ x n , n ) T ) E((\hat{x}_{n,n} -\mu_{x_{n,n}}) (\hat{x}_{n,n} -\mu_{x_{n,n}})^T) E (( x ^ n , n โ โ ฮผ x n , n โ โ ) ( x ^ n , n โ โ ฮผ x n , n โ โ ) T )
According to the state extrapolation equation: x ^ n + 1 , n = F x ^ n , n + G u ^ n , n \hat{x}_{n+1,n} = F\hat{x}_{n,n} + G\hat{u}_{n,n} x ^ n + 1 , n โ = F x ^ n , n โ + G u ^ n , n โ
Therefore,
P n + 1 , n = E ( ( x ^ n + 1 , n โ ฮผ x n + 1 , n ) ( x ^ n + 1 , n โ ฮผ x n + 1 , n ) T ) โ = E ( ( F x ^ n , n + G u ^ n , n โ F ฮผ x n , n โ G u ^ n , n ) ( F x ^ n , n + G u ^ n , n + G u ^ n , n โ F ฮผ x n , n โ G u ^ n , n ) T ) โ = E ( F ( x ^ n , n โ ฮผ x n , n ) ( F ( x ^ n , n โ ฮผ x n , n ) ) T ) โ = E ( F ( x ^ n , n โ ฮผ x n , n ) ( x ^ n , n โ ฮผ x n , n ) T F T ) โ = F E ( ( x ^ n , n โ ฮผ x n , n ) ( x ^ n , n โ ฮผ x n , n ) T ) โ = F P n , n F T \begin{equation} \begin{split} P_{n+1, n} =& E((\hat{x}_{n+1,n} -\mu_{x_{n+1,n}})(\hat{x}_{n+1,n} -\mu_{x_{n+1,n}})^T)\\ \dArr \\ =&E((F\hat{x}_{n,n} + G\hat{u}_{n,n}-F\mu_{x_{n,n}} - G\hat{u}_{n,n})(F\hat{x}_{n,n} + G\hat{u}_{n,n} + G\hat{u}_{n,n}-F\mu_{x_{n,n}}-G\hat{u}_{n,n})^T)\\ \dArr \\ =&E(F(\hat{x}_{n,n} -\mu_{x_{n,n}})(F(\hat{x}_{n,n} -\mu_{x_{n,n}}))^T) \\ \dArr \\ =& E(F(\hat{x}_{n,n} - \mu_{x_{n,n}})(\hat{x}_{n,n} - \mu_{x_{n,n}})^TF^T) \\ \dArr \\ =& FE((\hat{x}_{n,n} - \mu_{x_{n,n}})(\hat{x}_{n,n} - \mu_{x_{n,n}})^T) \\ \dArr \\ =& FP_{n,n}F^T \end{split} \end{equation} P n + 1 , n โ = โ = โ = โ = โ = โ = โ E (( x ^ n + 1 , n โ โ ฮผ x n + 1 , n โ โ ) ( x ^ n + 1 , n โ โ ฮผ x n + 1 , n โ โ ) T ) E (( F x ^ n , n โ + G u ^ n , n โ โ F ฮผ x n , n โ โ โ G u ^ n , n โ ) ( F x ^ n , n โ + G u ^ n , n โ + G u ^ n , n โ โ F ฮผ x n , n โ โ โ G u ^ n , n โ ) T ) E ( F ( x ^ n , n โ โ ฮผ x n , n โ โ ) ( F ( x ^ n , n โ โ ฮผ x n , n โ โ ) ) T ) E ( F ( x ^ n , n โ โ ฮผ x n , n โ โ ) ( x ^ n , n โ โ ฮผ x n , n โ โ ) T F T ) FE (( x ^ n , n โ โ ฮผ x n , n โ โ ) ( x ^ n , n โ โ ฮผ x n , n โ โ ) T ) F P n , n โ F T โ โ โ
K n = P n , n โ 1 H T ( H P n , n โ 1 H T + R n ) โ 1 K_n = P_{n,n-1}H^T(HP_{n,n-1}H^T + R_n)^{-1} K n โ = P n , n โ 1 โ H T ( H P n , n โ 1 โ H T + R n โ ) โ 1
Item Mean K n K_n K n โ Kalman Gain P n , n โ 1 P_{n, n-1} P n , n โ 1 โ The prior estimate covariance matrix of the current state (predicted at the previous step) H H H Observation matrix R n R_n R n โ The measurement noise covariance matrix
Derivation of the Kalman Gain Equation
Notes P n , n = ( I โ K n H ) P n , n โ 1 ( I โ K n H ) T + K n R n K n T P_{n,n} = (I-K_nH)P_{n,n-1}(I-K_nH)^T + K_nR_nK_n^T P n , n โ = ( I โ K n โ H ) P n , n โ 1 โ ( I โ K n โ H ) T + K n โ R n โ K n T โ Covariance Update Equation P n , n = ( I โ K n H ) P n , n โ 1 ( I โ ( K n H ) T ) + K n R n K n T P_{n,n} = (I-K_nH)P_{n,n-1}\textcolor{blue}{(I-(K_nH)^T)} + K_nR_nK_n^T P n , n โ = ( I โ K n โ H ) P n , n โ 1 โ ( I โ ( K n โ H ) T ) + K n โ R n โ K n T โ I T = I I^T = I I T = I P n , n = ( I โ K n H ) P n , n โ 1 ( I โ ( H T K n T ) ) + K n R n K n T P_{n,n} = \textcolor{green}{(I-K_nH)P_{n,n-1}}\textcolor{blue}{(I-(H^TK_n^T))} + K_nR_nK_n^T P n , n โ = ( I โ K n โ H ) P n , n โ 1 โ ( I โ ( H T K n T โ )) + K n โ R n โ K n T โ Apply the matrix transpose property: ( A B ) T = B T A T (AB)^T = B^TA^T ( A B ) T = B T A T P n , n = ( P n , n โ 1 โ K n H P n , n โ 1 ) ( I โ ( H T K n T ) ) + K n R n K n T P_{n,n} = \textcolor{green}{(P_{n,n-1}-K_nHP_{n,n-1})}\textcolor{blue}{(I-(H^TK_n^T))} + K_nR_nK_n^T P n , n โ = ( P n , n โ 1 โ โ K n โ H P n , n โ 1 โ ) ( I โ ( H T K n T โ )) + K n โ R n โ K n T โ P n , n = P n , n โ 1 โ P n , n โ 1 H T K n T โ K n H P n , n โ 1 + K n H P n , n โ 1 H T K n T + K n R n K n T P_{n,n} = P_{n,n-1}-P_{n,n-1}H^TK_n^T - K_nHP_{n,n-1} + K_nHP_{n,n-1}H^TK_n^T + K_nR_nK_n^T P n , n โ = P n , n โ 1 โ โ P n , n โ 1 โ H T K n T โ โ K n โ H P n , n โ 1 โ + K n โ H P n , n โ 1 โ H T K n T โ + K n โ R n โ K n T โ Expand P n , n = P n , n โ 1 โ P n , n โ 1 H T K n T โ K n H P n , n โ 1 + K n ( H P n , n โ 1 H T K n T + R n ) K n T P_{n,n} = P_{n,n-1}-P_{n,n-1}H^TK_n^T - K_nHP_{n,n-1} + \textcolor{purple}{K_n(HP_{n,n-1}H^TK_n^T +R_n)K_n^T} P n , n โ = P n , n โ 1 โ โ P n , n โ 1 โ H T K n T โ โ K n โ H P n , n โ 1 โ + K n โ ( H P n , n โ 1 โ H T K n T โ + R n โ ) K n T โ Group the last two terms
Kalman Filter ๅกๅฐๆผๆปคๆณขๅจ Kalman filter [Math]็่งฃๅกๅฐๆผๆปคๆณขๅจ (Understanding Kalman Filter) ๅกๅฐๆผๆปคๆณขๅจ็ๅ็ไปฅๅๅจmatlabไธญ็ๅฎ็ฐ