FFT相關(guān)原理及使用注意事項
在信號分析與處理中,頻譜分析是重要的工具。FFT(Fast Fourier Transform,快速傅立葉變換)可以將時域信號轉(zhuǎn)換至頻域,以獲得信號的頻率結(jié)構(gòu)、幅度、相位等信息。該算法在理工科課程中都有介紹,眾多的儀器或軟件亦集成此功能。FFT實用且高效,相關(guān)原理與使用注意事項也值得好好學(xué)習(xí)。
本文引用地址:http://2s4d.com/article/201904/399975.htm一、何為FFT
對于模擬信號的頻譜分析,首先得使用ADC(模擬數(shù)字轉(zhuǎn)換器)進行采樣,轉(zhuǎn)換為有限序列
,其非零值長度為N,經(jīng)DFT(離散傅立葉變換)即可轉(zhuǎn)化為頻域。DFT變換式為:
在上式中,N點序列的DFT需要進行N2次復(fù)數(shù)乘法和
次復(fù)數(shù)加法,運算量大。FFT是DFT的快速算法,利用DFT運算中的對稱性與周期性,將長序列DFT分解為短序列DFT之和。最終運算量明顯減少,使得FFT應(yīng)用更加廣泛。FFT基于一個基本理論:任何連續(xù)的波形,都可以分解為不同頻率的正弦波形的疊加。FFT將采樣得到的原始信號,轉(zhuǎn)化此信號所包含的正弦波信號的頻率、幅度、相位,為信號分析提供一個創(chuàng)新視覺。
例如在日常生活中有使用到的AM(Amplitude Modulation,幅度調(diào)制)廣播,其原理是將人的聲音(頻率約20Hz至20kHz,稱為調(diào)制波)調(diào)制到500kHz~1500kHz正弦波上(稱為載波)中 ,載波的幅度隨調(diào)制波的幅度變化。聲音經(jīng)這樣調(diào)制后,可以傳播得更遠。在AM的時域波形(波形電壓隨時間的變化曲線),載波與調(diào)制波特征不易體現(xiàn),而在FFT后的幅頻曲線中則一目了然。如下圖為1000kHz載波、10kHz調(diào)制波的AM調(diào)制信號,時域信號經(jīng)FFT后其頻率能量出現(xiàn)在990kHz、1.01MHz頻率處,符合理論計算。
圖 1 調(diào)制波10kHz、載波1000kHz的AM時域與頻域曲線
二、FFT相關(guān)知識
現(xiàn)實生活中的模擬信號,大多都是連續(xù)復(fù)雜的,其頻譜分量十分豐富。正如在數(shù)學(xué)中常量π,其真實值是個無理數(shù)。當(dāng)用3.14來替代π時,計算值與真實值就會有偏差。在使用FFT這個工具時,受限于采樣時的頻率Fs、采樣點長度N、ADC的分辨率nbit等因素的制約,所得到的信息會有所缺失與混淆。
1.奈奎斯特區(qū)與波形混疊
FFT分析結(jié)果中,存在一個那奈奎斯特區(qū)的概念,其寬度為采樣率的一半Fs/2,信號頻譜被分成一個個相連的奈奎斯特區(qū)。日常信號分析中,大多關(guān)心的是1st奈奎斯特區(qū)的信號,即DC到Fs/2的頻段。FFT所得到的信號頻率信息,也是在1st奈奎斯特區(qū)內(nèi)。其他高奈奎斯特區(qū)頻段的信號,會以不同的方式混疊到1st奈奎斯特區(qū):
偶數(shù)奈奎斯特區(qū)會鏡像后混疊到1st奈奎斯特區(qū);
奇數(shù)奈奎斯特區(qū)會頻移后混疊到1st奈奎斯特區(qū)。
如下圖所示,假如原有模擬信號頻譜段較寬,信號頻段的最大頻率大于采樣率Fs。在采樣率Fs下,信號頻譜的A、B、C三部分區(qū)域,分別位于1st、2st、3st奈奎斯特區(qū)。那經(jīng)FFT后:
A部分信號本來就在1st奈奎斯特區(qū),保持不變;
B部分頻譜會以Fs/2為鏡像后混疊到1st奈奎斯特區(qū);
C部分頻譜頻偏Fs后混疊到1st奈奎斯特區(qū)。
這樣在FFT的分析結(jié)果中,1st奈奎斯特區(qū)就會重疊了A、B、C三部分區(qū)域的信號。其他奈奎斯特區(qū)頻率信號干擾到需分析的信號,就會造成常說的波形混疊問題。
就單個頻率信號而言,若原始信號的頻率為|±KFs ±Fin|(K為自然數(shù)),則經(jīng)過FFT分析后,信號會落入在1st奈奎斯特區(qū)的Fin頻率處。
圖 2 奈奎斯特區(qū)投影與波形混疊
這在時域上理解不難:在常用設(shè)備示波器的采樣率設(shè)為100MSa/s,這時輸入10MHz、90MHz、110MHz頻率的信號,采樣得到的波形是一樣的,都為10MHz。此時奈奎斯特區(qū)寬度為50MHz,信號90MHz位于2st奈奎斯特區(qū),經(jīng)Fs/s鏡像后,為10MHz;信號110MHz位于3st奈奎斯特區(qū),經(jīng)頻偏Fs后,亦為10MHz。在FFT后的數(shù)據(jù)中,這三個頻率信號的頻點都落在1st奈奎斯特區(qū)的10MHz處。
圖 3 波形混疊時的時域芯片
為了解決信號混疊問題,可以采取以下措施:
提高模數(shù)轉(zhuǎn)換器ADC的采樣率Fs
這相當(dāng)把1st奈奎斯特區(qū)拉寬。當(dāng)滿足Fs/2大于信號頻段的最大頻率Fin_max時,自然不會現(xiàn)混疊。這是采樣定理的簡單實踐。
在模數(shù)轉(zhuǎn)換器前串入抗混疊濾波器
抗混疊濾波器最常見的是低通濾波器,此濾波器可以將高于Fs/2的高階奈奎斯特區(qū)頻段信號衰減掉,只保留待測量1st奈奎斯特區(qū)頻段的信號。
2.FFT數(shù)據(jù)的物理意義
長度為N的有限序列
,經(jīng)FFT后得會到N個復(fù)數(shù),完成了時域到頻域的涅磐。原始信號包含的各種正弦信號,會轉(zhuǎn)化成對應(yīng)位置的復(fù)數(shù):第一個復(fù)數(shù),代表信號的直流分量。此復(fù)數(shù)的模值,為直流分量的N倍。
第二至第N/2個復(fù)數(shù),代表著均勻頻率間隔信號的特征。此復(fù)數(shù)的模,為此頻率信號幅度的N/2倍;此復(fù)數(shù)的角度,為此頻率信號的相位。一個奈奎斯特區(qū)包含N/2個頻率點,頻率點的間隔稱為頻率分辨率:
對上式稍作變換:頻率分辨率的倒數(shù),為可分析信號的周期:
NTS即采樣時間,可見FFT的頻率分辨率,與其他參數(shù)無關(guān),只與采樣時間長度有關(guān)。
第N/2+1至第N個復(fù)數(shù),從上文的奈奎斯特區(qū)可知,是1st奈奎斯特區(qū)的鏡像,可以忽略。
1.頻譜泄漏與窗函數(shù)
在利用FFT對ADC的動態(tài)性能評估中,為了減少不相關(guān)因素對動態(tài)性能的影響,測試中一般要求給ADC低噪電源、低噪時鐘,待測信號幅度盡量接近且略低于ADC的輸入量程,而待測信號的頻率Fin也有要求:
為啥頻率要這樣要求?將上式中的頻率轉(zhuǎn)換為周期就很好理解:
TS*N即為采樣時間,采樣時間剛好包含了n個整周期的待測信號。這樣選取輸入信號頻率的原因,是FFT分析中默認采集到的數(shù)據(jù),是原始連續(xù)波形中的一段周期波形。既然波形是連續(xù)的,那波形肯定首尾相連的、開始點電壓值等于終點處電壓值的。
若采樣到的數(shù)據(jù)不是連續(xù)的,則相當(dāng)數(shù)據(jù)在首尾處有一個電壓突變,電壓突變在頻域上就代表著很高的頻率分量。這些高頻的頻率分量混疊到1st奈奎斯特區(qū)時,就會對原有信號的頻譜造成干擾,這也叫頻譜泄漏。
在實際的信號分析中,待測信號的頻率是很難事先設(shè)定的,這就容易會造成頻譜泄漏。為了減輕這個影響,F(xiàn)FT加入了窗函數(shù)這個概念。窗函數(shù),其實是一個加權(quán)系數(shù),將不同位置的采樣點,分別乘以不同的系數(shù)。經(jīng)過加權(quán)相乘后,采樣點就變成首尾相連的連續(xù)波形了。不同的窗函數(shù),其加權(quán)曲線不一樣,造成的影響就有所差異。舉例hann窗的系數(shù)定義如下:
其N=64系數(shù)曲線與頻譜如下:
圖 4 N=64 hann窗系數(shù)曲線與頻譜曲線
圖 5 疊加窗前后的信號波形
1.頻譜圖指標(biāo)定義
將FFT得到的各個頻率點幅度,繪制成隨頻率變化的曲線,可以得到信號的頻譜圖。在原廠ADC的器件手冊或性能評估方案中,會有與性能相關(guān)指標(biāo)的定義。在眾多指標(biāo)中,以下幾個尤為重要:
信噪比SNR
信號均方根幅值與除前六個諧波與直流分量之外的所有頻率分量均方根和之比。在只考慮ADC的量化誤差時,SNR只與ADC的位數(shù)相關(guān)。
信納比SINAD
信號均方根振幅與出直流分量之外的所有頻譜分量均方根和之比。SINAD與SNR之間的差異只有前六個諧波分量所含的能量。
總諧波失真THD
信號均方根與前六個諧波之和的均方根值之比。諧波的產(chǎn)生是因為信號經(jīng)過了非線性環(huán)節(jié),導(dǎo)致信號產(chǎn)生畸變。
無雜散動態(tài)范圍SFDR
信號均方根與最大雜散頻譜分量均方根值之比。SFDR可以表征信號分析的動態(tài)范圍。
有效位數(shù)ENOB
ENOB反映了信號與正弦波的擬合程度。在FFT中可以使用公式計算:ENOB =(SINAD-1.76)/6.02。這公式是與基于ADC只有量化誤差時的計算模型,具體的推論可以參考ADI的應(yīng)用文檔MT-001《Taking the Mystery out of the Infamous Formula,"SNR = 6.02N + 1.76dB," and Why You Should Care》。
圖 6 ZDS4054 Plus FFT功能分析界面
ZDS4000 FFT分析功能可以自動計算總諧波失真THD、信噪比SNR,顯示前10次高功率信號頻率。
FFT是簡便而高效的分析工具,在眾多的軟件中都已很好的集成。在網(wǎng)絡(luò)上簡單搜索一下例程,在Matlab軟件中簡單敲入fft(),即可做信號分析。而ZLG立功科技-致遠電子的高性能數(shù)據(jù)挖掘性示波器,F(xiàn)FT分析的樣本數(shù)可達4Mpts,這使得示波器可以在最高采樣率下,采樣更長時間的波形。這樣在FFT后,數(shù)據(jù)的奈奎斯特區(qū)就相當(dāng)寬,而頻率分辨率又相當(dāng)窄,非常適用信號分析與噪聲定位。
評論