FFT變換 from web

一呆馁、傅立葉變換的由來

關(guān)于傅立葉變換梗摇,無論是書本還是在網(wǎng)上可以很容易找到關(guān)于傅立葉變換的描述,但是大都是些故弄玄虛的文章几缭,太過抽象河泳,盡是一些讓人看了就望而生畏的公式的羅列,讓人很難能夠從感性上得到理解奏司, 要理解傅立葉變換乔询,確實需要一定的耐心,別一下子想著傅立葉變換是怎么變換的韵洋,當然竿刁,也需要一定的高等數(shù)學基礎(chǔ),最基本的是級數(shù)變換搪缨,其中傅立葉級數(shù)變換是傅立葉變換的基礎(chǔ)公式食拜。

二、傅立葉變換的提出

讓我們先看看為什么會有傅立葉變換副编?傅立葉是一位法國數(shù)學家和物理學家的名字负甸,英語原名是Jean Baptiste Joseph Fourier(1768-1830), Fourier對熱傳遞很感興趣,于1807年在法國科學學會上發(fā)表了一篇論文,運用正弦曲線來描述溫度分布呻待,論文里有個在當時具有爭議性的決斷:任何連續(xù)周期信號可以由一組適當?shù)恼仪€組合而成打月。當時審查這個論文的人,其中有兩位是歷史上著名的數(shù)學家拉格朗日(Joseph Louis Lagrange, 1736-1813)和拉普拉斯(Pierre Simon de Laplace, 1749-1827)蚕捉,當拉普拉斯和其它審查者投票通過并要發(fā)表這個論文時奏篙,拉格朗日堅決反對,在近50年的時間里迫淹,拉格朗日堅持認為傅立葉的方法無法表示帶有棱角的信號秘通,如在方波中出現(xiàn)非連續(xù)變化斜率。法國科學學會屈服于拉格朗日的威望敛熬,拒絕了傅立葉的工作肺稀,幸運的是,傅立葉還有其它事情可忙应民,他參加了政治運動话原,隨拿破侖遠征埃及,法國大革命后因會被推上斷頭臺而一直在逃避瑞妇。直到拉格朗日死后15年這個論文才被發(fā)表出來稿静。
誰是對的呢?拉格朗日是對的:正弦曲線無法組合成一個帶有棱角的信號辕狰。但是,我們可以用正弦曲線來非常逼近地表示它控漠,逼近到兩種表示方法不存在能量差別蔓倍,基于此,傅立葉是對的盐捷。
為什么我們要用正弦曲線來代替原來的曲線呢偶翅?如我們也還可以用方波或三角波來代替呀,分解信號的方法是無窮的碉渡,但分解信號的目的是為了更加簡單地處理原來的信號聚谁。用正余弦來表示原信號會更加簡單,因為正余弦擁有原信號所不具有的性質(zhì):正弦曲線保真度滞诺。一個正弦曲線信號輸入后形导,輸出的仍是正弦曲線,只有幅度和相位可能發(fā)生變化习霹,但是頻率和波的形狀仍是一樣的朵耕。且只有正弦曲線才擁有這樣的性質(zhì),正因如此我們才不用方波或三角波來表示淋叶。
傅里葉級數(shù)就是用一系列的正弦/余弦信號來表示原來的周期信號阎曹。

三、傅立葉變換分類

根據(jù)原信號的不同類型,我們可以把傅立葉變換分為四種類別:

  1. 非周期性連續(xù)信號 傅立葉變換(Fourier Transform)
  2. 周期性連續(xù)信號 傅立葉級數(shù)(Fourier Series)
  3. 非周期性離散信號 離散時域傅立葉變換(Discrete Time Fourier Transform)
  4. 周期性離散信號 離散傅立葉變換(Discrete Fourier Transform)

下面处嫌,比較下上述傅立葉變換的4種變體的特點:

Paste_Image.png

如上栅贴,容易發(fā)現(xiàn):函數(shù)在時(頻)域的離散對應(yīng)于其像函數(shù)在頻(時)域的周期性。反之連續(xù)則意味著在對應(yīng)域的信號的非周期性熏迹。也就是說筹误,時間上的離散性對應(yīng)著頻率上的周期性。同時癣缅,注意厨剪,離散時間傅里葉變換,時間離散友存,頻率不是離散祷膳,它在頻域依然是連續(xù)的。
如果屡立,讀到此直晨,你不甚明白,大沒關(guān)系膨俐,不必糾結(jié)于以上4種變體勇皇,繼續(xù)往下看,你自會豁然開朗焚刺。(有什么問題敛摘,也懇請?zhí)岢觯蛘吲u指正)

下圖是四種原信號圖例:


Paste_Image.png

這四種傅立葉變換都是針對正無窮大和負無窮大的信號乳愉,即信號的的長度是無窮大的兄淫,我們知道這對于計算機處理來說是不可能的,那么有沒有針對長度有限的傅立葉變換呢蔓姚?沒有捕虽。因為正余弦波被定義成從負無窮小到正無窮大,我們無法把一個長度無限的信號組合成長度有限的信號坡脐。面對這種困難泄私,方法是把長度有限的信號表示成長度無限的信號,可以把信號無限地從左右進行延伸备闲,延伸的部分用零來表示晌端,這樣,這個信號就可以被看成是非周期性離解信號浅役,我們就可以用到離散時域傅立葉變換的方法斩松。還有,也可以把信號用復(fù)制的方法進行延伸觉既,這樣信號就變成了周期性離解信號惧盹,這時我們就可以用離散傅立葉變換方法進行變換乳幸。這里我們要學的是離散信號,對于連續(xù)信號我們不作討論钧椰,因為計算機只能處理離散的數(shù)值信號粹断,我們的最終目的是運用計算機來處理信號的。
但是對于非周期性的信號嫡霞,我們需要用無窮多不同頻率的正弦曲線來表示瓶埋,這對于計算機來說是不可能實現(xiàn)的。所以對于離散信號的變換只有離散傅立葉變換(DFT)才能被適用诊沪,對于計算機來說只有離散的和有限長度的數(shù)據(jù)才能被處理养筒,對于其它的變換類型只有在數(shù)學演算中才能用到,在計算機面前我們只能用DFT方法端姚,后面我們要理解的也正是DFT方法晕粪。這里要理解的是我們使用周期性的信號目的是為了能夠用數(shù)學方法來解決問題,至于考慮周期性信號是從哪里得到或怎樣得到是無意義的渐裸。
每種傅立葉變換都分成實數(shù)和復(fù)數(shù)兩種方法巫湘,對于實數(shù)方法是最好理解的,但是復(fù)數(shù)方法就相對復(fù)雜許多了昏鹃,需要懂得有關(guān)復(fù)數(shù)的理論知識尚氛,不過,如果理解了實數(shù)離散傅立葉變換(real DFT)洞渤,再去理解復(fù)數(shù)傅立葉就更容易了阅嘶,所以我們先把復(fù)數(shù)的傅立葉放到一邊去,先來理解實數(shù)傅立葉變換您宪,在后面我們會先講講關(guān)于復(fù)數(shù)的基本理論奈懒,然后在理解了實數(shù)傅立葉變換的基礎(chǔ)上再來理解復(fù)數(shù)傅立葉變換。
還有宪巨,這里我們所要說的變換(transform)雖然是數(shù)學意義上的變換,但跟函數(shù)變換是不同的溜畅,函數(shù)變換是符合一一映射準則的捏卓,對于離散數(shù)字信號處理(DSP),有許多的變換:傅立葉變換慈格、拉普拉斯變換怠晴、Z變換、希爾伯特變換浴捆、離散余弦變換等蒜田,這些都擴展了函數(shù)變換的定義,允許輸入和輸出有多種的值选泻,簡單地說變換就是把一堆的數(shù)據(jù)變成另一堆的數(shù)據(jù)的方法冲粤。

四美莫、傅立葉變換的物理意義

傅立葉變換是數(shù)字信號處理領(lǐng)域一種很重要的算法。要知道傅立葉變換算法的意義梯捕,首先要了解傅立葉原理的意義厢呵。傅立葉原理表明:任何連續(xù)測量的時序或信號,都可以表示為不同頻率的正弦波信號的無限疊加傀顾。而根據(jù)該原理創(chuàng)立的傅立葉變換算法利用直接測量到的原始信號襟铭,以累加方式來計算該信號中不同正弦波信號的頻率、振幅和相位短曾。
和傅立葉變換算法對應(yīng)的是反傅立葉變換算法寒砖。該反變換從本質(zhì)上說也是一種累加處理,這樣就可以將單獨改變的正弦波信號轉(zhuǎn)換成一個信號嫉拐。因此哩都,可以說,傅立葉變換將原來難以處理的時域信號轉(zhuǎn)換成了易于分析的頻域信號(信號的頻譜)椭岩,可以利用一些工具對這些頻域信號進行處理茅逮、加工。最后還可以利用傅立葉反變換將這些頻域信號轉(zhuǎn)換成時域信號判哥。
從現(xiàn)代數(shù)學的眼光來看献雅,傅里葉變換是一種特殊的積分變換。它能將滿足一定條件的某個函數(shù)表示成正弦基函數(shù)的線性組合或者積分塌计。在不同的研究領(lǐng)域挺身,傅里葉變換具有多種不同的變體形式,如連續(xù)傅里葉變換和離散傅里葉變換锌仅。
在數(shù)學領(lǐng)域章钾,盡管最初傅立葉分析是作為熱過程的解析分析的工具,但是其思想方法仍然具有典型的還原論和分析主義的特征热芹。"任意"的函數(shù)通過一定的分解贱傀,都能夠表示為正弦函數(shù)的線性組合的形式,而正弦函數(shù)在物理上是被充分研究而相對簡單的函數(shù)類:1. 傅立葉變換是線性算子, 若賦予適當?shù)姆稊?shù), 它還是酉算子; 2. 傅立葉變換的逆變換容易求出, 而且形式與正變換非常類似; 3. 正弦基函數(shù)是微分運算的本征函數(shù), 從而使得線性微分方程的求解可以轉(zhuǎn)化為常系數(shù)的代數(shù)方程的求解. 在線性時不變雜的卷積運算為簡單的乘積運算, 從而提供了計算卷積的一種簡單手段; 4. 離散形式的傅立葉的物理系統(tǒng)內(nèi),頻率是個不變的性質(zhì),從而系統(tǒng)對于復(fù)雜激勵的響應(yīng)可以通過組合其對不同頻率正弦信號的響應(yīng)來獲取;5. 著名的卷積定理指出:傅立葉變換可以化復(fù)變換可以利用數(shù)字計算機快速的算出(其算法稱為快速傅立葉變換算法(FFT))伊脓。
正是由于上述的良好性質(zhì),傅里葉變換在物理學府寒、數(shù)論、組合數(shù)學报腔、信號處理株搔、概率、統(tǒng)計纯蛾、密碼學纤房、聲學、光學等領(lǐng)域都有著廣泛的應(yīng)用翻诉。

五炮姨、圖像傅立葉變換的物理意義

圖像的頻率是表征圖像中灰度變化劇烈程度的指標捌刮,是灰度在平面空間上的梯度。如:大面積的沙漠在圖像中是一片灰度變化緩慢的區(qū)域剑令,對應(yīng)的頻率值很低糊啡;而對于地表屬性變換劇烈的邊緣區(qū)域在圖像中是一片灰度變化劇烈的區(qū)域,對應(yīng)的頻率值較高吁津。傅立葉變換在實際中有非常明顯的物理意義棚蓄,設(shè)f是一個能量有限的模擬信號,則其傅立葉變換就表示f的譜碍脏。從純粹的數(shù)學意義上看梭依,傅立葉變換是將一個函數(shù)轉(zhuǎn)換為一系列周期函數(shù)來處理的。從物理效果看典尾,傅立葉變換是將圖像從空間域轉(zhuǎn)換到頻率域役拴,其逆變換是將圖像從頻率域轉(zhuǎn)換到空間域。換句話說钾埂,傅立葉變換的物理意義是將圖像的灰度分布函數(shù)變換為圖像的頻率分布函數(shù)河闰,傅立葉逆變換是將圖像的頻率分布函數(shù)變換為灰度分布函數(shù)。
傅立葉變換以前褥紫,圖像(未壓縮的位圖)是由對在連續(xù)空間(現(xiàn)實空間)上的采樣得到一系列點的集合姜性,我們習慣用一個二維矩陣表示空間上各點,則圖像可由z=f(x,y)來表示髓考。由于空間是三維的部念,圖像是二維的,因此空間中物體在另一個維度上的關(guān)系就由梯度來表示氨菇,這樣我們可以通過觀察圖像得知物體在三維空間中的對應(yīng)關(guān)系儡炼。為什么要提梯度?因為實際上對圖像進行二維傅立葉變換得到頻譜圖查蓉,就是圖像梯度的分布圖乌询,當然頻譜圖上的各點與圖像上各點并不存在一一對應(yīng)的關(guān)系,即使在不移頻的情況下也是沒有豌研。傅立葉頻譜圖上我們看到的明暗不一的亮點楣责,實際上圖像上某一點與鄰域點差異的強弱,即梯度的大小聂沙,也即該點的頻率的大小(可以這么理解初嘹,圖像中的低頻部分指低梯度的點及汉,高頻部分相反)。一般來講屯烦,梯度大則該點的亮度強坷随,否則該點亮度弱房铭。這樣通過觀察傅立葉變換后的頻譜圖,也叫功率圖温眉,我們首先就可以看出缸匪,圖像的能量分布,如果頻譜圖中暗的點數(shù)更多类溢,那么實際圖像是比較柔和的(因為各點與鄰域差異都不大凌蔬,梯度相對較小)闯冷,反之砂心,如果頻譜圖中亮的點數(shù)多,那么實際圖像一定是尖銳的蛇耀,邊界分明且邊界兩邊像素差異較大的辩诞。對頻譜移頻到原點以后,可以看出圖像的頻率分布是以原點為圓心纺涤,對稱分布的译暂。將頻譜移頻到圓心除了可以清晰地看出圖像頻率分布以外,還有一個好處撩炊,它可以分離出有周期性規(guī)律的干擾信號外永,比如正弦干擾,一副帶有正弦干擾衰抑,移頻到原點的頻譜圖上可以看出除了中心以外還存在以某一點為中心象迎,對稱分布的亮點集合,這個集合就是干擾噪音產(chǎn)生的呛踊,這時可以很直觀的通過在該位置放置帶阻濾波器消除干擾砾淌。
另外我還想說明以下幾點:
1、圖像經(jīng)過二維傅立葉變換后谭网,其變換系數(shù)矩陣表明:
若變換矩陣Fn原點設(shè)在中心汪厨,其頻譜能量集中分布在變換系數(shù)短陣的中心附近(圖中陰影區(qū))。若所用的二維傅立葉變換矩陣Fn的原點設(shè)在左上角愉择,那么圖像信號能量將集中在系數(shù)矩陣的四個角上劫乱。這是由二維傅立葉變換本身性質(zhì)決定的。同時也表明一股圖像能量集中低頻區(qū)域锥涕。
2 衷戈、變換之后的圖像在原點平移之前四角是低頻,最亮层坠,平移之后中間部分是低頻殖妇,最亮,亮度大說明低頻的能量大(幅角比較大)破花。
六谦趣、一個關(guān)于實數(shù)離散傅立葉變換(Real DFT)的例子
先來看一個變換實例疲吸,一個原始信號的長度是16,于是可以把這個信號分解9個余弦波和9個正弦波(一個長度為N的信號可以分解成N/2+1個正余弦信號前鹅,這是為什么呢摘悴?結(jié)合下面的18個正余弦圖,我想從計算機處理精度上就不難理解,一個長度為N的信號舰绘,最多只能有N/2+1個不同頻率蹂喻,再多的頻率就超過了計算機所能所處理的精度范圍),如下圖:
9個正弦信號:

Paste_Image.png

9個余弦信號:

Paste_Image.png

把以上所有信號相加即可得到原始信號除盏,至于是怎么分別變換出9種不同頻率信號的叉橱,我們先不急,先看看對于以上的變換結(jié)果者蠕,在程序中又是該怎么表示的窃祝,我們可以看看下面這個示例圖:

Paste_Image.png

上圖中左邊表示時域中的信號,右邊是頻域信號表示方法踱侣,從左向右表示正向轉(zhuǎn)換(Forward DFT)粪小,從右向左表示逆向轉(zhuǎn)換(Inverse DFT),用小寫x[]表示信號在每個時間點上的幅度值數(shù)組, 用大寫X[]表示每種頻率的幅度值數(shù)組, 因為有N/2+1種頻率抡句,所以該數(shù)組長度為N/2+1探膊,X[]數(shù)組又分兩種,一種是表示余弦波的不同頻率幅度值:Re X[]待榔,另一種是表示正弦波的不同頻率幅度值:Im X[]逞壁,Re是實數(shù)(Real)的意思,Im是虛數(shù)(Imagine)的意思锐锣,采用復(fù)數(shù)的表示方法把正余弦波組合起來進行表示腌闯,但這里我們不考慮復(fù)數(shù)的其它作用,只記住是一種組合方法而已,目的是為了便于表達(在后面我們會知道,復(fù)數(shù)形式的傅立葉變換長度是N左冬,而不是N/2+1)。

六分瘦、用Matlab實現(xiàn)快速傅立葉變換

FFT是離散傅立葉變換的快速算法,可以將一個信號變換到頻域琉苇。有些信號在時域上是很難看出什么特征的嘲玫,但是如果變換到頻域之后,就很容易看出特征了并扇。這就是很多信號分析采用FFT變換的原因趁冈。另外,F(xiàn)FT可以將一個信號的頻譜提取出來,這在頻譜分析方面也是經(jīng)常用的渗勘。
雖然很多人都知道FFT是什么,可以用來做什么俩莽,怎么去做旺坠,但是卻不知道FFT之后的結(jié)果是什意思、如何決定要使用多少點來做FFT扮超。
現(xiàn)在就根據(jù)實際經(jīng)驗來說說FFT結(jié)果的具體物理意義取刃。一個模擬信號,經(jīng)過ADC采樣之后出刷,就變成了數(shù)字信號璧疗。采樣定理告訴我們,采樣頻率要大于信號頻率的兩倍馁龟,這些我就不在此啰嗦了崩侠。
采樣得到的數(shù)字信號,就可以做FFT變換了坷檩。N個采樣點却音,經(jīng)過FFT之后,就可以得到N個點的FFT結(jié)果矢炼。為了方便進行FFT運算系瓢,通常N取2的整數(shù)次方。
假設(shè)采樣頻率為Fs句灌,信號頻率F夷陋,采樣點數(shù)為N。那么FFT之后結(jié)果就是一個為N點的復(fù)數(shù)胰锌。每一個點就對應(yīng)著一個頻率點骗绕。這個點的模值,就是該頻率值下的幅度特性匕荸。具體跟原始信號的幅度有什么關(guān)系呢爹谭?假設(shè)原始信號的峰值為A,那么FFT的結(jié)果的每個點(除了第一個點直流分量之外)的模值就是A的N/2倍榛搔。而第一個點就是直流分量诺凡,它的模值就是直流分量的N倍。而每個點的相位呢践惑,就是在該頻率下的信號的相位腹泌。第一個點表示直流分量(即0Hz),而最后一個點N的再下一個點(實際上這個點是不存在的尔觉,這里是假設(shè)的第N+1個點凉袱,也可以看做是將第一個點分做兩半分,另一半移到最后)則表示采樣頻率Fs,這中間被N-1個點平均分成N等份专甩,每個點的頻率依次增加钟鸵。例如某點n所表示的頻率為:Fn=(n-1)Fs/N。由上面的公式可以看出涤躲,F(xiàn)n所能分辨到頻率為為Fs/N棺耍,如果采樣頻率Fs為1024Hz,采樣點數(shù)為1024點种樱,則可以分辨到1Hz蒙袍。1024Hz的采樣率采樣1024點,剛好是1秒嫩挤,也就是說害幅,采樣1秒時間的信號并做FFT,則結(jié)果可以分析到1Hz岂昭,如果采樣2秒時間的信號并做FFT以现,則結(jié)果可以分析到0.5Hz。如果要提高頻率分辨力佩抹,則必須增加采樣點數(shù)叼风,也即采樣時間。頻率分辨率和采樣時間是倒數(shù)關(guān)系棍苹。
假設(shè)FFT之后某點n用復(fù)數(shù)a+bi表示无宿,那么這個復(fù)數(shù)的模就是An=根號a
a+bb,相位就是Pn=atan2(b,a)枢里。根據(jù)以上的結(jié)果孽鸡,就可以計算出n點(n≠1,且n<=N/2)對應(yīng)的信號的表達式為:An/(N/2)cos(2piFnt+Pn)栏豺,即2An/Ncos(2piFnt+Pn)彬碱。對于n=1點的信號,是直流分量奥洼,幅度即為A1/N巷疼。由于FFT結(jié)果的對稱性,通常我們只使用前半部分的結(jié)果灵奖,即小于采樣頻率一半的結(jié)果嚼沿。
下面以一個實際的信號來做說明。假設(shè)我們有一個信號瓷患,它含有2V的直流分量骡尽,頻率為50Hz、相位為-30度擅编、幅度為3V的交流信號攀细,以及一個頻率為75Hz箫踩、相位為90度、幅度為1.5V的交流信號谭贪。用數(shù)學表達式就是如下:S=2+3cos(2pi50t-pi30/180)+1.5cos(2pi75t+pi90/180)境钟。式中cos參數(shù)為弧度,所以-30度和90度要分別換算成弧度故河。我們以256Hz的采樣率對這個信號進行采樣吱韭,總共采樣256點。按照我們上面的分析鱼的,F(xiàn)n=(n-1)*Fs/N,我們可以知道痘煤,每兩個點之間的間距就是1Hz凑阶,第n個點的頻率就是n-1。我們的信號有3個頻率:0Hz衷快、50Hz宙橱、75Hz,應(yīng)該分別在第1個點蘸拔、第51個點师郑、第76個點上出現(xiàn)峰值,其它各點應(yīng)該接近0调窍。實際情況如何呢宝冕?我們來看看FFT的結(jié)果的模值如圖所示。

從圖中我們可以看到邓萨,在第1點地梨、第51點、和第76點附近有比較大的值缔恳。我們分別將這三個點附近的數(shù)據(jù)拿上來細看:
1點: 512+0i
2點: -2.6195E-14 - 1.4162E-13i
3點: -2.8586E-14 - 1.1898E-13i
50點:-6.2076E-13 - 2.1713E-12i
51點:332.55 - 192i
52點:-1.6707E-12 - 1.5241E-12i
75點:-2.2199E-13 -1.0076E-12i
76點:3.4315E-12 + 192i
77點:-3.0263E-14 +7.5609E-13i
很明顯宝剖,1點、51點歉甚、76點的值都比較大万细,它附近的點值都很小,可以認為是0纸泄,即在那些頻率點上的信號幅度為0赖钞。接著,我們來計算各點的幅度值刃滓。分別計算這三個點的模值仁烹,結(jié)果如下:
1點: 512
51點:384
76點:192
按照公式,可以計算出直流分量為:512/N=512/256=2咧虎;50Hz信號的幅度為:384/(N/2)=384/(256/2)=3卓缰;75Hz信號的幅度為192/(N/2)=192/(256/2)=1.5。可見征唬,從頻譜分析出來的幅度是正確的捌显。
然后再來計算相位信息。直流信號沒有相位可言总寒,不用管它扶歪。先計算50Hz信號的相位,atan2(-192, 332.55)=-0.5236,結(jié)果是弧度摄闸,換算為角度就是180(-0.5236)/pi=-30.0001善镰。再計算75Hz信號的相位,atan2(192, 3.4315E-12)=1.5708弧度年枕,換算成角度就是1801.5708/pi=90.0002炫欺。可見熏兄,相位也是對的品洛。根據(jù)FFT結(jié)果以及上面的分析計算,我們就可以寫出信號的表達式了摩桶,它就是我們開始提供的信號桥状。

總結(jié):假設(shè)采樣頻率為Fs,采樣點數(shù)為N硝清,做FFT之后辅斟,某一點n(n從1開始)表示的頻率為:Fn=(n-1)*Fs/N;該點的模值除以N/2就是對應(yīng)該頻率下的信號的幅度(對于直流信號是除以N)耍缴;該點的相位即是對應(yīng)該頻率下的信號的相位砾肺。相位的計算可用函數(shù)atan2(b,a)計算。atan2(b,a)是求坐標為(a,b)點的角度值防嗡,范圍從-pi到pi变汪。要精確到xHz,則需要采樣長度為1/x秒的信號蚁趁,并做FFT裙盾。要提高頻率分辨率,就需要增加采樣點數(shù)他嫡,這在一些實際的應(yīng)用中是不現(xiàn)實的番官,需要在較短的時間內(nèi)完成分析。解決這個問題的方法有頻率細分法钢属,比較簡單的方法是采樣比較短時間的信號徘熔,然后在后面補充一定數(shù)量的0,使其長度達到需要的點數(shù)淆党,再做FFT酷师,這在一定程度上能夠提高頻率分辨力讶凉。具體的頻率細分法可參考相關(guān)文獻。

七山孔、 讓傅立葉變換從理性蛻變到感性懂讯,從抽象升華到具體(應(yīng)不少網(wǎng)友反應(yīng)說以上7部分還是不夠淺顯而另加的一部分,希望對大家有所啟發(fā))

1台颠、我們都知道褐望,LTI系統(tǒng)對諧波函數(shù)的響應(yīng)也是相同頻率的諧波函數(shù),只是幅度和相位可能不同罷了串前,因此我們用諧波函數(shù)來表示信號正是為了導(dǎo)出頻域的概念瘫里。那你就會問為什么我們要在頻域來分析信號,它比時域分析究竟好在哪里呢荡碾?這個問題非常好减宣,我來回答你,第一玩荠,在頻域觀察和分析信號有助于揭示系統(tǒng)的本質(zhì)屬性,更重要的是對于某些系統(tǒng)可以極大地簡化其設(shè)計和分析過程贼邓。這一點想必大家都知道阶冈,我不再啰嗦!第二塑径,從數(shù)學上來看女坑,系統(tǒng)從時域到頻域的轉(zhuǎn)換就意味著系統(tǒng)的微分或差分方程將轉(zhuǎn)變?yōu)榇鷶?shù)方程,而系統(tǒng)的分析也將采用描述系統(tǒng)的復(fù)系數(shù)代數(shù)方程而不是微分或差分方程统舀。既然如此匆骗,那么請問?童鞋誉简,你是喜歡跟微分差分方程玩兒呢還是喜歡跟代數(shù)方程玩兒呢碉就?假若你說你更喜歡跟微分差分方程玩兒。那我也無話可說啦闷串!
可能你還是覺得以上所述只是一個很理性的認識瓮钥,那么接下來,滿足你的感性需求烹吵。其實碉熄,在生活中,我們無時無刻不在進行著傅立葉變換肋拔。(什么锈津?我沒有聽錯吧?A狗洹)對的琼梆,請相信你的耳朵性誉,你完全沒有聽錯。我們來看人類聽覺系統(tǒng)的處理過程:當我們聽到一個聲音叮叹,大腦的實際反應(yīng)是什么艾栋?事實上耳朵感覺到一個時變的空氣壓力,這種變化也許是一個類似于口哨聲的單音蛉顽。當我們聽到一個口哨聲時蝗砾,我們所關(guān)心的并不是氣壓隨時間的振動(它非常非常快P)悼粮,而是聲音的三個特征:基音、聲強以及音長曾棕】勖ǎ基音可以理解為頻率的同義詞,聲強不是別的翘地,它就是幅度申尤。我們的耳朵—大腦系統(tǒng)能有效地將信號表示成三個簡單的特征參數(shù):基音、聲強以及音長衙耕,并不理會氣壓的快速變化過程(一個重復(fù)的變化過程)昧穿。這樣耳朵—大腦系統(tǒng)就提取了信號的本質(zhì)信息。傅立葉變換的分析過程與此類似橙喘,只不過我們從數(shù)學意義把它更加精確化和專業(yè)話罷了时鸵。
2、不要把傅立葉變換想得那么高深莫測厅瞎,其實它就是對傅立葉級數(shù)的一種拓展饰潜。我們知道,傅立葉級數(shù)能描述無限時間的周期信號和簸。那么彭雾,傅立葉級數(shù)能不能描述某些特殊的無限時間的非周期信號呢?答案是比搭,不能冠跷。但我們經(jīng)常要分析處理這樣的信號啊身诺!于是傅立葉變換這個家伙現(xiàn)身啦蜜托!傅立葉變換就是為了使傅立葉級數(shù)能夠描述所有(沒錯!就是所有C股摹)周期和非周期的無限時間信號而導(dǎo)出的橄务,因而傅立葉變換是對傅立葉級數(shù)的一種拓展。
可能你還是覺得以上所述只是一個很抽象的認識穴亏,那么接下來蜂挪,滿足你的具體需求重挑。我們先不管是怎么進行拓展的。我們先關(guān)注另外兩個概念:周期信號和非周期信號棠涮。他們的顯著區(qū)別就在于:周期信號每隔一個有限的時間即基波周期To重復(fù)一次谬哀。它自始至終都將以這個基波周期To重復(fù)。而非周期信號則沒有一個確定的或固定的周期严肪,可能在一段時間內(nèi)他將重復(fù)某一段波形很多次史煎,但不會在整個無限長時間范圍都如此。我們找到一個周期信號的傅立葉級數(shù)驳糯,然后讓這個信號的基波周期趨于無限篇梭,就完成了從傅立葉級數(shù)到傅立葉變換的演變過程。因為當周期信號的基波周期趨于無限時酝枢,它的波形在有限長時間內(nèi)都不會重復(fù)恬偷,這時它就不具有周期性啦!也就是說帘睦,說一個信號具有無限長的周期和說它是一個非周期信號實際上是一回事袍患!

1. FFT 不同點數(shù)的區(qū)別:

FFT的結(jié)果在-fs/2:fs/2-1之間,共有N個點竣付。FFT的點數(shù)代表頻率分辨率协怒;頻率分辨率是f0=fs/N
不同的fs之間fft的區(qū)別卑笨;fs的增大意味著分析帶寬的增大;同時意味著頻率分辨率f0的降低仑撞;

頻率分辨率f0=fs/N赤兴;可見降低fs或增大N都可以使得f0減小,即提高頻率分辨率隧哮;

close all; clc; clear all;
%% 128point fft vs 128point with zeros padding
fs=1e3;
N=128;
t=[0:N-1]/fs;
f1=200;f2=100;
a1=0.5;a2=1;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_len=length(x);
W=dftmtx(N);
x_fft = x*W;
x_max = max(x_fft);
f=(-1/2*N:1/2*N-1)*fs/N;
figure
subplot(2,2,1)
plot(f,fftshift(abs(x_fft)));
title('128point')
subplot(222)
t_less=[0:N-29]/fs;
x_less=a1*cos(2*pi*f1*t_less)+a2*sin(2*pi*f2*t_less);
x_p = [x_less,zeros(1,28)]; 
x_p_fft = x_p*W;
plot(f,abs(fftshift(x_p_fft)))'
title('zeros padding');
 
%% 128fft vs 512fft
fs=1e3;
N=128;
t=[0:N-1]/fs;
f1=200;f2=100;
a1=0.5;a2=1;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_len=length(x);
W=dftmtx(N);
x_fft = x*W;
x_max = max(x_fft);
f=(-1/2*N:1/2*N-1)*fs/N;
 
subplot(223)
plot(f,fftshift(abs(x_fft)));
title('128point')
N=512;
t=[0:N-1]/fs;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
W=dftmtx(N);
x_fft = x*W;
f=(-1/2*N:1/2*N-1)*fs/N;
 
subplot(224)
plot(f,fftshift(abs(x_fft)));
title('512point');
 
%% 128point fft vs 128point with zeros padding
fs=1e3;
N=512;
t=[0:N-1]/fs;
f1=200;f2=100;
a1=0.5;a2=1;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_len=length(x);
W=dftmtx(N);
x_fft = x*W;
x_max = max(x_fft);
f=(-1/2*N:1/2*N-1)*fs/N;
figure
subplot(1,2,1)
plot(f,fftshift(abs(x_fft)));
title('512point&fs=1e3')
subplot(122)
 
fs=1e4;
t =[0:N-1]/fs;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_fft = x*W;
f=(-1/2*N:1/2*N-1)*fs/N;
plot(f,abs(fftshift(x_fft)))'
title('512point&fs=1e4')桶良;

2. 采樣率的影響:

因為fft的點數(shù)要是2n;如果fs是信號頻率的2n倍時;所取做fft的點數(shù)n采樣不是整周期采樣沮翔;因為fft是把階段信號做周期化處理進行的陨帆;如果不是整周期采樣,則周期化時采蚀,首尾采樣點跳變疲牵,會引入高頻信號;

fs=1e3;
N=128;
t=[0:N-1]/fs;
f1=200;f2=100;
a1=0.5;a2=1;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_len=length(x);
W=dftmtx(N);
x_fft = x*W;
x_max = max(x_fft);
f=(-1/2*N:1/2*N-1)*fs/N;
figure
subplot(2,2,1)
plot(f,fftshift(abs(x_fft)));
title('16point & fs=1e3')
subplot(222)
fs=800;
N=128;
t=[0:N-1]/fs;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_fft=fft(x);
f=(-1/2*N:1/2*N-1)*fs/N;
plot(f,abs(fftshift(x_fft)));
title('16point & fs=800');
subplot(223)
fs=1200;
N=128;
t=[0:N-1]/fs;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_fft=fft(x);
f=(-1/2*N:1/2*N-1)*fs/N;
plot(f,abs(fftshift(x_fft)));
title('16point & fs=1200');
subplot(224)
fs=2000;
N=128;
t=[0:N-1]/fs;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_fft=fft(x);
f=(-1/2*N:1/2*N-1)*fs/N;
plot(f,abs(fftshift(x_fft)));
title('16point & fs=2000');

3. 窗函數(shù)的影響:

實際情況下榆鼠,我們得到的信號都是有限長的纲爸,即對原始序列作加窗處理使其成為有限長,時域的乘積對應(yīng)頻域卷積妆够,造成頻率的泄露识啦。減小泄露的防范可以取更慘的數(shù)據(jù)负蚊,缺點是運算量更大;也可以選擇窗的形狀颓哮,使得窗譜的旁瓣能量更小家妆。(濾波器是時域卷積相當于頻域相乘,加窗和過濾波器運算不相同)冕茅。
在對信號做FFT分析時伤极,如果采樣頻率固定不變,由于被采樣信號自身頻率的微小變化以及干擾因素的影響嵌赠,就會使數(shù)據(jù)窗記錄的不是整數(shù)個周期塑荒。從時域來說,這種情況在信號的周期延拓時就會導(dǎo)致其邊界點不連續(xù)姜挺,使信號附加了高頻分量; 從頻域來說齿税,由于FFT算法只是對有限長度的信號進行變換,有限長度信號在時域相當于無限長信號和矩形窗的乘積炊豪,也就是將這個無限長信號截短凌箕,對應(yīng)頻域的傅里葉變換是實際信號傅里葉變換與矩形窗傅里葉變換的卷積。
增加采樣長度可以分析出更多頻率的信號词渤,可以減少頻譜泄露牵舱,不過增加采樣長度必然會對數(shù)據(jù)處理的實時性造成影響!理想的窗函數(shù)是主瓣很窄缺虐,旁瓣衰減很快芜壁,矩形窗的主瓣很窄,但是旁瓣衰減卻很慢高氮,hanning窗慧妄、hamming窗、blackman窗等的旁瓣衰減有了明顯的改進剪芍,但是主瓣卻寬了很多塞淹,大概是矩形窗主瓣的二倍,blackman窗的主瓣還要寬罪裹,這就造成了信號頻譜的頻率識別率很低饱普!
加窗的區(qū)別:1是沒加窗相當于矩形窗,2是hamming状共;3是加矩形窗套耕;

%% 128point fft windows
fs=1e3;
N=128;
t=[0:N-1]/fs;
f1=200;f2=100;
a1=0.5;a2=1;
x=a1*cos(2*pi*f1*t)+a2*sin(2*pi*f2*t);
x_len=length(x);
W=dftmtx(N);
x_fft = x*W;
x_max = max(x_fft);
f=(-1/2*N:1/2*N-1)*fs/N;
figure
subplot(2,2,1)
plot(f,fftshift(abs(x_fft)));
title('512point&fs=1e3')
subplot(222)
 
win=hamming(N);
x_fft = x.*win'*W;
plot(f,fftshift(abs(x_fft)));
title('hamming')
 
subplot(223)
rwin = rectwin(N);
x_fft = x.*rwin'*W;
plot(f,fftshift(abs(x_fft)));
title('rectwin')

參考資料:
http://blog.jobbole.com/70549/
http://www.cnblogs.com/v-July-v/archive/2011/02/20/1983676.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市峡继,隨后出現(xiàn)的幾起案子箍铲,更是在濱河造成了極大的恐慌,老刑警劉巖鬓椭,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颠猴,死亡現(xiàn)場離奇詭異关划,居然都是意外死亡,警方通過查閱死者的電腦和手機翘瓮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門贮折,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人资盅,你說我怎么就攤上這事调榄。” “怎么了呵扛?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵每庆,是天一觀的道長。 經(jīng)常有香客問我今穿,道長缤灵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任蓝晒,我火速辦了婚禮腮出,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芝薇。我一直安慰自己胚嘲,他們只是感情好,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布洛二。 她就那樣靜靜地躺著馋劈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晾嘶。 梳的紋絲不亂的頭發(fā)上侣滩,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機與錄音变擒,去河邊找鬼。 笑死寝志,一個胖子當著我的面吹牛娇斑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播材部,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼毫缆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了乐导?” 一聲冷哼從身側(cè)響起苦丁,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎物臂,沒想到半個月后旺拉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體产上,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年蛾狗,在試婚紗的時候發(fā)現(xiàn)自己被綠了晋涣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡沉桌,死狀恐怖谢鹊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情留凭,我是刑警寧澤佃扼,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蔼夜,受9級特大地震影響兼耀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挎扰,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一翠订、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧遵倦,春花似錦尽超、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掠哥,卻和暖如春巩踏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背续搀。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工塞琼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人禁舷。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓彪杉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親牵咙。 傳聞我的和親對象是個殘疾皇子派近,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容