資源描述:
《基于fpga ip核fft實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、窗體頂端搜索:IC庫(kù)存?認(rèn)證庫(kù)存?PDF?文章?窗體底端窗體頂端·用戶名:·密碼:···免費(fèi)注冊(cè)窗體底端·首頁(yè)·資訊:·新聞·應(yīng)用·新品·eBooks·電路圖·視頻·互動(dòng):·博客·論壇·在線研討會(huì)·會(huì)展·資源:·下載·在線工具·器件搜索·服務(wù):·IC庫(kù)存·認(rèn)證庫(kù)存···嵌入式·射頻/通信·傳感/控制·消費(fèi)電子·顯示光電·單片機(jī)·電源·模擬·EDA/PLD·測(cè)試測(cè)量·計(jì)算機(jī)/外設(shè)·汽車電子·醫(yī)療電子·智能電網(wǎng)·照明模擬技術(shù)?關(guān)鍵詞:放大器、轉(zhuǎn)換器、比較器、混合信號(hào)、濾波器、驗(yàn)證您當(dāng)前的位置:首頁(yè)?>?應(yīng)用?>?模擬技術(shù)基于FPGAIP核的FFT實(shí)現(xiàn)時(shí)間:2009-07-1009:19:27
2、來(lái)源:現(xiàn)代電子技術(shù)作者:馬壯齊林馬鵬閣司巍0引言???數(shù)字信號(hào)處理領(lǐng)域中FFT算法有著廣泛的應(yīng)用。目前現(xiàn)有的文獻(xiàn)大多致力于研究利用FFT算法做有關(guān)信號(hào)處理、參數(shù)估計(jì)、F+FT蝶形運(yùn)算單元與地址單元設(shè)計(jì)、不同算法的FFT實(shí)現(xiàn)以及FFT模型優(yōu)化等方面。而FPGA廠商Altera公司和Xilinx公司都研制了FFTIP核,性能非常優(yōu)越。在FFT的硬件實(shí)現(xiàn)中,需要考慮的不僅僅是算法運(yùn)算量,更重要的是算法的復(fù)雜性、規(guī)整性和模塊化,而有關(guān)利用FFTIP核實(shí)現(xiàn)FFT算法卻涉及不多。這里從AlteraIP核出發(fā),建立了基4算法的512點(diǎn)FFT工程,對(duì)不同參數(shù)設(shè)置造成的誤差問(wèn)題進(jìn)行分析,并在EP2C70F
3、896C8器件上進(jìn)行基于QuartusII的綜合仿真,得到利用FFTIP核的FFT算法高效實(shí)現(xiàn),最后利用Matlab進(jìn)行的計(jì)算機(jī)仿真分析證明了工程結(jié)果的正確性。1算法原理???FFT算法是基于離散傅里葉變換(DFT),如式(1)和式(2):???求和運(yùn)算的嵌套分解以及復(fù)數(shù)乘法的對(duì)稱性得以實(shí)現(xiàn)。其中一類FFT算法為庫(kù)利一圖基(Cooley-Tukey)基r按頻率抽選(DIF)法,將輸入序列循環(huán)分解為N/r個(gè)長(zhǎng)度為r的序列,并需要logrN級(jí)運(yùn)算。算法的核心操作是蝶型運(yùn)算,蝶型運(yùn)算的速度直接影響著整個(gè)設(shè)計(jì)的速度。???基4頻域抽取FFT算法是指把輸出序列X(k)按其除4的余數(shù)不同來(lái)分解為越來(lái)
4、越短的序列,實(shí)現(xiàn)x(n)的DFT算法。FFT的每一級(jí)的運(yùn)算都是有N/4個(gè)蝶形運(yùn)算構(gòu)成,第m級(jí)的一個(gè)蝶形運(yùn)算的四節(jié)點(diǎn)分別為Xm(k),Xm(k+N/4m),Xm(k+2N/4m)以及Xm(k+3N/4m),所以每一個(gè)蝶形運(yùn)算結(jié)構(gòu)完成以下基本迭代運(yùn)算:??????式(3)~式(6)中:m表示第m級(jí)蝶形算法;k為數(shù)據(jù)所在的行數(shù);N為所要計(jì)算的數(shù)據(jù)的點(diǎn)數(shù);WN為旋轉(zhuǎn)因子。???將輸入序列循環(huán)分解為4點(diǎn)序列的基4分解,使用4點(diǎn)FFT在乘法上更具優(yōu)勢(shì),Altera的:FFT兆核選用的就是基4運(yùn)算,若N是2的奇數(shù)冪的情況下,F(xiàn)FTIP核則自動(dòng)在完成轉(zhuǎn)換的最后使用基2運(yùn)算。2FFT兆核(IP)函數(shù)???
5、FFTCore支持4種I/O數(shù)據(jù)流結(jié)構(gòu):流(Stream-ing)、變量流(VariableStreaming)、緩沖突發(fā)(BufferedBurt)、突發(fā)(Burst)。流結(jié)構(gòu)允許輸入數(shù)據(jù)連續(xù)處理,并輸出連續(xù)的復(fù)數(shù)據(jù)流,這個(gè)過(guò)程不需要停止FFT函數(shù)數(shù)據(jù)流的進(jìn)出。變量流結(jié)構(gòu)允許輸入數(shù)據(jù)連續(xù)處理,并產(chǎn)生一個(gè)與流結(jié)構(gòu)相似連續(xù)輸出數(shù)據(jù)流。緩沖突發(fā)數(shù)據(jù)流結(jié)構(gòu)的FFT需要的存儲(chǔ)器資源比流動(dòng)I/O數(shù)據(jù)流結(jié)構(gòu)少,但平均模塊吞吐量減少。突發(fā)數(shù)據(jù)流結(jié)構(gòu)的執(zhí)行過(guò)程和緩沖突發(fā)結(jié)構(gòu)相同,不同的是,對(duì)于給定參數(shù)設(shè)置,突發(fā)結(jié)構(gòu)在降低平均吞吐量的前提下需要更少的存儲(chǔ)資源。3FFT處理器引擎結(jié)構(gòu)???FFT兆核函數(shù)可以
6、通過(guò)定制參數(shù)來(lái)使用兩種不同的引擎結(jié)構(gòu):四輸出(Quad-outlput)或單輸出(Signal-output)引擎結(jié)構(gòu)。為了增加FFT兆核函數(shù)的總吞吐量,也可以在一個(gè)FFT兆核函數(shù)變量中使用多個(gè)并行引擎。本文建立一個(gè)基于QuartusⅡ7.O計(jì)算24位512點(diǎn)FFT工程,采用四輸出FFT引擎結(jié)構(gòu),如圖1所示。???復(fù)取樣數(shù)據(jù)X[k,m]從內(nèi)部存儲(chǔ)器并行讀出并由變換開關(guān)(SW)重新排序,排序后的取樣數(shù)據(jù)由基4處理器處理并得到復(fù)數(shù)輸出G[k,m],由于基4按頻率抽選(DIF)分解方法固有的數(shù)字特點(diǎn),在蝶形處理器輸出上僅需要3個(gè)復(fù)數(shù)乘法器完成3次乘旋轉(zhuǎn)因子(有一個(gè)因子為1,不需要乘)計(jì)算。這種
7、實(shí)現(xiàn)結(jié)構(gòu)在一個(gè)單時(shí)鐘周期內(nèi)計(jì)算所有四個(gè)基4蝶形復(fù)數(shù)輸出。???同時(shí),為了辨別取樣數(shù)據(jù)的最大動(dòng)態(tài)范圍,四個(gè)輸出由塊浮點(diǎn)單元(BFPU)并行估計(jì),丟棄適當(dāng)?shù)淖畹臀?LSB),在寫入內(nèi)部存儲(chǔ)器之前對(duì)復(fù)數(shù)值進(jìn)行四舍五入并行重新排序。對(duì)于要求轉(zhuǎn)換時(shí)間盡量小的應(yīng)用,四輸出引擎結(jié)構(gòu)是最佳的選擇;對(duì)于要求資源盡量少的應(yīng)用,單輸出引擎結(jié)構(gòu)比較合適。為了增加整個(gè)FFT吞吐量,可以采用多并行的結(jié)構(gòu)。4系統(tǒng)驗(yàn)證4.1工程仿真???選擇CycloneⅡ系列的