Skip to content

Three bugfixes for missing_DiffuseKalmanSmootherH1_Z.m that led to wrong results

Johannes Pfeifer requested to merge JohannesPfeifer:kalman into master
  1. In case of missing observations ('if isempty(di)'), a(:,t) was not propagated forward to update a(:,t+1)
  2. In the rank-deficient Finf case, Kstar was defined as T^(-1)*K^{(0)}, while in the full rank it was defined as Kstar=K^(0) This leads to wrong results when switches between the two clauses occurr. Moreover, the later backwards pass relied on Kstar=K^(0), leading to wrong results when the rank-deficient Finf case was triggered earlier.
  3. In the rank-deficient Finf case, the backward pass did not use the proper formulas, but rather the ones for the non-singular case

The implementation now consistently follows the one in kalman_filter_d.m

Merge request reports