華北電力大學(xué)電氣與電子工程學(xué)院 王 濤 陳邵權(quán) 范寒柏 王 磊
傳統(tǒng)的FFT方法得到的信號(hào)頻譜是一種離散的頻譜,其分辨率為Δf=fs/N,其中,fs為采樣頻率,N為采樣點(diǎn)數(shù)。由此我們可以得出,頻譜的分辨率是由采樣頻率fs和采樣點(diǎn)數(shù)N來確定,根據(jù)乃奎斯特采樣定理,要使信號(hào)的頻譜不產(chǎn)生混疊,采樣頻率fs應(yīng)大于信號(hào)帶寬的兩倍。而分辨率的提高(Δf越小分辨率越高)只能通過降低采樣頻率fs或增大采樣點(diǎn)數(shù)N,但fs的降低受到乃奎斯特定律的限制,不能過小,過小會(huì)發(fā)生頻譜混疊;而增加取樣點(diǎn)數(shù)會(huì)增加運(yùn)算量和存儲(chǔ)量,使得算法的時(shí)間增大,效率降低。由此看來,只有長的時(shí)間數(shù)據(jù)才有可能得到高的頻率分辨力,但是由于實(shí)際測量條件和硬件方面等的限制,這樣做并不總是可能的。而在實(shí)際測量中,我們往往只是對信號(hào)的某一頻段的頻率感興趣,只分析這個(gè)頻段的信號(hào)即可?;趶?fù)調(diào)制的ZOOMFFT可以實(shí)現(xiàn)在較窄的頻帶范圍實(shí)現(xiàn)較高的頻率分辨率。是一種折中的方法[4]。因此在很多領(lǐng)域得到了廣泛的應(yīng)用。
圖1 基于復(fù)調(diào)制ZoomFFT的基本原理流程圖
圖2 實(shí)際信號(hào)ZoomFFT后未進(jìn)行頻率調(diào)整的頻譜
圖3 測量物體動(dòng)態(tài)時(shí)得到的頻譜
ZoomFFT方法基本原理是:移頻——數(shù)字低通濾波——重新抽樣——復(fù)FFT——頻率調(diào)整,其原理過程如圖1所示。
設(shè)模擬信號(hào)為x(t),經(jīng)過A/D采樣后,得到離散的序列x0(n),(n=0,1…N-1),fs為采樣頻率,fe為需要細(xì)化頻帶的中心頻率,D為細(xì)化倍數(shù),N為FFT的點(diǎn)數(shù),X(k)為輸出的序列。具體的算法過程可歸納為以下幾個(gè)步驟:
(1)復(fù)調(diào)制移頻
所謂復(fù)調(diào)制移頻指的是將頻域坐標(biāo)向左或向右移動(dòng),使得被觀察的頻段的起點(diǎn)移動(dòng)到頻域坐標(biāo)的零頻位置。模擬信號(hào)x(t)經(jīng)過A/D轉(zhuǎn)換后,得到離散的信號(hào)x0(n),假設(shè)要觀測的頻帶為f1~f2,則在此頻帶范圍內(nèi)進(jìn)行細(xì)化分析,觀測的中心頻率為fe=(f1+f2)/2對x0(n)以e-j2πfe/fs進(jìn)行復(fù)調(diào)制,得到的頻移信號(hào):
式中fs=NΔf為采樣頻率,Δf為譜線間隔,L0=fe/Δf為頻率的中心移位,也是在全局頻譜顯示中所對應(yīng)中心頻率fe的譜線序號(hào),則fe=L0Δf。由此可得出,復(fù)調(diào)制使x0(n)的頻率成分fe移到x(n)的零頻點(diǎn),也就是說X0(k)中的第L0條譜線移到X(k)中零點(diǎn)頻譜的位置。為了得到X(k)零點(diǎn)附近的部分細(xì)化頻譜,可重新抽樣把頻率降到fs/D,D為細(xì)化倍數(shù)。為了是抽樣后的頻率不發(fā)生頻譜混疊,需要在抽樣前進(jìn)行低通濾波。
(2)數(shù)字低通濾波
為了保證重新采樣后的信號(hào)在頻譜分析時(shí)不發(fā)生頻譜混疊,需進(jìn)行抗混疊濾波,濾出需要分析的頻段信號(hào),設(shè)細(xì)化倍數(shù)為D,則數(shù)字低通濾波器的截止頻率fC≤fs/2D。
(3)重新抽樣
信號(hào)經(jīng)過移頻、低通濾波后,分析信號(hào)點(diǎn)數(shù)變少,但再以較低的采樣頻率進(jìn)行重新采樣,在通過補(bǔ)零保證相同的采樣點(diǎn)數(shù)時(shí),樣本的總長度加大,頻譜的分辨率也就得到了提高。
設(shè)原采樣頻率為fs,采樣點(diǎn)數(shù)為N,則頻率分辨率為fs/N,現(xiàn)重采樣頻率為fs/D,當(dāng)采樣點(diǎn)數(shù)仍是N是,其分辨率為fs/(D*N),分辨率提高了D倍。這樣就在原采樣頻率不變的情況下得到了更高的頻率分辨率。
(4)復(fù)數(shù)FFT
重新采樣后的信號(hào)實(shí)部和虛部是分開的,需要對信號(hào)進(jìn)行N點(diǎn)復(fù)FFT,從而得出N條譜線,此時(shí)分辨率為Δf′=fs′/N=fs/ND=Δf/D,可見分辨率提高了D倍。
(5)頻率調(diào)整
經(jīng)過算法運(yùn)行后的譜線不為實(shí)際頻率的譜線,需要將其反向搬移,轉(zhuǎn)換成實(shí)際頻率,進(jìn)而得出細(xì)化后的頻率。
目前我們用的芯片是STM32,在芯片上運(yùn)行ZoomFFT算法程序,可直接調(diào)用STM32固件庫,程序簡單、穩(wěn)定可靠、結(jié)構(gòu)性強(qiáng)。STM32固件庫有FIR濾波器,只要求出所需濾波器參數(shù)的系數(shù),調(diào)用固件庫的函數(shù)即可,計(jì)算既快又穩(wěn)定,效率很高。FFT的實(shí)現(xiàn)是通過C語言編的FFT子函數(shù),只要得到輸入序列和FFT點(diǎn)數(shù),調(diào)用FFT子函數(shù)就可求出FFT的輸出序列。部分核心ZoomFFT的C語言程序如下:
mrelfft(adr,adi,N,-1);
//// /求幅頻特性/////////
for(k=0;k<N;k++)
{p=pow(adr[k],2)+pow(adi[k],2);
fft[k]=sqrt(p);}
//頻率調(diào)整可通過公式實(shí)現(xiàn)f=fe+i*(fs/(D*1024.0));
算法的驗(yàn)證通過兩種方式進(jìn)行了驗(yàn)證:函數(shù)信號(hào)發(fā)生器加入實(shí)際信號(hào);在工程中實(shí)際測量。
(1)加實(shí)際信號(hào)。通過函數(shù)信號(hào)發(fā)生器加頻率為55000Hz、幅值為1V和頻率為55030Hz、幅值為0.7V的實(shí)際信號(hào),得到的頻譜如圖2所示。
通過實(shí)驗(yàn)得出,未經(jīng)過ZOOMFFT的信號(hào),兩個(gè)很接近的頻率疊加到了一起,而經(jīng)過ZoomFFT后的頻譜在分辨率內(nèi)可以分別,通過分析可得出ZoomFFT得到的信號(hào)頻率比直接FFT得到的頻率更真實(shí),分辨率高、誤差小、穩(wěn)定性好。
(2)在工程中實(shí)驗(yàn)
將算法應(yīng)用到測量設(shè)備中,測量物體動(dòng)作時(shí)的返回頻率,通過動(dòng)態(tài)測量返回信號(hào)的頻譜如圖3所示。
由實(shí)驗(yàn)我們可以看出,函數(shù)信號(hào)發(fā)生器的信號(hào)是理想信號(hào),測得頻譜均為一根譜線,而實(shí)際測量中,由于有噪聲的存在,測量的頻譜不是一根譜線,而是一個(gè)峰,但峰頂?shù)奈恢煤蛯?shí)際頻率一致,稍微的運(yùn)動(dòng)就可以從峰頂?shù)奈恢梅磻?yīng)出來。
實(shí)際的測量時(shí),STM32通過外部AD進(jìn)行采樣,在其上只運(yùn)行算法程序,約150毫秒,將移頻時(shí)的三角函數(shù)的計(jì)算用數(shù)組表示,也就是將三角函數(shù)的值算出放在數(shù)組里,移頻時(shí)直接調(diào)用數(shù)組,省去兩次1024點(diǎn)的三角相乘計(jì)算的時(shí)間,用數(shù)組存放三角函數(shù)值后,算法程序耗時(shí)110毫秒。為降低,我們可測試了調(diào)用STM32固件庫自帶的匯編FFT,此時(shí)耗時(shí)約30毫秒,但STM32自帶的FFT的輸入輸出都是32位整型,計(jì)算的精度沒有C語言的浮點(diǎn)型變量FFT精度高。目前我們已經(jīng)將該算法成功應(yīng)用到了自己制作的水速測量算法中,并取得了理想的效果。
通過實(shí)際的測量分析實(shí)現(xiàn)了對某頻段的頻譜細(xì)化分析,ZoomFFT在不增大FFT點(diǎn)數(shù)N的情況下降低了采樣頻率,提高了在細(xì)化頻譜分析中有很重要的作用,可以通過此算法得到欲觀測的頻段局部頻譜特性。由于計(jì)算量小,在實(shí)際應(yīng)用中不需要用高速處理芯片,如我們應(yīng)用的STM32足以滿足其應(yīng)用??梢奪oomFFT是一個(gè)行之有效的解決局部頻段分析的方法。
[1]王世一.數(shù)字信號(hào)處理[M].北京:北京理工大學(xué)出版社(修訂版),1997.
[2]胡廣書.數(shù)字信號(hào)處理——理論、算法與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社.1997.
[3]高懷鋼,王華.一種分析頻譜局部特性的快速算法[J].火控雷達(dá)技術(shù),1999(3):14-17.
[4]江波,唐普英.基于復(fù)調(diào)制的ZoomFFT算法在局部頻譜細(xì)化中的研究與實(shí)現(xiàn)[J].大眾科技,2010(7):48-49.
[5]徐卓華.基于MATLAB的ZOOM FFT在水聲測量中的應(yīng)用[J].聲學(xué)與電子工程,2004(4):13-16.