1.FFT變換的基本原理
傅立葉變換是數(shù)字信號(hào)處理領(lǐng)域一種很重要的算法,可以將一個(gè)信號(hào)從時(shí)域變換到頻域。傅立葉原理表明:任何連續(xù)測(cè)量的時(shí)序或信號(hào),都可以表示為不同頻率的正弦波信號(hào)的無(wú)限疊加。
根據(jù)原信號(hào)的不同類型,傅里葉變換可以分為四種類別:
(1)非周期性連續(xù)信號(hào)傅里葉變換
(2)周期性連續(xù)信號(hào)傅里葉級(jí)數(shù)
(3)非周期性離散信號(hào)離散時(shí)域傅里葉變換
(4)周期性離散信號(hào)離散傅里葉變換
快速傅里葉變換(FFT),是利用計(jì)算機(jī)計(jì)算離散傅里葉變換(DFT)的高效、快速計(jì)算方法的統(tǒng)稱,但是它是基于復(fù)數(shù)的,復(fù)數(shù)DFT寫(xiě)成如下極坐標(biāo)形式:
在復(fù)數(shù)傅里葉變換中,x[n]和X[k]都是復(fù)數(shù)數(shù)組,它包括正頻率和負(fù)頻率。K從0到N-1,0~N/2的頻率為正值,N/2~N-1為負(fù)值。因?yàn)殡x散信號(hào)的頻譜是周期性的,其周期等于抽樣頻率。所以N/2到N-1的頻率和-N/2~0的頻率是相同的。0點(diǎn)和N/2點(diǎn)的頻率值為正負(fù)頻率的分界。
我們?cè)O(shè)變換長(zhǎng)度N = 2L,將x(n)按照n的奇偶分為兩組
x1(r) = x(2r)
x2(r)= x(2r+1)
其中r=0,1,…,N/2-1,帶入上述復(fù)數(shù)DFT變換的公式,得到X[k]:
在式子中X1(K)和X2(K)分別是x1(n)和x2(n)的N/2點(diǎn)DFT,因此它只能算出前一半的值,后一半利用
可以得到后半部分X(k)
把x(n)的N點(diǎn)DFT合到一起,就是如下的蝶形運(yùn)算,也是FFT的基本運(yùn)算單元。
我們以8點(diǎn)的信號(hào)為例,三次按照奇偶分解,它的FFT信號(hào)流圖如下:
2.抽樣定理
抽樣定理表明:如果一個(gè)連續(xù)信號(hào)f(t),其最高截止頻率為fm,如果用時(shí)間間隔為T(mén)≤1/(2*fm)的開(kāi)關(guān)信號(hào)對(duì)f(t)進(jìn)行時(shí)域抽樣,則f(t)可以被樣值信號(hào)唯一表示。即保證抽樣頻率fs≥2*fm,可以由抽樣信號(hào)fs(t),恢復(fù)出原始信號(hào)f(t)。
通常把最低允許的抽樣頻率fs=2*fm稱為“奈奎斯特頻率”,把最大允許的抽樣間隔Ts=1/(2*fm)稱為“奈奎斯特間隔”。
3.FFT頻譜分析
因?yàn)镕FT是基于復(fù)數(shù)的,在計(jì)算FFT的時(shí)候會(huì)出現(xiàn)兩種情況,輸入的數(shù)據(jù)為實(shí)數(shù)和復(fù)數(shù),實(shí)際當(dāng)中輸入信號(hào)x(n)一般都為實(shí)信號(hào),即虛部為零。
(1)輸入數(shù)據(jù)是實(shí)數(shù)
我們用matlab產(chǎn)生一個(gè)實(shí)正弦信號(hào),如下:
正弦信號(hào)sin_data包含兩個(gè)頻點(diǎn)信號(hào),f1=50Hz,f2=200Hz,采樣頻率fs=1024Hz,采樣點(diǎn)數(shù)NFFT=1024,F(xiàn)FT之后結(jié)果為一個(gè)N點(diǎn)復(fù)數(shù)。每一個(gè)點(diǎn)對(duì)應(yīng)著一個(gè)頻率點(diǎn),這個(gè)點(diǎn)的模值,就是該頻率值下的幅度特性。所達(dá)到的頻率分辨率為fd=fs/N=1024/1024=1Hz,某一點(diǎn)n所表示的頻率為Fn=(n-1)*fs/N=n-1,每個(gè)點(diǎn)的模值是A的N/2倍,其中A為原始信號(hào)的峰值。FFT結(jié)果如下:
在頻譜圖中,前N/2個(gè)點(diǎn)有兩個(gè)峰值,后N/2有兩個(gè)峰值,是對(duì)稱的。在上述中提到,F(xiàn)FT包含周期為2*pi的特性,在做FFT的時(shí)候得到的是[0,2*pi],包含一個(gè)完整的區(qū)間。正頻率分布在[0,N/2]與[0,2*pi]對(duì)應(yīng),N/2+1是正負(fù)頻率的分界點(diǎn),表示的頻率為奈奎斯特采樣頻率的半,負(fù)頻率分布在[N/2+1,N-1]與[pi,2*pi]相對(duì)應(yīng),[pi,2*pi]就等同于[-pi,0],負(fù)頻率沒(méi)有物理意義,把上述頻譜圖做調(diào)整之后如下:
在做實(shí)數(shù)FFT時(shí),往往將0~N/2點(diǎn)的值作為實(shí)際的頻譜,由于正負(fù)頻率幅值分量各占一半,幅值需要擴(kuò)大2倍。
(2)輸入數(shù)據(jù)是復(fù)數(shù)
我們用matlab產(chǎn)生一個(gè)和上述信號(hào)一樣頻率的復(fù)數(shù)信號(hào),并觀察其FFT之后的頻譜,如下所示:
在做復(fù)數(shù)FFT的時(shí)候,只會(huì)有兩個(gè)峰值,對(duì)應(yīng)兩個(gè)頻率,且每個(gè)點(diǎn)的模值是A的N倍,A為原始信號(hào)的峰值。其實(shí)當(dāng)我們輸入指數(shù)形式的信號(hào)時(shí),它包含實(shí)部和虛部?jī)蓚€(gè)信號(hào),即x(n)=cos(n)+j*sin(n)。相當(dāng)于是兩個(gè)頻譜的疊加,cos(n)產(chǎn)生一個(gè)頻譜,j*sin(n)產(chǎn)生一個(gè)頻譜,二者相互疊加,并不是沒(méi)有了負(fù)頻率,而是負(fù)頻率相互抵消,正頻率的幅值擴(kuò)大了二倍。
(3)在實(shí)際中,通過(guò)FFT計(jì)算得到頻點(diǎn)信息往往和信號(hào)的頻點(diǎn)信息不相同,會(huì)有誤差,這就取決于頻譜的分辨率,例如:當(dāng)fs=1000Hz的時(shí)候fd=fs/N=1000/1024=0.97Hz,因?yàn)閒1=50Hz,f2=200Hz不是fd的整數(shù)倍,所以FFT的頻譜中不包含這兩個(gè)頻點(diǎn),只有其周圍相接近的整數(shù)倍頻點(diǎn),通過(guò)FFT得到的頻譜如下:
4.頻率分辨率
頻率分辨率也叫做兩個(gè)相鄰譜峰分開(kāi)的能力,指分辨兩個(gè)不同頻率信號(hào)的最小間隔。我們用matlab產(chǎn)生一個(gè)余弦波信號(hào)(頻率分別為1MHz和1.05MHz),幅值都為1,采樣頻率fs=100MHz,采樣點(diǎn)數(shù)N=1000,對(duì)這1000個(gè)數(shù)據(jù)點(diǎn)做FFT得到頻譜如下:
可以發(fā)現(xiàn)頻譜點(diǎn)稀疏,在1MHz附近無(wú)法將1MHz和1.05 MHz的兩個(gè)頻率分開(kāi),頻率成分無(wú)法被區(qū)分,一般由于頻率分辨率不夠造成的。
頻率分辨率大致有兩種類型,一種叫波形分辨率,由原始數(shù)據(jù)的時(shí)間長(zhǎng)度決定:
另一種叫視覺(jué)分辨率或FFT分辨率,由采樣頻率和參與FFT的數(shù)據(jù)點(diǎn)數(shù)決定:
區(qū)分不同頻率成分,是為了在數(shù)據(jù)點(diǎn)數(shù)不是以2為基數(shù)的整數(shù)次方是對(duì)原始數(shù)據(jù)進(jìn)行“補(bǔ)零”操作。如果直接對(duì)原始數(shù)據(jù)做FFT,這兩種頻率分辨率是相等的。
(1)補(bǔ)零
現(xiàn)在對(duì)原始數(shù)據(jù)進(jìn)行“補(bǔ)零”操作,在采樣點(diǎn)1000個(gè)原始數(shù)據(jù)后面補(bǔ)充零達(dá)到7000個(gè)數(shù)據(jù)點(diǎn),再對(duì)其做FFT,結(jié)果如下圖所示:
可以發(fā)現(xiàn)頻譜點(diǎn)密集了很多,但是在1MHz附近仍無(wú)法將兩個(gè)頻率成分分開(kāi),所以,雖然我們補(bǔ)了很多的零,但是波形分辨率仍然為1/T1 = 100kHz,大于1MHz和1.05MHz這兩個(gè)頻率成分之間的距離50kHz。時(shí)域補(bǔ)零相當(dāng)于頻域插值,也就是說(shuō),補(bǔ)零操作增加了頻域的插值點(diǎn)數(shù),使得頻域曲線看起來(lái)更加光滑,增加了FFT頻率分辨率。
(2)增加數(shù)據(jù)時(shí)間長(zhǎng)度
在采樣頻率不變的情況下,想要分辨這兩個(gè)頻率,必須要改變波形的分辨率,也就是延長(zhǎng)原始數(shù)據(jù)的時(shí)間長(zhǎng)度,現(xiàn)在我們以同樣的采樣頻率對(duì)信號(hào)采7000個(gè)點(diǎn)作為原始信號(hào),然后對(duì)齊做FFT,得到的結(jié)果如下:
此時(shí)的波形分辨率為1/T2=14kHz,小于50KHz,可以看到有兩個(gè)明顯的峰值,但是會(huì)發(fā)現(xiàn)1MHz對(duì)應(yīng)的幅值為1,與原信號(hào)中該頻率成分的幅值一致,但1.05MHz對(duì)應(yīng)的幅值明顯低于1,這就是所謂的頻譜泄露。使得在1MHz處有譜線存在,在1.05MHz處沒(méi)有譜線存在,使測(cè)量結(jié)果偏離實(shí)際值,同時(shí)在實(shí)際頻率點(diǎn)的能量分散到其它頻率點(diǎn)上。
(3)為了解決這個(gè)問(wèn)題,我們可以設(shè)法使得譜線同時(shí)經(jīng)過(guò)1MHz和1.05MHz這兩個(gè)頻點(diǎn),找到他們的最大公約數(shù)50kHz,用FFT分辨率計(jì)算得到FFT數(shù)據(jù)點(diǎn)數(shù)2000,但是我們的數(shù)據(jù)點(diǎn)已經(jīng)有7000了,我們對(duì)點(diǎn)數(shù)擴(kuò)大四倍到8000點(diǎn),也就是補(bǔ)1000個(gè)零。這時(shí)FFT分辨率為12.5kHz,所以譜線同時(shí)經(jīng)過(guò)1MHz和1.05MHz這兩個(gè)頻率點(diǎn),對(duì)其做FFT結(jié)果如下:
從上圖中可以看到,兩個(gè)頻點(diǎn)的幅值均與原信號(hào)一致,這也是補(bǔ)零操作帶來(lái)的影響。
-
FFT
+關(guān)注
關(guān)注
15文章
434瀏覽量
59388 -
傅里葉變換
+關(guān)注
關(guān)注
6文章
441瀏覽量
42601
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論