Matlab — Kalman Filter
After struggling with prediction/correction steps for a while, I implemented a basic Kalman filter for a 1D motion model in MATLAB. Sharing a clean working example.
Estimate position and velocity from noisy measurements. kalman filter matlab
est_pos(k) = x(1); end
Tuning Q and R is everything. Too low Q → filter ignores new data; too high → noisy output. est_pos(k) = x(1); end Tuning Q and R is everything
% Update K = P*H' / (H*P*H' + R); x = x + K*(meas(k) - H*x); P = (eye(2) - K*H)*P; est_pos(k) = x(1)
dt = 0.1; % time step F = [1 dt; 0 1]; % state transition H = [1 0]; % measurement matrix Q = [0.01 0; 0 0.01]; % process noise R = 0.1; % measurement noise % Initial guess x = [0; 0]; P = eye(2);