function [logl] = kalmanforward(y,theta,p,v_sim) [T,n]=size(y); logl=0; r = v_sim(1:3,1:3); c = v_sim(4:15,1:3); q = v_sim(4:15,4:15); for t = 2:T % definition of X x = [1, y(t-1,:), zeros(1,8); zeros(1,4), 1, y(t-1,:), zeros(1,4); zeros(1,8), 1, y(t-1,:)]'; % p t|t-1 p = p+q; k = (p*x+c)*inv(x'*p*x+r+x'*c+c'*x); % theta t+1|t theta = theta+k*(y(t,:)'-x'*theta); % omega t|t-1 var=x'*p*x+r; % innovation yt-Eyt|t-1 inov=y(t,:)'-x'*theta; logl=log((2*pi)^(-n/2)*det(var)^(-1/2)*exp(-0.5*(inov'*var*inov)))+logl; p = p-k*(x'*p+c'); end