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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用FPGA實(shí)現(xiàn)的FFT變換設(shè)計(jì)

          利用FPGA實(shí)現(xiàn)的FFT變換設(shè)計(jì)

          作者: 時(shí)間:2014-11-27 來源:網(wǎng)絡(luò) 收藏

            隨著集成電路的飛速發(fā)展,在圖像處理,通信和多媒體等很多領(lǐng)域中,數(shù)字信號(hào)處理技術(shù)已經(jīng)被廣泛應(yīng)用??焖俑盗⑷~變換()算法的提出,使得數(shù)字信號(hào)處理的運(yùn)算時(shí)間上面縮短了好幾個(gè)數(shù)量級(jí)。因此對(duì)算法及其實(shí)現(xiàn)方法的研究具有很強(qiáng)的理論和現(xiàn)實(shí)意義。

          本文引用地址:http://www.ex-cimer.com/article/266000.htm

            1 算法及其實(shí)現(xiàn)方法

            現(xiàn)場(chǎng)可編程門陣列是一種可編程使用的信號(hào)處理器件,其運(yùn)算速度高,內(nèi)置高速乘法器可實(shí)現(xiàn)復(fù)雜累加乘法運(yùn)算;同時(shí)其存儲(chǔ)量大,無需外接存儲(chǔ)器就可實(shí)現(xiàn)大量數(shù)據(jù)運(yùn)算;而且算法實(shí)現(xiàn)簡(jiǎn)單,通過VHDL編程語言可輕松實(shí)現(xiàn)功能開發(fā),縮短了開發(fā)周期。已經(jīng)在通訊、視頻、圖像處理等領(lǐng)域被廣泛使用。

            本次設(shè)計(jì)采用實(shí)現(xiàn)8點(diǎn)32位的FFT變換,現(xiàn)場(chǎng)可編程門陣列FPGA是一種可編程使用的信號(hào)處理器件,用戶可以通過改變配置信息對(duì)其功能進(jìn)行定義,以滿足設(shè)計(jì)需求。與DSP相比,F(xiàn)PGA實(shí)現(xiàn)FFT具有速度高,存儲(chǔ)容量大,硬件實(shí)現(xiàn)簡(jiǎn)單,I/O帶寬高等特點(diǎn)。

            FFT處理器被分成一下幾個(gè)主要的功能模塊:數(shù)據(jù)地址產(chǎn)生單元、蝶形運(yùn)算單元、數(shù)據(jù)選擇單元、控制單元、存儲(chǔ)單元等。通過VHDL語言在CycloneII系列芯片上編程實(shí)現(xiàn)。運(yùn)算方案采用順序處理的方法。傅立葉變換實(shí)現(xiàn)時(shí)首先進(jìn)行基2、基4分解,一般來說,如果算法使用基2實(shí)現(xiàn),雖然使用的資源較多,但速度優(yōu)勢(shì)明顯。設(shè)計(jì)中采用基-2DIT-FFT算法來實(shí)現(xiàn)整個(gè)系統(tǒng)的設(shè)計(jì),如圖1所示。

            

           

            圖1

            在FFT模塊的設(shè)計(jì)中,旋轉(zhuǎn)因子與輸入數(shù)據(jù)進(jìn)行的是一個(gè)小數(shù)乘法的蝶形運(yùn)算,需要將旋轉(zhuǎn)因子表示成小數(shù)的二進(jìn)制形式。為了保證運(yùn)算結(jié)果的正確性,還需要將輸入和輸出數(shù)據(jù)進(jìn)行小數(shù)點(diǎn)的調(diào)整。在此次設(shè)計(jì)中采用定點(diǎn)小數(shù)的方法,所謂定點(diǎn)小數(shù),就是小數(shù)點(diǎn)的位置是固定的。設(shè)計(jì)中統(tǒng)一將小數(shù)點(diǎn)放在了Q6的位置,在仿真的結(jié)果圖中顯示的輸出數(shù)據(jù)均是小數(shù)點(diǎn)經(jīng)過移位后的結(jié)果即結(jié)果均擴(kuò)大了64倍。

            復(fù)數(shù)乘法器采用FPGA內(nèi)部IP核的例化與調(diào)用來設(shè)計(jì)實(shí)現(xiàn)了蝶形處理,這樣就可以提高蝶形運(yùn)算單元的的運(yùn)算速度,降低了運(yùn)算復(fù)雜度。控制單元的設(shè)計(jì)通過一個(gè)有限狀態(tài)機(jī)來實(shí)現(xiàn)控制器。通過有限狀態(tài)機(jī)狀態(tài)的輸出分別控制ROM因子表、隨機(jī)存儲(chǔ)器RAM和蝶形處理器。使它們可以協(xié)調(diào)一致地工作,從而實(shí)現(xiàn)FFT運(yùn)算的正確輸出。

            將系統(tǒng)設(shè)計(jì)的各個(gè)模塊連接起來,利用順序處理的FFT設(shè)計(jì)結(jié)構(gòu),將輸入數(shù)據(jù)的8個(gè)點(diǎn)放到RAM中進(jìn)行處理。經(jīng)過元件例化和調(diào)用操作完一級(jí)蝶形之后對(duì)其結(jié)果進(jìn)行存儲(chǔ);之后完成二級(jí)蝶形操作及存儲(chǔ);最后進(jìn)行三級(jí)蝶形的操作。

            若輸入8點(diǎn)數(shù)據(jù)為[5,8,3,2.0,6,1,2].其仿真結(jié)果經(jīng)轉(zhuǎn)換后的值為(即結(jié)果擴(kuò)大了64倍):[1728,410-j218,64-j640,230+j38,-576,230-j38,64+j640,410+j218 ],與MATLAB仿真的結(jié)果一致。

            如圖2所示,圖中的x0,x1,x2……x7是輸入信號(hào),分別給它們輸入的值為[5,8,3,2,0,6,1,2];y0_i,y0_r……y7_i,y7_r是仿真中得到的輸出信號(hào)。經(jīng)過運(yùn)算,輸出結(jié)果與理論計(jì)算結(jié)果一致。

            

           

            圖2

            2總結(jié)

            通過仿真驗(yàn)證此次利用FPGA實(shí)現(xiàn)的FFT設(shè)計(jì)采用內(nèi)置雙端口RAM、ROM單元,實(shí)現(xiàn)了存取數(shù)據(jù)、旋轉(zhuǎn)因子計(jì)算、蝶形計(jì)算,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,運(yùn)算可靠性高,速度得到了進(jìn)一步提升。



          關(guān)鍵詞: FPGA FFT

          評(píng)論


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