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:51 ? 次閱讀

FFT--快速傅里葉變換

如果說改變世界必須了解的算法,那么FFT絕對占一席之位。

理論介紹 & 工程應(yīng)用

理論介紹

圖片

1

傅里葉變換與離散傅里葉變換

傅里葉變換公式是基于連續(xù)定義的,但是在我們的計(jì)算機(jī)對數(shù)據(jù)的處理都是離散的,所以必須對傅里葉變換進(jìn)行離散化,進(jìn)而有了離散傅里葉變換。

2

快速傅里葉變換

快速傅立葉變換(FFT)是離散傅立葉(DFT)的快速算法,它是根據(jù)離散傅立葉變換的奇、偶、虛、實(shí)等特性,對離散傅立葉變換的算法進(jìn)行改進(jìn)獲得的。它對傅立葉變換的理論并沒有新的發(fā)現(xiàn),但是對于在計(jì)算機(jī)系統(tǒng)或者說數(shù)字系統(tǒng)中應(yīng)用離散傅立葉變換,可以說是進(jìn)了一大步。

圖片

FFT是基于DFT的一種算法,目的是為了加快DFT的計(jì)算速度。當(dāng)采樣點(diǎn)N=65536=2^16,DFT的計(jì)算量約是FFT的4096倍。

FFT典型的時域2分裂算法圖示如下:

圖片

3

物理意義

任何連續(xù)測量的時序或信號,都可以表示為不同頻率的正弦波信號的無限疊加。有些信號在時域上是很難看出什么特征的,但是如果變換到頻域之后,就很容易看出特征了。這就是很多信號分析采用FFT變換的原因。

圖片

因此對于一個時域信號進(jìn)行采樣,經(jīng)FFT運(yùn)算處理后可以得到該信號的頻譜圖(頻率及對應(yīng)的幅值),基于頻譜圖我們可以設(shè)計(jì)特定的濾波器來濾除特定頻率的噪聲,從而讓原信號更加真實(shí)的顯示出來。如飛控設(shè)計(jì)過程中,對陀螺儀/加速度信號進(jìn)行頻譜分析,濾除機(jī)架振動的噪聲頻率,從而可以降低機(jī)架振動對姿態(tài)解算、飛機(jī)控制的影響。

工程應(yīng)用

編程原理

FFT計(jì)算的快速性簡單來講就是數(shù)學(xué)家利用上面提到的旋轉(zhuǎn)因子W的周期性,對稱性等性質(zhì)進(jìn)行公式化簡。在算法編程中則是不斷利用已經(jīng)計(jì)算過的點(diǎn)來算新的點(diǎn),即:舊點(diǎn)算新點(diǎn)。

FFT中的采樣序列經(jīng)拆分抽取成很多的蝶形圖,對于N=8的時間抽取如下:

圖片

以上的拆分提取,可以稱之為碼位倒序,倒序獲得的序列便為我們蝶形計(jì)算的初始序列,如下圖的左邊一列:

圖片

將上圖大的蝴蝶組,拆分想象成一個個的蝴蝶并聯(lián)及串聯(lián)組成,單個蝴蝶計(jì)算如下:

圖片

后面的蝴蝶使用前面蝴蝶的計(jì)算后的節(jié)點(diǎn),從而舊點(diǎn)算新點(diǎn),循環(huán)計(jì)算多層,便可得到最后的頻譜數(shù)列。

碼位倒序及蝴蝶圖的編程實(shí)現(xiàn)可知乎查找《C語言系列之FFT算法實(shí)現(xiàn)》,推導(dǎo)與編程實(shí)現(xiàn)講的非常詳細(xì)。

結(jié)果分析

雖然很多人都知道FFT是什么,可以用來做什么,怎么去做,但是卻不知道FFT之后的結(jié)果是什意思、如何決定要使用多少點(diǎn)來做FFT。

由DFT公式可知,使用的輸入值是經(jīng)過ADC后的采樣值(采樣定理告訴我們,采樣頻率要大于信號頻率的兩倍),輸入采樣點(diǎn)的數(shù)量N決定了轉(zhuǎn)換的計(jì)算規(guī)模。

N個采樣點(diǎn),經(jīng)過FFT之后,就可以得到N個點(diǎn)的FFT結(jié)果。為了方便進(jìn)行FFT運(yùn)算,通常N取2的整數(shù)次方(參見FFT原理)。FFT運(yùn)算量:Nlog2N(2為對數(shù)的底)。

變換后的頻譜輸出包含同樣數(shù)量的采樣點(diǎn)N,但是其中有一半的值是冗余的,通常不會顯示在頻譜中,所以真正有用的信息是N/2+1個點(diǎn)(依據(jù)采樣定理)。

工程應(yīng)用分析

假設(shè)采樣頻率為Fs,信號頻率F,采樣點(diǎn)數(shù)為N。那么FFT之后結(jié)果就是一個為N點(diǎn)的復(fù)數(shù)。每一個點(diǎn)就對應(yīng)著一個頻率點(diǎn)。這個點(diǎn)的模值,就是該頻率值下的幅度特性。

縱坐標(biāo)--幅值

假設(shè)原始信號的峰值為A,那么FFT的結(jié)果的每個點(diǎn)(除了第一個點(diǎn)直流分量之外)的模值就是A的N/2倍。而第一個點(diǎn)就是直流分量,它的模值就是直流分量的N倍。而每個點(diǎn)的相位呢,就是在該頻率下的信號的相位。

橫坐標(biāo)--頻率

第一個點(diǎn)表示直流分量(即0Hz),而最后一個點(diǎn)N的再下一個點(diǎn)則表示采樣頻率Fs,這中間被N-1個點(diǎn)平均分成N等份,每個點(diǎn)的頻率依次增加。例如某點(diǎn)n所表示的頻率為:Fn=(n-1)*Fs/N。

由上面的公式可以看出,F(xiàn)n所能分辨到頻率為Fs/N,如果采樣頻率Fs為1024Hz,采樣點(diǎn)數(shù)N為1024點(diǎn),則可以分辨到1Hz。

如果采樣N為2048點(diǎn),則結(jié)果可以分辨到0.5Hz。

如果要提高頻率分辨力,則必須增加 采樣點(diǎn)數(shù) ,也即 采樣時間(總采樣計(jì)算周期) 。但這在一些實(shí)際的應(yīng)用中是不現(xiàn)實(shí)的,有些需要在較短的時間內(nèi)完成分析。

舉個栗子

假設(shè)我們有一個信號,它含有2V的直流分量,頻率為0.5371Hz、幅度為73V的交流分量,以及一個頻率為1.025Hz、幅度為50V的交流分量。

用數(shù)學(xué)表達(dá)式就是如下:

S=2+73sin(2pi0.5371t)+50sin(2pi1.025t)

我們以50Hz的采樣率對這個信號進(jìn)行采樣,采樣點(diǎn)N(1024)進(jìn)行FFT運(yùn)算。

按照我們上面的分析,F(xiàn)n=(n-1)*Fs/N,我們可以知道,每兩個

點(diǎn)之間的間距就是50/1024Hz。我們的信號有3個頻率,在頻率點(diǎn)上出現(xiàn)峰值,其它各點(diǎn)應(yīng)該 接近0(離散點(diǎn)的FT頻譜是連續(xù)的,而DFT只是做了連續(xù)頻譜的采樣) 。

運(yùn)算結(jié)果如下:

圖片

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

    關(guān)注

    15

    文章

    434

    瀏覽量

    59263
  • 計(jì)算機(jī)系統(tǒng)

    關(guān)注

    0

    文章

    280

    瀏覽量

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

    關(guān)注

    2

    文章

    224

    瀏覽量

    22658
  • 傅立葉
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    12511
  • 數(shù)字系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    140

    瀏覽量

    20815
收藏 人收藏

    評論

    相關(guān)推薦

    讀懂接口模塊的組合應(yīng)用有哪些?

    讀懂接口模塊的組合應(yīng)用有哪些?
    發(fā)表于 05-17 07:15

    讀懂如何去優(yōu)化AC耦合電容?

    讀懂如何去優(yōu)化AC耦合電容?
    發(fā)表于 06-08 07:04

    讀懂什么是NEC協(xié)議

    讀懂什么是NEC協(xié)議?
    發(fā)表于 10-15 09:22

    讀懂中斷方式和輪詢操作有什么區(qū)別嗎

    讀懂中斷方式和輪詢操作有什么區(qū)別嗎?
    發(fā)表于 12-10 06:00

    讀懂傳感器的原理與結(jié)構(gòu)

    讀懂傳感器傳感器在原理與結(jié)構(gòu)上千差萬別,如何根據(jù)具體的測量目的、測量對象以及測量環(huán)境合理地選用傳感器,是在進(jìn)行某個量的測量時首先要解決的問題。當(dāng)傳感器確定之后,與之相配套的測量方法和測量設(shè)備也就
    發(fā)表于 01-13 07:08

    讀懂無線充電產(chǎn)業(yè)鏈

    讀懂無線充電產(chǎn)業(yè)鏈,新用戶關(guān)注【電子發(fā)燒友網(wǎng)】微信公眾號,輸入“積分”,立送10積分!
    發(fā)表于 12-04 19:13 ?46次下載

    讀懂NB-IoT 的現(xiàn)狀、挑戰(zhàn)和前景

    讀懂 NB-IoT 的現(xiàn)狀、挑戰(zhàn)和前景
    的頭像 發(fā)表于 02-28 15:42 ?6317次閱讀

    讀懂MCU的特點(diǎn)、功能及如何編寫

    讀懂MCU的特點(diǎn)、功能及如何編寫
    發(fā)表于 12-05 09:51 ?24次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>MCU的特點(diǎn)、功能及如何編寫

    讀懂方殼電池倉段差缺陷檢測

    讀懂方殼電池倉段差缺陷檢測
    的頭像 發(fā)表于 01-12 15:46 ?867次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>方殼電池倉段差缺陷檢測

    讀懂,什么是BLE?

    讀懂,什么是BLE?
    的頭像 發(fā)表于 11-27 17:11 ?2134次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>,什么是BLE?

    讀懂車規(guī)級AEC-Q認(rèn)證

    讀懂車規(guī)級AEC-Q認(rèn)證
    的頭像 發(fā)表于 12-04 16:45 ?866次閱讀

    讀懂微力扭轉(zhuǎn)試驗(yàn)機(jī)的優(yōu)勢

    讀懂微力扭轉(zhuǎn)試驗(yàn)機(jī)的優(yōu)勢
    的頭像 發(fā)表于 11-30 09:08 ?525次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>微力扭轉(zhuǎn)試驗(yàn)機(jī)的優(yōu)勢

    讀懂新能源汽車的功能安全

    電子發(fā)燒友網(wǎng)站提供《讀懂新能源汽車的功能安全.pdf》資料免費(fèi)下載
    發(fā)表于 09-04 09:22 ?3次下載

    讀懂MSA(測量系統(tǒng)分析)

    讀懂MSA(測量系統(tǒng)分析)
    的頭像 發(fā)表于 11-01 11:08 ?695次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>MSA(測量系統(tǒng)分析)

    讀懂單燈控制器工作原理

    讀懂單燈控制器工作原理
    的頭像 發(fā)表于 11-11 13:13 ?38次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>單燈控制器工作原理