基于FPGA的24點(diǎn)離散傅里葉變換結(jié)構(gòu)設(shè)計(jì)
摘要 基于Good—Thomas映射算法和ISE快速傅里葉變換IP核,設(shè)計(jì)了一種易于FPGA實(shí)現(xiàn)的24點(diǎn)離散傅里葉變換,所設(shè)計(jì)的24點(diǎn)DFT模塊采用流水線結(jié)構(gòu),主要由3個(gè)8點(diǎn)FFT模塊和1個(gè)3點(diǎn)DFT模塊級聯(lián)而成,并且兩級運(yùn)算之間不需要旋轉(zhuǎn)因子,整個(gè)DFT模塊僅僅需要14個(gè)實(shí)數(shù)乘法器,布局布線后仿真工作時(shí)鐘頻率可達(dá)200 MHz。首先根據(jù)Good—Thomas算法將并行的24路輸入信號(hào)分成3組,每組8路信號(hào),并進(jìn)行并/串轉(zhuǎn)換,得到3路串行信號(hào);其次,將3路串行信號(hào)分別輸入至3個(gè)FFT IP核模塊進(jìn)行8點(diǎn)FFT運(yùn)算;然后,將上述3個(gè)FFT IP核模塊同一時(shí)刻輸出的3路信號(hào)進(jìn)行3點(diǎn)DFT變換;最后,將得到的3路并行輸出信號(hào)分別進(jìn)行串/并轉(zhuǎn)換,得到24路DFT輸出信號(hào)。此外,設(shè)計(jì)的24點(diǎn)DFT結(jié)構(gòu)還具有很好的擴(kuò)展性,通過修改FFT IP核變換點(diǎn)數(shù)參數(shù)便可實(shí)現(xiàn)長度N=3×2n點(diǎn)DFT。
關(guān)鍵詞 24點(diǎn)DFT;FPGA;Good—Thomas映射算法;FFT IP核
由于具有高集成度、高速、可編程等優(yōu)點(diǎn),現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)已經(jīng)廣泛用于多種高速信號(hào)實(shí)時(shí)處理領(lǐng)域中。離散傅里葉變換(Discrete Fourier Transform,DFT),尤其對應(yīng)的快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT),是數(shù)字信號(hào)處理中的一種基本變換?;贔PGA的FFT設(shè)計(jì)和實(shí)現(xiàn)是眾多應(yīng)用中的一個(gè)重要環(huán)節(jié),是眾多FPGA芯片廠商和研究工作者一直致力研究的內(nèi)容。
目前,Altera和Xilinx公司都提供了可塑性很強(qiáng)的FFT IP核,只要改動(dòng)相應(yīng)的參數(shù)設(shè)置,就可以應(yīng)用于不同產(chǎn)品中。國內(nèi)不少大學(xué)及研究所也已經(jīng)采用FPGA芯片設(shè)計(jì)開發(fā)具有自主知識(shí)產(chǎn)權(quán)的FFT。然而,目前絕大多數(shù)基于FPGA的FFT主要采用Cooley—Tukey映射算法實(shí)現(xiàn)基2和基4結(jié)構(gòu)的點(diǎn)FFT。這在實(shí)際應(yīng)用中存在以下問題:1)某些場合中所采用的DFT變換點(diǎn)數(shù)不一定滿足,例如24點(diǎn)、48點(diǎn)等DFT無法采用上述FFT結(jié)構(gòu)實(shí)現(xiàn);2)采用Cooley—Tukey映射算法將高點(diǎn)數(shù)的DFT分解成若干個(gè)低點(diǎn)數(shù)DFT過程中,采用多級流水線結(jié)構(gòu)實(shí)現(xiàn)FFT,但每一級輸出結(jié)果需要乘以相應(yīng)旋轉(zhuǎn)因子后再進(jìn)入下一級運(yùn)算,從而增加了復(fù)數(shù)乘法器資源的使用。
以Xilinx公司Virtex IV芯片為硬件平臺(tái),結(jié)合Xilinx公司ISE10.1軟件提供的FFT IP核,提出一種適合FPGA實(shí)現(xiàn)的基于Good-Thomas算法的24點(diǎn)DFT結(jié)構(gòu)。相對于已有的FFT結(jié)構(gòu),設(shè)計(jì)的DFT結(jié)構(gòu)不僅能夠充分利用FFT IP核優(yōu)良特性,還能大大節(jié)約復(fù)數(shù)乘法器資源的使用。同時(shí),該結(jié)構(gòu)還能擴(kuò)展至變換長度N滿足N=3×2n的DFT。
1 24點(diǎn)DFT實(shí)現(xiàn)原理
1.1 Good—Thomas映射算法
基于Cooley—Tukey映射算法和Good-Thomas映射算法的FFT均可以將長度為N=N1N2的DFT分解成N2個(gè)N1點(diǎn)DFT和N1個(gè)N2點(diǎn)DFT級聯(lián)的形式。尤其基于Cooley—Tukey映射的FFT是最為通用的FFT算法,能夠適應(yīng)于任意N1和N2長度下的DFT。相對基于Cooley-Tukey映射的FFT,基于Good —Thomas映射的FFT只能適應(yīng)于N1和N2互質(zhì)情況下的DFT,但N1點(diǎn)DFT與N2點(diǎn)DFT之間的中間結(jié)果不需要采用旋轉(zhuǎn)因子進(jìn)行調(diào)制,從而能夠大幅節(jié)約復(fù)數(shù)乘法器的使用。
假設(shè)輸入序列x(n)長度為N=N1N2,其中N1和N2互質(zhì),則基于Good—Thomas映射的FFT實(shí)現(xiàn)步驟如下:
從以上步驟可以看出,基于Good—Thomas映射的FFT,雖然與基于Cooley—Tukey映射的FFT實(shí)現(xiàn)原理相似,但輸入/輸出索引映射不同,而且沒有旋轉(zhuǎn)因子。
評論