基于fpga的fft算法硬件實現(xiàn)

基于fpga的fft算法硬件實現(xiàn)

ID:12775773

大小:197.50 KB

頁數(shù):5頁

時間:2018-07-19

基于fpga的fft算法硬件實現(xiàn)_第1頁
基于fpga的fft算法硬件實現(xiàn)_第2頁
基于fpga的fft算法硬件實現(xiàn)_第3頁
基于fpga的fft算法硬件實現(xiàn)_第4頁
基于fpga的fft算法硬件實現(xiàn)_第5頁
資源描述:

《基于fpga的fft算法硬件實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、FFT(快速傅里葉變換)是一種非常重要的算法,在信號處理、圖像處理、生物信息學(xué)、計算物理、應(yīng)用數(shù)學(xué)等方面都有著廣泛的應(yīng)用。在高速數(shù)字信號處理中,F(xiàn)FT的處理速度往往是整個系統(tǒng)設(shè)計性能的關(guān)鍵所在。FPGA(現(xiàn)場可編程門陣列)是一種具有大規(guī)??删幊涕T陣列的器件,不僅具有ASIC(專用集成電路)快速的特點,更具有很好的系統(tǒng)實現(xiàn)的靈活性?;贔PGA的設(shè)計可以滿足實時數(shù)字信號處理的要求,在市場競爭中具有很大的優(yōu)勢。因此,F(xiàn)PGA為高速FFT算法的實現(xiàn)提供了一個很好的平臺。  1FFT算法的硬件實現(xiàn)  1.1系統(tǒng)框圖  本設(shè)計利用流水線技術(shù)來提高系統(tǒng)的性能,系統(tǒng)框圖,如圖1

2、所示。其中,地址產(chǎn)生單元生成RAM讀寫地址,寫使能信號以及相關(guān)模塊的啟動、控制信號,是系統(tǒng)的控制核心;4點蝶形運算單元的最后一級輸出不是順序的;旋轉(zhuǎn)因子產(chǎn)生單元生成復(fù)乘運算中的旋轉(zhuǎn)因子的角度數(shù)據(jù);旋轉(zhuǎn)因子ROM中預(yù)置了每一級運算中所需的旋轉(zhuǎn)因子。  在FPGA設(shè)計中,為提高系統(tǒng)的運行速度,而將指令分為幾個子操作,每個子操作由不同的單元完成,這樣,每一級的電路結(jié)構(gòu)得到簡化,從而減少輸入到輸出間的電路延時,在較小的時鐘周期內(nèi)就能夠完成這一級的電路功能。在下一個時鐘周期到來時,將前一級的結(jié)果鎖存為該級電路的輸入,這樣逐級鎖存,由最后一級完成最終結(jié)果的輸出。也就是說,流水

3、線技術(shù)是將待處理的任務(wù)分解為相互有關(guān)而又相互獨立、可以順序執(zhí)行的子任務(wù)來逐步實現(xiàn)。本設(shè)計中,4點蝶形運算單元、旋轉(zhuǎn)因子復(fù)乘模塊以及最后的精度截取模塊采用流水線技術(shù)來處理?! ?.2基4蝶形運算算法原理  式(1)為基4蝶形運算單元的一般表達(dá)式,其中,,N為FFT運算的點數(shù),本設(shè)計中為1024,p為旋轉(zhuǎn)因子W的相位角,其規(guī)律將在1.4節(jié)討論。X(0)、X(1)、X(2)、X(3)為原始數(shù)據(jù),順序輸入RAM后蝶形倒序輸出,與旋轉(zhuǎn)因子復(fù)乘再進(jìn)行4點蝶形運算,而X1(0)、X1(1)、X1(2)、X1(3)即為第1級蝶形運算的結(jié)果。此時RAM存儲的原始數(shù)據(jù)已經(jīng)清空,將第1

4、級蝶形運算結(jié)果再存回RAM中,按照一定的地址輸出后,與第2級的旋轉(zhuǎn)因子復(fù)乘、4點蝶形運算,得到第2級蝶形運算結(jié)果,依此類推。由于蝶形運算為同址操作,所以第2級的RAM寫地址即為第一級的RAM讀地址,每一級的RAM讀地址規(guī)律將在1.3節(jié)中討論?! ?024點的基4-FFT共需要5級蝶形運算,每級需要計算256個蝶形,其傳統(tǒng)實現(xiàn)框圖如圖2所示?! 】紤]到第一級蝶形運算不需要旋轉(zhuǎn)因子,所以第一級的旋轉(zhuǎn)因子復(fù)乘模塊可以省略,但本設(shè)計的硬件結(jié)構(gòu)需要循環(huán)利用,一般情況下,可以對第一級數(shù)據(jù)進(jìn)行×1運算,再進(jìn)行4點蝶形運算。不過,考慮到我們并不關(guān)心每一級蝶形運算后的結(jié)果,本文提出

5、了一種蝶形運算的新結(jié)構(gòu):即先進(jìn)行前一級的4點蝶形運算,再進(jìn)行本級的與旋轉(zhuǎn)因子復(fù)乘運算,如圖3所示?! 】梢钥闯?,圖3減少了一個旋轉(zhuǎn)因子復(fù)乘模塊,不但節(jié)約了一次乘法運算時間,也省略了第一級旋轉(zhuǎn)因子,更好地利用了硬件結(jié)構(gòu)?! ∈紫龋赒uartusⅡ環(huán)境中對4點蝶形運算時序仿真,采用流水線設(shè)計,連續(xù)輸入連續(xù)輸出,仿真結(jié)果如圖4所示?! ∮蓤D4可以看出,輸出比輸入延時6個時鐘,這在系統(tǒng)的控制核心地址產(chǎn)生單元的設(shè)計中需要考慮到?! ?.3地址產(chǎn)生與時序控制  對于1024.點基4FFT運算,需要5級蝶形運算,每一級運算都要有寫地址和讀地址,根據(jù)FFT同址運算的特點可知,當(dāng)

6、前的寫地址即是上一級蝶形運算的讀地址。因此完成FFT運算需要設(shè)計6級RAM地址。其中第1級的寫地址即是數(shù)據(jù)輸入的順序地址,不予討論。最后一級讀地址為數(shù)據(jù)正序輸出所需的地址。其余4級為1024點數(shù)據(jù)對應(yīng)的FFT蝶形運算。  第一級讀取節(jié)點地址的順序應(yīng)該是:(0,256,512.768),(1,257,513,769),……,(255,511.767,1023)。易觀察其讀地址的規(guī)律如下:設(shè)讀取次序的二進(jìn)制編碼為bit[9:0];則讀地址的二進(jìn)制編碼為{bit[1:O],bit[9:2]},并且依次可以推出第2、3、4級的讀地址二進(jìn)制編碼分別為{bit[9:8],bi

7、t[1:0],bit[7:2]},{bit[9:6],bit[1:0],bit[5:2]}、{bit[9:4],bit[1:0],bit[3:2]},而最后一級輸出數(shù)據(jù)的地址二進(jìn)制編碼則為:{bit[1:0],bit[3:2],bit[5:4],bit[7:6],bit[9:8]}。圖5給出了第1級讀地址和第2級讀地址的部分?jǐn)?shù)據(jù),也可以看出第2級的寫地址即是第1級的讀地址?! D1中的地址產(chǎn)生單元作為系統(tǒng)的控制核心,不僅要生成每一級的RAM讀寫地址,還要產(chǎn)生RAM寫使能信號、輸出有效信號以及4點蝶形運算單元和旋轉(zhuǎn)因子產(chǎn)生單元的啟動信號,由于時序電路還需要考慮器件延

8、時,例如上

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。