基於FPGA高精度浮點運算器的FFT設計與仿真

2021-01-10 電子產品世界

摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
關鍵詞 快速傅立葉變換;浮點;蝶形運算;VHDL

FFT作為數位訊號處理中的重要的手段之一,主要在數字通信、語音信號處理、圖像處理、功率譜估計、仿真、系統分析、雷達理論、光學、醫學、地震以及數值分析等方面得到廣泛應用。基於FPGA實現FFT,具有軟體編程的靈活性及電路擴展性強等優點。隨著集成電路技術進步和製造工藝水平的提高,FPGA晶片具有的功能越來越強,成為快速實時實現FFT的重要手段。採用基2法完成基於FPGA浮點運算器的FFT。

1 基於FPGA浮點運算器的FFT
1.1 浮點的IEEE標準格式
設計採用單精度浮點運算,IEEE定義的二進位浮點格式為32位。結構表示如圖1所示。

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


將32位分為3部分:31位為符號位S,S為0時表示正數,為1時表示負數;30~23為指數E,是一個0~255之間的八位二進位數,其實際的指數是E-127,所表示的指數範圍是2-127~2128;22~0表示尾數F,小數點前還隱藏了一位『1』,單精度尾數可表示最大數為2(23+1)=16 777 216。因為10716 777 216108,所以單精度浮點數的有效位數是7位,即浮點數的精度為10-6。為方便FFT的運算,文中採用原碼存儲。
1.2 基2的DIT-FFT算法
在蝶形運算中採用複數形式表示數據。對於一個2點的蝶形運算,輸入複數為A=x+jX,B=y+jY;經運算,輸出複數A』=(x+ycosφ+ Ysinφ)+j(X+Ycosφ-ysinφ),B』=[x-(ycosφ+Ysinφ)]+j[X-(Ycosφ-ysinφ)]。
設計主要針對8點FFT進行設計,8點FFT算法的原理圖如圖2所示。


整個FFT過程中共有三級蝶形運算,每級蝶形運算有4個蝶形運算單元。在數據輸入時按照自然順序輸入,最後倒序輸出。
1.3 FFT處理器
FFT處理器主要對數據進行蝶形運算及數據存取。設計採用基2蝶形運算器,包括存儲器ROM和RAM,控制器及地址產生單元等。其FFT的結構模型如圖3所示。

fpga相關文章:fpga是什麼


相關焦點

  • 基於FPGA的高速流水線浮點乘法器設計與實現
    同時由於基於IEEE754 標準的浮點運算具 有動態範圍大,可實現高精度,運算規律較定點運算更為簡捷等特點,浮點運算單元的設計 研究已獲得廣泛的重視。設參與運算的兩個數A、B 均為單精度浮點數, 即:    2.2 浮點乘法器的硬體系統結構  本設計用於專用浮點FFT 處理器,因此對運算速度有較高要求。為了保證浮點乘法器 可以穩定運行在80M 以下,本設計採用了流水線技術。
  • 基於FPGA IP核的FFT實現
    這裡從Altera IP核出發,建立了基4算法的512點FFT工程,對不同參數設置造成的誤差問題進行分析,並在EP2C70F896C8器件上進行基於Quartus II的綜合仿真,得到利用FFT IP核的FFT算法高效實現,最後利用Matlab進行的計算機仿真分析證明了工程結果的正確性。
  • 基於FPGA的複數浮點協方差矩陣實現
    最終導致FPGA器件資源枯竭,無法實現設計。為了保證算法的實現,必須對中間運算數據進行截斷,將每次累加的結果除2(可以通過移位運算來實現),以避免溢出。 此外,在應用MUSIC算法時,各種計算都是複數運算。
  • 用FPGA實現FFT算法(圖)
    快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • 基於複數浮點運算的協方差矩陣的FPGA實現
    本文以空間譜估計作為研究背景,研究了複數據運算和浮點運算的特點,提出了一種適用於任何陣列流型、任意陣元的基於複數浮點運算的協方差矩陣的FPGA實現方案。  1 求解複數浮點協方差矩陣  以11陣元的均勻圓陣為例,其協方差矩陣的求解方案原理框圖如圖1所示。
  • OFDM信道調製解調的仿真及其FPGA設計
    軟體仿真與設計  隨著FPGA和VLSI的發展,大量的EAB(嵌入式陣列塊)、LE(邏輯單元)、內嵌乘法器和高速FIFO存儲器帶來了OFDM/COFDM的實用化,為OFDM提供了硬體支持。軟體上可以採用MATLAB、硬體描述語言VHDL、QuartusⅡ等軟體進行仿真與設計。
  • 基於FPGA與有限狀態機的高精度測角系統的設計與實
    雷射跟蹤測量系統(Laser Tracker System)是工業測量系統中常用的一種高精度的測量儀器,是近十年發展起來的新型大尺寸空間測量儀器,不僅對靜止目標可以測量,而且對運動目標也可以進行跟蹤測量
  • 基於FPGA的同步測周期高精度數字頻率計的設計
    摘    要:本文介紹了一種同步測周期計數器的設計,並基於該計數器設計了一個高精度的數字頻率計。文中給出了計數器的VHDL編碼,並對頻率計的FPGA實現進行了仿真驗證,給出了測試結果。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。fpga根據dsp輸入的動作指令產生正確的正反轉信號和準確的脈衝給步進電機驅動晶片,驅動晶片提供步進電機的驅動信號,控制步進電機的轉動。片外flash用於存儲系統程序和語音庫並完成系統的上電加載。jtag口用於與pc機進行聯機在線仿真,鍵盤則用於參數調整和功能的切換。
  • 基於CORDIC算法的32位浮點三角超越函數之正餘弦函數的FPGA實現
    關鍵詞: CORDIC;自定義指令;IEEE-754標準化處理引言浮點超越函數的應用領域十分廣泛,涉及航空航天、機器人技術、實時語音、圖像信號處理、濾波技術、FFT變換等領域。因此,設計並實現浮點三角超越函數是非常重要的。
  • 基於FPGA的高速流水線FFT算法實現
    這種算法每一級的運算具有相對獨立性,每級運算都採用同址運算,因此,本設計只使用了2個1 k×16 bits的RAM單元。運算過程中所需的旋轉因子的值經過查詢預設的正弦與餘弦ROM表得到。  2 1024點FFT算法模塊的設計  本設計的總體框圖如圖1所示。
  • 基於FPGA的伺服驅動器分周比設計與實現
    為此提出一種基於FPGA的整數分周比實現方法。該方法邏輯結構簡單,配置靈活,易於擴展,具有很高的實用價值。  1 電子齒輪比與分周比  電子齒輪比與分周比是數控工具機和數控加工中心中一個很重要的概念。  3 仿真研究  根據圖2,利用ACTEL公司的Libro 8.1開發平臺,採用VHDL硬體語言,創建了相應的功能模塊,原理圖如圖3所示。
  • 基於FPGA+MATLAB的串行多階FIR濾波器設計
    為說明使用FPGA實現FIR的靈活性,文中列舉了一個多階串行FIR濾波器實例,並給出主要的原始碼和相關模塊的時序和功能說明,最後使用Matlab和Quartusii聯合仿真驗證了FPGA硬濾波器工程的正確性。
  • 基於FPGA的可配置FFT IP核實現研究
    摘要 針對FFT算法基於FPGA實現可配置的IP核。採用基於流水線結構和快速並行算法實現了蝶形運算和4k點FFT的輸入點數、數據位寬、分解基自由配置。使用Verilog語言編寫,利用ModelSim仿真,由ISE綜合併下載,在Xilinx公司的Virtex-5 xc5vfx70t器件上以200 MHz的時鐘實現驗證,運算結果與其他設計的運算效率對比有一定優勢。
  • 基於FPGA的FFT算法硬體實現
    在高速數位訊號處理中,FFT的處理速度往往是整個系統設計性能的關鍵所在。FPGA(現場可編程門陣列)是一種具有大規模可編程門陣列的器件,不僅具有ASIC(專用集成電路)快速的特點,更具有很好的系統實現的靈活性。基於FPGA的設計可以滿足實時數位訊號處理的要求,在市場競爭中具有很大的優勢。因此,FPGA為高速FFT算法的實現提供了一個很好的平臺。
  • 基於FPGA的巴特沃茲IIR數字帶通濾波器設計
    3.Matlab仿真針對式(1)所描述的系統模型,利用Matlab軟體工具箱函數freqz(b,a,N,Fs)繪製出其幅頻特性和相頻特性,以檢驗參數的正確性。該濾波器的幅相頻率特性如圖1所示。 由圖1可見,系統的上、下邊帶分別為150Hz和30Hz,滿足系統設計要求。
  • 基於Xilinx FPGA 實現FFT算法的電力諧波檢測的設計方案詳解
    基於Xilinx FPGA 實現FFT算法的電力諧波檢測的設計方案詳解 工程師青青 發表於 2018-07-16 18:22:00 基於FFT算法的電力系統諧波檢測裝置
  • 基於FPGA的移位寄存器流水線結構FFT處理器設計與實現
    從上面的算法結構分析中知道,由於後級的DFT運算點數是前一級的一半,所以後一級的開關轉換周期也是前一級的一半,基於這種關係,可以使用一個8位計數器的每一位狀態來對各級開關進行控制。最高位控制第一級,同時由於上一級數據進入下一級需要一個時鐘,所以下一級的開關轉換時刻要比上一級延遲一個時鐘周期。
  • 基於FPGA流水線結構並行FFT的設計與實現
    綜上,設計選取流水結構,4路並行處理結構。3 硬體設計3.1 邏輯設計FFT邏輯框架如圖1,為了構造高速率高吞吐量的FFT,設計4路並行輸入輸出,採用基4與基2混合FFT,FFT512採用基4蝶形算法,其餘則採用基2蝶形算法。
  • 基於Altera MegaCore實現FFT的方法
    傳統的FFT 實現方法是通過軟體(軟體編程)和硬體(專用晶片ASIC)這兩種方法來實現,而近年來,FPGA 發展十分迅速,這給FFT 設計提供了一個新思路[2]。為了更好地滿足設計人員的需要,各大公司相繼推出了I P 模塊,本文提出了一種採用Altera 公司的IP Core FFT MegaCore來實現FFT 的簡單方法。