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