基於高速定點FFT算法的FPGA設計方案

2021-01-10 電子產品世界

引 言
快速傅立葉變換(FFT)作為計算和分析工具,在眾多學科領域(如信號處理、圖像處理、生物信息學、計算物理、應用數學等)有著廣泛的應用。在高速數位訊號處理領域,如雷達信號處理,FFT的處理速度往往是整個系統設計性能的關鍵所在。
針對高速實時信號處理的要求,軟體實現方法顯然滿足不了其需要。近年來現場可編程門陣列(FPGA)以其高性能、高靈活性、友好的開發環境、在線可編程等特點,使得基於FPGA的設計可以滿足實時數位訊號處理的要求,在市場競爭中具有很大的優勢。
在FFT算法中,數據的寬度通常都是固定的寬度。然而,在FFT的運算過程中,特別是乘法運算中,運算的結果將不可避免地帶來誤差。因此,為了保證結果的準確性,採用定點分析是非常必要的。

本文引用地址:http://www.eepw.com.cn/article/149980.htm

1 FFT算法原理
FFT算法的基本思想就是利用權函數的周期性、對稱性、特殊性及周期N的可互換性,將較長序列的DFT運算逐次分解為較短序列的DFT運算。針對N=2的整數次冪,FFT算法有基-2算法、基-4算法、實因子算法和分裂基算法等。這裡,從處理速度和佔用資源的角度考慮,選用基-4按時間抽取FFT算法 (DIT)。對於N=4γ,基-4 DIT具有log4N=γ次迭代運算,每次迭代包含N/4個蝶形單元。蝶形單元的運算表達式為:


其信號流如圖1。式中:A,B,C,D和A′,B′,C′,D′均為複數據;W=e-j2π/N。進行1次蝶形運算共需3次復乘和8次復加運算。N=64 點的基-4DIT信號流其輸入數據序列是按自然順序排列的,輸出結果需經過整序。64點數據只需進行3次迭代運算,每次迭代運算含有N/4=16個蝶形單元。

2 FFT算法的硬體實現
2.1 流水線方式FFT算法的實現
為了提高FFT工作頻率和節省FPGA資源,採用3級流水線結構實現64點的FFT運算。流水線處理器的結構如圖2所示。

每級均由延時單元、轉接器(SW)、蝶形運算和旋轉因子乘法4個模塊組成,延時節拍由方框中的數字表示。各級轉接器和延時單元起到對序列進行碼位抽取並將數據拉齊的作用。每級延時在FPGA內部用FIFO實現,不需要對序列進行尋址即可實現延時功能。數據串行輸入,經過3級流水處理後,串行輸出。


相關焦點

  • 用FPGA實現FFT算法(圖)
    當n較大時,因計算量太大,直接用dft算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 基於FPGA的高速流水線FFT算法實現
    因此,FPGA為高速FFT算法的實現提供了一個很好的平臺。  1 基4-FFT算法基本原理  在FFT各類算法中,基2-FFT算法是最簡單的一種,但其運算量與基4-FFT算法相比則大得多,分裂基算法綜合了基4和基2算法的特點,雖然具有最少的復乘運算量,但其L蝶形運算控制的複雜性也限制了其在硬體上的實現,因此,本設計採用了基4-FFT算法結構。
  • 用FPGA實現FFT算法
    當N較大時,因計算量太大,直接用DFT算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(Fast Fourier Transformation,簡稱FFT)使DFT運算效率提高1~2個數量級。其原因是當N較大時,對DFT進行了基4和基2分解運算。FFT算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的FFT仍然是很困難。
  • 基於FPGA IP核的FFT實現
    0 引 言 數位訊號處理領域中FFT算法有著廣泛的應用。目前現有的文獻大多致力於研究利用FFT算法做有關信號處理、參數估計、F+FT蝶形運算單元與地址單元設計、不同算法的FFT實現以及FFT模型優化等方面。
  • 基於FPGA的複數浮點協方差矩陣實現
    採用FPGA(Field Programmable Gate Array)可以提高該類數位訊號處理運算的實時性,是算法工程化的重要環節。但是FPGA不適宜對浮點數的處理,對複雜的不規則計算開發起來也比較困難。故目前國內外協方差運算的FPGA實現都是採用定點運算方式。 在所有運算都是定點運算的情況下,每次乘法之後數據位寬都要擴大一倍。
  • 基於Xilinx FPGA 實現FFT算法的電力諧波檢測的設計方案詳解
    基於Xilinx FPGA 實現FFT算法的電力諧波檢測的設計方案詳解 工程師青青 發表於 2018-07-16 18:22:00 基於FFT算法的電力系統諧波檢測裝置
  • 基於FPGA的FFT算法硬體實現
    基於FPGA的FFT算法硬體實現
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。 hmm的基本算法有3種:viterbi算法,前向一後向算法,baum-welch算法。本次設計使用viterbi算法進行狀態判別,將採集語音的特徵向量與語音庫的模型進行模式匹配。baum-welch算法用來解決語音信號的訓練,由於模型的觀測特徵是幀間獨立的,從而可以使用baum-welch算法進行hmm模型的訓練。
  • 利用FPGA實現的FFT變換設計
    快速傅立葉變換(FFT)算法的提出,使得數位訊號處理的運算時間上面縮短了好幾個數量級。因此對FFT算法及其實現方法的研究具有很強的理論和現實意義。本文引用地址:http://www.eepw.com.cn/article/266000.htm  1 FFT算法及其實現方法  現場可編程門陣列FPGA是一種可編程使用的信號處理器件,其運算速度高,內置高速乘法器可實現複雜累加乘法運算;同時其存儲量大,無需外接存儲器就可實現大量數據運算;而且算法實現簡單,通過VHDL程式語言可輕鬆實現功能開發
  • 基於fpga二維小波變換核的實時可重構電路
    項目背景及可行性分析本文引用地址:http://www.eepw.com.cn/article/266432.htm  2.1 項目名稱及摘要:  基於fpga二維小波變換核的實時可重構電路  現場可編程門陣列為可進化設計提供了一個理想的模板
  • 基於FPGA的高速流水線浮點乘法器設計與實現
    因此,為了進一步提高微處 理器性能,開發高速高精度的乘法器勢在必行。同時由於基於IEEE754 標準的浮點運算具 有動態範圍大,可實現高精度,運算規律較定點運算更為簡捷等特點,浮點運算單元的設計 研究已獲得廣泛的重視。
  • 基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計
    基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計 瀋陽;馮良;洪誠 發表於 2021-01-12 10:21:38 SOPC可編程片上系統是一種獨特的嵌入式微處理系統。
  • 基於FPGA IP核的FFT實現與改進
    利用Modelsim和Matlab對設計方案進行了仿真,同時在Altera公司的CycloneⅡ硬體平臺上進行了驗證。驗證結果表明,系統性能良好,改進效果明顯。本文引用地址:http://www.eepw.com.cn/article/201610/306475.htmFFT是離散傅立葉變換(DFT)的一種快速算法,被廣泛應用於頻譜分析、音頻編碼、圖像處理等數位訊號處理領域。
  • 基於FPGA與有限狀態機的高精度測角系統的設計與實
    1 方案設計1.1 系統組成雷射跟蹤測量系統的核心處理模塊主要由ARM處理器,FPGA組成。為了充分利用ARM9微處理器的運算能力和FPGA的高速邏輯處理能力,在設計中對功能的實現進行了劃分。ARM9 用於運動控制平臺的控制並且與FPGA一起形成一個完整的應用平臺。
  • 基於FPGA的RCN226絕對式編碼器通信接口設計
    DSP用來實現矢量變換和其它算法流程;FPGA用以實現解碼、A、B、 Z信號輸出、I/O擴展等功能,FPGA中尚有很多資源沒有得到充分利用。本文研製了一種用於交流伺服系統中的基於FPGA的絕對式編碼器智能接口,實現與絕對式編碼器的雙工通信,接收高速數據流,同時在FPGA內部開闢RAM空間,將收到的編碼器數據存入RAM中,DSP可以以訪問內存的方式讀取數據,提高了工作速度。同時,該接口還具有奇偶校驗等糾錯功能,完全可以替代廠家提供的接收晶片,大幅度降低了產品成本。
  • 基於改進的CORDIC算法的FFT復乘及其FPGA實現
    CORDIC算法只需簡單的移位與加減運算就能實現向量旋轉,具有使用資源少、硬體規模小等優勢。因此在FFT蝶形運算中用其代替傳統FFT運算中的複數乘法器,可以獲得更好的性能。但傳統CORDIC算法中每次CORDIC迭代方向需由剩餘角度的計算來確定,影響了工作速度。為此,本文根據定點FFT復乘中旋轉因子的旋轉方向可預先確定的特點,對CORDIC算法做了一些改進,在節省資源的同時保證了工作速度。
  • 一種基於FPGA的實時紅外圖像預處理方法
    摘要:由於紅外圖像預處理算法自身的複雜性,使得紅外圖像在DSP中的預處理時間較長。針對這一問題,提出一種基於FPGA的實時紅外圖像預處理方法。
  • 基於FPGA的實時中值濾波器硬體實現
    文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。文獻[3]、[4]提出了鄰域圖像幀存的存儲結構,該結構充分利用了圖像幀存的數據結構轉換特性,並行高速提供鄰域圖像數據,配以FPGA作為並行處理器,高速實時地實現了中值濾波。但是以上研究都是基於標清圖像的中值濾波器,處理的圖像大小一般為256×256、512×512的灰度圖等,很少有實現高清圖像的中值濾波器。