カルマンフィルター
なお C k {\displaystyle C_{k}} は情報フィルターのそれに等しい。
これを用いて固定区間平滑化解が求められる。すなわちフィルター計算で k = l {\displaystyle k=l} における上記の値を求めておき、それらを用いて、
x ^ k | n = C k x ^ k + 1 | n + t k {\displaystyle {\hat {\boldsymbol {x}}}_{k|n}=C_{k}{\hat {\boldsymbol {x}}}_{k+1|n}+{\boldsymbol {t}}_{k}}
P k | n = C k P k + 1 | n C k T + T k {\displaystyle P_{k|n}=C_{k}P_{k+1|n}{C_{k}}^{\mathrm {T} }+T_{k}}
を逆方向(backward)すなわち、kが減る方向に逐次計算し平滑化解が求められる。ここで計算が丸め誤差を持っていても、 P k | n {\displaystyle P_{k|n}} は必ず半正定値となる。
また、上記を変形すると、Bryson–Frazierの固定区間平滑化と等価の式が得られる。すなわち、
λ k = C k λ k + 1 − K k e k {\displaystyle {\boldsymbol {\lambda }}_{k}=C_{k}{\boldsymbol {\lambda }}_{k+1}-K_{k}{\boldsymbol {e}}_{k}}
I k ≜ H k T R k − 1 H k {\displaystyle I_{k}\triangleq H_{k}^{\textrm {T}}R_{k}^{-1}H_{k}} i k ≜ H k T R k − 1 z k {\displaystyle {\boldsymbol {i}}_{k}\triangleq H_{k}^{\textrm {T}}R_{k}^{-1}{\boldsymbol {z}}_{k}}
このとき、情報更新は簡便な和算となる。
Y k | k = Y k | k − 1 + I k {\displaystyle Y_{k|k}=Y_{k|k-1}+I_{k}} y ^ k | k = y ^ k | k − 1 + i k {\displaystyle {\hat {\boldsymbol {y}}}_{k|k}={\hat {\boldsymbol {y}}}_{k|k-1}+{\boldsymbol {i}}_{k}}
情報フィルターの主たる優位性は、以下に示すように、N 個の観測値は各時間毎に、観測値の情報行列と情報ベクトルの和算でシンプルにフィルター処理される点である。
真の状態は一次マルコフ過程であると仮定され、観測値は隠れマルコフモデルからの観測された状態である。 仮定より、ひとつ前の時刻の状態にのみ依存して
p ( x k | x 0 , ... , x k − 1 ) = p ( x k | x k − 1 ) . {\displaystyle p({\boldsymbol {x}}_{k}|{\boldsymbol {x}}_{0},\dots ,{\boldsymbol {x}}_{k-1})=p({\boldsymbol {x}}_{k}|{\boldsymbol {x}}_{k-1}).}
同様に、時刻 k での観測値は現在の状態にだけ依存して、過去には依存しないものとする。
p ( z k | x 0 , ... , x k ) = p ( z k | x k ) {\displaystyle p({\boldsymbol {z}}_{k}|{\boldsymbol {x}}_{0},\dots ,{\boldsymbol {x}}_{k})=p({\boldsymbol {z}}_{k}|{\boldsymbol {x}}_{k})}
これらの仮定を用いると、隠れマルコフモデルの観測が z1, z2, ... {\displaystyle \ldots } zk と得られる確率は、
p ( x 0 , ... , x k , z 1 , ...
z k = H x k + v k {\displaystyle {\boldsymbol {z}}_{k}=H{\boldsymbol {x}}_{k}+{\boldsymbol {v}}_{k}}
ここに、
H = [ 1 0 ] {\displaystyle H={\begin{bmatrix}1&0\end{bmatrix}}}
かつ
R = E ( v k v k T ) = [ σ z 2 ] {\displaystyle R=\mathrm {E} ({\boldsymbol {v}}_{k}{\boldsymbol {v}}_{k}^{\textrm {T}})={\begin{bmatrix}\sigma _{z}^{2}\end{bmatrix}}}
である。
初期条件は正確に分かっているので、
x ^ 0 | 0 = [ 0 0 ] {\displaystyle {\hat {\boldsymbol {x}}}_{0|0}={\begin{bmatrix}0\\0\end{bmatrix}}}
P 0 | 0 = [ 0 0 0 0 ] {\displaystyle P_{0|0}={\begin{bmatrix}0&0\\0&0\end{bmatrix}}}
もしも、初期条件に誤差があるならば、誤差の大きさに応じて B を設定し、
P 0 | 0 = [ B 0 0 B ] {\displaystyle P_{0|0}={\begin{bmatrix}B&0\\0&B\end{bmatrix}}}
と、取るべきである。もし B が大きければカルマンフィルターは、初期条件より、それ以降の観測に重みを置くようになる。