Matlab でカルマン フィルターを構築するために使用したい状態空間モデルのパラメーターの推定に問題があります。
S_t = S_(t-1)+e_t
Y_t = B*S_t+v_t
Y_t
約 20 の時系列を含む観測行列はどこS_t
にあり、スカラーであると想定されています。B
パラメータ行列を推定するサンプル コードが見つからず、これまでのところすべてのテストが失敗しています。
Matlab でカルマン フィルターを構築するために使用したい状態空間モデルのパラメーターの推定に問題があります。
S_t = S_(t-1)+e_t
Y_t = B*S_t+v_t
Y_t
約 20 の時系列を含む観測行列はどこS_t
にあり、スカラーであると想定されています。B
パラメータ行列を推定するサンプル コードが見つからず、これまでのところすべてのテストが失敗しています。
カルマン フィルターで何をすべきかを簡単な言葉で説明しようと思います。より良いアドバイスが必要な場合は、質問してより多くの情報を提供してください。
カルマン フィルターでは、動的システム (時間とともに変化する) の真の状態を推定しようとします。あなたの場合の状態はS_t
(いくつかのシステムからの電流、GPS位置、またはその他の数値または数値のセットである可能性があります)です。S_(t-1)
動的システムでは、通常、状態から状態への変化について通知する遷移マトリックスがありますS_t
。あなたが書いたように、遷移行列は1に等しくなるようです。つまり、ガウスノイズが追加された場合にのみ、前の値と同じ値を期待する必要があります。ガウス ノイズは、モデル化が難しく、状態と相関しないすべての異なるソースから発生します。
これで、システムの状態は通常、何らかのセンサーによって測定され、Y_t
センサーからの読み取り値が得られます。読み取り値は、B
観測行列によって状態に関連付けられます。v_t
すべてのセンサーには、センサーの不完全性に起因するノイズがあります。は、Y_t
推定したい状態の読み取り値です。
Y_1
あなたが書いたこの文章から、 からまでの 20 の読みがあることがわかりますY_20
。20 秒後、たとえば 20 秒後の動的システムの状態の真の値を推定したいとします。S_t=A*S_(t-1)+e_t
最初に、遷移行列が A=1 であり、 と同じであることが正しいかどうかを考える必要がありますS_t=S_(t-1)+e_t
。モデルA
化するには、動的システムに関するある程度の知識が必要です。多くの場合、微分方程式を使用してモデル化されます。システムをモデル化した後、この推定したいものと測定値 (センサーに来るもの) との関係を考えると、B
.
カルマン フィルターは反復フィルターであるため、時系列のY
場合、モデルを接続して測定を反復します。Y-2
、Y_3
、 ... までY_20
の推定と、推定がどれだけ優れているかを示す誤差共分散で終了する必要があります。
この手順について考えてみてください。何か助けが必要な場合は、コメントで提案されている詳細を提供して、良い質問をしてください。
幸運を