diff --git a/src/kalman.jl b/src/kalman.jl index e665ac466334238819cd85dce9aac61249552a96..df92808dedcb7108206b70c9ca607dbdd42d9b6e 100644 --- a/src/kalman.jl +++ b/src/kalman.jl @@ -1,15 +1,13 @@ +""" +One dimensional Kalman filter +`kalman(R1,R2,theta, y, A, P)` +""" function kalman(R1,R2,theta, y, A, P) - # This is really a Kalman filter, not RLS - ATP = A'*P; - K = (P*A)/(R2+ATP*A); - P = P - (P*A*ATP)./(R2 + ATP*A) + R1; - yp = A'*theta - e = (y-yp)[1]; - red = 1; - # if abs(e) > 0.025 - # red = 0.2; - # end - theta = theta + K*e*red; - - theta, P, e, yp[1] + ATP = A'P + K = (P*A)/(R2+ATP*A) + P = P - (P*A*ATP)./(R2 + ATP*A) + R1 + yp = (A'theta)[1] + e = y-yp + theta = theta + K*e + return theta, P, e, yp end