Problem -
The state estimation equation in the discrete Kalman filter is
x^(n|n) = A(n - 1)x^(n - 1|n - 1) + K(n)[y(n) - C(n)A(n - 1)x^(n - 1|n - 1)]
Thus, given the state transition matrix A(n) and the observation matrix C(n), all that is required is the Kalman gain K(n). Since the Kalman gain does not depend upon the state x(n) or the observations y(n), the Kalman gain may be computed off-line prior to filtering.
(a) Write a MATLAB program gain.m to compute the Kalman gain K(n) for a stationary process with
x(n) = Ax(n - 1) + w(n)
y(n) = Cx(n) + v(n)
(b) Suppose that x(n) is a third-order autoregressive process
x(n) = -0.1x(n - 1) - 0.09x(n - 2) + 0.6413x(n - 3) + w(n)
where w(n) is unit variance white noise, and that the observations are
y(n) = x(n) + v(n)
where v(n) is white noise with a variance σv2 = 0.64. What initialization should you use for P(0|0)? Using this initialization, find the Kalman gain K(n) for n = 0 to n = 10.
(c) What is the steady-state value for the Kalman gain? How is it affected by the initialization P(0|0)?
(d) Generate the processes x(n) and y(n) in part (b) and use your Kalman filter to estimate x(n) from y(n). Plot your estimate and compare it to x(n).