FFT的前世今生
請(qǐng)看下面的實(shí)例:
圖1中正弦波測(cè)試使用的時(shí)基是5ns/div,波形時(shí)間長(zhǎng)度是50ns,計(jì)算FFT之后的頻譜分辨率是20MHz(1/50ns),
圖1 捕獲50ns的信號(hào),頻率分辨率是20MHz
如果改變時(shí)基設(shè)置,頻譜分辨率會(huì)有變化。如圖2所示:將時(shí)基設(shè)置為10ns/div,波形長(zhǎng)度是100ns,頻譜分辨率可以提高到10MHz。
對(duì)于通過(guò)補(bǔ)零的方法增加FFT頻譜的視在分辨率,力科的示波器也有相應(yīng)的解決方案。力科示波器使用了兩種非常常用的FFT算法供用戶(hù)選擇:Cooley-Tukey算法和LeastPrime算法。Cooley-Tukey算法也稱(chēng)為Power2算法,它提供了計(jì)算機(jī)一種非??焖俚腇FT計(jì)算方式,計(jì)算的FFT點(diǎn)數(shù)規(guī)模是2的整數(shù)方次,因此它會(huì)在示波器時(shí)域采集的信號(hào)中截取2的N次方的整數(shù)來(lái)作為FFT計(jì)算的時(shí)域樣本,該截取的整數(shù)是最接近于采樣點(diǎn)的整數(shù)。如下圖2所示:
圖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ì)慢一些(盡管我們可能覺(jué)察不到),頻率分辨率可以提高到10MHz。
使用Power2算法也可以不采用截取原始波形的方式,此時(shí)我們可以選擇Zero Fill(補(bǔ)零)的方式,增加采樣點(diǎn)數(shù)。比如,在2000點(diǎn)中補(bǔ)48個(gè)點(diǎn),2048=211,如圖3所示:
圖3 補(bǔ)零的放出提高頻率分辨率
評(píng)論