新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > FFT的前世今生(二)

        FFT的前世今生(二)

        作者: 時間:2013-03-04 來源:網絡 收藏

        圖2 捕獲100ns的信號,頻率分辨率是10MHz

        圖中的正弦波頻率為500MHz,時基設置為10ns/div,采樣率為20GS/s,時域采樣點數為2000points,使用Power2算法截取2000點中的1024點(210),如圖中的藍框所示(注意是從信號的中間部分截取),因此截取的時間窗口為1024×20ps=51.2ns,是500MHz信號的25.6個周期,由于截取的周期非整數倍,不可避免會產生頻譜泄露,如圖中的旁瓣所示,此時的頻率分辨率可以達到19.35125MHz。

        如果采用另外一種算法LeastPrime,可以將整個示波器時域采集的采樣點進行運算,LeastPrime算法計算的FFT點數規模是2N+5K,因此2000點=24+53,不需要截取原始數據就可以運算,但是代價是計算的速度可能會慢一些(盡管我們可能覺察不到),頻率分辨率可以提高到10MHz。

        使用Power2算法也可以不采用截取原始波形的方式,此時我們可以選擇Zero Fill(補零)的方式,增加采樣點數。比如,在2000點中補48個點,2048=211,如圖3所示:

        4.jpg

        圖3 補零的放出提高頻率分辨率

        這48個點補的方式是頭尾各補一半,但是有可能補的不是0,頭24個點與第一個采樣點值相同,尾24個點與最后一個采樣點值相同(所以稱之為Zero Fill是不完全準確的)。這里我們推薦Zero Fill的方法只在分析沖擊信號FFT頻譜的情況下使用。

        補零法雖然能增加頻譜圖的視在分辨率,但是由于補的都是無效數據,所以對于頻率分辨率真正的改善沒有幫助,但是補零有它的好處:1.補零后,其實是對FFT結果做了插值,克服“柵欄”效應,使譜外觀平滑化;我把“柵欄”效應形象理解為,就像站在柵欄旁邊透過柵欄看外面風景,肯定有被柵欄擋住比較多風景,此時就可能漏掉較大頻域分量,但是補零以后,相當于你站遠了,改變了柵欄密度,風景就看的越來越清楚了。2.由于對時域數據的截短必然造成頻譜泄露,因此在頻譜中可能出現難以辨認的譜峰,補零在一定程度上能消除這種現象。

        除此之外,很多人都有這樣的誤區:認為通過增加待分析的計算點數而不是增加采樣時間就可以使FFT之后的頻譜更加“精細”(頻率分辨率更高)。這樣的誤解一般來自于示波器的用戶,因為當示波器采樣點比較少時,FFT的計算出來的頻譜圖也會很少,頻譜看起來非常粗糙。這時工程師會非常有沖動把時域的采樣點增多(用示波器上的插值算法很容易實現),但是如果采集信號的時間長度是不變的,工程師會發現FFT計算之后的頻譜并沒有顯得更加“精細”,頻率分辨率并沒有任何改善。實際上使用插值或者增加采樣率的方式僅僅是展寬了FFT之后的頻譜帶寬。如下圖4所示,

        5.jpg

        圖4 插值方式并不能改變頻率分辨率

        左上方使用了較少的時域采樣點C1,右上方使用了較高的采樣率C2,但是采樣時間是相同的。左下是對C1進行FFT之后的頻譜F1,右中是對C2進行FFT之后的頻譜F2,右下是對F2相同頻段進行了放大。可以看到F2比F1的頻寬增加了,但是對F1頻段放大之后的頻譜和F1一樣,沒有任何頻率分辨率的改善。

        由此我們可以得出結論,對C1進行插值后,額外的采樣點僅僅存在于較高頻段,會展寬頻譜的帶寬,但是插值方式對于增加我們感興趣頻段的頻譜分辨率沒有任何幫助。

        那么如果我們只對對FFT之后的頻譜進行插值效果如何呢?如下圖5所示:

        6.jpg

        圖5 頻域插值方式是頻譜圖看起來更密

        圖中展示了對頻域插值之后的效果,并沒有使頻譜看起來更“窄”(畢竟插值出來的點都是假點),但是我們注意到,頻域插值可以使頻譜的測量更加精確。圖中正弦波的頻率是955MHz,插值之后頻譜的Peak頻率讀數P2是955MHz,插值之前P1的讀數為952MHz。

        總之,FFT是進行信號頻域分析的最廣泛使用的標準化方法,也是現代數字示波器中標配的數學運算函數,我們更多了解FFT應用的細節,能更加有效地利用好這個工具,從FFT中得到更多有價值的信息。


        上一頁 1 2 下一頁

        關鍵詞: FFT

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 孟村| 台南县| 周至县| 滦南县| 饶平县| 北辰区| 墨玉县| 石门县| 灵寿县| 韩城市| 宣恩县| 惠安县| 玛曲县| 遂平县| 行唐县| 砀山县| 久治县| 龙南县| 新宾| 曲沃县| 宁都县| 抚州市| 沅陵县| 正宁县| 台南市| 秦安县| 山西省| 三都| 屏东县| 西盟| 彭水| 大方县| 年辖:市辖区| 乌拉特前旗| 云霄县| 朝阳市| 苗栗市| 遂平县| 伊宁市| 镇平县| 吐鲁番市|