<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          3 性能對比及分析
          為驗證本文研究利用實現(xiàn)濾波算法的性能,采用二階進行實際性能對比測試。建立數(shù)學(xué)模型如下:選取狀態(tài)轉(zhuǎn)移矩陣g.JPG,無控制量,即控制陣Uk=0,噪聲系數(shù)矩陣k.jpg,Wk是系統(tǒng)動態(tài)噪聲,是均值為0、方差陣為l.jpg的白噪聲隨機序列,觀測系數(shù)矩陣Hk+1=[1,0],Vk+1表示觀測噪聲,為均值為0,方差為2的白噪聲;初始狀態(tài)協(xié)方差陣為m.jpg。
          對于該分別利用三種方式實現(xiàn):采用Matlab在PC機上實現(xiàn)、利用DSP實現(xiàn)和利用實現(xiàn)。其中,PC機為DELL Dimension4700臺式機,安裝Matlab 7.0軟件;DSP選用雙精度浮點型TMS320C6713型號的芯片;型號為XC2VP30,主頻100 MHz,內(nèi)嵌多達136個硬核乘法器和2 MB硬件RAM。為得到更準確合理的結(jié)果,分別截取第1~3次、11~13次、21~23次的計算結(jié)果來對比。因為在PC機上利用Matlab實現(xiàn)的通過軟件設(shè)置可以達到很高的計算精度,所以將其得到的結(jié)果作為標準值(真值),分別用FPGA實現(xiàn)和DSP實現(xiàn)的結(jié)果與其進行對比分析。選取估計均方誤差陣Pk+1/k+1的第一個元素來進行對比分析各實現(xiàn)方式的性能,其解算結(jié)果對比如表2和表3所示。

          本文引用地址:http://www.ex-cimer.com/article/190479.htm

          h.JPG


          由表2可知,利用FPGA實現(xiàn)的濾波結(jié)果,其精度與用Matlab實現(xiàn)的精度相差無幾,且略高于利用DSP實現(xiàn)的單精度的結(jié)果。由表3可知,在解算時間方面,利用FPGA實現(xiàn)方式的快速性遠遠高于利用其他兩種方式。而且,對于階次越高的Kalman濾波器的實現(xiàn),傳統(tǒng)處理器所需的時間越長,利用FPGA實現(xiàn)方式的時間的優(yōu)越性越顯著。

          4 結(jié)語
          針對Kalman濾波的傳統(tǒng)實現(xiàn)方法的不足,本文提出利用具有可并行計算特點的FPGA來實現(xiàn)Kalman濾波的方案,并對FPGA實現(xiàn)Kalman濾波的三種方式進行了研究,確定了利用IP核作為主要計算元件的實現(xiàn)方式。對Kalman濾波實現(xiàn)過程中的關(guān)鍵問題進行了研究和實現(xiàn)。通過對PC機、DSP和FPGA三種實現(xiàn)方式的結(jié)果對比,驗證了利用FGPA實現(xiàn)的Kalman濾波器具有較高的精度和極高的實時性。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();