基于LabVIEw的數字變頻FFT設計
史瑞根,姚金杰
(中北大學(xué)信息與通信工程學(xué)院 山西 太原 030051)
摘要:在動(dòng)目標速度測量的工程應用背景下,針對傳統頻譜細化技術(shù)計算量大和實(shí)現困難的缺點(diǎn),提出一種數字變頻FFT的頻譜細化算法,并根據其數學(xué)原理,進(jìn)行了基于LabVIEW的兩種編程設計方法研究。仿真結果表明,兩種設計方法都可滿(mǎn)足信號分析中提高頻率分辨率的要求,但與選擇的細化倍數有關(guān)。由于具有編程簡(jiǎn)便和實(shí)用性強的優(yōu)點(diǎn),這兩種實(shí)現方法均可廣泛應用于汽車(chē)、飛機等運動(dòng)目標的速度測量。
關(guān)鍵詞:數字變頻FFT;頻譜細化:虛擬儀器;頻率分辨率
0 引 言
在運動(dòng)目標速度測量中,常利用頻譜分析的方法獲取目標的多普勒頻率,并依據多普勒測速原理來(lái)完成動(dòng)目標速度測量。為達到高精度測速的要求,需進(jìn)一步提高頻率分辨率,在實(shí)際頻譜分析中,要對獲取的試驗數據先進(jìn)行分段處理,在此基礎上再進(jìn)行細化操作,這樣可獲得比常規FFT分析更高的頻率分辨率。近年來(lái),頻譜細化技術(shù)發(fā)展迅速,常見(jiàn)的方法有:HR-FA法,基于多相濾波器的ZFFT法,基于復調制的Zoom-FFT法,自適應Zoom-FFT法,Chirp-Z變換和小波基法等。然而,這些頻譜細化技術(shù)普遍存在運算量大,不易實(shí)現編程的缺點(diǎn)。為此,提出了一種數字變頻FFT的頻譜細化算法,并利用圖形化編程語(yǔ)言L(fǎng)abVIEW進(jìn)行了編程設計。
1 數字變頻FFT的數學(xué)原理
在頻譜分析中,頻率分辨率表示頻譜中能夠分辨的兩個(gè)頻率分量的最小間隔,用頻率間隔△f表示為:


設模擬信號為x(t),經(jīng)A/D轉換后得到采樣時(shí)間序列x(n)(n=0,1,…,N—1),設fs為采樣頻率;f1~f3為細化分析頻帶;f0為需要細化的頻帶中心頻率D為細化倍數;N為FFT分析的點(diǎn)數,算法如下:
(1)復調制移頻
所謂復調制移頻就是將頻域坐標向左移或向右移,使得被觀(guān)察的起點(diǎn)為頻域坐標的零頻位置。這里對離散信號x(n)用exp[-2πf0/fs]進(jìn)行復調制,把需要細化的頻帶起點(diǎn)移至頻率軸原點(diǎn),得到:


2 數字變頻FFT的LabVIEW實(shí)現
2.1 虛擬儀器LabVEW
LabVIEW是美國NI公司推出的虛擬儀器開(kāi)發(fā)平臺軟件,是一種非常優(yōu)秀的面向對象的圖形化編程語(yǔ)言,用于快速創(chuàng )建測試、測量和控制應用程序。它的優(yōu)點(diǎn)是數據處理速度快,硬件支持等方面功能強大;缺點(diǎn)是在數值處理、分析和算法工具等方面的效率不高。而MathWorks公司開(kāi)發(fā)的Matlab提供了強大的矩陣運算和圖形處理功能,編程效率高,特別擅長(cháng)數值分析和處理,但其界面開(kāi)發(fā)能力較差,不能進(jìn)行實(shí)時(shí)操作和控制。
鑒于LabVIEW和Matlab兩種語(yǔ)言的優(yōu)點(diǎn),在虛擬儀器開(kāi)發(fā)過(guò)程中,除利用LabVIEW直接編程外,還可結合.Matlab進(jìn)行混合編程。通常用LabVIEW設計用戶(hù)圖形界面,負責數據采集和網(wǎng)絡(luò )通信;Matlab在后臺提供大型算法供LabVIEW調用。
2.2 LabVIEW直接編程實(shí)現數字變頻FFT
在LabVIEW直接編程中,通過(guò)調用Ramp Pat-teln.Vi節點(diǎn)和Exponential.vi節點(diǎn)完成信號的復調制和反移頻操作;通過(guò)調用Decimate.vi節點(diǎn)對復調制后的信號進(jìn)行濾波,壓縮頻帶,然后進(jìn)行整數倍抽取。其中,對信號進(jìn)行數字低通濾波的濾波器為切比雪夫I型.濾波器,其主要參數:階數為8階,截止頻率為0.8.(fs/2)/D;通過(guò)調用FFT.vi和Array Size.vi節點(diǎn)完成FFT運算,輔以其他相應的計算處理節點(diǎn),根據數字變頻的原理圖最終實(shí)現數字變頻FFT,其程序框圖如圖2所示。

2.3 LabVIEW與Matlab混合編程實(shí)現數字變頻FFT
LabVIEW與Matlab的混合編程,可通過(guò)調用LabVIEW中的Matlab Script節點(diǎn)實(shí)現。其中,MatlabScript節點(diǎn)本身具有多輸入、多輸出的特點(diǎn),一次處理的信息量可以很大。在Matlab中,根據數字變頻FFT的數學(xué)原理,編程實(shí)現復調制移頻、低通濾波、重采樣、反移頻和FFT操作處理,經(jīng)調試無(wú)誤后,導入到Mat-lab Script節點(diǎn)中;然后在LabVIEW中,通過(guò)調用SineWave.vi產(chǎn)生仿真信號,或從文件中讀取信號數據,同時(shí)添加采樣頻率,細化倍數等控制節點(diǎn);最后連接各圖標,實(shí)現數字變頻FFT,其程序框圖如圖3所示。

3 仿真分析
利用LabVIEW編程實(shí)現數字變頻FFT軟件處理平臺,調用Functions\Analyze\Signal Processing\Sig-nal Generation子模板中的Sine Wave.vi創(chuàng )建正弦信號發(fā)生器,構造仿真信號:
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)數N=5 120;采樣頻率為51 200 Hz。根據式(1)可知,此時(shí)頻率分辨率為10 Hz,在頻域內分辨不出這3個(gè)信號。
若要把分辨率提到1 Hz,即細化10倍,就要采樣51 200個(gè)點(diǎn),然后把分析頻帶(2 000~2 010 Hz)的起始頻率f=2 000 Hz點(diǎn)移到原點(diǎn),當細化倍數D=10時(shí),即5l 200個(gè)采樣點(diǎn)每隔10個(gè)點(diǎn)進(jìn)行抽取,完成對復調制移頻、濾波后的信號重采樣。新的采樣頻率即為5 120 Hz,降低了10倍,抽取得到5 120個(gè)點(diǎn)。為了使細化后的頻率與細化前的一致,在作FFT前應該實(shí)行反移頻,這樣就可以得到分析頻帶上的細化頻譜。如果采用LabVIEW直接編程處理,其細化頻譜如圖4所示;如果采用LabVIEW和Matlab混合編程處理,其細化頻譜如圖5所示。

從圖4和圖5中可以看出,基于LabVIEW的兩種編程方法都實(shí)現了頻譜細化的功能,2 002 Hz,2 004 Hz和2 006 Hz三個(gè)頻率點(diǎn)對應的幅值譜清晰可見(jiàn),且幅值相差2.5倍,分辨率為1 Hz。
4 結 語(yǔ)
數字變頻FFT是頻譜分析中一種約束條件少,可操作性強的方法。在此借助功能強大的LabVIEW軟件編程處理方法,使得數字變頻實(shí)現簡(jiǎn)便,能夠滿(mǎn)足提高頻率分辨率的要求,并具有很高的實(shí)時(shí)性。顯然,在動(dòng)目標速度測量中,利用數字變頻FFT進(jìn)行頻譜細化處理,可獲得更高的頻率測量精度。根據多普勒原理,也可獲得更高的測速精度。因此,研究中基于LabVIEW的數字變頻FFT頻譜細化方法在工程實(shí)踐中有著(zhù)重要的應用價(jià)值,可廣泛應用于汽車(chē)、飛機等運動(dòng)目標的速度測量中。
聯(lián)系客服