點擊學習>>《龍哥手把手教你學LabVIEW視覺設計》視頻教程
基于LabVIEW的虛擬頻譜分析儀的設計與實現
O 引言
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一種圖形化的編程語言,集成了滿足GPIB、VXI、RS-232和RS-485協議的硬件及數據采集卡通訊的全部功能,還內置了便于應用TCP/IP、ActiveX等軟件標準的庫函數。利用LabVIEW可以方便地建立各種虛擬儀器。
頻譜分析儀是對無線電信號進行測量的必備手段,是從事電子產品研發、生產、檢驗的常用工具,應用十分廣泛,被稱為工程師的射頻萬用表。傳統的頻譜分析儀的前端電路是一定帶寬內可調諧的接收機,輸入信號經變頻器變頻后由低通濾器輸出。濾波輸出信號作為垂直分量,頻率作為水平分量,在示波器屏幕上繪出坐標圖,就是輸入信號的頻譜圖。由于變頻器可以達到很寬的頻率,例如30Hz-30GHz,與外部混頻器配合,可擴展到100GHz以上,所以頻潛分析儀是頻率覆蓋最寬的測量儀器之一,無論測量連續信號或調制信號,頻譜分析儀都是很理想的測量工具。但是傳統的頻譜分析儀只能測量頻率的幅度,缺少相位信息,因此屬于標量儀器,而且體積龐大。利用LabVIEW強大的虛擬儀器開發功能,可實現基于快速傅里葉變換(FFT)的現代頻譜分析儀功能,采用數字方法直接由模擬/數字轉換器(ADC)對輸入信號取樣,再經FFT處理后獲得頻譜圖,可以解決傳統頻譜分析儀價格昂貴,攜帶不便等缺點。
1 虛擬頻譜分析儀總體設計方案
虛擬頻譜分析儀由數據采集卡、計算機和在其上運行的用LabVIEW開發的應用軟件組成,如圖1所示。
虛擬頻譜分析儀利用數據采集卡的模擬輸入和模擬輸出兩個功能,用模擬輸出功能產生所需的激勵信號,并將其加到被測網絡上,再用兩個模擬輸入通道將激勵信號和網絡輸出端的響應信號同時采集到計算機中,經處理后,構成幅頻和相頻特性曲線,并顯示在計算機屏幕上,最后對模擬生成的信號進行分析,在計算機屏幕上輸出模擬信號的幅頻/相頻特性。
2 虛擬頻譜分析儀組成及功能
2.1 虛擬儀器和頻譜分析儀組成
本文設計的虛擬頻譜分析儀由周期性信號發生器、濾波器以及幅頻/相頻特性、頻譜分析結果三個子模塊組成。信號發生器子模塊生成兩路模擬輸入信號,一路是可調頻率、相位和振幅的正弦信號,另一路是指可調頻率、相位和振幅的余弦信號,最后利用信號合成器把兩路信號混合起來作為生成的2路模擬信號;頻譜分析和濾波器子模塊利用LabVIEW強大的數字信號處理功能,對這組數據進行濾波、加窗、FFT運算處理,得到信號的實部譜和虛部譜,最重要的是得到信號的幅頻特性曲線和相頻特性曲線;在頻譜分析的結果子模塊中,對生成信號的頻譜進行分析,并將均方根值、一個周期內的信號均值等參數在系統退出時保存到文本文件中。其中,在濾波設置中可以控制濾波的通過方式以及截止頻率,最后顯示出頻譜分析結果,系統退出時提示保存當前數據到文本文件。
虛擬頻譜分析儀前面板分為3部分:周期性信號發生器、周期性信號濾波器及幅頻/相頻特性和周期性信號頻譜分析結果,如圖2所示。圖中顯示的是周期性信號發生器的界面,圖中正弦波和余弦波信號可以通過鼠標拖拽和旋轉按鈕來改變信號的頻率、振幅及相位。當拖拽的時候可以發現下方的"2路原始模擬信號波形"會發生變化,而且橫坐標軸的最大值也會發生變化。程序內部通過調用后面介紹的"XScaleControl.VI"就可以實現這個功能;對于"周期性信號濾波器及幅頻/相頻特性"和"周期性信號頻譜分析結果"這兩個功能模塊界面限于篇幅不再贅述。
虛擬頻譜分析儀后面板由五個子模塊組成:波形生成模塊,波形分析模塊,控制X軸范圍,濾波器以及幅頻/相頻特性和數據保存模塊,如圖3所示。
2.2 虛擬頻譜分析儀子模塊的設計
(1)波形生成子模塊
要進行頻譜分析,首先得生成模擬信號,本文采取系統的兩個子模塊:Triangle waveform.VI和Sinewaveform.VI生成2路模擬輸入信號,為了實現模擬信號的頻率、相位和幅度的調節增加了幾個控制輸入,引腳圖4和圖5所示。
在圖4和圖5中,輸入引腳和輸出引腳完全相同,"offset"是指波形的偏移量,一般不進行設置;"resetsignal"是一個布爾型的輸入控制,若加載為True時則可以復位波形,若為False則不對波形進行復位;"frequency"是指生成信號的頻率;"amplitude"是指想要生成信號的振幅;"phase"是指生成信號的相位;"error in"和"error out"是指當程序有異常發生時的輸入和輸出;"sampling info"是指要生成信號的采樣率,缺省設定為1000,即一秒采樣1000個點;"Duty Cycle"即占空比,是指一串理想的脈沖序列中(如方波),正脈沖的持續時間與脈沖總周期的比值。
? (2)控制X軸范圍子模塊
子模塊XscaleControl.VI用于實現動態控制波形X軸范圍,共有4個輸入引腳,其中3個是引用型reference輸入,一個是常數型輸入引腳。隨著輸入信號頻率的增大,若輸出波形的X軸范圍固定不變為1的話,那么波形顯示太密,導致根本看不清楚圖形,故需要當頻率增大時,波形x軸范圍相對縮小,讓波形顯示更加清楚。其中三個引用型輸入引腳分別指代正弦波頻率、三角波頻率和波形控件WaveformGraph三個原控件的屬性節點 (propertynode)。內部工作原理是當正弦波頻率和三角波形頻率二者中有任一個大于10HZ時就按照二者頻率之中較大的那個頻率的倒數的數值來當作波形控件WaveformGraph的橫坐標軸的最大值,實現了當模擬信號頻率增大時波形依然清晰的功能,從而實現了動態地控制波形控件x軸的范圍。
(3)波形分析子模塊
LabVIEW提供了豐富的波形頻譜分析工具,最典型的就是Amplitude and Level Measurement.VI,它的存放路徑是后面板中Functions->Signal Analysis,參數對話框中共分為4個區域,分別是要求進行的幅值特征值求取的項目(Amplitude Measurements)、當前信號幅值求取的結果(Results)、輸入信號預覽窗口(Input Signal)和加窗后信號預覽窗口(Result Signal),其中最重要的是幅值特征值求取項目的設置,需要求取哪個特征值,就在它前面劃勾,Amplitude and Level Measurement.VI自動在其圖標中添加這一輸出端口。頻譜分析Amplitudeand Level Measurement.VI功能引腳如圖7所示。
該模塊有3個輸入引腳和8個輸出引腳。3個輸入引腳分別如下:"Restart Averaging"引腳標識是否重啟選定的平均處理過程,缺省為False;"Signals"引腳是輸入要分析的信號;"error in(no error)"引腳是對在執行到這個VI之前若是發生錯誤條件的描述;8個輸出引腳敘述如下:"RMS"引腳指信號均方根值;"Positive Peak"引腳指正向峰值;"error out"引腳指子VI執行錯誤時的輸出信息;"Cycle Average"引腳指一個周期的平均值;"Cycle RMS"引腳指一個周期的均方根值;"Mean(DC)"引腳指信號均值;"Negative Peak"引腳指負向峰值;"Peak to Peak"引腳指峰一峰值,即輸入信號波形的正向和負向的最大振幅值。
把模擬生成的2路信號作為此VI的輸入引腳"Signals",就可以對生成的信號進行分析,從而輸出該信號的一些參數信息,如信號均值、峰值和一個周期的均方根值等。
另外一個比較典型的信號分析VI就是FFTSpectrum(Real-Im).VI,該VI可以對輸入的時域信號計算出快速傅立葉變換頻譜,并分別返回波形的實部譜和虛部譜,在實際應用中進行實部譜和虛部譜的分析也很有意義,傅立葉頻譜變換FFT Spectrum.VI功能引腳如圖8所示。
該模塊共有10個引腳。其中"restart averaging(F)"引腳和上面提到的功能一樣,用來標識是否重啟選定的平均處理過程;"time signals"引腳標識輸入的時域信號;"window"引腳指加窗設置,加窗方式包括可以有多種不同的方式,如Uniform、Hanning、 Hamming以及Blackman等;"error in(noerror)"引腳和"error out"引腳標識執行此VI有錯誤發生時的輸入和輸出信息;"averaging parameters"引腳指輸入波形信號的平均參數;"real parts"引腳標識波形的實部譜,輸出可以是用graph圖像直觀描述的方式也可以是一堆參數的描述形式;"imaginary parts"引腳指輸入波形的虛部譜,描述方式同實部譜;其余兩個引腳"averaging done"引腳和"averages completed"引腳一般不用,都是對輸入波形的一些不常用的參數的敘述。
(4)濾波器以及幅頻/相頻特性子模塊
濾波器子模塊處于Functions->Signal Analysis子模板中,它的設置分為4個區域,分別為濾波器參數設置(Filtering Type)、兩個預覽窗口和預覽模式設定區域(VIew Mode)。濾波器種類有四種,分別為高通、低通、帶通以及平滑濾波。前三種都容易理解,而平滑濾波主要用于對信號進行局部平均,消除周期性噪聲或白噪聲。低通濾波器子模塊Filter.VI的功能引腳如圖9所示。
?
帶通濾波器子模塊BandFilter.VI的功能引腳如圖10所示。顧名思義,帶通濾波器的意思就是頻率在某個范圍內的波形可以通過,它比圖9中的低通濾波器就多了一個引腳Upper Cut-Off。
(5)數據保存子模塊
數據保存子模塊即SaveData.VI功能引腳如圖11所示。它把想要保存的數據處理成統一的格式,在系統退出時保存到文本文件中。
其中,只有兩個引腳是輸出端,即"string"和"系統日期和時間",分別代表格式化輸出的字符串和系統當期日期和時間。輸出端"string"在系統自動存儲文件中的一條記錄格式如下:
"周期平均值:-0.258667正峰值:2.845332信號均方根值:2.845332 3dB帶寬:392.968235.
2007年8月21日12:21:32"。其中,"周期平均值"表示波形信號在一個周期內的信號平均值;"正峰值"表示波形信號達到的最大幅度值;"信號均方根值"表示波形信號按均方根公式求出的值;"3dB帶寬"表示通過子VI求出的帶寬幅度值;最后一個代表的是存儲該條記錄的日期和時間。其中主要用到 LabVIEW提供的Format函數,通過把多個中文字符串和一個數字通過Fromat函數格式化到同一個字符串"string"中輸出,從而為系統退出時保存數據做準備,因為若是把保存數據放到while循環里,則會因一直提示保存數據而導致程序死循環。
圖11中,有六個輸入端引腳,其中"RMS"引腳表示信號的周期平均值,"Positive Peak"引腳表示正向最大峰值,"CycleAverage"引腳表示信號均方根值,"detected frequencies"引腳是指檢測到的頻率,而"3db帶寬"引腳和"上限帶寬"引腳是通過嵌套的—個子Ⅵ即Compute 3db bandwidth.VI計算出來的。
3 結語
基于LabVIEW編程環境下的虛擬頻譜分析儀主要實現了時域分析和頻域分析兩個功能。信號的時域分析主要是測量測試信號經濾波處理后的特征值,這些特征值以一個數值表示信號的某些時域特征,是對測試信號最簡單直觀的時域描述。將測試信號采集到計算機后,在測試VI中進行信號特征值處理,并在測試VI前面板上直觀地表示出信號的特征值,可以給測試VI的使用者提供一個了解測試信號變化的快速途徑。信號的特征值分為幅值特征值、時間特征值和相位特征值,本文對幅值特征值的分析進行了設計。
信號的頻域分析就是根據信號的頻域描述來估計和分析信號的組成和特征量。也就是研究信號的頻率結構,即求取其分量的幅值、相位按頻率的分布規律,并建立以頻率為橫軸的各種譜。對于周期信號可將其展開為傅立葉系數,其頻譜具有離散性、諧波性和收斂性;對于非周期信號可用頻譜密度函數分析其頻率構成,其頻譜具有連續性。
頻域分析包括頻譜分析、功率譜分析、相干函數分析以及頻率響應函數分析。本文實現了頻譜分析,即信號的幅頻特性和相頻特性。
評論
查看更多