FFT的前世今生(二)
圖2 捕獲100ns的信號(hào),頻率分辨率是10MHz
圖中的正弦波頻率為500MHz,時(shí)基設(shè)置為10ns/div,采樣率為20GS/s,時(shí)域采樣點(diǎn)數(shù)為2000points,使用Power2算法截取2000點(diǎn)中的1024點(diǎn)(210),如圖中的藍(lán)框所示(注意是從信號(hào)的中間部分截取),因此截取的時(shí)間窗口為1024×20ps=51.2ns,是500MHz信號(hào)的25.6個(gè)周期,由于截取的周期非整數(shù)倍,不可避免會(huì)產(chǎn)生頻譜泄露,如圖中FFT的旁瓣所示,此時(shí)的頻率分辨率可以達(dá)到19.35125MHz。
如果采用另外一種FFT算法LeastPrime,可以將整個(gè)示波器時(shí)域采集的采樣點(diǎn)進(jìn)行FFT運(yùn)算,LeastPrime算法計(jì)算的FFT點(diǎn)數(shù)規(guī)模是2N+5K,因此2000點(diǎn)=24+53,不需要截取原始數(shù)據(jù)就可以運(yùn)算,但是代價(jià)是計(jì)算的速度可能會(huì)慢一些(盡管我們可能覺察不到),頻率分辨率可以提高到10MHz。
使用Power2算法也可以不采用截取原始波形的方式,此時(shí)我們可以選擇Zero Fill(補(bǔ)零)的方式,增加采樣點(diǎn)數(shù)。比如,在2000點(diǎn)中補(bǔ)48個(gè)點(diǎn),2048=211,如圖3所示:
圖3 補(bǔ)零的放出提高頻率分辨率
這48個(gè)點(diǎn)補(bǔ)的方式是頭尾各補(bǔ)一半,但是有可能補(bǔ)的不是0,頭24個(gè)點(diǎn)與第一個(gè)采樣點(diǎn)值相同,尾24個(gè)點(diǎn)與最后一個(gè)采樣點(diǎn)值相同(所以稱之為Zero Fill是不完全準(zhǔn)確的)。這里我們推薦Zero Fill的方法只在分析沖擊信號(hào)FFT頻譜的情況下使用。
補(bǔ)零法雖然能增加頻譜圖的視在分辨率,但是由于補(bǔ)的都是無效數(shù)據(jù),所以對(duì)于頻率分辨率真正的改善沒有幫助,但是補(bǔ)零有它的好處:1.補(bǔ)零后,其實(shí)是對(duì)FFT結(jié)果做了插值,克服“柵欄”效應(yīng),使譜外觀平滑化;我把“柵欄”效應(yīng)形象理解為,就像站在柵欄旁邊透過柵欄看外面風(fēng)景,肯定有被柵欄擋住比較多風(fēng)景,此時(shí)就可能漏掉較大頻域分量,但是補(bǔ)零以后,相當(dāng)于你站遠(yuǎn)了,改變了柵欄密度,風(fēng)景就看的越來越清楚了。2.由于對(duì)時(shí)域數(shù)據(jù)的截短必然造成頻譜泄露,因此在頻譜中可能出現(xiàn)難以辨認(rèn)的譜峰,補(bǔ)零在一定程度上能消除這種現(xiàn)象。
除此之外,很多人都有這樣的誤區(qū):認(rèn)為通過增加待分析的計(jì)算點(diǎn)數(shù)而不是增加采樣時(shí)間就可以使FFT之后的頻譜更加“精細(xì)”(頻率分辨率更高)。這樣的誤解一般來自于示波器的用戶,因?yàn)楫?dāng)示波器采樣點(diǎn)比較少時(shí),F(xiàn)FT的計(jì)算出來的頻譜圖也會(huì)很少,頻譜看起來非常粗糙。這時(shí)工程師會(huì)非常有沖動(dòng)把時(shí)域的采樣點(diǎn)增多(用示波器上的插值算法很容易實(shí)現(xiàn)),但是如果采集信號(hào)的時(shí)間長度是不變的,工程師會(huì)發(fā)現(xiàn)FFT計(jì)算之后的頻譜并沒有顯得更加“精細(xì)”,頻率分辨率并沒有任何改善。實(shí)際上使用插值或者增加采樣率的方式僅僅是展寬了FFT之后的頻譜帶寬。如下圖4所示,
圖4 插值方式并不能改變頻率分辨率
左上方使用了較少的時(shí)域采樣點(diǎn)C1,右上方使用了較高的采樣率C2,但是采樣時(shí)間是相同的。左下是對(duì)C1進(jìn)行FFT之后的頻譜F1,右中是對(duì)C2進(jìn)行FFT之后的頻譜F2,右下是對(duì)F2相同頻段進(jìn)行了放大。可以看到F2比F1的頻寬增加了,但是對(duì)F1頻段放大之后的頻譜和F1一樣,沒有任何頻率分辨率的改善。
由此我們可以得出結(jié)論,對(duì)C1進(jìn)行插值后,額外的采樣點(diǎn)僅僅存在于較高頻段,會(huì)展寬頻譜的帶寬,但是插值方式對(duì)于增加我們感興趣頻段的頻譜分辨率沒有任何幫助。
那么如果我們只對(duì)對(duì)FFT之后的頻譜進(jìn)行插值效果如何呢?如下圖5所示:
圖5 頻域插值方式是頻譜圖看起來更密
圖中展示了對(duì)頻域插值之后的效果,并沒有使頻譜看起來更“窄”(畢竟插值出來的點(diǎn)都是假點(diǎn)),但是我們注意到,頻域插值可以使頻譜的測量更加精確。圖中正弦波的頻率是955MHz,插值之后頻譜的Peak頻率讀數(shù)P2是955MHz,插值之前P1的讀數(shù)為952MHz。
總之,F(xiàn)FT是進(jìn)行信號(hào)頻域分析的最廣泛使用的標(biāo)準(zhǔn)化方法,也是現(xiàn)代數(shù)字示波器中標(biāo)配的數(shù)學(xué)運(yùn)算函數(shù),我們更多了解FFT應(yīng)用的細(xì)節(jié),能更加有效地利用好這個(gè)工具,從FFT中得到更多有價(jià)值的信息。
評(píng)論