傅里葉變換,,表示能將滿足一定條件的某個(gè)函數(shù)表示成三角函數(shù)(正弦和/或余弦函數(shù))或者它們的積分的線性組合,。
在不同的研究領(lǐng)域,傅里葉變換具有多種不同的變體形式,,如連續(xù)傅里葉變換和離散傅里葉變換,。最初傅里葉分析是作為熱過(guò)程的解析分析的工具被提出的。
設(shè)f∈,,則其傅里葉變換為上的函數(shù),,定義為
且稱為傅里葉級(jí)數(shù)。
收斂性
f到的傅里葉映射為,,且,,且f的傅里葉級(jí)數(shù)在L2范數(shù)下收斂于f。
對(duì)稱性質(zhì)
若 ,,則,。
奇偶性質(zhì)
若 ,且 ,,其中 表示 的實(shí)部,, 表示 的虛部,則 是關(guān)于 的偶函數(shù),,的模是關(guān)于的偶函數(shù),,輻角是關(guān)于的奇函數(shù)。
線性性質(zhì)
若,,,,則
其中α和β為常數(shù)。
時(shí)移性質(zhì)
若,,則,。
頻移性質(zhì)
若,則。
尺度變換性質(zhì)
若,,則,。
卷積定理
時(shí)域卷積定理:若,,,則,;
頻域卷積定理:若,,,則,。
時(shí)域微積分
微分性質(zhì):若,則,,,;
積分性質(zhì):若,則,。
頻域微積分
微分性質(zhì):若,,則;
積分性質(zhì):若,,則,。
盡管最初傅里葉分析是作為熱過(guò)程的解析分析的工具,但是其思想方法仍然具有典型的還原論和分析主義的特征,。"任意"的函數(shù)通過(guò)一定的分解,,都能夠表示為正弦函數(shù)的線性組合的形式,而正弦函數(shù)在物理上是被充分研究而相對(duì)簡(jiǎn)單的函數(shù)類,,這一想法跟化學(xué)上的原子論想法何其相似,!奇妙的是,現(xiàn)代數(shù)學(xué)發(fā)現(xiàn)傅里葉變換具有非常好的性質(zhì),,使得它如此的好用和有用,,讓人不得不感嘆造物的神奇:
傅里葉變換是線性算子,若賦予適當(dāng)?shù)姆稊?shù),,它還是酉算子,;
傅里葉變換的逆變換容易求出,而且形式與正變換非常類似,;
正弦基函數(shù)是微分運(yùn)算的本征函數(shù),,從而使得線性微分方程的求解可以轉(zhuǎn)化為常系數(shù)的代數(shù)方程的求解.在線性時(shí)不變的物理系統(tǒng)內(nèi),頻率是個(gè)不變的性質(zhì),,從而系統(tǒng)對(duì)于復(fù)雜激勵(lì)的響應(yīng)可以通過(guò)組合其對(duì)不同頻率正弦信號(hào)的響應(yīng)來(lái)獲取,;
著名的卷積定理指出:傅里葉變換可以化復(fù)雜的卷積運(yùn)算為簡(jiǎn)單的乘積運(yùn)算,,從而提供了計(jì)算卷積的一種簡(jiǎn)單手段;
離散形式的傅里葉變換可以利用數(shù)字計(jì)算機(jī)快速的算出(其算法稱為快速傅里葉變換算法(FFT)).
正是由于上述的良好性質(zhì),傅里葉變換在物理學(xué),、數(shù)論,、組合數(shù)學(xué)、信號(hào)處理,、概率,、統(tǒng)計(jì)、密碼學(xué),、聲學(xué),、光學(xué)等領(lǐng)域都有著廣泛的應(yīng)用。
傅里葉變換是數(shù)字信號(hào)處理中的基本操作,,廣泛應(yīng)用于表述及分析離散時(shí)域信號(hào)領(lǐng)域,。但由于其運(yùn)算量與變換點(diǎn)數(shù)N的平方成正比關(guān)系,因此,,在N較大時(shí),,直接應(yīng)用DFT算法進(jìn)行譜變換是不切合實(shí)際的。然而,,快速傅里葉變換技術(shù)的出現(xiàn)使情況發(fā)生了根本性的變化,。本文主要描述了采用FPGA來(lái)實(shí)現(xiàn)2k/4k/8k點(diǎn)FFT的設(shè)計(jì)方法。
一般情況下,,N點(diǎn)的傅里葉變換對(duì)為:
其中,,WN=exp(-2pi/N)。X(k)和x(n)都為復(fù)數(shù),。與之相對(duì)的快速傅里葉變換有很多種,,如DIT(時(shí)域抽取法)、DIF(頻域抽取法),、Cooley-Tukey和Winograd等,。對(duì)于2n傅里葉變換,Cooley-Tukey算法可導(dǎo)出DIT和DIF算法,。本文運(yùn)用的基本思想是Cooley-Tukey算法,,即將高點(diǎn)數(shù)的傅里葉變換通過(guò)多重低點(diǎn)數(shù)傅里葉變換來(lái)實(shí)現(xiàn)。雖然DIT與DIF有差別,,但由于它們?cè)诒举|(zhì)上都是一種基于標(biāo)號(hào)分解的算法,,故在運(yùn)算量和算法復(fù)雜性等方面完全一樣,而沒(méi)有性能上的優(yōu)劣之分,,所以可以根據(jù)需要任取其中一種,,本文主要以DIT方法為對(duì)象來(lái)討論。
N=8192點(diǎn)DFT的運(yùn)算表達(dá)式為:
式中,,m=(4n1 n2)(2048k1 k2)(n=4n1 n2,,k=2048k1 k2)其中n1和k2可取0,1,...,2047,k1和n2可取0,1,2,3,。
由式(3)可知,,8k傅里葉變換可由4×2k的傅里葉變換構(gòu)成。同理,,4k傅里葉變換可由2×2k的傅里葉變換構(gòu)成,。而2k傅里葉變換可由128×16的傅里葉變換構(gòu)成。128的傅里葉變換可進(jìn)一步由16×8的傅里葉變換構(gòu)成,,歸根結(jié)底,,整個(gè)傅里葉變換可由基2、基4的傅里葉變換構(gòu)成,。2k的FFT可以通過(guò)5個(gè)基4和1個(gè)基2變換來(lái)實(shí)現(xiàn),;4k的FFT變換可通過(guò)6個(gè)基4變換來(lái)實(shí)現(xiàn);8k的FFT可以通過(guò)6個(gè)基4和1個(gè)基2變換來(lái)實(shí)現(xiàn),。也就是說(shuō):FFT的基本結(jié)構(gòu)可由基2/4模塊,、復(fù)數(shù)乘法器、存儲(chǔ)單元和存儲(chǔ)器控制模塊構(gòu)成,,其整體結(jié)構(gòu)如圖1所示,。
RAM用來(lái)存儲(chǔ)輸入數(shù)據(jù)、運(yùn)算過(guò)程中的中間結(jié)果以及運(yùn)算完成后的數(shù)據(jù),,ROM用來(lái)存儲(chǔ)旋轉(zhuǎn)因子表,。蝶形運(yùn)算單元即為基2/4模塊,控制模塊可用于產(chǎn)生控制時(shí)序及地址信號(hào),,以控制中間運(yùn)算過(guò)程及最后輸出結(jié)果,。
基4和基2的信號(hào)流如圖2所示。圖中,,若A=r0 j*i0,,B=r1 j*i1,C=r2 j*i2,,D=r3 j*i3是要進(jìn)行變換的信號(hào),,Wk0=c0 j*s0=1,Wk1=c1 j*s1,,Wk2=c2 j*s2,,Wk3=c3 j*s3為旋轉(zhuǎn)因子,將其分別代入圖2中的基4蝶形運(yùn)算單元,,則有:
A′=[r0 (r1×c1-i1×s1) (r2×c2-i2×s2) (r3×c3-i3×s3)] j[i0 (i1×c1 r1×s1) (i2×c2 r2×s2) (i3×c3 r3×s3)]? (4)
B′=[r0 (i1×c1 r1×s1)-(r2×c2-i2×s2)-(i3×c3 r3×s3)] j[i0-(r1×c1-i1×s1)-(i2×c2 r2×s2) (r3×c3-i3×s3)] (5)
C′=[r0-(r1×c1-i1×s1) (r2×c2-i2×s2)-(r3×c3-i3×s3)] j[i0-(i1×c1 r1×s1) (i2×c2 r2×s2)-(i3×c3 r3×s3)] (6)
D′=[r0-(i1×c1 r1×s1)-(r2×c2-i2×s2) (i3×c3 r3×s3)] j[i0 (r1×c1-i1×s1)-(i2×c2 r2×s2)-(r3×c3-i3×s3)]? (7)
而在基2蝶形中,,Wk0和Wk2的值均為1,這樣,,將A,,B,,C和D的表達(dá)式代入圖2中的基2運(yùn)算的四個(gè)等式中,則有:
A′=r0 (r1×c1-i1×s1) j[i0 (i1×c1 r1×s1)]? (8)
B′=r0- (r1×c1-i1×s1) j[i0-(i1×c1 r1×s1)] (9)
C′=r2 (r3×c3-i3×s3) j[i0 (i3×c3 r3×s3)]? (10)
D′=r2-(r3×c3-i3×s3) j[i0-(i3×c3 r3×s3)]? (11)
在上述式(4)~(11)中有很多類同項(xiàng),,如i1×c1 r1×s1和r1×c1-i1×s1等,它們僅僅是加減號(hào)的不同,,其結(jié)構(gòu)和運(yùn)算均類似,,這就為簡(jiǎn)化電路提供了可能。同時(shí),,在蝶形運(yùn)算中,,復(fù)數(shù)乘法可以由實(shí)數(shù)乘法以一定的格式來(lái)表示,這也為設(shè)計(jì)復(fù)數(shù)乘法器提供了一種實(shí)現(xiàn)的途徑,。
以基4為例,,在其運(yùn)算單元中,實(shí)際上只需做三個(gè)復(fù)數(shù)乘法運(yùn)算,,即只須計(jì)算BWk1,、CWk2和DWk3的值即可,這樣在一個(gè)基4蝶形單元里面,,最多只需要3個(gè)復(fù)數(shù)乘法器就可以了,。在實(shí)際過(guò)程中,在不提高時(shí)鐘頻率下,,只要將時(shí)序控制好?便可利用流水線(Pipeline)技術(shù)并只用一個(gè)復(fù)數(shù)乘法器就可完成這三個(gè)復(fù)數(shù)乘法,,大大節(jié)省了硬件資源。
FFT變換后輸出的結(jié)果通常為一特定的倒序,。因此,,幾級(jí)變換后對(duì)地址的控制必須準(zhǔn)確無(wú)誤。
倒序的規(guī)律是和分解的方式密切相關(guān)的,,以基8為例,,其基本倒序規(guī)則如下:
基8可以用2×2×2三級(jí)基2變換來(lái)表示,則其輸入順序則可用二進(jìn)制序列(n1 n2 n3)來(lái)表示,,變換結(jié)束后,,其順序?qū)⒆優(yōu)椋╪3 n2 n1),如:X?011 → x?110 ,,即輸入順序?yàn)?,,輸出時(shí)順序變?yōu)?。
更進(jìn)一步,,對(duì)于基16的變換,,可由2×2×2×2,4×4,,4×2×2等形式來(lái)構(gòu)成,,相對(duì)于不同的分解形式,,往往會(huì)有不同的倒序方式。以4×4為例,,其輸入順序可以用二進(jìn)制序列(n1 n2 n3n4)來(lái)表示變換結(jié)束后,,其順序可變?yōu)椋ǎ╪3 n4)(n1 n2)),如:X?0111 → x?1101 ,。即輸入順序?yàn)?,,輸出時(shí)順序變?yōu)?3。
在2k/4k/8k的傅里葉變換中,,由于要經(jīng)過(guò)多次的基4和基2運(yùn)算,,因此,從每次運(yùn)算完成后到進(jìn)入下一次運(yùn)算前,,應(yīng)對(duì)運(yùn)算的結(jié)果進(jìn)行倒序,,以保證運(yùn)算的正確性。
N點(diǎn)傅里葉變換的旋轉(zhuǎn)因子有著明顯的周期性和對(duì)稱性,。其周期性表現(xiàn)為:
FFT之所以可使運(yùn)算效率得到提高,,就是利用了對(duì)稱性和周期性把長(zhǎng)序列的DFT逐級(jí)分解成幾個(gè)序列的DFT,并最終以短點(diǎn)數(shù)變換來(lái)實(shí)現(xiàn)長(zhǎng)點(diǎn)數(shù)變換,。
根據(jù)旋轉(zhuǎn)因子的對(duì)稱性和周期性,,在利用ROM存儲(chǔ)旋轉(zhuǎn)因子時(shí),可以只存儲(chǔ)旋轉(zhuǎn)因子表的一部分,,而在讀出時(shí)增加讀出地址及符號(hào)的控制,,這樣可以正確實(shí)現(xiàn)FFT。因此,,充分利用旋轉(zhuǎn)因子的性質(zhì),,可節(jié)省70%以上存儲(chǔ)單元。
實(shí)際上,,由于旋轉(zhuǎn)因子可分解為正,、余弦函數(shù)的組合,故ROM中存的值為正,、余弦函數(shù)值的組合,。對(duì)2k/4k/8k的傅里葉變換來(lái)說(shuō),只是對(duì)一個(gè)周期進(jìn)行不同的分割,。由于8k變換的旋轉(zhuǎn)因子包括了2k/4k的所有因子,,因此,實(shí)現(xiàn)時(shí)只要對(duì)讀ROM的地址進(jìn)行控制,,即可實(shí)現(xiàn)2k/4k/8k變換的通用,。
因FFT是為時(shí)序電路而設(shè)計(jì)的,因此,,控制信號(hào)要包括時(shí)序的控制信號(hào)及存儲(chǔ)器的讀寫地址,,并產(chǎn)生各種輔助的指示信號(hào),。同時(shí)在計(jì)算模塊的內(nèi)部,為保證高速,,所有的乘法器都須始終保持較高的利用率,。這意味著在每一個(gè)時(shí)鐘來(lái)臨時(shí)都要向這些單元輸入新的操作數(shù),而這一切都需要控制信號(hào)的緊密配合,。
為了實(shí)現(xiàn)FFT的流形運(yùn)算,,在運(yùn)算的同時(shí),存儲(chǔ)器也要接收數(shù)據(jù),。這可以采用乒乓RAM的方法來(lái)完成。這種方式?jīng)Q定了實(shí)現(xiàn)FFT運(yùn)算的最大時(shí)間,。對(duì)于4k操作,,其接收時(shí)間為4096個(gè)數(shù)據(jù)周期,這樣FFT的最大運(yùn)算時(shí)間就是4096個(gè)數(shù)據(jù)周期。另外,,由于輸入數(shù)據(jù)是以一定的時(shí)鐘為周期依次輸入的,,故在進(jìn)行內(nèi)部運(yùn)算時(shí),可以用較高的內(nèi)部時(shí)鐘進(jìn)行運(yùn)算,,然后再存入RAM依次輸出,。
為節(jié)省資源,可對(duì)存儲(chǔ)數(shù)據(jù)RAM采用原址讀出原址寫入的方法,,即在進(jìn)行下一級(jí)變換的同時(shí),,首先應(yīng)將結(jié)果回寫到讀出數(shù)據(jù)的RAM存貯器中;而對(duì)于ROM,,則應(yīng)采用與運(yùn)算的數(shù)據(jù)相對(duì)應(yīng)的方法來(lái)讀出存儲(chǔ)器中旋轉(zhuǎn)因子的值,。
在2k/4k/8k傅里葉變換中,要實(shí)現(xiàn)通用性,,控制器是最主要的模塊,。2k、4k,、8k變換具有不同的內(nèi)部運(yùn)算時(shí)間和存儲(chǔ)器地址,,在設(shè)計(jì)中,針對(duì)不同的點(diǎn)數(shù)應(yīng)設(shè)計(jì)不同的存儲(chǔ)器存取地址,,同時(shí),,在完成變換后,還要對(duì)開始輸出有用信號(hào)的時(shí)刻進(jìn)行指示,。
Fourier transform或Transformée de Fourier有多個(gè)中文譯名,,常見的有“傅里葉變換”、“付立葉變換”,、“傅立葉轉(zhuǎn)換”,、“傅氏轉(zhuǎn)換”,、“傅氏變換”、等等,。
傅里葉變換是一種分析信號(hào)的方法,,它可分析信號(hào)的成分,也可用這些成分合成信號(hào),。許多波形可作為信號(hào)的成分,,比如正弦波、方波,、鋸齒波等,,傅里葉變換用正弦波作為信號(hào)的成分。
f(t)是t的周期函數(shù),,如果t滿足狄利克雷條件:在一個(gè)以2T為周期內(nèi)f(X)連續(xù)或只有有限個(gè)第一類間斷點(diǎn),,附f(x)單調(diào)或可劃分成有限個(gè)單調(diào)區(qū)間,則F(x)以2T為周期的傅里葉級(jí)數(shù)收斂,,和函數(shù)S(x)也是以2T為周期的周期函數(shù),,且在這些間斷點(diǎn)上,函數(shù)是有限值,;在一個(gè)周期內(nèi)具有有限個(gè)極值點(diǎn),;絕對(duì)可積。則有下圖①式成立,。稱為積分運(yùn)算f(t)的傅里葉變換,,
②式的積分運(yùn)算叫做F(ω)的傅里葉逆變換。F(ω)叫做f(t)的象函數(shù),,f(t)叫做
F(ω)的象原函數(shù),。F(ω)是f(t)的象。f(t)是F(ω)原象,。
①傅里葉變換
②傅里葉逆變換
傅里葉變換在物理學(xué),、電子類學(xué)科、數(shù)論,、組合數(shù)學(xué),、信號(hào)處理、概率論,、統(tǒng)計(jì)學(xué),、密碼學(xué)、聲學(xué),、光學(xué),、海洋學(xué)、結(jié)構(gòu)動(dòng)力學(xué)等領(lǐng)域都有著廣泛的應(yīng)用(例如在信號(hào)處理中,傅里葉變換的典型用途是將信號(hào)分解成頻率譜——顯示與頻率對(duì)應(yīng)的幅值大?。?。
* 傅里葉變換屬于諧波分析。
* 傅里葉變換的逆變換容易求出,,而且形式與正變換非常類似;
* 正弦基函數(shù)是微分運(yùn)算的本征函數(shù),,從而使得線性微分方程的求解可以轉(zhuǎn)化為常系數(shù)的代數(shù)方程的求解.在線性時(shí)不變的物理系統(tǒng)內(nèi),頻率是個(gè)不變的性質(zhì),,從而系統(tǒng)對(duì)于復(fù)雜激勵(lì)的響應(yīng)可以通過(guò)組合其對(duì)不同頻率正弦信號(hào)的響應(yīng)來(lái)獲?。?/p>
*卷積定理指出:傅里葉變換可以化復(fù)雜的卷積運(yùn)算為簡(jiǎn)單的乘積運(yùn)算,,從而提供了計(jì)算卷積的一種簡(jiǎn)單手段,;
* 離散形式的傅里葉變換可以利用數(shù)字計(jì)算機(jī)快速地算出(其算法稱為快速傅里葉變換算法(FFT)).
一般情況下,若“傅里葉變換”一詞的前面未加任何限定語(yǔ),,則指的是“連續(xù)傅里葉變換”,。“連續(xù)傅里葉變換”將平方可積的函數(shù) 表示成復(fù)指數(shù)函數(shù)的積分形式:
上式其實(shí)表示的是連續(xù)傅里葉變換的逆變換,,即將時(shí)間域的函數(shù)表示為頻率域的函數(shù) 的積分。反過(guò)來(lái),,其正變換恰好是將頻率域的函數(shù) 表示為時(shí)間域的函數(shù) 的積分形式,。一般可稱函數(shù) 為原函數(shù),而稱函數(shù) 為傅里葉變換的像函數(shù),,原函數(shù)和像函數(shù)構(gòu)成一個(gè)傅里葉變換對(duì)(transform pair),。
當(dāng) 為奇函數(shù)(或偶函數(shù))時(shí),其余弦(或正弦)分量為零,,而可以稱這時(shí)的變換為余弦變換(或正弦變換),。
主條目:傅里葉級(jí)數(shù)
連續(xù)形式的傅里葉變換其實(shí)是傅里葉級(jí)數(shù)的推廣,因?yàn)榉e分其實(shí)是一種極限形式的求和算子而已,。對(duì)于周期函數(shù),,它的傅里葉級(jí)數(shù)(Fourier series)表示被定義為:
其中 為函數(shù)的周期, 為傅里葉展開系數(shù),,它們等于
對(duì)于實(shí)值函數(shù),,函數(shù)的傅里葉級(jí)數(shù)可以寫成:
其中 和 是實(shí)頻率分量的振幅。
主條目:離散時(shí)間傅里葉變換
離散時(shí)間傅里葉變換(discrete-time Fourier transform, DTFT)針對(duì)的是定義域?yàn)閆的數(shù)列,。設(shè) 為某一數(shù)列,,則其DTFT被定義為
DTFT在時(shí)域上離散,在頻域上則是周期的,,它一般用來(lái)對(duì)離散時(shí)間信號(hào)進(jìn)行頻譜分析,。DTFT可以被看作是傅里葉級(jí)數(shù)的逆。
為了在科學(xué)計(jì)算和數(shù)字信號(hào)處理等領(lǐng)域使用計(jì)算機(jī)進(jìn)行傅里葉變換,,必須將函數(shù)定義在離散點(diǎn)上而非連續(xù)域內(nèi),,且須滿足有限性或周期性條件,。這種情況下,序列 的離散傅里葉變換(discrete Fourier transform, DFT)為
直接使用DFT的定義計(jì)算的計(jì)算復(fù)雜度為 ,,而快速傅里葉變換(fast Fourier transform, FFT)可以將復(fù)雜度改進(jìn)為 ,。計(jì)算復(fù)雜度的降低以及數(shù)字電路計(jì)算能力的發(fā)展使得DFT成為在信號(hào)處理領(lǐng)域十分實(shí)用且重要的方法。
在阿貝爾群上的統(tǒng)一描述
以上各種傅里葉變換可以被更統(tǒng)一的表述成任意局部緊致的阿貝爾群上的傅里葉變換,。這一問(wèn)題屬于調(diào)和分析的范疇,。在調(diào)和分析中,一個(gè)變換從一個(gè)群變換到它的對(duì)偶群(dual group),。此外,,將傅里葉變換與卷積相聯(lián)系的卷積定理在調(diào)和分析中也有類似的結(jié)論。
下表列出了傅里葉變換家族的成員,。容易發(fā)現(xiàn),,函數(shù)在時(shí)(頻)域的離散對(duì)應(yīng)于其像函數(shù)在頻(時(shí))域的周期性,反之連續(xù)則意味著在對(duì)應(yīng)域的信號(hào)的非周期性,。
傅里葉是一位法國(guó)數(shù)學(xué)家和物理學(xué)家的名字,,英語(yǔ)原名是Jean Baptiste Joseph Fourier(1768-1830), Fourier對(duì)熱傳遞很感興趣,于1807年在法國(guó)科學(xué)學(xué)會(huì)上發(fā)表了一篇論文,,運(yùn)用正弦曲線來(lái)描述溫度分布,,論文里有個(gè)在當(dāng)時(shí)具有爭(zhēng)議性的決斷:任何連續(xù)周期信號(hào)可以由一組適當(dāng)?shù)恼仪€組合而成。當(dāng)時(shí)審查這個(gè)論文的人,,其中有兩位是歷史上著名的數(shù)學(xué)家拉格朗日(Joseph Louis Lagrange, 1736-1813)和拉普拉斯(Pierre Simon de Laplace, 1749-1827),,當(dāng)拉普拉斯和其它審查者投票通過(guò)并要發(fā)表這個(gè)論文時(shí),拉格朗日?qǐng)?jiān)決反對(duì),,在他此后生命的六年中,,拉格朗日?qǐng)?jiān)持認(rèn)為傅里葉的方法無(wú)法表示帶有棱角的信號(hào),如在方波中出現(xiàn)非連續(xù)變化斜率,。法國(guó)科學(xué)學(xué)會(huì)屈服于拉格朗日的威望,,拒絕了傅里葉的工作,幸運(yùn)的是,,傅里葉還有其它事情可忙,,他參加了政治運(yùn)動(dòng),隨拿破侖遠(yuǎn)征埃及,,法國(guó)大革命后因會(huì)被推上斷頭臺(tái)而一直在逃避,。直到拉格朗日死后15年這個(gè)論文才被發(fā)表出來(lái)。
拉格朗日是對(duì)的:正弦曲線無(wú)法組合成一個(gè)帶有棱角的信號(hào),。但是,,我們可以用正弦曲線來(lái)非常逼近地表示它,逼近到兩種表示方法不存在能量差別,基于此,,傅里葉是對(duì)的,。
用正弦曲線來(lái)代替原來(lái)的曲線而不用方波或三角波來(lái)表示的原因在于,分解信號(hào)的方法是無(wú)窮的,,但分解信號(hào)的目的是為了更加簡(jiǎn)單地處理原來(lái)的信號(hào),。用正余弦來(lái)表示原信號(hào)會(huì)更加簡(jiǎn)單,因?yàn)檎嘞覔碛性盘?hào)所不具有的性質(zhì):正弦曲線保真度。一個(gè)正弦曲線信號(hào)輸入后,,輸出的仍是正弦曲線,只有幅度和相位可能發(fā)生變化,,但是頻率和波的形狀仍是一樣的。且只有正弦曲線才擁有這樣的性質(zhì),,正因如此我們才不用方波或三角波來(lái)表示。
為什么偏偏選擇三角函數(shù)而不用其他函數(shù)進(jìn)行分解?我們從物理系統(tǒng)的特征信號(hào)角度來(lái)解釋,。我們知道:大自然中很多現(xiàn)象可以抽象成一個(gè)線性時(shí)不變系統(tǒng)來(lái)研究,無(wú)論你用微分方程還是傳遞函數(shù)或者狀態(tài)空間描述,。線性時(shí)不變系統(tǒng)可以這樣理解:輸入輸出信號(hào)滿足線性關(guān)系,,而且系統(tǒng)參數(shù)不隨時(shí)間變換,。對(duì)于大自然界的很多系統(tǒng),一個(gè)正弦曲線信號(hào)輸入后,輸出的仍是正弦曲線,,只有幅度和相位可能發(fā)生變化,但是頻率和波的形狀仍是一樣的,。也就是說(shuō)正弦信號(hào)是系統(tǒng)的特征向量,!當(dāng)然,,指數(shù)信號(hào)也是系統(tǒng)的特征向量,,表示能量的衰減或積聚。自然界的衰減或者擴(kuò)散現(xiàn)象大多是指數(shù)形式的,,或者既有波動(dòng)又有指數(shù)衰減(復(fù)指數(shù) 形式),因此具有特征的基函數(shù)就由三角函數(shù)變成復(fù)指數(shù)函數(shù),。但是,如果輸入是方波,、三角波或者其他什么波形,,那輸出就不一定是什么樣子了,。所以,,除了指數(shù)信號(hào)和正弦信號(hào)以外的其他波形都不是線性系統(tǒng)的特征信號(hào),。
用正弦曲線來(lái)代替原來(lái)的曲線而不用方波或三角波或者其他什么函數(shù)來(lái)表示的原因在于:正弦信號(hào)恰好是很多線性時(shí)不變系統(tǒng)的特征向量,。于是就有了傅里葉變換。對(duì)于更一般的線性時(shí)不變系統(tǒng),,復(fù)指數(shù)信號(hào)(表示耗散或衰減)是系統(tǒng)的“特征向量”,。于是就有了拉普拉斯變換。z變換也是同樣的道理,,這時(shí)是離散系統(tǒng)的“特征向量”,。這里沒(méi)有區(qū)分特征函數(shù)和特征向量的概念,主要想表達(dá)二者的思想是相同的,,只不過(guò)一個(gè)是有限維向量,,一個(gè)是無(wú)限維函數(shù)。
傅里葉級(jí)數(shù)和傅里葉變換其實(shí)就是我們之前討論的特征值與特征向量的問(wèn)題。分解信號(hào)的方法是無(wú)窮的,但分解信號(hào)的目的是為了更加簡(jiǎn)單地處理原來(lái)的信號(hào),。這樣,,用正余弦來(lái)表示原信號(hào)會(huì)更加簡(jiǎn)單,因?yàn)檎嘞覔碛性盘?hào)所不具有的性質(zhì):正弦曲線保真度,。且只有正弦曲線才擁有這樣的性質(zhì),。
這也解釋了為什么我們一碰到信號(hào)就想方設(shè)法的把它表示成正弦量或者復(fù)指數(shù)量的形式,;為什么方波或者三角波如此“簡(jiǎn)單”,我們非要展開的如此“麻煩”,;為什么對(duì)于一個(gè)沒(méi)有什么規(guī)律的“非周期”信號(hào),我們都絞盡腦汁的用正弦量展開,。就因?yàn)檎伊?或復(fù)指數(shù))是特征向量,。
什么是時(shí)域,?從我們出生,我們看到的世界都以時(shí)間貫穿,,股票的走勢(shì)、人的身高,、汽車的軌跡都會(huì)隨著時(shí)間發(fā)生改變,。這種以時(shí)間作為參照來(lái)觀察動(dòng)態(tài)世界的方法我們稱其為時(shí)域分析,。而我們也想當(dāng)然的認(rèn)為,,世間萬(wàn)物都在隨著時(shí)間不停的改變,并且永遠(yuǎn)不會(huì)靜止下來(lái),。
什么是頻域,?頻域(frequency domain)是描述信號(hào)在頻率方面特性時(shí)用到的一種坐標(biāo)系。用線性代數(shù)的語(yǔ)言就是裝著正弦函數(shù)的空間,。頻域最重要的性質(zhì)是:它不是真實(shí)的,,而是一個(gè)數(shù)學(xué)構(gòu)造。頻域是一個(gè)遵循特定規(guī)則的數(shù)學(xué)范疇,。正弦波是頻域中唯一存在的波形,,這是頻域中最重要的規(guī)則,即正弦波是對(duì)頻域的描述,,因?yàn)闀r(shí)域中的任何波形都可用正弦波合成,。
對(duì)于一個(gè)信號(hào)來(lái)說(shuō),,信號(hào)強(qiáng)度隨時(shí)間的變化規(guī)律就是時(shí)域特性,信號(hào)是由哪些單一頻率的信號(hào)合成的就是頻域特性,。
時(shí)域分析與頻域分析是對(duì)信號(hào)的兩個(gè)觀察面,。時(shí)域分析是以時(shí)間軸為坐標(biāo)表示動(dòng)態(tài)信號(hào)的關(guān)系;頻域分析是把信號(hào)變?yōu)橐灶l率軸為坐標(biāo)表示出來(lái),。一般來(lái)說(shuō),,時(shí)域的表示較為形象與直觀,頻域分析則更為簡(jiǎn)練,,剖析問(wèn)題更為深刻和方便,。目前,信號(hào)分析的趨勢(shì)是從時(shí)域向頻域發(fā)展,。然而,,它們是互相聯(lián)系,缺一不可,,相輔相成的,。貫穿時(shí)域與頻域的方法之一,就是傳說(shuō)中的傅里葉分析,。傅里葉分析可分為傅里葉級(jí)數(shù)(Fourier Serie)和傅里葉變換(Fourier Transformation),。
根據(jù)原信號(hào)的不同類型,我們可以把傅里葉變換分為四種類別:
1非周期性連續(xù)信號(hào)傅里葉變換(Fourier Transform)
2周期性連續(xù)信號(hào)傅里葉級(jí)數(shù)(Fourier Series)
3非周期性離散信號(hào)離散時(shí)域傅里葉變換(Discrete Time Fourier Transform)
4周期性離散信號(hào)離散傅里葉變換(Discrete Fourier Transform)
下圖是四種原信號(hào)圖例:
這四種傅里葉變換都是針對(duì)正無(wú)窮大和負(fù)無(wú)窮大的信號(hào),,即信號(hào)的的長(zhǎng)度是無(wú)窮大的,,我們知道這對(duì)于計(jì)算機(jī)處理來(lái)說(shuō)是不可能的,那么有沒(méi)有針對(duì)長(zhǎng)度有限的傅里葉變換呢,?沒(méi)有,。因?yàn)檎嘞也ū欢x成從負(fù)無(wú)窮大到正無(wú)窮大,我們無(wú)法把一個(gè)長(zhǎng)度無(wú)限的信號(hào)組合成長(zhǎng)度有限的信號(hào),。面對(duì)這種困難,,方法是把長(zhǎng)度有限的信號(hào)表示成長(zhǎng)度無(wú)限的信號(hào),可以把信號(hào)無(wú)限地從左右進(jìn)行延伸,,延伸的部分用零來(lái)表示,,這樣,,這個(gè)信號(hào)就可以被看成是非周期性離散信號(hào),我們就可以用到離散時(shí)域傅里葉變換的方法,。還有,也可以把信號(hào)用復(fù)制的方法進(jìn)行延伸,這樣信號(hào)就變成了周期性離散信號(hào),,這時(shí)我們就可以用離散傅里葉變換方法進(jìn)行變換,。這里我們要學(xué)的是離散信號(hào),對(duì)于連續(xù)信號(hào)我們不作討論,,因?yàn)橛?jì)算機(jī)只能處理離散的數(shù)值信號(hào),我們的最終目的是運(yùn)用計(jì)算機(jī)來(lái)處理信號(hào)的,。
但是對(duì)于非周期性的信號(hào),,我們需要用無(wú)窮多不同頻率的正弦曲線來(lái)表示,這對(duì)于計(jì)算機(jī)來(lái)說(shuō)是不可能實(shí)現(xiàn)的,。所以對(duì)于離散信號(hào)的變換只有離散傅里葉變換(DFT)才能被適用,,對(duì)于計(jì)算機(jī)來(lái)說(shuō)只有離散的和有限長(zhǎng)度的數(shù)據(jù)才能被處理,對(duì)于其它的變換類型只有在數(shù)學(xué)演算中才能用到,,在計(jì)算機(jī)面前我們只能用DFT方法,,后面我們要理解的也正是DFT方法。這里要理解的是我們使用周期性的信號(hào)目的是為了能夠用數(shù)學(xué)方法來(lái)解決問(wèn)題,,至于考慮周期性信號(hào)是從哪里得到或怎樣得到是無(wú)意義的,。
每種傅里葉變換都分成實(shí)數(shù)和復(fù)數(shù)兩種方法,對(duì)于實(shí)數(shù)方法是最好理解的,,但是復(fù)數(shù)方法就相對(duì)復(fù)雜許多了,,需要懂得有關(guān)復(fù)數(shù)的理論知識(shí),不過(guò),,如果理解了實(shí)數(shù)離散傅里葉變換(real DFT),,再去理解復(fù)數(shù)傅里葉就更容易了,所以我們先把復(fù)數(shù)的傅里葉放到一邊去,,先來(lái)理解實(shí)數(shù)傅里葉變換,,在后面我們會(huì)先講講關(guān)于復(fù)數(shù)的基本理論,然后在理解了實(shí)數(shù)傅里葉變換的基礎(chǔ)上再來(lái)理解復(fù)數(shù)傅里葉變換,。
還有,,這里我們所要說(shuō)的變換(transform)雖然是數(shù)學(xué)意義上的變換,但跟函數(shù)變換是不同的,,函數(shù)變換是符合一一映射準(zhǔn)則的,,對(duì)于離散數(shù)字信號(hào)處理(DSP),有許多的變換:傅里葉變換,、拉普拉斯變換,、Z變換、希爾伯特變換,、離散余弦變換等,,這些都擴(kuò)展了函數(shù)變換的定義,允許輸入和輸出有多種的值,簡(jiǎn)單地說(shuō)變換就是把一堆的數(shù)據(jù)變成另一堆的數(shù)據(jù)的方法,。
傅里葉變換是數(shù)字信號(hào)處理領(lǐng)域一種很重要的算法,。要知道傅里葉變換算法的意義,首先要了解傅里葉原理的意義,。傅里葉原理表明:任何連續(xù)測(cè)量的時(shí)序或信號(hào),,都可以表示為不同頻率的正弦波信號(hào)的無(wú)限疊加。而根據(jù)該原理創(chuàng)立的傅里葉變換算法利用直接測(cè)量到的原始信號(hào),,以累加方式來(lái)計(jì)算該信號(hào)中不同正弦波信號(hào)的頻率,、振幅和相位。
和傅里葉變換算法對(duì)應(yīng)的是反傅里葉變換算法,。該反變換從本質(zhì)上說(shuō)也是一種累加處理,,這樣就可以將單獨(dú)改變的正弦波信號(hào)轉(zhuǎn)換成一個(gè)信號(hào)。因此,,可以說(shuō),傅里葉變換將原來(lái)難以處理的時(shí)域信號(hào)轉(zhuǎn)換成了易于分析的頻域信號(hào)(信號(hào)的頻譜),,可以利用一些工具對(duì)這些頻域信號(hào)進(jìn)行處理,、加工。最后還可以利用傅里葉反變換將這些頻域信號(hào)轉(zhuǎn)換成時(shí)域信號(hào),。
從現(xiàn)代數(shù)學(xué)的眼光來(lái)看,,傅里葉變換是一種特殊的積分變換。它能將滿足一定條件的某個(gè)函數(shù)表示成正弦基函數(shù)的線性組合或者積分,。在不同的研究領(lǐng)域,,傅里葉變換具有多種不同的變體形式,如連續(xù)傅里葉變換和離散傅里葉變換,。
在數(shù)學(xué)領(lǐng)域,,盡管最初傅里葉分析是作為熱過(guò)程的解析分析的工具,但是其思想方法仍然具有典型的還原論和分析主義的特征,。"任意"的函數(shù)通過(guò)一定的分解,,都能夠表示為正弦函數(shù)的線性組合的形式,而正弦函數(shù)在物理上是被充分研究而相對(duì)簡(jiǎn)單的函數(shù)類:1. 傅里葉變換是線性算子,若賦予適當(dāng)?shù)姆稊?shù),,它還是酉算子,;2. 傅里葉變換的逆變換容易求出,而且形式與正變換非常類似,;3. 正弦基函數(shù)是微分運(yùn)算的本征函數(shù),從而使得線性微分方程的求解可以轉(zhuǎn)化為常系數(shù)的代數(shù)方程的求解,。在線性時(shí)復(fù)雜的卷積運(yùn)算為簡(jiǎn)單的乘積運(yùn)算,從而提供了計(jì)算卷積的一種簡(jiǎn)單手段;4. 離散形式的傅里葉的物理系統(tǒng)內(nèi),頻率是個(gè)不變的性質(zhì),從而系統(tǒng)對(duì)于復(fù)雜激勵(lì)的響應(yīng)可以通過(guò)組合其對(duì)不同頻率正弦信號(hào)的響應(yīng)來(lái)獲??;5. 著名的卷積定理指出:傅里葉變換可以化復(fù)變換可以利用數(shù)字計(jì)算機(jī)快速的算出(其算法稱為快速傅里葉變換算法(FFT))。
正是由于上述的良好性質(zhì),傅里葉變換在物理學(xué)、數(shù)論,、組合數(shù)學(xué),、信號(hào)處理、概率,、統(tǒng)計(jì),、密碼學(xué)、聲學(xué),、光學(xué)等領(lǐng)域都有著廣泛的應(yīng)用,。
圖像的頻率是表征圖像中灰度變化劇烈程度的指標(biāo),是灰度在平面空間上的梯度,。如:大面積的沙漠在圖像中是一片灰度變化緩慢的區(qū)域,,對(duì)應(yīng)的頻率值很低,;而對(duì)于地表屬性變換劇烈的邊緣區(qū)域在圖像中是一片灰度變化劇烈的區(qū)域,,對(duì)應(yīng)的頻率值較高。傅里葉變換在實(shí)際中有非常明顯的物理意義,,設(shè)f是一個(gè)能量有限的模擬信號(hào),,則其傅里葉變換就表示f的譜。從純粹的數(shù)學(xué)意義上看,,傅里葉變換是將一個(gè)函數(shù)轉(zhuǎn)換為一系列周期函數(shù)來(lái)處理的,。從物理效果看,傅里葉變換是將圖像從空間域轉(zhuǎn)換到頻率域,,其逆變換是將圖像從頻率域轉(zhuǎn)換到空間域,。換句話說(shuō),傅里葉變換的物理意義是將圖像的灰度分布函數(shù)變換為圖像的頻率分布函數(shù),,傅里葉逆變換是將圖像的頻率分布函數(shù)變換為灰度分布函數(shù),。
傅里葉變換以前,圖像(未壓縮的位圖)是由對(duì)在連續(xù)空間(現(xiàn)實(shí)空間)上的采樣得到一系列點(diǎn)的集合,,我們習(xí)慣用一個(gè)二維矩陣表示空間上各點(diǎn),,則圖像可由z=f(x,y)來(lái)表示。由于空間是三維的,,圖像是二維的,,因此空間中物體在另一個(gè)維度上的關(guān)系就由梯度來(lái)表示,這樣我們可以通過(guò)觀察圖像得知物體在三維空間中的對(duì)應(yīng)關(guān)系,。為什么要提梯度,?因?yàn)閷?shí)際上對(duì)圖像進(jìn)行二維傅里葉變換得到頻譜圖,就是圖像梯度的分布圖,,當(dāng)然頻譜圖上的各點(diǎn)與圖像上各點(diǎn)并不存在一一對(duì)應(yīng)的關(guān)系,,即使在不移頻的情況下也是沒(méi)有。傅里葉頻譜圖上我們看到的明暗不一的亮點(diǎn),實(shí)際上圖像上某一點(diǎn)與鄰域點(diǎn)差異的強(qiáng)弱,,即梯度的大小,,也即該點(diǎn)的頻率的大小(可以這么理解,,圖像中的低頻部分指低梯度的點(diǎn),,高頻部分相反)。一般來(lái)講,,梯度大則該點(diǎn)的亮度強(qiáng),,否則該點(diǎn)亮度弱。這樣通過(guò)觀察傅里葉變換后的頻譜圖,,也叫功率圖,,我們首先就可以看出,圖像的能量分布,,如果頻譜圖中暗的點(diǎn)數(shù)更多,,那么實(shí)際圖像是比較柔和的(因?yàn)楦鼽c(diǎn)與鄰域差異都不大,梯度相對(duì)較?。?,反之,如果頻譜圖中亮的點(diǎn)數(shù)多,,那么實(shí)際圖像一定是尖銳的,,邊界分明且邊界兩邊像素差異較大的。對(duì)頻譜移頻到原點(diǎn)以后,,可以看出圖像的頻率分布是以原點(diǎn)為圓心,,對(duì)稱分布的。將頻譜移頻到圓心除了可以清晰地看出圖像頻率分布以外,,還有一個(gè)好處,,它可以分離出有周期性規(guī)律的干擾信號(hào),比如正弦干擾,,一副帶有正弦干擾,,移頻到原點(diǎn)的頻譜圖上可以看出除了中心以外還存在以某一點(diǎn)為中心,對(duì)稱分布的亮點(diǎn)集合,,這個(gè)集合就是干擾噪音產(chǎn)生的,,這時(shí)可以很直觀的通過(guò)在該位置放置帶阻濾波器消除干擾。
另外說(shuō)明以下幾點(diǎn):
1,、圖像經(jīng)過(guò)二維傅里葉變換后,,其變換系數(shù)矩陣表明:
若變換矩陣Fn原點(diǎn)設(shè)在中心,其頻譜能量集中分布在變換系數(shù)短陣的中心附近(圖中陰影區(qū)),。若所用的二維傅里葉變換矩陣Fn的原點(diǎn)設(shè)在左上角,,那么圖像信號(hào)能量將集中在系數(shù)矩陣的四個(gè)角上,。這是由二維傅里葉變換本身性質(zhì)決定的。同時(shí)也表明一股圖像能量集中低頻區(qū)域,。
2 ,、變換之后的圖像在原點(diǎn)平移之前四角是低頻,最亮,,平移之后中間部分是低頻,,最亮,亮度大說(shuō)明低頻的能量大(幅角比較大),。
將其發(fā)展延伸,,構(gòu)造出了其他形式的積分變換:
從數(shù)學(xué)的角度理解積分變換就是通過(guò)積分運(yùn)算,把一個(gè)函數(shù)變成另一個(gè)函數(shù),。也可以理解成是算內(nèi)積,,然后就變成一個(gè)函數(shù)向另一個(gè)函數(shù)的投影:
K(s,t)積分變換的核(Kernel),。當(dāng)選取不同的積分域和變換核時(shí),,就得到不同名稱的積分變換。學(xué)術(shù)一點(diǎn)的說(shuō)法是:向核空間投影,,將原問(wèn)題轉(zhuǎn)化到核空間,。所謂核空間,,就是這個(gè)空間里面裝的是核函數(shù),。
當(dāng)然,選取什么樣的核主要看你面對(duì)的問(wèn)題有什么特征,。不同問(wèn)題的特征不同,,就會(huì)對(duì)應(yīng)特定的核函數(shù)。把核函數(shù)作為基函數(shù),。將現(xiàn)在的坐標(biāo)投影到核空間里面去,,問(wèn)題就會(huì)得到簡(jiǎn)化。之所以叫核,,是因?yàn)檫@是最核心的地方,。為什么其他變換你都沒(méi)怎么聽說(shuō)過(guò)而只熟悉傅里葉變換和拉普拉斯變換呢?因?yàn)閺?fù)指數(shù)信號(hào)才是描述這個(gè)世界的特征函數(shù),!
一個(gè)關(guān)于實(shí)數(shù)離散傅里葉變換(Real DFT)實(shí)例
先來(lái)看一個(gè)變換實(shí)例,,一個(gè)原始信號(hào)的長(zhǎng)度是16,于是可以把這個(gè)信號(hào)分解9個(gè)余弦波和9個(gè)正弦波(一個(gè)長(zhǎng)度為N的信號(hào)可以分解成N/2 1個(gè)正余弦信號(hào),,這是為什么呢,?結(jié)合下面的18個(gè)正余弦圖,我想從計(jì)算機(jī)處理精度上就不難理解,一個(gè)長(zhǎng)度為N的信號(hào),,最多只能有N/2 1個(gè)不同頻率,,再多的頻率就超過(guò)了計(jì)算機(jī)所能所處理的精度范圍),,如下圖:
9個(gè)正弦信號(hào):
9個(gè)余弦信號(hào):
把以上所有信號(hào)相加即可得到原始信號(hào),至于是怎么分別變換出9種不同頻率信號(hào)的,,我們先不急,,先看看對(duì)于以上的變換結(jié)果,在程序中又是該怎么表示的,,我們可以看看下面這個(gè)示例圖:
上圖中左邊表示時(shí)域中的信號(hào),,右邊是頻域信號(hào)表示方法,從左向右表示正向轉(zhuǎn)換(Forward DFT),,從右向左表示逆向轉(zhuǎn)換(Inverse DFT),,用小寫x[]表示信號(hào)在每個(gè)時(shí)間點(diǎn)上的幅度值數(shù)組, 用大寫X[]表示每種頻率的幅度值數(shù)組, 因?yàn)橛蠳/2 1種頻率,所以該數(shù)組長(zhǎng)度為N/2 1,,X[]數(shù)組又分兩種,,一種是表示余弦波的不同頻率幅度值:Re X[],另一種是表示正弦波的不同頻率幅度值:Im X[],,Re是實(shí)數(shù)(Real)的意思,,Im是虛數(shù)(Imagine)的意思,采用復(fù)數(shù)的表示方法把正余弦波組合起來(lái)進(jìn)行表示,,但這里我們不考慮復(fù)數(shù)的其它作用,,只記住是一種組合方法而已,目的是為了便于表達(dá)(在后面我們會(huì)知道,,復(fù)數(shù)形式的傅里葉變換長(zhǎng)度是N,,而不是N/2 1)。
FFT是離散傅里葉變換的快速算法,,可以將一個(gè)信號(hào)變換到頻域,。有些信號(hào)在時(shí)域上是很難看出什么特征的,但是如果變換到頻域之后,,就很容易看出特征了,。這就是很多信號(hào)分析采用FFT變換的原因。另外,,F(xiàn)FT可以將一個(gè)信號(hào)的頻譜提取出來(lái),,這在頻譜分析方面也是經(jīng)常用的。
FFT結(jié)果的具體物理意義,。一個(gè)模擬信號(hào),,經(jīng)過(guò)ADC采樣之后,就變成了數(shù)字信號(hào),。采樣定理告訴我們,,采樣頻率要大于信號(hào)頻率的兩倍。
采樣得到的數(shù)字信號(hào),,就可以做FFT變換了,。N個(gè)采樣點(diǎn),,經(jīng)過(guò)FFT之后,就可以得到N個(gè)點(diǎn)的FFT結(jié)果,。為了方便進(jìn)行FFT運(yùn)算,,通常N取2的整數(shù)次方。
假設(shè)采樣頻率為Fs,,信號(hào)頻率F,,采樣點(diǎn)數(shù)為N。那么FFT之后結(jié)果就是一個(gè)為N點(diǎn)的復(fù)數(shù),。每一個(gè)點(diǎn)就對(duì)應(yīng)著一個(gè)頻率點(diǎn),。這個(gè)點(diǎn)的模值,就是該頻率值下的幅度特性,。具體跟原始信號(hào)的幅度有什么關(guān)系呢,?假設(shè)原始信號(hào)的峰值為A,那么FFT的結(jié)果的每個(gè)點(diǎn)(除了第一個(gè)點(diǎn)直流分量之外)的模值就是A的N/2倍,。而第一個(gè)點(diǎn)就是直流分量,,它的模值就是直流分量的N倍。而每個(gè)點(diǎn)的相位呢,,就是在該頻率下的信號(hào)的相位,。第一個(gè)點(diǎn)表示直流分量(即0Hz),而最后一個(gè)點(diǎn)N的再下一個(gè)點(diǎn)(實(shí)際上這個(gè)點(diǎn)是不存在的,,這里是假設(shè)的第N 1個(gè)點(diǎn),,也可以看做是將第一個(gè)點(diǎn)分做兩半分,另一半移到最后)則表示采樣頻率Fs,,這中間被N-1個(gè)點(diǎn)平均分成N等份,,每個(gè)點(diǎn)的頻率依次增加,。例如某點(diǎn)n所表示的頻率為:Fn=(n-1)*Fs/N,。由上面的公式可以看出,F(xiàn)n所能分辨到頻率為為Fs/N,,如果采樣頻率Fs為1024Hz,,采樣點(diǎn)數(shù)為1024點(diǎn),則可以分辨到1Hz,。1024Hz的采樣率采樣1024點(diǎn),,剛好是1秒,也就是說(shuō),,采樣1秒時(shí)間的信號(hào)并做FFT,,則結(jié)果可以分析到1Hz,如果采樣2秒時(shí)間的信號(hào)并做FFT,,則結(jié)果可以分析到0.5Hz,。如果要提高頻率分辨力,,則必須增加采樣點(diǎn)數(shù),也即采樣時(shí)間,。頻率分辨率和采樣時(shí)間是倒數(shù)關(guān)系,。
假設(shè)FFT之后某點(diǎn)n用復(fù)數(shù)a bi表示,那么這個(gè)復(fù)數(shù)的模就是An=根號(hào)a*a b*b,,相位就是Pn=atan2(b,a),。根據(jù)以上的結(jié)果,就可以計(jì)算出n點(diǎn)(n≠1,,且n<=N/2)對(duì)應(yīng)的信號(hào)的表達(dá)式為:An/(N/2)*cos(2*pi*Fn*t Pn),,即2*An/N*cos(2*pi*Fn*t Pn)。對(duì)于n=1點(diǎn)的信號(hào),,是直流分量,,幅度即為A1/N。由于FFT結(jié)果的對(duì)稱性,,通常我們只使用前半部分的結(jié)果,,即小于采樣頻率一半的結(jié)果。
下面以一個(gè)實(shí)際的信號(hào)來(lái)做說(shuō)明,。假設(shè)我們有一個(gè)信號(hào),,它含有2V的直流分量,頻率為50Hz,、相位為-30度,、幅度為3V的交流信號(hào),以及一個(gè)頻率為75Hz,、相位為90度,、幅度為1.5V的交流信號(hào)。用數(shù)學(xué)表達(dá)式就是如下:S=2 3*cos(2*pi*50*t-pi*30/180) 1.5*cos(2*pi*75*t pi*90/180),。式中cos參數(shù)為弧度,,所以-30度和90度要分別換算成弧度。我們以256Hz的采樣率對(duì)這個(gè)信號(hào)進(jìn)行采樣,,總共采樣256點(diǎn),。按照我們上面的分析,F(xiàn)n=(n-1)*Fs/N,,我們可以知道,,每?jī)蓚€(gè)點(diǎn)之間的間距就是1Hz,第n個(gè)點(diǎn)的頻率就是n-1,。我們的信號(hào)有3個(gè)頻率:0Hz,、50Hz、75Hz,,應(yīng)該分別在第1個(gè)點(diǎn),、第51個(gè)點(diǎn),、第76個(gè)點(diǎn)上出現(xiàn)峰值,其它各點(diǎn)應(yīng)該接近0,。實(shí)際情況如何呢,?我們來(lái)看看FFT的結(jié)果的模值如圖所示。
從圖中我們可以看到,,在第1點(diǎn),、第51點(diǎn)、和第76點(diǎn)附近有比較大的值,。我們分別將這三個(gè)點(diǎn)附近的數(shù)據(jù)拿上來(lái)細(xì)看:
1點(diǎn): 512 0i
2點(diǎn): -2.6195E-14 - 1.4162E-13i
3點(diǎn): -2.8586E-14 - 1.1898E-13i
50點(diǎn):-6.2076E-13 - 2.1713E-12i
51點(diǎn):332.55 - 192i
52點(diǎn):-1.6707E-12 - 1.5241E-12i
75點(diǎn):-2.2199E-13 -1.0076E-12i
76點(diǎn):3.4315E-12 192i
77點(diǎn):-3.0263E-14 7.5609E-13i
很明顯,,1點(diǎn)、51點(diǎn),、76點(diǎn)的值都比較大,,它附近的點(diǎn)值都很小,可以認(rèn)為是0,,即在那些頻率點(diǎn)上的信號(hào)幅度為0,。接著,我們來(lái)計(jì)算各點(diǎn)的幅度值,。分別計(jì)算這三個(gè)點(diǎn)的模值,,結(jié)果如下:
1點(diǎn): 512
51點(diǎn):384
76點(diǎn):192
按照公式,可以計(jì)算出直流分量為:512/N=512/256=2,;50Hz信號(hào)的幅度為:384/(N/2)=384/(256/2)=3,;75Hz信號(hào)的幅度為192/(N/2)=192/(256/2)=1.5??梢?,從頻譜分析出來(lái)的幅度是正確的。
然后再來(lái)計(jì)算相位信息,。直流信號(hào)沒(méi)有相位可言,,不用管它。先計(jì)算50Hz信號(hào)的相位,,atan2(-192, 332.55)=-0.5236,結(jié)果是弧度,,換算為角度就是180*(-0.5236)/pi=-30.0001。再計(jì)算75Hz信號(hào)的相位,,atan2(192, 3.4315E-12)=1.5708弧度,換算成角度就是180*1.5708/pi=90.0002,??梢姡辔灰彩菍?duì)的,。根據(jù)FFT結(jié)果以及上面的分析計(jì)算,,我們就可以寫出信號(hào)的表達(dá)式了,,它就是我們開始提供的信號(hào)。
總結(jié):假設(shè)采樣頻率為Fs,,采樣點(diǎn)數(shù)為N,,做FFT之后,某一點(diǎn)n(n從1開始)表示的頻率為:Fn=(n-1)*Fs/N,;該點(diǎn)的模值除以N/2就是對(duì)應(yīng)該頻率下的信號(hào)的幅度(對(duì)于直流信號(hào)是除以N),;該點(diǎn)的相位即是對(duì)應(yīng)該頻率下的信號(hào)的相位。相位的計(jì)算可用函數(shù)atan2(b,a)計(jì)算,。atan2(b,a)是求坐標(biāo)為(a,b)點(diǎn)的角度值,,范圍從-pi到pi。要精確到xHz,,則需要采樣長(zhǎng)度為1/x秒的信號(hào),,并做FFT。要提高頻率分辨率,,就需要增加采樣點(diǎn)數(shù),,這在一些實(shí)際的應(yīng)用中是不現(xiàn)實(shí)的,需要在較短的時(shí)間內(nèi)完成分析,。解決這個(gè)問(wèn)題的方法有頻率細(xì)分法,,比較簡(jiǎn)單的方法是采樣比較短時(shí)間的信號(hào),然后在后面補(bǔ)充一定數(shù)量的0,,使其長(zhǎng)度達(dá)到需要的點(diǎn)數(shù),,再做FFT,這在一定程度上能夠提高頻率分辨力,。具體的頻率細(xì)分法可參考相關(guān)文獻(xiàn),。