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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于FPGA IP核的FFT實現(xiàn)

          基于FPGA IP核的FFT實現(xiàn)

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

          處理器模塊采用緩沖突發(fā)數(shù)據(jù)流結(jié)構(gòu)的信號時序圖如圖4所示,在系統(tǒng)復(fù)位信號(reset_n)變?yōu)榈碗娖胶?,?shù)據(jù)源將sink_ready信號置高電平,表明有能力接收輸入信號。數(shù)據(jù)源加載第一個復(fù)數(shù)數(shù)據(jù)樣點到函數(shù)中,同時將sink_sop信號置高電平,表示輸入模塊的開始。在下一個時鐘周期,sink_sop信號被復(fù)位,并以自然順序加載后面的N-1個復(fù)輸人數(shù)據(jù)樣點。

          當(dāng)完全載入輸入模塊時,函數(shù)復(fù)位sink_ena信號,表示FFT不再接收其他輸入數(shù)據(jù)并開始計算輸入數(shù)據(jù)模塊的變換結(jié)果。在FFT處理器內(nèi)部輸入緩沖區(qū)讀取樣點之后,F(xiàn)FT將sink_ena信號重新置高電平,準(zhǔn)備讀取下一個輸入模塊。下一個輸入模塊的起點由sink_sop脈沖確定。當(dāng)FFT完成了輸入模塊的變換,并且從設(shè)備匯端將source_ready信號(表示數(shù)據(jù)從設(shè)備接收器可以接收輸出數(shù)據(jù)模塊)置高電平,并且以自然順序輸出復(fù)數(shù)變換域數(shù)據(jù)模塊。
          4.2 仿真結(jié)果分析
          在編譯綜合后,工程當(dāng)中含有基于FFT 生成的Matlab文件,這樣就可在Matlab下對工程結(jié)果進行進一步測試,構(gòu)建信號,并與Matlab計算的理論結(jié)果進行比較。設(shè)輸入函數(shù)為z(t)=20 000sin(20πt),點數(shù)N=512,采樣頻率為500 Hz,即采樣間隔為O.002 s,采樣的時間長度為O.002 x 512 s,該正弦信號通過512點FFT處理結(jié)果如圖5所示,正弦信號基于Matlab文件仿真結(jié)果如圖6所示。

          由圖5,圖6比較可以看出FFT、處理器處理后的結(jié)果和Matlab計算的理論結(jié)果基本一致。都在第11點和第503點取得最大FFT絕對值,兩者的誤差只是在FFT頻譜絕對值的幅度大小原因:一是Altera FFT兆核函數(shù)的塊浮點輸出與Matlab這種全精度FFT的輸出相比,存在最低位(LSB)被丟棄的影響;二是工程初始化采用的數(shù)據(jù)精度取24位(V7.0 IP最大支持24位數(shù)據(jù)精度)。


          5 結(jié) 語
          在利用FFT IP核進行FFT算法實現(xiàn)的同時,對仿真結(jié)果做了全面分析,由于IP核的可塑性很強,增加了芯片的靈活性。使用Altera FFT的IP Core大大減少了產(chǎn)品的開發(fā)時間,Altera還可進一步實現(xiàn)加窗功能,甚至DDC部分(單端信號向I/Q轉(zhuǎn)換)整合到其FFT處理器模塊中,能進一層次簡化開發(fā)的流程,在今后實際工程應(yīng)用中高效利用。

          fpga相關(guān)文章:fpga是什么



          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA FFT 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); })();