Discrete Kalman Filter (First-principles Derivation)
Model: x_{k+1} = A x_k + B u_k + w_k, w_k ~ N(0, Q_w)
y_k = C x_k + v_k, v_k ~ N(0, R_v)
Goal: compute estimator x_hat minimizing mean-square error E[|x - x_hat|^2].
Orthogonality principle and Kalman equations:
Predict:
x_pred = A x_prev + B u_prev
P_pred = A P_prev A^T + Q_w
Update:
K = P_pred C^T (C P_pred C^T + R_v)^{-1}
x_upd = x_pred + K (y - C x_pred)
P_upd = (I - K C) P_pred
Derivation: obtain K by minimizing trace(P_upd) or by projection in L2 space.
Steady-state Kalman and LQG duality:
Solve estimator DARE for steady covariance P: P = A P A^T - A P C^T (C P C^T + R)^{-1} C P A^T +
Duality: estimator Riccati (A^T,C^T,Q_w,R) mirrors control Riccati (A,B,Q,R). LQG = LQR + KF.
Practical: tune Q_w / R_v; consider covariance inflation and outlier rejection.