基於FPGA的24點離散傅立葉變換結構設計

2021-01-11 電子產品世界

摘要 基於Good—Thomas映射算法和ISE快速傅立葉變換IP核,設計了一種易於FPGA實現的24點離散傅立葉變換,所設計的24點DFT模塊採用流水線結構,主要由3個8點FFT模塊和1個3點DFT模塊級聯而成,並且兩級運算之間不需要旋轉因子,整個DFT模塊僅僅需要14個實數乘法器,布局布線後仿真工作時鐘頻率可達200 MHz。首先根據Good—Thomas算法將並行的24路輸入信號分成3組,每組8路信號,並進行並/串轉換,得到3路串行信號;其次,將3路串行信號分別輸入至3個FFT IP核模塊進行8點FFT運算;然後,將上述3個FFT IP核模塊同一時刻輸出的3路信號進行3點DFT變換;最後,將得到的3路並行輸出信號分別進行串/並轉換,得到24路DFT輸出信號。此外,設計的24點DFT結構還具有很好的擴展性,通過修改FFT IP核變換點數參數便可實現長度N=3×2n點DFT。
關鍵詞 24點DFT;FPGA;Good—Thomas映射算法;FFT IP核

由於具有高集成度、高速、可編程等優點,現場可編程門陣列(Field Programmable Gate Array,FPGA)已經廣泛用於多種高速信號實時處理領域中。離散傅立葉變換(Discrete Fourier Transform,DFT),尤其對應的快速傅立葉變換(Fast Fourier Transform,FFT),是數位訊號處理中的一種基本變換。基於FPGA的FFT設計和實現是眾多應用中的一個重要環節,是眾多FPGA晶片廠商和研究工作者一直致力研究的內容。
目前,Altera和Xilinx公司都提供了可塑性很強的FFT IP核,只要改動相應的參數設置,就可以應用於不同產品中。國內不少大學及研究所也已經採用FPGA晶片設計開發具有自主智慧財產權的FFT。然而,目前絕大多數基於FPGA的FFT主要採用Cooley—Tukey映射算法實現基2和基4結構的點FFT。這在實際應用中存在以下問題:1)某些場合中所採用的DFT變換點數不一定滿足,例如24點、48點等DFT無法採用上述FFT結構實現;2)採用Cooley—Tukey映射算法將高點數的DFT分解成若干個低點數DFT過程中,採用多級流水線結構實現FFT,但每一級輸出結果需要乘以相應旋轉因子後再進入下一級運算,從而增加了複數乘法器資源的使用。
以Xilinx公司Virtex IV晶片為硬體平臺,結合Xilinx公司ISE10.1軟體提供的FFT IP核,提出一種適合FPGA實現的基於Good-Thomas算法的24點DFT結構。相對於已有的FFT結構,設計的DFT結構不僅能夠充分利用FFT IP核優良特性,還能大大節約複數乘法器資源的使用。同時,該結構還能擴展至變換長度N滿足N=3×2n的DFT。

1 24點DFT實現原理
1.1 Good—Thomas映射算法
基於Cooley—Tukey映射算法和Good-Thomas映射算法的FFT均可以將長度為N=N1N2的DFT分解成N2個N1點DFT和N1個N2點DFT級聯的形式。尤其基於Cooley—Tukey映射的FFT是最為通用的FFT算法,能夠適應於任意N1和N2長度下的DFT。相對基於Cooley-Tukey映射的FFT,基於Good —Thomas映射的FFT只能適應於N1和N2互質情況下的DFT,但N1點DFT與N2點DFT之間的中間結果不需要採用旋轉因子進行調製,從而能夠大幅節約複數乘法器的使用。
假設輸入序列x(n)長度為N=N1N2,其中N1和N2互質,則基於Good—Thomas映射的FFT實現步驟如下:

從以上步驟可以看出,基於Good—Thomas映射的FFT,雖然與基於Cooley—Tukey映射的FFT實現原理相似,但輸入/輸出索引映射不同,而且沒有旋轉因子。


相關焦點

  • 第三章 離散傅立葉變換
    本章的主題就是離散傅立葉變換。只講實用的,不講虛的。工程化的講解有助於同學們消化理論知識。
  • 大神總結:傅立葉連續、離散變換
    下面,再給出離散傅立葉變換的公式:正變換:這就是離散傅立葉變換的公式了。那麼離散傅立葉逆變換的公式又是怎樣呢,我們可以根據連續傅立葉逆變換的公式來寫出。首先給出連續傅立葉逆變換的公式:來開始推導正變換公式的,如果我用推導的話,那麼可以很容易想到1/N將不會出現在正變換公式裡。以上推導講完了,那麼究竟離散傅立葉變換和連續傅立葉變換有什麼關係呢?
  • 離散傅立葉變換學習筆記
    DFT(discrete fourier transform),稱為離散傅立葉變換,是數位訊號處理領域的常用工具。DFT可以計算出離散數據序列的頻譜。DFT的源頭,是連續傅立葉變換,用於將連續時間信號x(t)轉換成連續頻域信號X(f)。   但是,連續傅立葉變換不適合計算機上應用,所以工程師們就發明了離散傅立葉變換(DFT)。
  • 基於FPGA IP核的FFT實現
    這裡從Altera IP核出發,建立了基4算法的512點FFT工程,對不同參數設置造成的誤差問題進行分析,並在EP2C70F896C8器件上進行基於Quartus II的綜合仿真,得到利用FFT IP核的FFT算法高效實現,最後利用Matlab進行的計算機仿真分析證明了工程結果的正確性。
  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 基於fpga二維小波變換核的實時可重構電路
    項目背景及可行性分析本文引用地址:http://www.eepw.com.cn/article/266432.htm  2.1 項目名稱及摘要:  基於fpga二維小波變換核的實時可重構電路  現場可編程門陣列為可進化設計提供了一個理想的模板
  • 基於離散小波變換的分布式光伏孤島檢測方法
    針對以上問題,本文提出一種基於離散小波變換信號分析的分布式光伏發電孤島檢測方法。該方法基於採樣的電壓、電流信號,通過分析小波功率與PCC(公共連接點)頻率的變化來判斷孤島現象。在系統不同狀況下,用自適應模糊邏輯控制設置基於PCC電壓和逆變器電流的閾值,克服了閾值選擇困難的問題。
  • 傅立葉變換算法(一)
    其中an和bn是實頻率分量的幅度。離散時域傅立葉變換   離散傅立葉變換是離散時間傅立葉變換(DTFT)的特例(有時作為後者的近似)。DTFT在時域上離散,在頻域上則是周期的。DTFT可以被看作是傅立葉級數的逆變換。離散傅立葉變換   離散傅立葉變換(DFT),是連續傅立葉變換在時域和頻域上都離散的形式,將時域信號的採樣變換為在離散時間傅立葉變換(DTFT)頻域的採樣。
  • 基於傅立葉變換的黃金價格周期性實證研究
    基於傅立葉級數而發展起來的傅立葉變換(Fourier Ttransform)是一種信號分析的方法,可以將連續信號或者離散信號拆分成為固定頻率的正弦或者餘弦成分,也可反過來用這些成分合成初始信號。因此,傅立葉變換的本質是從時域分析的框架轉向了頻率分析的框架。以下圖為例,在時域中看似毫無規律可言的信號,反映到頻譜圖中卻一目了然,僅僅是三個頻率信號周期疊加的結果。
  • 基於FPGA的多級小波逆變換實時系統設計
    由JPEG工作組制定的新一代靜止圖像壓縮標準JPEG2000,引入了小波變換和EBCOT編碼的全新設計結構,使得JPEG2000擁有壓縮比高、支持有損和無損壓縮、碼流隨機存取及處理、逐漸傳輸顯示解碼等優點。
  • 基於FPGA的快速9/7整形離散小波變換系統
    美國空間數據系統諮詢委員會(簡稱CCSDS)於2005年推出一套適用於空間領域的圖像壓縮標準,標準使用了離散小波變換為核心算法,推薦使用9/7整數離散小波變換實現無損圖像壓縮,由於該算法結構簡單,易於硬體設計實現,因此可以用FPGA來實現提升小波算法。
  • 在MATLAB中如何實現快速傅立葉變換
    對於傅立葉變換的類型:非周期連續信號採用傅立葉變化;周期連續信號採用傅立葉級數;非周期連續離散信號採用離散時間傅立葉變換;周期離散信號採用離散傅立葉級數。四種信號均為 (‐∞,+∞) 上的無窮信號,而計算機只能處理離散的、有限長度的信號。四種傅立葉變換總結如下表所示。表1
  • 傅立葉變換、拉氏變換、z變換的含義
    傅立葉變換的實質是將一個信號分離為無窮多多正弦/復指數信號的加成,也就是說,把信號變成正弦信號相加的形式——既然是無窮多個信號相加,那對於非周期信號來說,每個信號的加權應該都是零——但有密度上的差別,你可以對比概率論中的概率密度來思考一下——落到每一個點的概率都是無限小,但這些無限小是有差別的。所以,傅立葉變換之後,橫坐標即為分離出的正弦信號的頻率,縱坐標對應的是加權密度。
  • 基於FPGA的高速卷積硬體設計及實現
    在數位訊號處理領域,離散時間系統的輸出響應,可以直接由輸入信號與系統單位衝激響應的離散卷積得到。離散卷積在電子通信領域應用廣泛,是工程應用的基礎。
  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 對傅立葉變換、拉氏變換、z變換詳細剖析
    1、關於傅立葉變換變換?(另一種說法)對於周期函數f,傅立葉變換就是把這個函數分解成很多個正弦函數fn的和,每個fn的頻率是f的n倍。所謂二次諧波,就是函數f2的頻率為f兩倍的那個函數。(另二種說法)周期信號的傅立葉級數的意義是信號在每一個離散頻率分量處的幅度;非周期信號的傅立葉變換可以理解為周期無窮大的周期信號的傅立葉級數。
  • 傅立葉變換,拉普拉斯變換和Z變換的意義
    本文引用地址:http://www.eepw.com.cn/article/280827.htm  傅立葉變換在物理學、數論、組合數學、信號處理、概率論、統計學、密碼學、聲學、光學、海洋學、結構動力學等領域都有著廣泛的應用(例如在信號處理中,傅立葉變換的典型用途是將信號分解成幅值分量和頻率分量)。
  • 【原創】圖解傅立葉變換
    之前看過一篇關於傅立葉分析的文章,對傅立葉變換、時域、頻域等有了點直觀的理解,但具體到計算上依然是困惑的並且對於一些概念比如卷積、可積、不可積等也是似懂非懂。由於傅立葉公式比較抽象所以就在思考能否構建一個模型,通過模型直觀的去理解或解釋傅立葉公式?
  • 快速傅立葉變換FFT在MATLAB中的實現
    首先,為什麼要進行傅立葉變換?將時域的信號變換到頻域的正弦信號,正弦比原信號更簡單,且正弦函數很早就被充分地研究,處理正弦信號比處理原信號更簡單。正弦信號的頻率保持性:輸入為正弦信號,輸出仍是正弦信號,幅度和相位可能發生變化,但頻率與原信號保持一致,只有正弦信號才擁有這樣的性質。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。 3.3 語音識別程序模塊的設計 為了實現機器人對非特定人語音指令的識別,系統採用非特定人的孤立詞識別系統。非特定人的語音識別是指語音模型由不同年齡、不同性別、不同口音的人進行訓練,在識別時不需要訓練就可以識別說話人的語音[2]。系統分為預加重和加窗,短點檢測,特徵提取,與語音庫的模式匹配和訓練幾個部分。