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);