smooth_update.m

来自「Kalman filter toolbox written by Kevin M」· M 代码 · 共 37 行

M
37
字号
function [xsmooth, Vsmooth, VVsmooth_future] = smooth_update(xsmooth_future, Vsmooth_future, ...    xfilt, Vfilt,  Vfilt_future, VVfilt_future, A, Q, B, u)% One step of the backwards RTS smoothing equations.% function [xsmooth, Vsmooth, VVsmooth_future] = smooth_update(xsmooth_future, Vsmooth_future, ...%    xfilt, Vfilt,  Vfilt_future, VVfilt_future, A, B, u)%% INPUTS:% xsmooth_future = E[X_t+1|T]% Vsmooth_future = Cov[X_t+1|T]% xfilt = E[X_t|t]% Vfilt = Cov[X_t|t]% Vfilt_future = Cov[X_t+1|t+1]% VVfilt_future = Cov[X_t+1,X_t|t+1]% A = system matrix for time t+1% Q = system covariance for time t+1% B = input matrix for time t+1 (or [] if none)% u = input vector for time t+1 (or [] if none)%% OUTPUTS:% xsmooth = E[X_t|T]% Vsmooth = Cov[X_t|T]% VVsmooth_future = Cov[X_t+1,X_t|T]%xpred = E[X(t+1) | t]if isempty(B)  xpred = A*xfilt;else  xpred = A*xfilt + B*u;endVpred = A*Vfilt*A' + Q; % Vpred = Cov[X(t+1) | t]J = Vfilt * A' * inv(Vpred); % smoother gain matrixxsmooth = xfilt + J*(xsmooth_future - xpred);Vsmooth = Vfilt + J*(Vsmooth_future - Vpred)*J';VVsmooth_future = VVfilt_future + (Vsmooth_future - Vfilt_future)*inv(Vfilt_future)*VVfilt_future;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?