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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于Nios的FFT算法軟硬件協(xié)同設(shè)計

          基于Nios的FFT算法軟硬件協(xié)同設(shè)計

          作者: 時間:2010-12-07 來源:網(wǎng)絡(luò) 收藏

          摘要:在深入研究自定制指令的接口的基礎(chǔ)上,利用Matlab/DSP Builder建立快速傅里葉變換核心運算指令基本模型,然后用Altera公司提供的Singacompiler工具對其進行編譯,產(chǎn)生 QuartusⅡ能夠識別的VHDL源程序,并將此程序在中自定制成相關(guān)的運算指令。利用自定制的運算指令,在中利用C語言 編寫基于Nios的FFT程序,實現(xiàn)了FFT運算的協(xié)同設(shè)計。經(jīng)測試表明,將FFT加入到Nios嵌入式處理器指令集中,可以幫助系統(tǒng)完成 復(fù)雜的數(shù)據(jù)處理任務(wù),增強Nios系統(tǒng)的實時處理能力。該設(shè)計方法打破了間的屏障,大大加快了系統(tǒng)的功能驗證。
          關(guān)鍵詞:FFT;自定制指令;軟硬件協(xié)同設(shè)計;EP2C5Q208C8

          在自動控制領(lǐng)域,往往要對被控對象進行狀態(tài)檢測,從而作出下一步的處理,達到控制的目的,因此自動控制系統(tǒng)離不開對被控系統(tǒng)的狀態(tài)進行監(jiān)測,以便對其進行 處理,例如滾動軸承故障、電動機故障等均可以利用頻譜分析法對其進行狀態(tài)監(jiān)測和故障診斷。要檢測被控對象的狀態(tài),就離不開數(shù)字信號處理,因此,數(shù)字信號處 理應(yīng)用廣泛。并且FFT(快速傅里葉變換)促進了數(shù)字信號處理的發(fā)展,它可應(yīng)用傅里葉變換理論所能涉及的任何領(lǐng)域。對于FFT工程的實現(xiàn)方法有軟件法和硬 件法,即通過軟件程序完成FFT運算,這種方法可適用于各種數(shù)字信號處理的應(yīng)用場合,很靈活,但缺點是不能進行實時處理。而使用專用硬件完成數(shù)字信號處理 的方法能夠?qū)崿F(xiàn)實時處理,但外圍電路相對復(fù)雜,不易擴展,靈活性差,且價格昂貴。因此人們一方面尋求結(jié)構(gòu)簡單、運算速度快,存儲量小的FFI實現(xiàn)方法,另 一方面采用先進的VLSI技術(shù)改進實現(xiàn)FFT的硬件結(jié)構(gòu),將硬件化。
          Nios嵌入式處理器是FPGA生產(chǎn)廠商Althera推出的軟核CPU,它是一種面向用戶的、可靈活定制的通用RISC嵌入式CPU。用戶可以在 Nios指令系統(tǒng)中增加用戶自定義指令,以增強對強實時軟件算法的處理能力,可以把一個復(fù)雜的標準指令序列簡化為一條用硬件實現(xiàn)的單個指令。特別是在需要 使用大量FFT算法的場合,可以根據(jù)用戶的需要,定制專門的FFT處理器硬件和定制一些諸如復(fù)數(shù)乘法或復(fù)數(shù)加法等傳統(tǒng)運算指令,使Nios系統(tǒng)不但具有常 規(guī)數(shù)字信號處理器功能,而且具有軟件實現(xiàn)FFT運算處理的特點。

          1 FFT算法原理
          1.1 按時間抽取的基-2 FFT算法
          設(shè)序列x(n)長度為N,且滿足N=2M,M為正整數(shù)。按n的奇偶把x(n)分解為2個N/2點的子序列:
          a.JPG
          則可將DFT化為:
          b.JPG
          式中,X1(k)與X2(k)分別是x1(r)及x2(r)的N/2點DFT。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: Nios FFT 算法 軟硬件

          評論


          相關(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); })();