カルマンフィルターのソースを表示
←
カルマンフィルター
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''カルマンフィルター''' ({{lang-en-short|Kalman filter}}) は、[[誤差]]のある[[観測]]値を用いて、ある[[動的システム]]の状態を推定あるいは制御するための、[[無限インパルス応答]]フィルターの一種である。 ==実用例== カルマンフィルターは、 離散的な誤差のある観測から、時々刻々と時間変化する量(例えばある物体の位置と速度)を推定するために用いられる。[[レーダー]]や[[コンピュータビジョン]]など、工学分野で広く用いられる。例えば、[[カーナビゲーション]]では、機器内蔵の[[加速度計]]や[[人工衛星]]からの誤差のある情報を統合して、時々刻々変化する[[自動車]]の位置を推定するのに応用されている。カルマンフィルターは、目標物の時間変化を支配する法則を活用して、目標物の位置を現在(フィルター)、未来(予測)、過去(内挿あるいは平滑化)に推定することができる。 ==歴史== このフィルターは[[ルドルフ・カルマン]]によって提唱されたが、同様の原理は[[トルバルド・ティエレ]]と[[ピーター・スワーリング]]によってすでに開発されていた<ref>[[Steffen L. Lauritzen]], ''[http://www.oup.com/uk/catalogue/?ci=9780198509721 Thiele: Pioneer in Statistics]'', [[オックスフォード大学出版局|Oxford University Press]], 2002. ISBN 0-19-850972-3.</ref>。カルマンが[[アメリカ航空宇宙局]]の[[エイムズ研究センター]]を訪問した際、この理論がロケットの軌道推定に有用なことに気づき、のちの[[アポロ計画]]で用いられた。 <!-- The filter was developed in papers by Swerling (1958), Kalman (1960) and, Kalman and Bucy (1961). A wide variety of Kalman filters have now been developed, from Kalman's original formulation, now called the ''simple'' Kalman filter, to Schmidt's ''extended'' filter, the ''information'' filter and a variety of ''square-root'' filters developed by Bierman, Thornton and many others. Perhaps the most commonly used type of Kalman filter is the [[phase-locked loop]] now ubiquitous in radios, computers, and nearly any other type of video or communications equipment. --> ==用いられる動的システム== カルマンフィルターは[[時間領域]]において、連続時間線形[[動的システム]]、もしくは離散化された離散時間[[線型性|線型]]動的システムに基づいて駆動する。以降に導入される解説は、後者の立場のものである。それらはガウス[[白色雑音]]によって励振をうける[[線形演算子]]からなる[[マルコフ連鎖]]モデルにより表現される。より端的にいえば、システムは[[状態空間モデル]] (state space model) で表現されるということである。 対象のシステムに定義された「状態 (state)」は、そのシステムの過去の動特性の遷移を保持する役割を果たし、動特性の遷移を保持する線形空間が[[状態空間 (制御理論)|状態空間]]として定義される。この空間は実数空間であるため、システムの状態は一般に、任意の次元の状態空間に含まれる実数[[ベクトル空間|ベクトル]]として与えられる。状態の変化は、現在の状態と、それに付加する雑音の影響と、場合によってはシステムの状態の制御に関与する既知の制御入力の線形結合によって記述される。したがって、状態はシステムの因果性に寄与する存在である。上記の理念は、以下に記述する状態方程式 (state equation) によって表現される。 状態が直接観測できない場合には、システムの出力は一般に状態と観測雑音の線形結合として観測が可能なものとして与えられる。この理念は観測方程式 (observation equation) として、以下に示すような線形モデルで表現される。 カルマンフィルターは、システムの状態が直接観測できない問題に対する状態推定法であるから、一般的に観測方程式を伴う問題に適用される。 カルマンフィルターは[[隠れマルコフモデル]] (hidden Markov model) の類似であると考えることができる。両者の主な差異は隠れマルコフモデルにおける状態変数が、[[連続]]であるか[[離散]]であるかである。また、隠れマルコフモデルでは状態変数の未来への変化を任意の分布に従う形式で統計的に与えることができる一方で、カルマンフィルターでは、[[ガウス分布]]に従う雑音によって未来の状態変数が統計的に記述される点が異なっている。したがって、カルマンフィルターと隠れマルコフモデルの間には強固な双対性が存在する。ちなみに、カルマンフィルターの導出過程においては、「システムに付随する雑音の性質はガウス分布に従う」という仮定の下に行われるのが一般的であるが、雑音の性質がガウス分布に従わない場合であっても、カルマンフィルターは線形なクラスにおける最適な推定値、すなわち線形最小分散推定値を導くことができる点で、汎用性に富んでいるといえる。 観測が可能な唯一の、雑音の影響を受けた出力過程に基づいて(制御問題であれば、入力も観測可能な過程となる)、システムの状態をカルマンフィルターを用いて推定するためには、対象とするシステムに対して、カルマンフィルターの理念と合致するような状態の遷移(すなわち状態過程)に関するモデルを与えなければならない。これは、時変 (time-variant) な行列 <math>F_k</math>, <math>G_k</math>, <math>H_k</math>, <math>Q_k</math>, <math>R_k</math> によって特徴付けられる線形方程式として、以下で与えられる。これが状態方程式である。 <!--カルマンフィルターは、時間が離散化された[[線型性|線型]]動的システムを用いる。すなわち、[[正規分布]]ノイズ項を含む一次[[マルコフ過程]]線形演算子のモデルである。[[状態空間 (制御理論)|状態空間]]は、[[実数]]の[[ベクトル空間|ベクトル]]で、表される。時間ステップが進むたびに、[[行列]]で表される線形演算子によって、状態空間が更新される。必要なら、ここに系を制御する変数を加えることもできる。その際、ノイズの影響が加味される。この状態空間は、[[観測]]できないが、別の線形演算子とノイズの組によって、観測量と関連づけられている。--> <!-- The Kalman filter may be regarded as analogous to the [[hidden Markov model]], with the key difference that the hidden state variables are continuous (as opposed to being discrete in the hidden Markov model). Additionally, the hidden Markov model can represent an arbitrary distribution for the next value of the state variables, in contrast to the Gaussian noise model that is used for the Kalman filter. There is a strong duality between the equations of the Kalman Filter and those of the hidden Markov model. A review of this and other models is given in (Roweis and Ghahramani, 1999) --> 時刻 <math>k</math> における真のシステムの状態は、1ステップ前の時刻 <math>(k-1)</math> の状態をもとに、次のように表現される<ref>表現式として、<math> \boldsymbol{x}_{k+1} = F_k \boldsymbol{x}_k + \boldsymbol{u}_k + G_k \boldsymbol{w}_k </math>の形が用いられることも多い。</ref>。 {{Indent|<math> \boldsymbol{x}_k = F_k \boldsymbol{x}_{k-1} + \boldsymbol{u}_k + G_k \boldsymbol{w}_k </math>}} ここで、 * <math>F_k</math> は、システムの時間遷移に関する線形モデル。 * <math>\boldsymbol{u}_k</math> は制御入力。 * <math>G_k</math> は時間遷移に関する雑音 (process noise) モデルの行列で、<math>\boldsymbol{w}_k</math> はその雑音で、[[共分散]]行列 <math>Q_k</math> かつ零平均の[[多変数正規分布]]に従う。 {{Indent|<math>\boldsymbol{w}_k \sim N(0, Q_k) </math>}} これがシステムの状態の遷移を記述する状態方程式である。<!--ただし断りの無い限り<math>G_k = \mathrm{I}</math>(単位行列)と仮定する。--> ある時刻 <math>k</math> において、観測量(測定量)<math>\boldsymbol{z}_k</math> は、真の(すなわち観測不可能な)状態 <math>\boldsymbol{x}_k</math> と、以下のような関係にある。 {{Indent|<math>\boldsymbol{z}_k = H_k \boldsymbol{x}_k + \boldsymbol{v}_k</math>}} ここで、<math>H_k</math> は状態空間を観測空間に[[線形写像]]する役割を担う観測モデルであり、 <math>\boldsymbol{v}_k</math> は、その共分散行列が <math>R_k</math> で平均が零の多変数正規(ガウス)分布に従う雑音である(観測雑音 (observation noise) )。これが観測方程式である。 {{Indent|<math>\boldsymbol{v}_k \sim N(0, R_k) </math>}} システムの初期条件と雑音 <math>\{\boldsymbol{x}_0, \boldsymbol{w}_1, ..., \boldsymbol{w}_k, \boldsymbol{v}_1, ..., \boldsymbol{v}_k\}</math> は、互いに統計的に[[独立(数学)|独立]]であると仮定する。 状態方程式と観測方程式を合わせて、状態空間モデルという。上記の状態空間モデルは[[時変システム]]を表現しているが、特別な場合として添字が<math>k</math>の行列を定数であるとすれば、[[時不変システム]] (time-invariant) も表現できる。 実際の多くの動的システムでは上記の状態空間モデルは厳密には適合しないが、カルマンフィルターは雑音の影響を考慮して設計されているため、上記のモデルは対象システムに近似的に適合するものと考えられ、そのことを理由としてカルマンフィルターの有用性は十分に認められている。カルマンフィルターは洗練された様々な拡張がなされており、それは以降に述べられる。 ==カルマンフィルター== カルマンフィルターは、システム(系)の現在の観測量と 1 ステップ前の状態推定値のみから(モデルが制御入力を受ける場合には現在の入力値も用いて)、現在の状態推定値(ろ波推定値)と 1 ステップ先の状態予測値( 1 段予測値)を与える、反復推定器(反復推定型フィルター)である。例えば[[ローパスフィルタ|ローパスフィルター]]などの多くのフィルターが[[周波数領域]]で設計され、[[時間領域]]へ変換されて実演される中で、カルマンフィルターは純粋に[[時間領域]]でのみ設計されるフィルターで、その意味で特異な存在であるといえる。カルマンフィルターは基本的に線形なクラスのフィルターであり、システム(系)が無限の過去から駆動し続けていると仮定すると、状態の推定値は、それまでにシステム(系)から観測された観測値の全て(システム(系)が制御入力を受ける場合は入力値の全ても含めて)を用いた線形結合の形で表現される。その意味で、カルマンフィルターは[[無限インパルス応答]]フィルターであると解釈できる。反復推定との対応関係は、1 ステップ前の状態推定値が 1 ステップ前までの全ての観測値(入力値も含め)の情報を[[線形結合]]の形で保有しているという事実により与えられる。 <!-- カルマンフィルターは[[無限インパルス応答]]フィルターであり、系の今の観測量とひとつ前の推定量さえ分かれば、今の推定量が得られる。--> <!-- In contrast to batch estimation techniques, no history of observations and/or estimates is required. It is unusual in being purely a [[time domain]] filter; most filters (for example, a [[low-pass filter]]) are formulated in the [[frequency domain]] and then transformed back to the time domain for implementation.--> 以降、<math>\hat{\boldsymbol{x}}_{n|m}</math> は時刻 ''m'' 時点での時刻 ''n'' の状態推定値を示すものとする。 フィルターの現在(時刻 ''k'' )の状態(様子)は、以下の2つの変数で特徴付けられる。 <!-- 系の今の(時間ステップ ''k'' )の状態は、二つの変数で表される。.--> *<math>\hat{\boldsymbol{x}}_{k|k}</math> システム(系)の状態推定値。 *<math>P_{k|k}</math> 誤差の共分散行列(推定値の精度)。 カルマンフィルターは、時間ステップをひとつ進めるために'''予測'''と'''更新'''の二つの手続きを行う。予測の手続きでは、前の時刻の推定状態から、今の時刻の推定状態を計算する。更新では、今の時刻の観測を用いて、推定値を補正してより正確な状態を推定する。 ===予測=== {{Indent| <math>\hat{\boldsymbol{x}}_{k|k-1} = F_k\hat{\boldsymbol{x}}_{k-1|k-1} + \boldsymbol{u}_k</math> (今の時刻の予測推定値)<br /> <math>P_{k|k-1} = F_k P_{k-1|k-1} F_k^\textrm{T} + G_k Q_k G_k^\textrm{T}</math> (今の時刻の予測誤差行列) }} ===更新=== {{Indent| <math>\boldsymbol{e}_k = \boldsymbol{z}_k - H_k\hat{\boldsymbol{x}}_{k|k-1} </math> (観測残差、innovation)<br /> <math>S_k = R_k + H_kP_{k|k-1}H_k^\textrm{T}</math> (観測残差の共分散)<br /> <math>K_k = P_{k|k-1}H_k^\textrm{T}S_k^{-1} </math> (''最適'' カルマンゲイン)<br /> <math>\hat{\boldsymbol{x}}_{k|k} = \hat{\boldsymbol{x}}_{k|k-1} + K_k\boldsymbol{e}_k </math> (更新された状態の推定値)<br /> <math>P_{k|k} = (\mathrm{I} - K_k H_k) P_{k|k-1}</math> (更新された誤差の共分散) }} <!-- The formula for the updated estimate covariance above is only valid for the optimal Kalman gain. Usage of other gain values require a more complex formula found in the ''[[Kalman filter#Derivations|derivations]]'' section.--> ===不偏量=== もし、モデルが正確で初期条件 <math>\hat{\boldsymbol{x}}_{0|0}</math> と <math>P_{0|0}</math> が正確ならば、全ての推定量は[[不偏推定量|不偏]]である。 *<math>\mathrm{E}(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k}) = \mathrm{E}(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k-1}) = 0</math> *<math>\mathrm{E}(\boldsymbol{e}_k) = 0</math> ここに、<math>\mathrm{E}</math> は、[[期待値]]。また、[[共分散]]は、推定値の誤差共分散である。 *<math>P_{k|k} = \mathrm{cov}(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k})</math> *<math>P_{k|k-1} = \mathrm{cov}(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k-1})</math> *<math>S_k = \mathrm{cov}(\boldsymbol{e}_k)</math> ==設定例== まっすぐで無限の長さを持つ摩擦の無いレールの上に乗っているトロッコを考えよう。初期条件は、トロッコは位置 0 に静止している。トロッコにはランダムな 力(加速度)が与えられる。''Δt'' 秒ごとにトロッコの位置 '''x''' を観測する。ただしこの観測には誤差が混入している。トロッコの位置と速度のモデルを考えると、以下の様に設定すると、カルマンフィルターを用い得る。 制御の必要はないから、 ''u''<sub>''k''</sub> は考えない。行列 ''F''、 ''G''、 ''H''、 ''R''、 ''Q'' は時間変化しないので添字は付けない。 トロッコの場所と速度は、 {{Indent|<math>\boldsymbol{x}_k = \begin{bmatrix} x \\ \dot{x} \end{bmatrix} </math>}} で、表される。 <math>\dot{x}</math> は位置の時間微分、すなわち速度である。 時刻 ''k'' − 1 と時刻 ''k'' の間に加速度<math>a_k</math>がトロッコに与えられる。加速度<math>a_k</math>は平均 0 標準偏差<math>\sigma_a</math>の正規分布をしている。[[運動の第2法則]]により、 {{Indent|<math>\boldsymbol{x}_k = F \boldsymbol{x}_{k-1} + G \boldsymbol{w}_k </math>}} ここに、 {{Indent|<math>F = \begin{bmatrix} 1 & \Delta t \\ 0 & 1 \end{bmatrix}</math>}} かつ {{Indent|<math>G = \begin{bmatrix} \frac{\Delta t^{2}}{2} \\ \Delta t \end{bmatrix} </math>}} {{Indent|<math> \boldsymbol{w}_k = \begin{bmatrix}a_k\end{bmatrix}</math>}} である。<math> G \boldsymbol{w}_k </math>の共分散は、<math>\sigma_a</math>がスカラーであることを用いて、 <!-- Q = --> {{Indent|<math> \mathrm{cov}(G \boldsymbol{w}_k) = \sigma_a^2 \times GG^\textrm{T} = \sigma_a^2 \times \begin{bmatrix} \frac{\Delta t^4}{4} & \frac{\Delta t^3}{2} \\ \frac{\Delta t^3}{2} & \Delta t^2 \end{bmatrix} </math>}} それぞれの時刻に、トロッコの位置を観測する。観測誤差も平均 0 で標準偏差<math>\sigma_z</math>の正規分布と仮定する。 {{Indent|<math>\boldsymbol{z}_k = H \boldsymbol{x}_k + \boldsymbol{v}_k</math>}} ここに、 {{Indent|<math>H = \begin{bmatrix} 1 & 0 \end{bmatrix} </math>}} かつ {{Indent|<math>R = \mathrm{E}(\boldsymbol{v}_k \boldsymbol{v}_k^\textrm{T}) = \begin{bmatrix} \sigma_z^2 \end{bmatrix} </math>}} である。 初期条件は正確に分かっているので、 {{Indent|<math>\hat{\boldsymbol{x}}_{0|0} = \begin{bmatrix} 0 \\ 0 \end{bmatrix} </math>}} {{Indent|<math>P_{0|0} = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix} </math>}} もしも、初期条件に誤差があるならば、誤差の大きさに応じて ''B'' を設定し、 {{Indent|<math>P_{0|0} = \begin{bmatrix} B & 0 \\ 0 & B \end{bmatrix} </math>}} と、取るべきである。もし ''B'' が大きければカルマンフィルターは、初期条件より、それ以降の観測に重みを置くようになる。 ==導出== ===更新後の共分散行列=== 時間を進めるための'''予測'''と'''更新'''の手続きのうち、更新が終わったあとの共分散行列 ''P''<sub>''k''|''k''</sub> をまず求める。上の定義式、 {{Indent|<math>P_{k|k} = \mathrm{cov}(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k})</math>}} に、推定値 <math>\hat{\boldsymbol{x}}_{k|k}</math> の定義を代入。 {{Indent|<math>P_{k|k} = \mathrm{cov}(\boldsymbol{x}_k - (\hat{\boldsymbol{x}}_{k|k-1} + K_k\boldsymbol{e}_k))</math>}} 続いて、観測残差 <math>\boldsymbol{e}_k</math> を代入。 {{Indent|<math>P_{k|k} = \mathrm{cov}(\boldsymbol{x}_k - (\hat{\boldsymbol{x}}_{k|k-1} + K_k(\boldsymbol{z}_k - H_k\hat{\boldsymbol{x}}_{k|k-1})))</math>}} そして、観測値 <math>\boldsymbol{z}_k</math> と真の値の関係を代入。 {{Indent|<math>P_{k|k} = \mathrm{cov}(\boldsymbol{x}_k - (\hat{\boldsymbol{x}}_{k|k-1} + K_k(H_k\boldsymbol{x}_k + \boldsymbol{v}_k - H_k\hat{\boldsymbol{x}}_{k|k-1})))</math>}} 変形して、 {{Indent|<math>P_{k|k} = \mathrm{cov}((\mathrm{I} - K_k H_k)(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k-1}) - K_k \boldsymbol{v}_k )</math>}} 観測誤差 '''v'''<sub>''k''</sub> は、他の項と相関がないから、 {{Indent|<math>P_{k|k} = \mathrm{cov}((\mathrm{I} - K_k H_k)(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k-1})) + \mathrm{cov}(K_k \boldsymbol{v}_k )</math>}} となり、さらに変形 {{Indent|<math>P_{k|k} = (\mathrm{I} - K_k H_k)\mathrm{cov}(\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k-1})(\mathrm{I} - K_k H_k)^\textrm{T} + K_k\mathrm{cov}(\boldsymbol{v}_k )K_k^\textrm{T}</math>}} して、前述の不偏量 ''P''<sub>''k''|''k''-1</sub> と、観測誤差共分散 ''R''<sub>''k''</sub> を用いて、 {{Indent|<math>P_{k|k} = (\mathrm{I} - K_k H_k) P_{k|k-1} (\mathrm{I} - K_k H_k)^\textrm{T} + K_k R_k K_k^\textrm{T} </math>}} を得る。この式は、 ''K''<sub>''k''</sub> がどんな値であっても成立するが、 ''K''<sub>''k''</sub> が、最適カルマンゲインの時は、以下のようにさらに簡略化される。 ===カルマンゲインの導出=== <!-- カルマンフィルターは、[[最小自乗法|最小自乗]]誤差推定値である。--> カルマンフィルターは最小平均二乗誤差(minimum mean-square error: MMSE)推定値を与える。すなわち、'''更新'''後の[[誤差]]の推定値は {{Indent|<math>\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k}</math>}} であり、このベクトルの大きさの二乗の期待値 <math>\mathrm{E}(|\boldsymbol{x}_k - \hat{\boldsymbol{x}}_{k|k}|^2)</math> を最小にするような推定値を与える。これは、'''更新'''後の共分散 ''P''<sub>''k''|''k''</sub> の[[跡 (線型代数学)|トレース]]を最小とすることと同じである。上の式を展開して、 {| style="margin:1ex 0 1ex 2em;" |- | <math> P_{k|k} </math> | <math> = P_{k|k-1} - K_k H_k P_{k|k-1} - P_{k|k-1} H_k^\textrm{T} K_k^\textrm{T} + K_k (H_k P_{k|k-1} H_k^\textrm{T} + R_k) K_k^\textrm{T}</math> |- | | <math> = P_{k|k-1} - K_k H_k P_{k|k-1} - P_{k|k-1} H_k^\textrm{T} K_k^\textrm{T} + K_k S_kK_k^\textrm{T}</math> |} <!-- トレースを最小にすべく、[[行列微分]]をゼロと置いて、--> MMSE を導くゲインは、''P''<sub>''k''|''k''</sub>のトレースを最小にするから、 必要条件として、''K''<sub>''k''</sub>による行列微分は下記が成立しなければならない。 {{Indent|<math>\frac{\partial \; \mathrm{tr}(P_{k|k})}{\partial \;K_k} = -2 (H_k P_{k|k-1})^\textrm{T} + 2 K_kS_k = 0</math>}} ここからカルマンゲイン ''K''<sub>''k''</sub> を求める。 {{Indent|<math>K_k S_k = (H_k P_{k|k-1})^\textrm{T} = P_{k|k-1} H_k^\textrm{T}</math>}} {{Indent|<math> K_k = P_{k|k-1} H_k^\textrm{T} S_k^{-1}</math>}} このゲインは、最適カルマンゲインと呼ばれる。 ===更新後の誤差共分散行列=== カルマンゲインが上述の値を取るとき、更新後の誤差共分散行列は以下のように簡単になる。カルマンゲインの式の両辺の右から ''S''<sub>''k''</sub>''K''<sub>''k''</sub><sup>''T''</sup> をかけて、 {{Indent|<math>K_k S_k K_k^\textrm{T} = P_{k|k-1} H_k^\textrm{T} K_k^\textrm{T}</math>}} 更新後の誤差共分散行列を展開して、 {{Indent|<math> P_{k|k} = P_{k|k-1} - K_k H_k P_{k|k-1} - P_{k|k-1} H_k^\textrm{T} K_k^\textrm{T} + K_k S_k K_k^\textrm{T}</math>}} 右の二項は相殺するから、 {{Indent|<math> P_{k|k} = P_{k|k-1} - K_k H_k P_{k|k-1} = (\mathrm{I} - K_k H_k) P_{k|k-1}</math>.}} 計算量が少ないため、ほとんどの場合この式が用いられるが、カルマンゲインが上記の最適解の時にしか適用できないことに注意。計算上の桁落ちなどで[[数値的安定性|解の安定性]]が悪いときやなんらかの理由で敢えて最適でない解を用いるときは使えない。 <!-- わざわざいう程のことでもないかもしれないのでとりあえずコメントアウト。 ==デジタルフィルターとの関係== カルマンフィルターは無限インパルス応答の最適ローパスフィルターと考えることもできる。カットオフ周波数は、時間変化と観測の誤差の比や推定値の共分散とともに変化する。デジタルフィルターを設計するときは周波数特性が重要だが、カルマンフィルターのような推定のためのフィルターではあまり重要視されない。 The Kalman filter can be regarded as an adaptive low-pass infinite impulse response [[Digital filter]], with cut-off frequency depending on the ratio between the process- and measurement (or observation) noise, as well as the estimate covariance. Frequency response is, however, rarely of interest when designing state estimators such as the Kalman Filter, whereas for Digital Filters, frequency response is usually of primary concern. For the Kalman Filter, the important goal is how accurate the filter is, and this is most often decided based on empirical Monte Carlo simulations, where "truth" (the true state) is known. --> ==再帰ベイズ推定との関係== 真の状態は一次[[マルコフ過程]]であると仮定され、観測値は隠れマルコフモデルからの観測された状態である。<ref>[[ヨーハン・マルリェー|C. Johan Masreliez]], R D Martin (1977); [http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1101538 ''Robust Bayesian estimation for the linear model and robustifying the Kalman filter''], IEEE Trans. Automatic Control</ref> 仮定より、ひとつ前の時刻の状態にのみ依存して <!--観測不可能な真の状態が[[マルコフ過程]]のとき、観測されたものは[[隠れマルコフ過程]]で扱われる。真の状態は一次のマルコフ過程であり、ひとつ前の時刻の状態にのみ依存して、それより前の状態とは独立である。--> {{Indent|<math>p(\boldsymbol{x}_k|\boldsymbol{x}_0,\dots,\boldsymbol{x}_{k-1}) = p(\boldsymbol{x}_k|\boldsymbol{x}_{k-1}).</math>}} 同様に、時刻 ''k'' での観測値は現在の状態にだけ依存して、過去には依存しないものとする。 {{Indent|<math>p(\boldsymbol{z}_k|\boldsymbol{x}_0,\dots,\boldsymbol{x}_k) = p(\boldsymbol{z}_k|\boldsymbol{x}_k )</math>}} これらの仮定を用いると、隠れマルコフモデルの観測が '''z'''<sub>''1''</sub>, '''z'''<sub>''2''</sub>, <math>\ldots</math>'''z'''<sub>''k''</sub> と得られる確率は、 {{Indent|<math>p(\boldsymbol{x}_0,\dots,\boldsymbol{x}_k,\boldsymbol{z}_1,\dots,\boldsymbol{z}_k) = p(\boldsymbol{x}_0)\prod_{i=1}^k p(\boldsymbol{z}_i|\boldsymbol{x}_i)p(\boldsymbol{x}_i|\boldsymbol{x}_{i-1})</math>}} で、表される。 一方、カルマンフィルターで状態 '''x''' を求めるには現在の系の状態とそれまでの観測だけを用いる。 <!-- 以下の文章理解できず This is achieved by marginalizing out the previous states and dividing by the probability of the measurement set.--> カルマンフィルターの''予測''と''更新''の手続きを、確率を使って表してみる。予測後の状態の確率分布は、時刻 ''k'' − 1 から時刻 ''k'' への変化に関する確率と、時刻 (''k'' − 1) の状態の積になるから、 {{Indent|<math> p(\boldsymbol{x}_k|\boldsymbol{Z}_{k-1}) = \int p(\boldsymbol{x}_k | \boldsymbol{x}_{k-1}) p(\boldsymbol{x}_{k-1} | \boldsymbol{Z}_{k-1} ) \, d\boldsymbol{x}_{k-1} </math>}} 時刻 ''t'' までの観測は {{Indent|<math> \boldsymbol{Z}_{t} = \left \{ \boldsymbol{z}_{1},\dots,\boldsymbol{z}_{t} \right \} </math>}} である。 更新後の確率は観測の起こりやすさ([[尤度]])と予測された状態の積に比例するから {{Indent|<math> p(\boldsymbol{x}_k|\boldsymbol{Z}_k) = \frac{p(\boldsymbol{z}_k|\boldsymbol{x}_k) p(\boldsymbol{x}_k|\boldsymbol{Z}_{k-1})}{p(\boldsymbol{z}_k|\boldsymbol{Z}_{k-1})} </math>}} となる。分母の {{Indent|<math>p(\boldsymbol{z}_k|\boldsymbol{Z}_{k-1}) = \int p(\boldsymbol{z}_k|\boldsymbol{x}_k) p(\boldsymbol{x}_k|\boldsymbol{Z}_{k-1}) d\boldsymbol{x}_k</math>}} は、全確率を 1 にするための因子であまり重要ではない。 他の確率分布関数も {{Indent| <math> p(\boldsymbol{x}_k | \boldsymbol{x}_{k-1}) = N(F_k\boldsymbol{x}_{k-1}, G_k Q_k G_k^\textrm{T})</math> <math> p(\boldsymbol{z}_k|\boldsymbol{x}_k) = N(H_k\boldsymbol{x}_k, R_k) </math> <math> p(\boldsymbol{x}_{k-1}|\boldsymbol{Z}_{k-1}) = N(\hat{\boldsymbol{x}}_{k-1},P_{k-1} )</math> }} と書ける。 <!-- Note that the PDF at the previous timestep is inductively assumed to be the estimated state and covariance. This is justified because, as an optimal estimator, the Kalman filter makes best use of the measurements, therefore the PDF for <math>\mathbf{x}_k</math> given the measurements <math>\mathbf{Z}_k</math> ''is'' the Kalman filter estimate. --> ==情報フィルター== 情報フィルターもしくは逆共分散フィルターにおいては、カルマンフィルターにおける推定された共分散と状態が、各々[[フィッシャー情報行列]]と情報ベクトルに置き換わる。 {{Indent| <math>Y_{k|k} \triangleq P_{k|k}^{-1} </math><br /> <math>\hat{\boldsymbol{y}}_{k|k} \triangleq P_{k|k}^{-1}\hat{\boldsymbol{x}}_{k|k} </math> }} 同様に、予測された共分散と状態は情報形式と等価になり、以下と定義する。 {{Indent| <math>Y_{k|k-1} \triangleq P_{k|k-1}^{-1} </math><br /> <math>\hat{\boldsymbol{y}}_{k|k-1} \triangleq P_{k|k-1}^{-1}\hat{\boldsymbol{x}}_{k|k-1} </math> }} 観測共分散と観測ベクトルがあるとして、以下で定義する。 {{Indent| <math>I_k \triangleq H_k^\textrm{T} R_k^{-1} H_k </math><br /> <math>\boldsymbol{i}_k \triangleq H_k^\textrm{T} R_k^{-1} \boldsymbol{z}_k </math> }} このとき、情報更新は簡便な和算となる。 {{Indent| <math>Y_{k|k} = Y_{k|k-1} + I_k</math><br /> <math>\hat{\boldsymbol{y}}_{k|k} = \hat{\boldsymbol{y}}_{k|k-1} + \boldsymbol{i}_k</math> }} 情報フィルターの主たる優位性は、以下に示すように、N 個の観測値は各時間毎に、観測値の情報行列と情報ベクトルの和算でシンプルにフィルター処理される点である。 {{Indent| <math>Y_{k|k} = Y_{k|k-1} + \sum_{j=1}^N I_{k,j}</math><br /> <math>\hat{\boldsymbol{y}}_{k|k} = \hat{\boldsymbol{y}}_{k|k-1} + \sum_{j=1}^N \boldsymbol{i}_{k,j}</math> }} 情報フィルターを予測するために、<!--情報行列と情報ベクトルはそれらの状態空間と等価な空間へと変換され、もしくはもうひとつの方法として、-->情報空間予測を用いることができる<ref>なお、<math> A^{\mathrm{-T}} = \left( A^{-1} \right)^\textrm{T} </math></ref>。 {{Indent| <math>\tilde{Y}_{k|k-1} = {F_k}^{\mathrm{-T}} Y_{k-1|k-1} F_k^{-1} </math> <math>A_k = \left( G_k^\textrm{T} \tilde{Y}_{k|k-1} G_k +Q_k^{-1} \right)^{-1} G_k^\textrm{T} \tilde{Y}_{k|k-1} </math><br /> <math>C_k = F_k^{-1} \left( \mathrm{I} - G_k A_k \right) </math><br /> <math>Y_{k|k-1} = C_k^\textrm{T} Y_{k-1|k-1} F_k^{-1} = C_k^\textrm{T} Y_{k-1|k-1} C_k + A_k^\textrm{T} Q_k^{-1} A_k </math><br /> <math>\hat{\boldsymbol{y}}_{k|k-1} = C_k^\textrm{T} \hat{\boldsymbol{y}}_{k-1|k-1} + Y_{k|k-1} \boldsymbol{u}_k </math> }} なお<math> Q_k = 0</math>であれば、<math>A_k = 0</math>である。''F'' は可逆([[正則行列|正則]])の必要がある。 注意すべきは、もし ''F'', ''G'', ''Q'' が[[時不変]](time invariant)ならば、それらの値は保存しておける点である。 ==固定区間平滑化== 固定区間平滑化(fixed-interval smoother)は、平滑化解<math>\hat{\boldsymbol{x}}_{k|n} </math>および<math>P_{k|n} </math>(<math>k = 1,\,2,\, \ldots,\, n</math>、<math>n</math>は固定値とする)を求める。 Rauch–Tung–Striebel<ref>{{ cite journal | last = Rauch | first = H.E. | last2 = Tung | first2 = F. | last3 = Striebel | first3 = C. T. | title = Maximum likelihood estimates of linear dynamic systems | journal = AIAA J | volume = 3 | issue = 8 | pages = 1445–1450 | date=August 1965 | url = http://pdf.aiaa.org/getfile.cfm?urlX=7%3CWIG7D%2FQKU%3E6B5%3AKF2Z%5CD%3A%2B82%2A%40%24%5E%3F%40%20%0A&urla=%25%2ARL%2F%220L%20%0A&urlb=%21%2A%20%20%20%0A&urlc=%21%2A0%20%20%0A&urld=%21%2A0%20%20%0A&urle=%27%2BB%2C%27%22%20%22KT0%20%20%0A | doi = 10.2514/3.3166 }}</ref>の関係式(<math>k \leq l</math>): : <math>\boldsymbol{t}_k \triangleq \hat{\boldsymbol{x}}_{k|l} - C_k \hat{\boldsymbol{x}}_{k+1|l} </math> : <math>T_k \triangleq P_{k|l} - C_k P_{k+1|l} {C_k}^\mathrm{T} </math> : <math>C_k \triangleq P_{k|k} {F_{k+1}}^\mathrm{T} {P_{k+1|k}}^{-1} </math> において、<math>\boldsymbol{t}_k </math>、<math>T_k </math>の右式は<math>l</math>に依存しない。なお<math>C_k</math>は情報フィルターのそれに等しい。 これを用いて固定区間平滑化解が求められる。すなわちフィルター計算で<math>k=l</math>における上記の値を求めておき、それらを用いて、 : <math>\hat{\boldsymbol{x}}_{k|n} = C_k \hat{\boldsymbol{x}}_{k+1|n} + \boldsymbol{t}_k </math> : <math>P_{k|n} = C_k P_{k+1|n} {C_k}^\mathrm{T} + T_k </math> を逆方向(backward)すなわち、''k''が減る方向に逐次計算し平滑化解が求められる。ここで計算が丸め誤差を持っていても、<math>P_{k|n} </math>は必ず半正定値となる。 また、上記を変形すると、Bryson–Frazierの固定区間平滑化<ref name=bryson>{{ cite journal | last = Bryson | first = A. E. | last2 = Frazier | first2 = M. | title = Smoothing for linear and nonlinear systems | year = 1963 | institution = Aeronautical Systems Division, Wright-Patterson Air Force Base | number = ASD-TDR-63-119 | pages = 353-364 }}</ref>と等価の式が得られる。すなわち、 : <math> \boldsymbol{\lambda}_k = C_k \boldsymbol{\lambda}_{k+1} - K_k \boldsymbol{e}_k </math> : <math> \Lambda_k = C_k \Lambda_{k+1} {C_k}^\mathrm{T} + K_k S_k {K_k}^\mathrm{T} </math> : <math> \boldsymbol{\lambda}_k \triangleq \hat{\boldsymbol{x}}_{k|k-1} - \hat{\boldsymbol{x}}_{k|n} </math> : <math> \Lambda_k \triangleq P_{k|k-1} - P_{k|n} </math> : <math> \boldsymbol{\lambda}_{n+1} = \boldsymbol{0} </math> : <math> \Lambda_{n+1} = 0 </math> また、Biermanによって上記の変形式が得られている<ref name=bierman>{{ cite journal | last = Bierman | first = G.J. | title = Fixed interval smoothing with discrete measurements | year = 1973 | journal = International Journal of Control | volume = 8 | pages = 65-75}}</ref>。これは、<math>{P_{k+1|k}}^{-1}</math>という逆行列計算を必要とせず平滑化解を得られる。すなわち、 : <math> \tilde{\boldsymbol{\lambda}}_k = \tilde{C}_k \tilde{\boldsymbol{\lambda}}_{k+1} - {H_k}^\mathrm{T} {S_k}^{-1} \boldsymbol{e}_k </math> : <math> \tilde{\Lambda}_k = \tilde{C}_k \tilde{\Lambda}_{k+1} {\tilde{C}_k}^\mathrm{T} + {H_k}^\mathrm{T} {S_k}^{-1} H_k </math> : <math> \tilde{C}_k \triangleq \left(\mathrm{I}-K_k H_k\right)^\mathrm{T} {F_{k+1}}^\mathrm{T} </math> : <math> \tilde{\boldsymbol{\lambda}}_k \triangleq {P_{k|k-1}}^{-1} \boldsymbol{\lambda}_k </math> : <math> \tilde{\Lambda}_k \triangleq {P_{k|k-1}}^{-1} \Lambda_k {P_{k|k-1}}^{-1} </math> ==非線形カルマンフィルター== ここまでは線形の仮定が成り立つ系をとりあつかってきたが、実際の系の多くは非線形である。時間発展モデルも観測モデルもどちらも非線形になりうる。 ===拡張カルマンフィルター=== ここでは時間発展モデル {{Indent|<math>\boldsymbol{x}_k = f(\boldsymbol{x}_{k-1}, \boldsymbol{u}_k, \boldsymbol{w}_k)</math>}} と、観測モデル {{Indent|<math>\boldsymbol{z}_k = h(\boldsymbol{x}_k, \boldsymbol{v}_k)</math>}} を考える。どちらも微分可能であれば線形である必要はない。関数 ''f'' は前の状態から推定値を与え、関数 ''h'' は観測値を与える。どちらの関数も直接共分散を求めることはできず、偏微分行列([[ヤコビアン]])を用いる必要がある。 原理としては、非線形モデルを現在の推定値の回りで線形化する。そのためにそれぞれの時刻で、ヤコビアンを計算する。すなわち、 '''予測''' {{Indent| <math>\hat{\boldsymbol{x}}_{k|k-1} = f(\hat{\boldsymbol{x}}_{k-1|k-1}, \boldsymbol{u}_k, 0)</math> <math> P_{k|k-1} = F_k P_{k-1|k-1} F_k^\textrm{T} + G_k Q_k G_k^\textrm{T}</math> }} '''更新''' {{Indent| <math>\boldsymbol{e}_k = \boldsymbol{z}_k - h(\hat{\boldsymbol{x}}_{k|k-1}, 0)</math> <math>S_k = H_kP_{k|k-1}H_k^\textrm{T} + R_k</math> <math>K_k = P_{k|k-1}H_k^\textrm{T}S_k^{-1} </math> <math>\hat{\boldsymbol{x}}_{k|k} = \hat{\boldsymbol{x}}_{k|k-1} + K_k\boldsymbol{e}_k </math> <math> P_{k|k} = (\mathrm{I} - K_k H_k) P_{k|k-1} </math> }} 出てくる行列は次のヤコビアンで定義される。 {{Indent| <math> F_k = \left . \frac{\partial f}{\partial \boldsymbol{x} } \right \vert _{\hat{\boldsymbol{x}}_{k-1|k-1},\boldsymbol{u}_k} </math> <math> H_k = \left . \frac{\partial h}{\partial \boldsymbol{x} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}} </math> }} ===Unscented カルマンフィルター=== 非線形性の強いとき、拡張カルマンフィルターの性能は悪い。理由は平均値だけが非線形性に反映されるからである。'''unscented カルマンフィルター'''は、シグマ点とよばれる代表点を平均値の回りで用いて、推定値の共分散を計算する。こうすることにより、真の平均と共分散により近い値が得られることが[[モンテカルロ法]]や、[[テイラー展開]]によって示される。しかも解析的にヤコビアンを計算する必要がなくなるという利点がある。これは複雑なモデルでは有利である。 '''予測''' 拡張カルマンフィルターと同様、 unscented カルマンフィルターの予測手続きは更新手続きと別であり、更新手続きに線形カルマンフィルターや拡張カルマンフィルターを用いたり、その逆を行うことも可能である。推定値と共分散には、予測ノイズの平均と共分散項が加えられる。 {{Indent| <math> \boldsymbol{x}_{k-1|k-1}^{a} = [ \hat{\boldsymbol{x}}_{k-1|k-1}^\textrm{T} \quad \mathrm{E}(\boldsymbol{w}_k^\textrm{T}) \ ]^\textrm{T} </math> <math> P_{k-1|k-1}^{a} = \begin{bmatrix} & P_{k-1|k-1} & & 0 & \\ & 0 & &Q_k & \end{bmatrix} </math> }} シグマ点 2''L''+1 個は、付け加えた項から計算される。ここに ''L'' は付け加えた状態項の次元である。 {| style="margin:1ex 0 1ex 2em;" |- |<math>\chi_{k-1|k-1}^{0} </math> |<math>= \boldsymbol{x}_{k-1|k-1}^{a} </math> | |- |<math>\chi_{k-1|k-1}^{i} </math> |<math>=\boldsymbol{x}_{k-1|k-1}^{a} + \left ( \sqrt{ (L + \lambda) P_{k-1|k-1}^{a} } \right )_{i}</math> |<math>i = 1,\ldots L \,\!</math> |- |<math>\chi_{k-1|k-1}^{i} </math> |<math>= \boldsymbol{x}_{k-1|k-1}^{a} - \left ( \sqrt{ (L + \lambda) P_{k-1|k-1}^{a} } \right )_{i-L}</math> |<math>i = L+1,\dots{}2L \,\!</math> |} シグマ点は関数 ''f'' で時間発展する。 {{Indent|<math>\chi_{k|k-1}^{i} = f(\chi_{k-1|k-1}^{i}) \quad i = 0..2L </math>}} 予測値と共分散は重み付き平均で求められる。 {{Indent| <math>\hat{\boldsymbol{x}}_{k|k-1} = \sum_{i=0}^{2L} W_{s}^{i} \chi_{k|k-1}^{i} </math> <math>P_{k|k-1} = \sum_{i=0}^{2L} W_{c}^{i}\ [\chi_{k|k-1}^{i} - \hat{\boldsymbol{x}}_{k|k-1}] [\chi_{k|k-1}^{i} - \hat{\boldsymbol{x}}_{k|k-1}]^\textrm{T} </math> }} 重みは以下のように与えられる。 {{Indent| <math>W_{s}^{0} = \frac{\lambda}{L+\lambda}</math><br /> <math>W_{c}^{0} = \frac{\lambda}{L+\lambda} + (1 - \alpha^2 + \beta)</math><br /> <math>W_{s}^{i} = W_{c}^{i} = \frac{1}{2(L+\lambda)}</math><br /> <math>\lambda = \alpha^2 (L+\kappa) - L \,\! </math> }} ''α = 10<sup>-3</sup>''、''β = 2'' 、''κ = 0'' といった値がよく用いられる。 '''更新''' 予測値と共分散には、上と同様に観測値のノイズの平均と共分散項が加えられる。 {{Indent| <math> \boldsymbol{x}_{k|k-1}^{a} = [ \hat{\boldsymbol{x}}_{k|k-1}^\textrm{T} \quad \mathrm{E}(\boldsymbol{v}_k^\textrm{T}) \ ]^\textrm{T} </math> <math> P_{k|k-1}^{a} = \begin{bmatrix} & P_{k|k-1} & & 0 & \\ & 0 & &R_k & \end{bmatrix} </math> }} シグマ点 2''L''+1 個は、付け加えた項から計算される。ここに ''L'' は付け加えた状態項の次元である。 {| style="margin:1ex 0 1ex 2em;" |- |<math>\chi_{k|k-1}^{0} </math> |<math>= \boldsymbol{x}_{k|k-1}^{a} </math> | |- |<math>\chi_{k|k-1}^{i} </math> |<math>=\boldsymbol{x}_{k|k-1}^{a} + \left ( \sqrt{ (L + \lambda) P_{k|k-1}^{a} } \right )_{i}</math> |<math>i = 1..L \,\!</math> |- |<math>\chi_{k|k-1}^{i} </math> |<math>= \boldsymbol{x}_{k|k-1}^{a} - \left ( \sqrt{ (L + \lambda) P_{k|k-1}^{a} } \right )_{i-L}</math> |<math>i = L+1,\dots{}2L \,\!</math> |} もし、予測手続きも unscented カルマンフィルターで行われていたならば、以下のような変形も可能である。 {{Indent|<math> \chi_{k|k-1} := [ \chi_{k|k-1} \quad \mathrm{E}(\boldsymbol{v}_k^\textrm{T}) \ ]^\textrm{T} \pm \sqrt{ (L + \lambda) R_k^{a} }</math>}} ここに、 {{Indent|<math> R_k^{a} = \begin{bmatrix} & 0 & & 0 & \\ & 0 & &R_k & \end{bmatrix} </math>}} である。シグマ点は関数 ''h'' で観測値に変換される。 {{Indent|<math>\gamma_k^{i} = h(\chi_{k|k-1}^{i}) \quad i = 0..2L </math>}} 重み付き平均で、観測値とその共分散を推定する。 {{Indent| <math>\hat{\boldsymbol{z}}_k = \sum_{i=0}^{2L} W_{s}^{i} \gamma_k^{i} </math> <math>P_{z_kz_k} = \sum_{i=0}^{2L} W_{c}^{i}\ [\gamma_k^{i} - \hat{\boldsymbol{z}}_k] [\gamma_k^{i} - \hat{\boldsymbol{z}}_k]^\textrm{T} </math> }} 推定値と観測値の相関行列 {{Indent|<math>P_{x_kz_k} = \sum_{i=0}^{2L} W_{c}^{i}\ [\chi_{k|k-1}^{i} - \hat{\boldsymbol{x}}_{k|k-1}] [\gamma_k^{i} - \hat{\boldsymbol{z}}_k]^\textrm{T} </math>}} を用いて unscented カルマンゲイン {{Indent|<math>K_k = P_{x_kz_k} P_{z_kz_k}^{-1}</math>}} を計算する。以下は線形の場合と同様である。 {{Indent| <math>\hat{\boldsymbol{x}}_{k|k} = \hat{\boldsymbol{x}}_{k|k-1} + K_k( \boldsymbol{z}_k - \hat{\boldsymbol{z}}_k )</math> <math>P_{k|k} = P_{k|k-1} - K_k P_{z_kz_k} K_k^\textrm{T} </math> }} ===誤差状態カルマンフィルター=== 真の状態''xt''をノミナル状態''x''と誤差状態''δx''に分解する。 <math>x_t=x+\delta x</math> '''状態方程式''' 真の状態方程式を''f''とする。 <math>x_t'=f(x_t)</math> この状態方程式を、ノミナル状態方程式と誤差状態方程式''fe''に分解する。ノミナル状態は真の状態方程式に従うので、以下の式が得られる。 <math>x'+\delta x'=f(x+\delta x)=f(x)+f_e(x,\delta x)</math> 誤差状態方程式の誤差項の2乗を無視することで、線形な誤差状態方程式を得ることができる。 ==応用例== *[[オートパイロット]] *[[経済学]], とくに [[マクロ経済学]]、[[時系列]]、[[計量経済学]] *[[慣性誘導装置]] *[[カーナビゲーション]] *天気予報ガイダンスの[[数値予報]] == 関連項目 == *[[マルリェーの定理]] *[[粒子フィルタ]] *[[アンサンブルカルマンフィルタ]] == 学習用参考図書類 == * 有本卓:「カルマン・フィルター」、産業図書、ISBN 978-4782852545(1977年)。 * 有本卓:「信号処理とシステム制御」、岩波書店(岩波講座情報科学20)(1982年)の第6章「最適フィルター」に離散時間と連続時間のKalmanフィルタの記述。 * 片山徹:「新版 応用カルマンフィルタ」、[[朝倉書店]]、ISBN 978-4254201017(2000年2月1日)。 * 谷荻隆嗣:「カルマンフィルタと適用信号処理」、コロナ社、ISBN 4-339-01125-8 (2005年12月28日)。 * 津野義道:「Kalman-Bucyのフィルター理論」、共立出版、ISBN 4-320-01820-6 (2006年9月20日). * 片山徹:「非線形カルマンフィルタ」、朝倉書店、ISBN 978-4254201482 (2011年11月30日)。 * 足立修一、丸田一郎:「カルマンフィルタの基礎」、[[東京電機大学出版局]]、ISBN 978-4501328900(2012年10月10日)。 * 野村俊一:「カルマンフィルタ:Rを使った時系列予測と状態空間モデル」、共立出版、ISBN 978-4320112537 (2016年9月8日)。 * 大住晃、亀山建太郎、松田吉隆:「カルマンフィルタとシステムの同定:動的逆問題へのアプローチ」、森北出版、 ISBN 978-4627922112(2016年11月)。 * 森平爽一郎:「経済・ファイナンスのためのカルマンフィルター入門」、朝倉書店、ISBN 978-4-254-12841-3(2019年2月1日)。 == 外部リンク == * [https://www.youtube.com/watch?v=zVAq_3HClGs 丸田一郎:「裏口からのカルマンフィルタ入門」] * [https://www.jstage.jst.go.jp/article/sicejl/56/9/56_632/_pdf 足立修一:「線形カルマンフィルタの基礎」、計測と制御、第56巻、第9号、2017年9月号、頁632-637。] == 脚注 == <references/> <!-- 日本語版存在せず、和訳も不明。 *[[Dynamic positioning|Dynamic Positioning System]] *[[Radar tracker]] *[[Simultaneous localization and mapping]] --> {{Normdaten}} {{DEFAULTSORT:かるまんふいるた}} {{制御理論}} [[Category:確率過程]] [[Category:制御理論]] [[Category:信号処理]] [[Category:認識]] [[Category:ロボット制御]] [[Category:数学に関する記事]]
このページで使用されているテンプレート:
テンプレート:Cite journal
(
ソースを閲覧
)
テンプレート:Indent
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Normdaten
(
ソースを閲覧
)
テンプレート:制御理論
(
ソースを閲覧
)
カルマンフィルター
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報