新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > Kaiman濾波算法在FPGA上的設計與實現

        Kaiman濾波算法在FPGA上的設計與實現

        作者: 時間:2012-05-07 來源:網絡 收藏

        2.2 有限狀態機的運用

        有限狀態機是一種用來進行對象行為建模的工具,其作用主要是描述對象在它的生命周期內所經歷的狀態序列,以及如何響應來自外界的各種事件。Kalman濾波中,由于解算過程中的邏輯關系,需要分步進行,所以需要用有限狀態機來控制各步的轉移。根據各步間的邏輯關系,可以將其大致分為4個狀態:S0,S1,S2和S3狀態。其中,S0為初始化狀態,之后進入S1狀態,計算和Pk+1/k,然后進入S2狀態,計算Kk+1,最后計算解算結果和Pk+1/k+1。計算Kk+1時,也需要將其分步實現。若將各步的解算歸于同一個狀態機內,則顯得邏輯復雜。為使得各步的邏輯更加清晰,并且增加狀態機的穩定性和安全性,使用交互狀態機,如圖2所示。

        圖2中,狀態機的交互過程中,沒置標志信號enble和finish分別用于啟動和終止計算K值的狀態,初始化時其值均為0。當計算完第一步進入S2時,enble置為1,啟動計算K值的狀態;當K值計算完成時,finish置為1,進入S3,enble和finish置為初值0,為下次狀態交互做準備。進入原狀態機繼續進行下面的計算。

        書寫狀態機時,采用三段式寫法,一個模塊采用同步時序描述狀態轉移,另一個模塊采用組合邏輯判斷轉移條件并進行狀態轉移,第三個模塊實現同步輸出。三段式描述方法的狀態機,做到了同步寄存器輸出,消除了組合邏輯輸出的不穩定和毛刺現象,而且更利于時序路徑分組,綜合與布局布線效果更佳。

        2.3 資源分時復用

        設計中,資源與速度是個矛盾體。中的資源是有限的,所以必須考慮資源的節省問題。由于Kalman濾波可以分3步進行,所以每一步可以利用其它步中相同的資源。此種方法可以在不降低總體速度的情況下,減少資源利用量;而對于階次較高的Kalman濾波,此方法可以最大限度的增加并行性,提高速度。該設計中用到大量的乘法器、加法器以及CLB等資源,計算第一步時用到的資源會在第二步和第三步中用到,即同一資源被用到3次。以其中用到的某乘法器的分時復用為例,其輸入端口在不同的時刻可以有不同的賦值,實現語句如下:

        3 性能對比及分析

        為驗證本文研究利用實現Kalman的性能,采用二階Kalman濾波器進行實際性能對比測試。建立數學模型如下:選取狀態轉移矩陣,無控制量,即控制陣Uk=0,噪聲系數矩陣,Wk是系統動態噪聲,是均值為0、方差陣為的白噪聲隨機序列

        對于該濾波器分別利用三種方式實現:采用Matlab在PC機上實現、利用DSP實現和利用FPGA實現。其中,PC機為DELL Dimension4700臺式機,安裝Matlab 7.0軟件;DSP選用雙精度浮點型TMS320C6713型號的芯片;FPGA型號為XC2VP30,主頻100 MHz,內嵌多達136個硬核乘法器和2 MB硬件RAM。為得到更準確合理的結果,分別截取第1~3次、11~13次、21~23次的計算結果來對比。因為在PC機上利用Matlab實現的Kalman濾波器通過軟件設置可以達到很高的計算精度,所以將其得到的結果作為標準值(真值),分別用FPGA實現和DSP實現的結果與其進行對比分析。選取估計均方誤差陣Pk+1/k+1的第一個元素來進行對比分析各實現方式的性能,其解算結果對比如表2和表3所示。



        關鍵詞: Kaiman FPGA 濾波算法

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石泉县| 威宁| 孝义市| 安国市| 上林县| 满洲里市| 长泰县| 湘潭县| 始兴县| 河池市| 丰都县| 新宁县| 抚顺县| 平罗县| 竹北市| 乐东| 惠东县| 广昌县| 淮北市| 乐亭县| 定远县| 那曲县| 沙河市| 洞口县| 澜沧| 神池县| 乐昌市| 赤城县| 漳平市| 名山县| 金沙县| 三河市| 伊春市| 中方县| 合山市| 徐闻县| 遂溪县| 昌乐县| 蒙阴县| 徐州市| 苍山县|