基于FPGA的Kalman濾波器的設計
摘要:針對電路設計中經(jīng)常碰到數據的噪聲干擾現象,提出了一種Kalman濾波的FPGA實(shí)現方法。該方法采用了TI公司的高精度模數轉換器ADSl25l以及Altera公司的EPlCl2,首先用卡爾曼濾波算法設計了一個(gè)濾波器,然后將該濾波器分解成簡(jiǎn)單的加、減、乘、除運算。通過(guò)基于FPGA平臺的硬件與軟件的合理設計,成功地實(shí)現了數據噪聲的濾除設計,并通過(guò)實(shí)踐仿真計算,驗證了所實(shí)現濾波的有效性。
關(guān)鍵詞:卡爾曼;FPGA;最小方差估計
卡爾曼濾波是一個(gè)“Optimal Recursive Data Processing Algorithm(最優(yōu)化自回歸數據處理算法)”,對于解決很大部分的問(wèn)題,是最優(yōu)化的,效率最高甚至是最有用的。傳統的卡爾曼濾波是在DSP上實(shí)現的。但是DSP成本相對較高,而且指令是串行執行的,不能滿(mǎn)足有些要求較高的場(chǎng)合。而FPGA由于其硬件結構決定了它的并行處理方式,無(wú)論在速度還是實(shí)時(shí)性都更勝一籌。文中以基于FPGA器件和A/D轉換器的數據采集系統為硬件平臺,進(jìn)行了卡爾曼濾波算法設計,詳述了基于FPGA的卡爾曼濾波器的設計實(shí)現。
1 卡爾曼濾波算法
工程中,為了了解工程對象(濾波中稱(chēng)為系統)的各個(gè)物理量(濾波中稱(chēng)為狀態(tài))的確切數值,或為了達到對工程對象進(jìn)行控制的目的,必須利用測量手段對系統的各個(gè)狀態(tài)進(jìn)行測量。但是,量測值可能僅是系統的部分狀態(tài)或是部分狀態(tài)的線(xiàn)性組合,且量測值中有隨機誤差(常稱(chēng)為量測噪聲)。最優(yōu)估計就是針對上述問(wèn)題的一種解決方法。它能將僅與部分狀態(tài)有關(guān)的測量進(jìn)行處理,得出從統計意義上講誤差最小的更多狀態(tài)的估值。誤差最小的標準常稱(chēng)為估計準則,根據不同的估計準則和估計計算方法,有各種不同的最優(yōu)估計,卡爾曼濾波是一種遞推線(xiàn)性最小方差估計的最優(yōu)估計。
系統的狀態(tài)方程可設定為
式(3)為系統噪聲。設設備的量測噪聲為Vk,系統得量測方程為
式中,是利用當前狀態(tài)預測的結果,
是當前狀態(tài)最優(yōu)的結果,Pk+1/k是
*對應的covariance,Rk是對應的covanance,表示A的轉置矩陣,Q是系統過(guò)程的covariance。式(1),式(2)就是卡爾曼濾波器5個(gè)公式中的前兩個(gè),也就是對系統的預測??梢缘玫綄?lái)狀態(tài)k+l的最優(yōu)化估算值。
式(9)中I為單位矩陣,對于單模型單測量,I=1。當系統進(jìn)入k+2狀態(tài)時(shí),Pk+1就是式(2)的Pk。這樣,算法就可以自回歸的運算下去。
評論