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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 利用FFT IP Core實(shí)現(xiàn)FFT算法

          利用FFT IP Core實(shí)現(xiàn)FFT算法

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

          3.1 運(yùn)算器

          運(yùn)算器采用 實(shí)現(xiàn),其引擎結(jié)構(gòu)為雙Single-output,I/O數(shù)據(jù)流采用突發(fā)(Burst)方式。FFT 采用Atlantic Interface協(xié)議,輸入

          接口視為主接收器,輸出接口視為主發(fā)送器。具體接口定義如表1所示。

          64.gif

          具體的工作流程:系統(tǒng)復(fù)位后,數(shù)據(jù)源將master_sink_dav置位,表示有采樣數(shù)據(jù)等待輸入;作為回應(yīng),F(xiàn)FT 將master_sink_ena置位,表示可以接收輸入數(shù)據(jù);數(shù)據(jù)源加載第一個復(fù)數(shù)數(shù)據(jù),同時master_sink_sop置位,表示輸入數(shù)據(jù)塊的起始;下一個時鐘,master_sink_sop被清零,輸入數(shù)據(jù)按照自然順序被加入。輸入數(shù)據(jù)達(dá)到256點(diǎn)時,系統(tǒng)自然啟動FFT運(yùn)算。通過inv_i信號的置位/清零可以改變單個數(shù)據(jù)塊的FFT轉(zhuǎn)換方向,inv_i信號必須和master_sink_sop信號嚴(yán)格同步。當(dāng)FFT轉(zhuǎn)換結(jié)束時,子接收器已經(jīng)將master_source_dav信號置位,表示子接收器可以接收FFT的轉(zhuǎn)換結(jié)果;同時,master_source_ena信號置位,F(xiàn)FTCore按照自然順序輸出運(yùn)算結(jié)果;在輸出過程中,

          master_source_sop和master_source_eop信號被置位,表示輸出數(shù)據(jù)塊的起始和結(jié)束。詳細(xì)的描述參見文獻(xiàn)[4]。

          3.2 控制器與后處理單元

          控制器大體可分為三個部分:輸入緩沖控制(c_i)、FFT運(yùn)算控制(c_f)、輸出緩沖控制(c_o)。c_i為輸入緩沖器提供讀/寫地址和相應(yīng)的讀/寫

          控制信號;c_f為FFT運(yùn)算器提供控制信號,嚴(yán)格控制FFT Core的工作時序;c_o為輸出緩沖器提供讀/寫地址及讀/寫控制信號??刂破魍ㄟ^VHDL語言編程的狀態(tài)機(jī)方式可以輕易實(shí)現(xiàn)。后處理單元其實(shí)是式(2)和式(3)的硬件實(shí)現(xiàn),具體的原理如圖2所示。

          65.jpg
          圖2后處理單元原理圖

          圖中標(biāo)識“mux”、“+”、“-”、“1/2”分別表示選擇器、加法器、減法器和除法器,dr、di、dnr、dni分別與式(1)和式(2)中的Zr(k)、

          Zi(k)、Zr(N-k)、Zi(N-k)相對應(yīng)。當(dāng)sel等于0時,提取第一路實(shí)序列的頻譜數(shù)據(jù)G(k),實(shí)現(xiàn)式(1)功能;當(dāng)sel等于1時,提取第二路實(shí)序列的頻譜數(shù)據(jù),實(shí)現(xiàn)式(2)功能。



          關(guān)鍵詞: FFT Core IP 算法

          評論


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