FFT實時譜分析系統(tǒng)的FPGA設(shè)計和實現(xiàn)
摘要: 采用按時間抽選的基4原位算法和坐標(biāo)旋轉(zhuǎn)數(shù)字式計算機(CORDIC)算法實現(xiàn)了一個FFT實時譜分析系統(tǒng)。整個設(shè)計采用流水線工作方式,保證了系統(tǒng)的速度,避免了瓶頸的出現(xiàn);整個系統(tǒng)采用FPGA實現(xiàn),實驗表明,該系統(tǒng)既有DSP器件實現(xiàn)的靈活性又有專用 FFT芯片實現(xiàn)的高速數(shù)據(jù)吞吐能力,可以廣泛地應(yīng)用于數(shù)字信號處理的各個領(lǐng)域。
關(guān)鍵詞: 快速傅里葉變換 CORDIC算法 現(xiàn)場可編程門陣列(FPGA)
快速傅里葉變換(Fast Fourier Transformation, FFT) 實時譜分析是DSP應(yīng)用的核心技術(shù)之一,而在高速實時信號處理中,常采用專門集成電路(ASIC)來實現(xiàn)。FPGA是一種具有大量的可編程邏輯單元的器件,它的應(yīng)用使得電子產(chǎn)品不僅具有高速度、高集成度和高可靠性,而且具有用戶可編程特性,能降低設(shè)計風(fēng)險。實驗表明,用FPGA實現(xiàn)的實時譜分析系統(tǒng)既有專用ASIC電路實現(xiàn)的快速性,又有DSP器件實現(xiàn)的靈活性,非常適用于高速實時的數(shù)字信號處理。
1 FFT實時信號處理系統(tǒng)的總體設(shè)計
FFT頻譜分析系統(tǒng)主要由1024點基-4 FFT模塊和接口控制電路組成。其中,基-4 FFT模塊用于實現(xiàn)一組1024點復(fù)數(shù)數(shù)據(jù)的FFT變換;接口控制電路負責(zé)控制1024點基-4 FFT模塊,并對A/D采樣輸出的數(shù)據(jù)進行緩存、速率匹配等,協(xié)調(diào)整個FFT頻譜分析系統(tǒng)的工作時序。
在本設(shè)計中,F(xiàn)FT實時譜分析系統(tǒng)的1024點基-4 FFT算法采用FPGA實現(xiàn)。FPGA的總體框圖如圖1所示。其中,衰減限幅模塊負責(zé)對數(shù)據(jù)進行衰減及限幅壓縮處理;雙口RAM負責(zé)存儲外部輸入的原始數(shù)據(jù)及經(jīng)過蝶形運算后的中間數(shù)據(jù);四點FFT模塊完成4點DFT運算;地址控制模塊負責(zé)產(chǎn)生讀地址、寫地址、寫使能信號以及相關(guān)模塊的啟動、控制信號,是FFT系統(tǒng)的控制核心;復(fù)乘運算模塊是系統(tǒng)運算的核心部分,采用CORDIC算法實現(xiàn);旋轉(zhuǎn)因子產(chǎn)生器產(chǎn)生復(fù)乘運算中的旋轉(zhuǎn)因子的角度數(shù)據(jù);倒序模塊實現(xiàn)頻譜正常順序輸出。
2 功能模塊的設(shè)計
2.1 衰減限幅模塊
FFT實時譜分析系統(tǒng)采用的算術(shù)運算方案是定點運算,衰減限幅模塊實現(xiàn)了定比例衰減、尾數(shù)處理和壓縮信號電平的作用,用以防止數(shù)據(jù)溢出。模塊框圖如圖2所示,其壓縮特性如圖3所示。
2.2 四點FFT模塊
四點FFT模塊完成四點DFT變換,變換公式如下:
四點FFT模塊中完全不需要復(fù)數(shù)乘法,乘-j只需將實部虛部交換,再加上必要的正負號即可。四點FFT模塊采用流水線工作方式,每四個時鐘周期完成一組四點FFT運算。在輸入一組四點原始數(shù)據(jù)x(i)時,要完成兩項工作:①進行上一組四點FFT的第二級運算,即計算并輸出上一組四點FFT的結(jié)果X(k);②進行本組四點FFT的第一級運算,即計算本組四點FFT的中間結(jié)果X′(k)。這樣充分利用了硬件資源。
2.3 復(fù)乘運算模塊
復(fù)乘運算是FFT處理器中兩種最頻繁的運算之一,因而復(fù)乘運算模塊也是FFT處理器中的一個重要模塊。輸入復(fù)數(shù)數(shù)據(jù)xr+jxi與旋轉(zhuǎn)因子cosα+jsinα相乘的公式為:
利用CORDIC的圓周旋轉(zhuǎn)的向量工作模式可以實現(xiàn)復(fù)乘運算,所采用的迭代方程組如下:
所以,只需將需要運算的角度值作為z0輸入,經(jīng)過旋轉(zhuǎn)迭代后,迭代結(jié)果的xn和yn就是所需要的旋轉(zhuǎn)因子復(fù)乘的運算值。即:
復(fù)乘運算模塊的工作流程如圖4所示。
從復(fù)乘運算的算法流程中可以看到,實現(xiàn)復(fù)乘運算的主要元件有加法器、移位器和多選一數(shù)據(jù)選擇器等。組成流水線后,各流水單元結(jié)構(gòu)相似,很適合用FPGA實現(xiàn)。
評論