カルマンフィルタについて

このエントリーをはてなブックマークに追加
70名無しさん@3周年
>>69
よくわかったな。

学生さんか、、、俺も大人気なかった。参考にしてくれ。

Q カルマンフィルタとは何か?
ここでは話を簡単にするために線形定常カルマンフィルタを説明する。
現実問題として定常か擬似定常でないと工学的な利用なんて無理。

具体的な説明じゃなくて感覚を知ってもらうために連続系でとりえず
説明する。情報系なら回路論で線形微分方程式知ってるだろうから。

次の確率微分方程式 aはダイナミクス、uは入力、wが観測雑音
a(n)d^n/dt^n・y(t)+a(n-1)d^(n-1)/dt^(n-1)・y(t)+...+a(1)d/dt・y(t)= u(t)+w(t)
があったとき。状態変数ベクトルxを導入して、
・ d/dt・x(t) = F・x(t) + G・u(t)
・ y(t)=H・x(t)+w(t)
と書き換えられたとすると、推定誤差の2乗平均値が最小になるように状態変数ベク
トルxを推定する(最小2乗法からの導出)のがカルマンフィルタ。
観測出来るのはy(t)+w(t),既知なのはa,wの電力。
F,G,Hの決め方は教科書見てくれ。
状態変数についてだけ書いとくと、
x(1)=y(t)
x(2)=d/dt・y(t)
...
x(n)=d^(n-1)/dt^(n-1)・y(t)
と選べるのでy(t)を微分してすぐ求められそうだがなにしろ観測雑音があるので
y(t)+w(t)しかわからずy(t)の真値というのが実はわからない。
71名無しさん@3周年:03/12/01 23:50 ID:VsSXrkOs
式に間違いがあった。左辺に+y(t)が抜けてた。
a(n)d^n/dt^n・y(t)+a(n-1)d^(n-1)/dt^(n-1)・y(t)+...+a(1)d/dt・y(t)+y(t)= u(t)+w(t)
要は形として回路方程式に雑音が加わったもの。

補足
 多分、制御系の教科書は離散系でかついきなり状態空間表現を用いて説明
に入るが電気系なら回路方程式を知ってるだろうから連続系を持ち出した。
ダイナミクスに相当するのがL,C,Rと解釈してくれ。
ふつうの微分方程式をイメージしてもらってかまわないが、u(t)が
ランダムに変動して確定的でないところが普通の微分方程式との違い。
本来、情報信号のようなランダム信号をを回路で扱う場合は初期値や境界値
だけを決めるとすべてが確定してしまう微分方程式じゃなくて確率微分方程式
として扱うのが妥当なんだが、回路を解くなんてことをしたいので、
u(t)として解析的に取り扱える初等関数を使って過渡現象論や回路論は構成される。
特に回路論のフェーザ解析はu(t)に正弦波を使って電流も電圧も同じ周波数で
振動している状態だけを扱うことは知ってると思う。
72名無しさん@3周年:03/12/02 00:28 ID:Dk5QUdr1
カルマンフィルタの利用方法のポイントは状態空間式をどう構成するか?ってこと。

たとえば、F,G,Hをうまく選んで入力信号を直接推定するLuckyの等化器や
最終的に欲しいのは入力信号であるが、カルマンフィルタで一旦ダイナミクスを
推定し、得られたダイナミクスの逆フィルタ(*)を通すことでもとの入力信号が推定
する利用法もある。カルマンフィルタの使い方としては実は後者が多い。
何でダイナミクスの推定に使えるかというとアフォみたいな話なのだが・・・
状態方程式を差分表現すると
Σa(i)y(n-i)=u(n)+w(n)
なのでuとyが既知なら推定対象をy(実は状態変数xなのだが)からaに交換できる
ことが式からただちに読み取れると思う。

(*)実際は逆フィルタには安定性の問題があるのでダイナミクス推定ではなく
等化フィルタのタップ係数を推定することが多い。
73名無しさん@3周年:03/12/02 01:40 ID:Dk5QUdr1
Q LMSとの違い
LMSもカルマンフィルタも
次の逐次式によって推定値を更新する。
・推定値_new = 推定値_old + ゲインベクトル×観測誤差ベクトル
最大の違いはゲインベクトルの決定の仕方にある。
LMSは固定値を用いるのに対して、カルマンフィルタは与えられた
データ空間を使って常に評価関数である"推定誤差の2乗芸平均"を最小にするように
ゲインベクトルが選ばれる(カルマンフィルタのゲインベクトルはカルマンゲインと呼ばれる)。つまり、最小にする努力をしないLMSは評価関数が最小には絶対ならない。また、収束にも時間がかかってしまう。

但し、
カルマンフィルタはあくまでも評価関数を最小にするフィルタであって、
確率的に真の推定値(最尤推定)になるとは限らないことは注意すべきポイント。
こんなところか・・・