當(dāng)前位置:首頁(yè) > 模擬 > 模擬
[導(dǎo)讀]對(duì)于FFT而言,很多領(lǐng)域都提出了其高速實(shí)時(shí)運(yùn)算的要求。利用FFT IP核實(shí)現(xiàn)FFT算法,并在cycloneⅡ系列的EP2C70F896C8器件上設(shè)計(jì)出處理速度為69.58 MHz的24位512點(diǎn)復(fù)數(shù)FFT處理器需29.3 μs,該方法具有效率高、速度快、周期短、靈活性強(qiáng)等特點(diǎn)。仿真結(jié)果表明此方法具有良好性能。

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公司都研制了FFT IP核,性能非常優(yōu)越。在FFT的硬件實(shí)現(xiàn)中,需要考慮的不僅僅是算法運(yùn)算量,更重要的是算法的復(fù)雜性、規(guī)整性和模塊化,而有關(guān)利用FFT IP核實(shí)現(xiàn)FFT算法卻涉及不多。這里從Altera IP核出發(fā),建立了基4算法的512點(diǎn)FFT工程,對(duì)不同參數(shù)設(shè)置造成的誤差問(wèn)題進(jìn)行分析,并在EP2C70F896C8器件上進(jìn)行基于Quartus II的綜合仿真,得到利用FFT IP核的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的序列,并需要logr N級(jí)運(yùn)算。算法的核心操作是蝶型運(yùn)算,蝶型運(yùn)算的速度直接影響著整個(gè)設(shè)計(jì)的速度。
    基4頻域抽取FFT算法是指把輸出序列X(k)按其除4的余數(shù)不同來(lái)分解為越來(lái)越短的序列,實(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)FT IP核則自動(dòng)在完成轉(zhuǎn)換的最后使用基2運(yùn)算。

2 FFT兆核(IP)函數(shù)
    FFT Core支持4種I/O數(shù)據(jù)流結(jié)構(gòu):流(Stream-ing)、變量流(Variable Streaming)、緩沖突發(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ǔ)資源。

3 FFT處理器引擎結(jié)構(gòu)
    FFT兆核函數(shù)可以通過(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ǔ)器并行讀出并由變換開(kāi)關(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ì)算。這種實(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),在寫(xiě)入內(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Ⅱ系列的EP2C70F896C8芯片來(lái)實(shí)現(xiàn),先在QuartusⅡ軟件下進(jìn)行綜合仿真,初始化參數(shù)設(shè)置FFT變換長(zhǎng)度為512點(diǎn),數(shù)據(jù)和旋轉(zhuǎn)因子精度為24 b,選擇緩沖突發(fā)的數(shù)據(jù)流結(jié)構(gòu),四輸出引擎并行FFT引擎?zhèn)€數(shù)為4個(gè),復(fù)數(shù)乘法器結(jié)構(gòu)為“4/Mults/2Adders”。EP2C70F896C8芯片包括68 416個(gè)邏輯單元,31 112個(gè)寄存器單元,最大用戶輸入/輸出引腳622個(gè),總RAM達(dá)1 152 000 b,其布線資源由密布的可編程開(kāi)關(guān)來(lái)實(shí)現(xiàn)相互間的連接,這種結(jié)構(gòu)完全符合實(shí)現(xiàn)FFT電路的要求。
    經(jīng)綜合和時(shí)序分析得知:其工作時(shí)鐘頻率
69.58 MHz(period=14.372 ns),進(jìn)行一次蝶形運(yùn)算只需約14 ns,全部512點(diǎn)數(shù)據(jù)處理完成則需14.372×4×512=29.3μs滿足時(shí)序要求。具體綜合結(jié)果如圖2所示,為Quartus軟件環(huán)境下仿真得到。

    圖3則表明了FFT的綜合邏輯結(jié)果,為編譯成功后的RTL級(jí)電路描述。

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

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

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


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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉