新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的Kalman濾波器實現(xiàn)研究

基于FPGA的Kalman濾波器實現(xiàn)研究

作者: 時間:2012-04-25 來源:網(wǎng)絡(luò) 收藏

2 在中實現(xiàn)濾波算法研究
由于實現(xiàn)濾波解算速度非???,若利用的串行口依次輸入觀測值,由于數(shù)據(jù)串行輸入的特點,會使FPGA的解算部分等待數(shù)據(jù)接收完畢才能執(zhí)行濾波解算,導致整體的解算時間過長。為檢驗FPGA實現(xiàn)的計算性能,本文預(yù)先將觀測值輸入并保存于FPGA內(nèi)的ROM中,以使FPGA可以連續(xù)地進行濾波解算,實現(xiàn)方案原理如圖1所示。

本文引用地址:http://m.butianyuan.cn/article/190479.htm

和Pk+1/k,然后進入S2狀態(tài),計算Kk+1,最后計算解算結(jié)果j.jpg和Pk+1/k+1。計算Kk+1時,也需要將其分步實現(xiàn)。若將各步的解算歸于同一個狀態(tài)機內(nèi),則顯得邏輯復(fù)雜。為使得各步的邏輯更加清晰,并且增加狀態(tài)機的穩(wěn)定性和安全性,使用交互狀態(tài)機,如圖2所示。

e.JPG


圖2中,狀態(tài)機的交互過程中,沒置標志信號enble和finish分別用于啟動和終止計算K值的狀態(tài),初始化時其值均為0。當計算完第一步進入S2時,enble置為1,啟動計算K值的狀態(tài);當K值計算完成時,finish置為1,進入S3,enble和finish置為初值0,為下次狀態(tài)交互做準備。進入原狀態(tài)機繼續(xù)進行下面的計算。
書寫狀態(tài)機時,采用三段式寫法,一個模塊采用同步時序描述狀態(tài)轉(zhuǎn)移,另一個模塊采用組合邏輯判斷轉(zhuǎn)移條件并進行狀態(tài)轉(zhuǎn)移,第三個模塊實現(xiàn)同步輸出。三段式描述方法的狀態(tài)機,做到了同步寄存器輸出,消除了組合邏輯輸出的不穩(wěn)定和毛刺現(xiàn)象,而且更利于時序路徑分組,綜合與布局布線效果更佳。
2.3 資源分時復(fù)用
FPGA設(shè)計中,資源與速度是個矛盾體。FPGA中的資源是有限的,所以必須考慮資源的節(jié)省問題。由于Kalman濾波可以分3步進行,所以每一步可以利用其它步中相同的資源。此種方法可以在不降低總體速度的情況下,減少資源利用量;而對于階次較高的Kalman濾波,此方法可以最大限度的增加并行性,提高速度。該設(shè)計中用到大量的乘法器、加法器以及CLB等資源,計算第一步時用到的資源會在第二步和第三步中用到,即同一資源被用到3次。以其中用到的某乘法器的分時復(fù)用為例,其輸入端口在不同的時刻可以有不同的賦值,實現(xiàn)語句如下:
f.JPG



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉