基于LabVIEw的數(shù)字變頻FFT設(shè)計
基于LabVIEw的數(shù)字變頻FFT設(shè)計
史瑞根,姚金杰
(中北大學(xué)信息與通信工程學(xué)院 山西 太原 030051)
摘要:在動目標(biāo)速度測量的工程應(yīng)用背景下,針對傳統(tǒng)頻譜細(xì)化技術(shù)計算量大和實(shí)現(xiàn)困難的缺點(diǎn),提出一種數(shù)字變頻FFT的頻譜細(xì)化算法,并根據(jù)其數(shù)學(xué)原理,進(jìn)行了基于LabVIEW的兩種編程設(shè)計方法研究。仿真結(jié)果表明,兩種設(shè)計方法都可滿足信號分析中提高頻率分辨率的要求,但與選擇的細(xì)化倍數(shù)有關(guān)。由于具有編程簡便和實(shí)用性強(qiáng)的優(yōu)點(diǎn),這兩種實(shí)現(xiàn)方法均可廣泛應(yīng)用于汽車、飛機(jī)等運(yùn)動目標(biāo)的速度測量。
關(guān)鍵詞:數(shù)字變頻FFT;頻譜細(xì)化:虛擬儀器;頻率分辨率
0 引 言
在運(yùn)動目標(biāo)速度測量中,常利用頻譜分析的方法獲取目標(biāo)的多普勒頻率,并依據(jù)多普勒測速原理來完成動目標(biāo)速度測量。為達(dá)到高精度測速的要求,需進(jìn)一步提高頻率分辨率,在實(shí)際頻譜分析中,要對獲取的試驗(yàn)數(shù)據(jù)先進(jìn)行分段處理,在此基礎(chǔ)上再進(jìn)行細(xì)化操作,這樣可獲得比常規(guī)FFT分析更高的頻率分辨率。近年來,頻譜細(xì)化技術(shù)發(fā)展迅速,常見的方法有:HR-FA法,基于多相濾波器的ZFFT法,基于復(fù)調(diào)制的Zoom-FFT法,自適應(yīng)Zoom-FFT法,Chirp-Z變換和小波基法等。然而,這些頻譜細(xì)化技術(shù)普遍存在運(yùn)算量大,不易實(shí)現(xiàn)編程的缺點(diǎn)。為此,提出了一種數(shù)字變頻FFT的頻譜細(xì)化算法,并利用圖形化編程語言LabVIEW進(jìn)行了編程設(shè)計。
1 數(shù)字變頻FFT的數(shù)學(xué)原理
在頻譜分析中,頻率分辨率表示頻譜中能夠分辨的兩個頻率分量的最小間隔,用頻率間隔△f表示為:
要提高FFT的頻率分辨率,可通過以下兩種途徑實(shí)現(xiàn):
(1)降低采樣頻率fs。這會使頻率分析范圍縮小,其降低的幅度受到采樣定律的限制。
(2)需要增加分析的采樣點(diǎn)數(shù)N。這意味著計算機(jī)的存儲量和計算量大大增加,由于實(shí)際系統(tǒng)軟、硬件方面的限制,這樣做并不總是可能的。
可以看出以上兩種方法提高頻率分辨率的能力有限且靈活性差。所用的數(shù)字變頻FFT主要指采用移頻特性進(jìn)行頻譜細(xì)化的技術(shù),其原理框圖如圖1所示。
設(shè)模擬信號為x(t),經(jīng)A/D轉(zhuǎn)換后得到采樣時間序列x(n)(n=0,1,…,N—1),設(shè)fs為采樣頻率;f1~f3為細(xì)化分析頻帶;f0為需要細(xì)化的頻帶中心頻率D為細(xì)化倍數(shù);N為FFT分析的點(diǎn)數(shù),算法如下:
(1)復(fù)調(diào)制移頻
所謂復(fù)調(diào)制移頻就是將頻域坐標(biāo)向左移或向右移,使得被觀察的起點(diǎn)為頻域坐標(biāo)的零頻位置。這里對離散信號x(n)用exp[-2πf0/fs]進(jìn)行復(fù)調(diào)制,把需要細(xì)化的頻帶起點(diǎn)移至頻率軸原點(diǎn),得到:
(2)數(shù)字低通濾波
為保證重新采樣后不發(fā)生頻譜混疊,必須進(jìn)行抗混疊濾波,以濾出所需分析頻段信號。設(shè)頻率細(xì)化倍數(shù)為D,則低通濾波器的截止頻率fc=fs/2D。
(3)重新采樣
信號被移頻和低通濾波后,分析信號頻帶變窄,因而可以以較低的采樣頻率fs'=fs/D進(jìn)行重采樣,fs'比原采樣頻率降低了D倍,即對原采樣點(diǎn)每隔N點(diǎn)再抽樣一次。
(4)反移頻處理
實(shí)行反移頻操作就是將頻率中心重新移到需要細(xì)化的頻帶起始頻率,使得移頻前后的頻率保持一致。
(5)FFT運(yùn)算
對反移頻后的信號進(jìn)行FFT處理,得到細(xì)化后的頻譜,其頻率分辨率提高了D倍。
2 數(shù)字變頻FFT的LabVIEW實(shí)現(xiàn)
2.1 虛擬儀器LabVEW
LabVIEW是美國NI公司推出的虛擬儀器開發(fā)平臺軟件,是一種非常優(yōu)秀的面向?qū)ο蟮膱D形化編程語言,用于快速創(chuàng)建測試、測量和控制應(yīng)用程序。它的優(yōu)點(diǎn)是數(shù)據(jù)處理速度快,硬件支持等方面功能強(qiáng)大;缺點(diǎn)是在數(shù)值處理、分析和算法工具等方面的效率不高。而MathWorks公司開發(fā)的Matlab提供了強(qiáng)大的矩陣運(yùn)算和圖形處理功能,編程效率高,特別擅長數(shù)值分析和處理,但其界面開發(fā)能力較差,不能進(jìn)行實(shí)時操作和控制。
鑒于LabVIEW和Matlab兩種語言的優(yōu)點(diǎn),在虛擬儀器開發(fā)過程中,除利用LabVIEW直接編程外,還可結(jié)合.Matlab進(jìn)行混合編程。通常用LabVIEW設(shè)計用戶圖形界面,負(fù)責(zé)數(shù)據(jù)采集和網(wǎng)絡(luò)通信;Matlab在后臺提供大型算法供LabVIEW調(diào)用。
2.2 LabVIEW直接編程實(shí)現(xiàn)數(shù)字變頻FFT
在LabVIEW直接編程中,通過調(diào)用Ramp Pat-teln.Vi節(jié)點(diǎn)和Exponential.vi節(jié)點(diǎn)完成信號的復(fù)調(diào)制和反移頻操作;通過調(diào)用Decimate.vi節(jié)點(diǎn)對復(fù)調(diào)制后的信號進(jìn)行濾波,壓縮頻帶,然后進(jìn)行整數(shù)倍抽取。其中,對信號進(jìn)行數(shù)字低通濾波的濾波器為切比雪夫I型.濾波器,其主要參數(shù):階數(shù)為8階,截止頻率為0.8.(fs/2)/D;通過調(diào)用FFT.vi和Array Size.vi節(jié)點(diǎn)完成FFT運(yùn)算,輔以其他相應(yīng)的計算處理節(jié)點(diǎn),根據(jù)數(shù)字變頻的原理圖最終實(shí)現(xiàn)數(shù)字變頻FFT,其程序框圖如圖2所示。
2.3 LabVIEW與Matlab混合編程實(shí)現(xiàn)數(shù)字變頻FFT
LabVIEW與Matlab的混合編程,可通過調(diào)用LabVIEW中的Matlab Script節(jié)點(diǎn)實(shí)現(xiàn)。其中,MatlabScript節(jié)點(diǎn)本身具有多輸入、多輸出的特點(diǎn),一次處理的信息量可以很大。在Matlab中,根據(jù)數(shù)字變頻FFT的數(shù)學(xué)原理,編程實(shí)現(xiàn)復(fù)調(diào)制移頻、低通濾波、重采樣、反移頻和FFT操作處理,經(jīng)調(diào)試無誤后,導(dǎo)入到Mat-lab Script節(jié)點(diǎn)中;然后在LabVIEW中,通過調(diào)用SineWave.vi產(chǎn)生仿真信號,或從文件中讀取信號數(shù)據(jù),同時添加采樣頻率,細(xì)化倍數(shù)等控制節(jié)點(diǎn);最后連接各圖標(biāo),實(shí)現(xiàn)數(shù)字變頻FFT,其程序框圖如圖3所示。
3 仿真分析
利用LabVIEW編程實(shí)現(xiàn)數(shù)字變頻FFT軟件處理平臺,調(diào)用Functions\Analyze\Signal Processing\Sig-nal Generation子模板中的Sine Wave.vi創(chuàng)建正弦信號發(fā)生器,構(gòu)造仿真信號:
x(t)=sin(2πf1t)+2sin(2πf2t)+5sin(2πf3t)
式中:f1=2 002 Hz;f2=2 004 Hz;f3=2 006 Hz;采樣點(diǎn)數(shù)N=5 120;采樣頻率為51 200 Hz。根據(jù)式(1)可知,此時頻率分辨率為10 Hz,在頻域內(nèi)分辨不出這3個信號。
若要把分辨率提到1 Hz,即細(xì)化10倍,就要采樣51 200個點(diǎn),然后把分析頻帶(2 000~2 010 Hz)的起始頻率f=2 000 Hz點(diǎn)移到原點(diǎn),當(dāng)細(xì)化倍數(shù)D=10時,即5l 200個采樣點(diǎn)每隔10個點(diǎn)進(jìn)行抽取,完成對復(fù)調(diào)制移頻、濾波后的信號重采樣。新的采樣頻率即為5 120 Hz,降低了10倍,抽取得到5 120個點(diǎn)。為了使細(xì)化后的頻率與細(xì)化前的一致,在作FFT前應(yīng)該實(shí)行反移頻,這樣就可以得到分析頻帶上的細(xì)化頻譜。如果采用LabVIEW直接編程處理,其細(xì)化頻譜如圖4所示;如果采用LabVIEW和Matlab混合編程處理,其細(xì)化頻譜如圖5所示。
從圖4和圖5中可以看出,基于LabVIEW的兩種編程方法都實(shí)現(xiàn)了頻譜細(xì)化的功能,2 002 Hz,2 004 Hz和2 006 Hz三個頻率點(diǎn)對應(yīng)的幅值譜清晰可見,且幅值相差2.5倍,分辨率為1 Hz。
4 結(jié) 語
數(shù)字變頻FFT是頻譜分析中一種約束條件少,可操作性強(qiáng)的方法。在此借助功能強(qiáng)大的LabVIEW軟件編程處理方法,使得數(shù)字變頻實(shí)現(xiàn)簡便,能夠滿足提高頻率分辨率的要求,并具有很高的實(shí)時性。顯然,在動目標(biāo)速度測量中,利用數(shù)字變頻FFT進(jìn)行頻譜細(xì)化處理,可獲得更高的頻率測量精度。根據(jù)多普勒原理,也可獲得更高的測速精度。因此,研究中基于LabVIEW的數(shù)字變頻FFT頻譜細(xì)化方法在工程實(shí)踐中有著重要的應(yīng)用價值,可廣泛應(yīng)用于汽車、飛機(jī)等運(yùn)動目標(biāo)的速度測量中。