2013-03-17 192 views
1

我無法估計,我想用它來建立我的卡爾曼濾波器在Matlab我的狀態空間模型的參數:卡爾曼濾波MLE參數估計

S_t = S_(t-1)+e_t 
Y_t = B*S_t+v_t 

哪裏Y_t是包含約20時的觀測矩陣系列和S_t應該是一個標量。我還沒有找到任何示例代碼來估計我的B參數矩陣,到目前爲止我所有的測試都沒有成功。

+0

嗨。 StackOverflow通常會拒絕不顯示任何努力的答案,因此請顯示迄今爲止所做的工作,並解釋爲什麼它不成功。 – 2013-03-17 11:21:07

回答

1

我會盡量用簡單的語言來解釋你應該如何處理卡爾曼濾波器。如果您想要更好的建議,請詢問並提供更多信息。

在卡爾曼濾波器中,您嘗試估計動態系統(隨時間變化)的真實狀態。在你的情況下,狀態是S_t(可能是來自某個系統的電流,GPS位置或任何其他數字或一組數字)。在動態系統中,通常有一個轉換矩陣,告訴你從狀態S_(t-1)到狀態S_t的變化。正如你寫的,似乎你的轉換矩陣將等於1.換句話說,你應該期望與以前的值相同的值,只有增加了高斯噪聲。高斯噪聲來自所有不同的來源,這些來源很難建模,與您的狀態無關。

現在您的系統狀態通常由某個傳感器測量,並且您有一個來自傳感器的讀數Y_t。讀數與B觀測矩陣的狀態有關。每個傳感器都有其噪音v_t,它來自傳感器的缺陷。而Y_t是你想估計的你的狀態的讀數。

在這個你寫的我可以理解你有20個讀數從Y_1Y_20。你想估計20次讀數後動態系統狀態的真實值,比如說20秒。首先,您需要考慮您的轉換矩陣是否爲A = 1,並且S_t=A*S_(t-1)+e_tS_t=S_(t-1)+e_t相同。要模擬A,您需要了解動力系統的一些知識,通常使用微分方程進行建模。在對系統進行建模之後,請考慮您想要估計的內容與您的測量(傳感器上的內容)之間的關係,這會導致您的B

卡爾曼濾波器是一個迭代濾波器,因此您的時間序列Y可以插入模型並迭代測量。你應該完成估計爲Y-2,Y_3,...到Y_20以及錯誤協方差,它告訴你你的估計有多好。

想想這個程序,如果你想得到任何幫助,請按照評論建議提供更多詳細信息。

祝你好運