0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FFT快速傅立葉變換的工作原理

jf_78858299 ? 來源:聲振之家 ? 作者:聲振之家 ? 2023-05-05 09:54 ? 次閱讀

FFT是計(jì)算DFT的快速算法,但是它是基于復(fù)數(shù)的,所以計(jì)算實(shí)數(shù)DFT的時(shí)候需要將其轉(zhuǎn)換為復(fù)數(shù)的格式,下圖展示了實(shí)數(shù)DFT和虛數(shù)DFT的情況,實(shí)數(shù)DFT將時(shí)域中N點(diǎn)信號轉(zhuǎn)換成2個(gè)(N/2+1)點(diǎn)的頻域信號,其中1個(gè)(N/2+1)點(diǎn)的信號稱之為實(shí)部,另一個(gè)(N/2+1)點(diǎn)的信號稱之為虛部,實(shí)部和虛部分別是正弦和余弦信號的幅度。

圖片

相比較而言,復(fù)數(shù)DFT將2個(gè)N點(diǎn)的時(shí)域信號轉(zhuǎn)換為2個(gè)N點(diǎn)的頻域信號。時(shí)域和頻域中,1個(gè)N點(diǎn)信號是實(shí)部,另1個(gè)N點(diǎn)信號是虛部。

如果要計(jì)算N點(diǎn)實(shí)數(shù)DFT,則將這個(gè)N個(gè)點(diǎn)作為時(shí)域中的實(shí)部,另取N個(gè)0點(diǎn)作為時(shí)域的虛部,用FFT計(jì)算這樣一個(gè)復(fù)數(shù)信號的DFT得到2個(gè)N點(diǎn)的頻域信號,1個(gè)N點(diǎn)是實(shí)部另1個(gè)N點(diǎn)是虛部,在這兩個(gè)N點(diǎn)的信號中,從0到N/2個(gè)點(diǎn)就是須計(jì)算的N點(diǎn)實(shí)數(shù)的DFT頻域。

對于實(shí)數(shù)DFT來說,它的頻域也是離散周期信號,其周期為N點(diǎn),從0到N/2點(diǎn)和1-N到-1點(diǎn)具有對稱性,這個(gè)你可以從下面一張圖看出。圖中坐標(biāo)不是用N表示,是用采樣頻率的分?jǐn)?shù)表示。

圖片

所以你如果用FFT反變換計(jì)算的是實(shí)數(shù)時(shí)域,則要滿足上圖的對稱性。

FFT如何工作

FFT的計(jì)算可以分為三步:首先將1個(gè)N點(diǎn)的時(shí)域信號分成N個(gè)1點(diǎn)的時(shí)域信號,然后計(jì)算這N個(gè)1點(diǎn)時(shí)域信號的頻域,得到N個(gè)頻域的點(diǎn),然后將這個(gè)N個(gè)頻域的點(diǎn)按照一定的順序加起來,就得到了我們需要的頻譜。這里每個(gè)點(diǎn)的意思是復(fù)數(shù),都有實(shí)部和虛部。

  • 第一步的信號分解按照下面的規(guī)律執(zhí)行:

圖片

圖片

可以看出它是按照比特反轉(zhuǎn)順序來分解的。

  • 第二步是計(jì)算每個(gè)點(diǎn)的頻譜:

這一步很簡單,因?yàn)橐粋€(gè)時(shí)域的點(diǎn)的頻譜的數(shù)值就是它自己,所以這一步什么也不需做,但需明白這時(shí)候N個(gè)點(diǎn)不是時(shí)域信號了,而是頻域信號。

  • 第三步是將這N個(gè)頻域信號結(jié)合起來

這一步是最麻煩的一步。就是和前面時(shí)域分解的順序相反,將2個(gè)1點(diǎn)的頻域信號變成1個(gè)2點(diǎn)的頻域信號,再將2個(gè)2點(diǎn)的頻域信號變成1個(gè)4點(diǎn)的頻域信號,一直到結(jié)束。這里看下如何將2個(gè)4點(diǎn)的頻域信號變成1個(gè)8點(diǎn)的頻域信號。

圖片

首先對1個(gè)4點(diǎn)的頻域信號進(jìn)行復(fù)制,這樣能稀釋時(shí)域信號,也對另1個(gè)4點(diǎn)的頻域信號進(jìn)行復(fù)制,不過復(fù)制之前需要乘上正弦函數(shù),這樣得到的稀釋時(shí)域信號時(shí)經(jīng)過了平移的,然后將這兩個(gè)頻域信號加起來,如下圖所示。之所以這么做的目的是在時(shí)域分解的時(shí)候就是用這種交織的分解方式的。

圖片

以下是基本的運(yùn)算,稱為蝶形運(yùn)算,它將2個(gè)1點(diǎn)的復(fù)數(shù)變成1個(gè)2點(diǎn)的復(fù)數(shù)。

圖片

圖片

FFT運(yùn)算的流程圖

運(yùn)算速度比較

  • 如果用相關(guān)方法計(jì)算DFT:

圖片

  • 如果用FFT方法計(jì)算DFT:

圖片

圖片

不過,F(xiàn)FT的速度還能更快。 比如使用基4或者基8,這樣不是2點(diǎn)一計(jì)算,而是4點(diǎn)或者8點(diǎn)一計(jì)算,可以提高速度。

FFT對DSP來說就像是晶體管電子學(xué)來說,都是領(lǐng)域的基礎(chǔ),每個(gè)人都知道怎么使用它們,但是只有很少一部分真正了解它們的原理。

事實(shí)就是這樣,你只要知道怎么用就可以了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FFT
    FFT
    +關(guān)注

    關(guān)注

    15

    文章

    433

    瀏覽量

    59246
  • DFT
    DFT
    +關(guān)注

    關(guān)注

    2

    文章

    224

    瀏覽量

    22651
  • 傅里葉
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    20431
收藏 人收藏

    評論

    相關(guān)推薦

    快速傅立葉變換(FFT)算法實(shí)驗(yàn)

    本帖最后由 mr.pengyongche 于 2013-4-30 02:23 編輯 快速傅立葉變換(FFT)算法實(shí)驗(yàn)一、摘
    發(fā)表于 12-21 10:54

    如何使用快速傅立葉變換FFT)的8590 C/E/L系列頻譜分析儀中的FFT函數(shù)?

    本產(chǎn)品說明說明了如何使用快速傅立葉變換FFT)的8590 C/E/L系列頻譜分析儀中的FFT函數(shù)。FF
    發(fā)表于 04-04 16:50

    淺懂示波器FFT快速傅立葉變換功能及運(yùn)用

    大多數(shù)示波器上都有個(gè)FFT功能,也叫快速傅立葉變換,但很多人不了解這個(gè)功能是做什么用的,百度以后又會遇到各種各樣的高數(shù)公式,看的一頭霧水,遂而放棄這塊知識。我們來看百度百科的解釋:
    發(fā)表于 01-14 17:00

    示波器FFT快速傅立葉變換不會用?看完這篇帖子,我徹底悟了

    大多數(shù)示波器上都有個(gè)FFT功能,也叫快速傅立葉變換,但很多人不了解這個(gè)功能是做什么用的,百度以后又會遇到滿屏的高數(shù)公式,看得一頭霧水,繼而以放棄告終。先來看看百度百科對
    發(fā)表于 09-22 13:42

    快速傅立葉變換開發(fā)指南

    快速傅立葉變換開發(fā)指南:The Xilinx® LogiCORE™ IP Fast Fourier Transform (FFT) is a computation
    發(fā)表于 12-31 15:19 ?35次下載

    快速傅立葉變換FFT)的Nios II實(shí)現(xiàn)

    快速傅立葉變換FFT)的Nios II實(shí)現(xiàn) 隨著數(shù)字電子技術(shù)的發(fā)展,數(shù)字信號處理的理論和技術(shù)廣泛地應(yīng)用于通訊、語音處理、計(jì)算機(jī)和多媒體等領(lǐng)域。
    發(fā)表于 02-09 09:38 ?81次下載

    基于FPGA的快速傅立葉變換

    摘要:在對FFT快速傅立葉變換)算法進(jìn)行研究的基礎(chǔ)上,描述了用FPGA實(shí)現(xiàn)FFT的方法,并對其中的整體結(jié)構(gòu)、蝶形單元及性能等進(jìn)行了分析。
    發(fā)表于 06-20 14:13 ?1095次閱讀

    1024點(diǎn)FFT快速傅立葉變換

    Xilinx FPGA工程例子源碼:1024點(diǎn)FFT快速傅立葉變換
    發(fā)表于 06-07 14:13 ?33次下載

    Xilinx 的IP:1024點(diǎn)FFT快速傅立葉變換

    Xilinx FPGA工程例子源碼:Xilinx 的IP:1024點(diǎn)FFT快速傅立葉變換
    發(fā)表于 06-07 15:07 ?51次下載

    DSP進(jìn)行浮點(diǎn)快速傅立葉變換剖析

    前言本文目的是演示如何使用STM32F30x 內(nèi)部的DSP 進(jìn)行浮點(diǎn)快速傅立葉變換FFT),為聯(lián)系實(shí)際應(yīng)用
    的頭像 發(fā)表于 09-18 06:44 ?9435次閱讀

    簡述FPGA的快速傅立葉變換

    摘要:在對FFT快速傅立葉變換)算法進(jìn)行研究的基礎(chǔ)上,描述了用FPGA實(shí)現(xiàn)FFT的方法,并對其中的整體結(jié)構(gòu)、蝶形單元及性能等進(jìn)行了分析。
    的頭像 發(fā)表于 05-27 11:21 ?2201次閱讀
    簡述FPGA的<b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>

    看完學(xué)會速傅立葉變換FFT

    FFT快速傅立葉變換。在很多計(jì)算機(jī)領(lǐng)域都用用處,例如數(shù)字圖像處理、計(jì)算機(jī)網(wǎng)絡(luò)。但他在算法競賽中主要是用于多項(xiàng)式和生成函數(shù)相關(guān)的題目。
    的頭像 發(fā)表于 05-05 09:48 ?902次閱讀
    看完學(xué)會速<b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b><b class='flag-5'>FFT</b>

    我印象中的快速傅里葉變換 (FFT)

    首先,FFT是離散傅立葉變換 (DFT) 的快速算法,那么說到FFT,我們自然要先講清楚傅立葉
    的頭像 發(fā)表于 05-05 09:57 ?1119次閱讀
    我印象中的<b class='flag-5'>快速</b>傅里葉<b class='flag-5'>變換</b> (<b class='flag-5'>FFT</b>)

    淺懂示波器FFT快速傅立葉變換功能及運(yùn)用

    大多數(shù)示波器上都有個(gè)FFT功能,也叫快速傅立葉變換,但很多人不了解這個(gè)功能是做什么用的,百度以后又會遇到各種各樣的高數(shù)公式,看的一頭霧水,遂而放棄這塊知識。我們來看百度百科的解釋:
    的頭像 發(fā)表于 11-08 15:01 ?6440次閱讀
    淺懂示波器<b class='flag-5'>FFT</b><b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>功能及運(yùn)用

    如何使用SBench 6對數(shù)字化儀采集信號進(jìn)行處理?(三)——快速傅立葉變換FFT

    上一篇文章介紹了德思特SBench 6的平均運(yùn)算功能。本章將繼續(xù)為大家介紹SBench 6的快速傅立葉變換FFT)。
    的頭像 發(fā)表于 01-23 10:38 ?535次閱讀
    如何使用SBench 6對數(shù)字化儀采集信號進(jìn)行處理?(三)——<b class='flag-5'>快速</b><b class='flag-5'>傅立葉</b><b class='flag-5'>變換</b>(<b class='flag-5'>FFT</b>)