基於改進的CORDIC算法的FFT復乘及其FPGA實現

2021-01-10 電子產品世界

FFT(快速傅立葉變換)在無線通信、語音識別、圖像處理和頻譜分析等領域有著廣泛應用。在FFT運算中,核心操作是蝶形運算,而蝶形運算的主要操作是向量旋轉,實現向量旋轉可用複數乘法運算來實現,但複數乘耗費了FFT運算中大量的乘法器資源。CORDIC算法只需簡單的移位與加減運算就能實現向量旋轉,具有使用資源少、硬體規模小等優勢。因此在FFT蝶形運算中用其代替傳統FFT運算中的複數乘法器,可以獲得更好的性能。但傳統CORDIC算法中每次CORDIC迭代方向需由剩餘角度的計算來確定,影響了工作速度。為此,本文根據定點FFT復乘中旋轉因子的旋轉方向可預先確定的特點,對CORDIC算法做了一些改進,在節省資源的同時保證了工作速度。
1 CORDIC算法原理
假設直角坐標系中有一向量A(Xa,Ya),逆時針旋轉?茲角度後得到另一個向量B(Xb,Yb),這個過程可用如下矩陣表示:


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

針對這一特點,可在CORDIC算法上做一點改進,把旋轉因子所對應的CORDIC旋轉係數預先存在ROM中(人工計算旋轉係數比較麻煩,可用MATLAB編一段程序來計算,並把旋轉係數存為.mif文件以便ROM初始化),而不是把旋轉因子角度預先存在ROM中。這樣,在進行CORDIC運算時,直接從ROM中取出旋轉係數,從而減少計算Zi來確定下一步旋轉方向的步驟,減少CORDIC模塊設計的複雜性,提高了運算速度,並且旋轉係數不比旋轉因子角度佔用的ROM資源多。另外由於旋轉因子需要進行0°、-90°或+90°三種預旋轉,所以預旋轉還要分配兩位二進位數,這樣存儲旋轉係數的ROM就為18位的ROM。
改進的CORDIC算法結構如圖1所示,所有旋轉因子所對應的CORDIC旋轉係數都存儲在ROM中,通過地址產生器的控制實現序列與相應的旋轉因子的復乘運算。與傳統CORDIC算法相比去掉了預旋轉角與已旋轉角之差的計算來確定下一次旋轉方向的結構,不但增加了係數寄存器模塊,而且總體上結構更為簡單。此CORDIC算法還採用流水線結構提高了運算的速度,從當前VLSI的發展趨勢上來看,晶片內的門資源相對富裕,對流水線CORDIC的實現規模約束很小。此外,流水線CORDIC不存在迭代式CORDIC的反饋迴路,使得單元結構更加規則,有利於VLSI實現。


相關焦點

  • 用FPGA實現FFT算法(圖)
    當n較大時,因計算量太大,直接用dft算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • 基於FPGA IP核的FFT實現
    在FFT的硬體實現中,需要考慮的不僅僅是算法運算量,更重要的是算法的複雜性、規整性和模塊化,而有關利用FFT IP核實現FFT算法卻涉及不多。這裡從Altera IP核出發,建立了基4算法的512點FFT工程,對不同參數設置造成的誤差問題進行分析,並在EP2C70F896C8器件上進行基於Quartus II的綜合仿真,得到利用FFT IP核的FFT算法高效實現,最後利用Matlab進行的計算機仿真分析證明了工程結果的正確性。
  • 基於FPGA的FFT算法硬體實現
    基於FPGA的FFT算法硬體實現
  • 基於FPGA的高速流水線FFT算法實現
    FFT(快速傅立葉變換)算法是作為DFT的快速算法提出,它將長序列的DFT分解為短序列的DFT,大大減少了運算量,使得DFT算法在頻譜分析、濾波器設計等領域得到了廣泛的應用。  FPGA(現場可編程門陣列)是一種具有大規模可編程門陣列的器件,不僅具有專用集成電路(ASIC)快速的特點,更具有很好的系統實現的靈活性。FPGA可通過開發工具實現在線編程。
  • 用FPGA實現FFT算法
    當N較大時,因計算量太大,直接用DFT算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(Fast Fourier Transformation,簡稱FFT)使DFT運算效率提高1~2個數量級。其原因是當N較大時,對DFT進行了基4和基2分解運算。FFT算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的FFT仍然是很困難。
  • 基於FPGA IP核的FFT實現與改進
    驗證結果表明,系統性能良好,改進效果明顯。本文引用地址:http://www.eepw.com.cn/article/201610/306475.htmFFT是離散傅立葉變換(DFT)的一種快速算法,被廣泛應用於頻譜分析、音頻編碼、圖像處理等數位訊號處理領域。FFT運算複雜,需要大量的存儲器和運算單元,其硬體實現平臺多種多樣。DSP需要外置存儲器和特定接口,限制了運算速度。
  • 固定幾何結構的FFT算法及其FPGA實現
    作者Email: smz_wxd@sohu.com 1.引言 DFT及其快速算法FFT是信號處理領域的核心組成部分。FFT算法多種多樣,按數據組合方式不同一般分時域和頻域,按數據抽取方式的不同又可分為基2,基4等。各算法的優缺點視不同的制約因素而不同。FFT的實現方法也多種多樣,可以用軟體實現,也可以用硬體實現,用軟體在PC機或工作站上實現則計算速度很慢。一般多結合具體系統用硬體實現。例如用單片機或DSP實現。但是速度仍然很慢,難以與快速的A/D器件匹配。
  • 基於FPGA的複數浮點協方差矩陣實現
    採用FPGA(Field Programmable Gate Array)可以提高該類數位訊號處理運算的實時性,是算法工程化的重要環節。但是FPGA不適宜對浮點數的處理,對複雜的不規則計算開發起來也比較困難。故目前國內外協方差運算的FPGA實現都是採用定點運算方式。 在所有運算都是定點運算的情況下,每次乘法之後數據位寬都要擴大一倍。
  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 基於Xilinx FPGA 實現FFT算法的電力諧波檢測的設計方案詳解
    基於Xilinx FPGA 實現FFT算法的電力諧波檢測的設計方案詳解 工程師青青 發表於 2018-07-16 18:22:00 基於FFT算法的電力系統諧波檢測裝置
  • 基於DSP的FFT算法實現
    基於DSP的FFT算法實現1、FFT的原理快速傅氏變換(FFT)是離散傅氏變換的快速算法,它是根據離散傅氏變換的奇、偶、
  • 基於MSP430系列微控制器的FFT算法實現
    離散時間採樣的快速傅立葉變換FFT(fast Fouriertrans form)算法是目前最主要的諧波檢測和分析方法。FFT算法的實現可以採用專用晶片37—40、DSP晶片6—1141—44、FPGA晶片193— 207以及微控制器等。隨著集成電路製造技術和數字計算機技術的進步,微控制器晶片的功能和所能提供的邏輯資源越來越多。
  • 一種基於FPGA的實時紅外圖像預處理方法
    摘要:由於紅外圖像預處理算法自身的複雜性,使得紅外圖像在DSP中的預處理時間較長。針對這一問題,提出一種基於FPGA的實時紅外圖像預處理方法。
  • 基於FPGA的可配置FFT IP核實現研究
    摘要 針對FFT算法基於FPGA實現可配置的IP核。採用基於流水線結構和快速並行算法實現了蝶形運算和4k點FFT的輸入點數、數據位寬、分解基自由配置。現場可編程邏輯陣列(FPGA)是一種可定製集成電路,具有面向數位訊號處理算法的物理結構。用FPGA實現FFT處理器具有硬體系統簡單、功耗低的優點,同時具有開發時間較短、成本較低的優勢。基於FPGA實現的數位訊號處理系統具有較高的實時性和嵌入性,並能方便地實現系統集成與功能擴展。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    2 系統硬體總體設計 系統的硬體功能是實現語音指令的採集和步進電機的驅動控制,為系統軟體提供開發和調試平臺。如圖1所示。 系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。
  • 基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計
    基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計 瀋陽;馮良;洪誠 發表於 2021-01-12 10:21:38 SOPC可編程片上系統是一種獨特的嵌入式微處理系統。
  • 聲納圖像動態範圍擴展與FPGA實現
    基於課題組研製的多波束成像聲納原理樣機的研製,分析了數據動態範圍壓縮導致圖像細節丟失的原因及其對成像質量的影響,採用JPL快速平方根近似算法改善了開方運算FPGA實現過程的資源佔用和系統延時。最後,對改進設計方案進行了實驗驗證,通過多波束成像聲納系統的消聲水池實驗證明了本文動態範圍擴展方法的有效性和可行性,系統成像質量改善明顯,達到優化設計的預期目標。
  • 基於FPGA的實時中值濾波器硬體實現
    在許多實際應用場合,如高清視頻監控、X光圖像的降噪等,需要快速且實時地進行中值濾波,軟體實現達不到實時處理的要求,因此選用硬體實現。 在硬體實現上,文獻[1]、[2]等採用行延遲的方法形成鄰域數據,以實現3×3的中值濾波。文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。
  • 基於CORDIC算法的32位浮點三角超越函數之正餘弦函數的FPGA實現
    因此,設計並實現浮點三角超越函數是非常重要的。硬體實現的超越函數算法,按照數學公式和對應的實現方式的不同,可以分為查表法、多項式近似法、基於查表的多項式結合方法、有理數近似和逐位法五類。經過對這些算法進行分析和比較,本文選擇 CORDIC作為超越函數的算法,並用Altera公司的CycloneⅡ晶片完成硬體實現。
  • 利用FFT IP Core實現FFT算法
    FFT傳統實現方法無非是軟體(軟體編程)和硬體(專用晶片ASIC)兩種,FPGA的出現使人們在FFT的實現方面又多了一種選擇。FPGA同時具有軟體編程的靈活性和ASIC電路的快速性等優點,適合高速數位訊號處理。大多數FPGA廠商都提供了可配置的邏輯核(Core)實現各種算法功能,其中包括FFT IP Core(智慧財產權核)。