安捷伦or是德信号源+频谱仪操作:从程控到自动测试(一)仪器校准的程控实现
**
安捷倫/是德信號源+頻譜儀操作:從程控到自動測試(一)儀器校準的程控實現
**
一、概述
目前,對于射頻模塊的調試與測試,國內大多數的廠商(特別是中小型企業(yè))均是通過最原始的手工調測方式,需要調試人員手動設置和操作儀器(信號源和頻譜儀),并通過肉眼觀察儀器上的顯示數值并讀寫分析模塊性能,來確定所調試的通信模塊是否符合指標要求。
在射頻模塊的批量生產測試過程中,調試和測試人員需要通過重復的手動操作儀器,進行射頻模塊的指標測試。至于手動操作儀器的方式,我們從儀器操作的第一步開始說起。
二、儀器校準
圖1給出了射頻待測模塊與信號源和頻譜儀的射頻連接方式。從圖中可以看出,當從信號源輸出功率為0dBm的信號通過射頻線進入待測模塊,再由射頻線和衰減器進入頻譜儀時,我們想要在頻譜儀中得到的信號功率應該是(0+G)dBm,但實際情況往往具備一定的偏差,所以我們在開始測試之前需要做的就是校準信號源和頻譜儀以消除這一偏差。
實際測試中,射頻線和衰減器均具備一定的損耗,所以以上偏差主要是由于這兩個方面導致的。那么,接下來介紹如何將這些偏差校準進信號源和頻譜儀。
1、 使用射頻線1直接連接信號源和頻譜儀,將信號源的中心頻率和功率設置到待測頻點和0dBm的功率值,并打開射頻開關,輸出射頻信號;
2、 觀察頻譜儀中的峰值功率,并讀出峰值功率,將該峰值功率與0dBm的差值設置到信號源功率補償值中,自此,信號源功率補償結束;
3、 在以上基礎上,使用連接頭將射頻線1和射頻線2、衰減器、射頻線3連接起來,并將射頻線3連接到頻譜儀,同樣的,將信號源的中心頻率和功率設置到待測頻點和0dBm的功率值,并打開射頻開關,輸出射頻信號;
4、 觀察頻譜儀中的峰值功率,并讀出峰值功率,將該峰值功率與0dBm的差值設置到頻譜儀功率補償值中,自此,頻譜儀功率補償結束,從頻譜中看到信號峰值為0dBm。
儀器的校準只需在開始測試之前校準一次即可,當測試中使用的射頻線和衰減器固定時,則只需要記住各中心頻點對于的信號源和頻譜儀功率補償值,而無需重復校準。但當測試結果有較大偏差時,可直連信號源和頻譜儀驗證校準是否有誤。
三、儀器校準的程控實現
如何使用程控進行儀器校準工作,從而提高測試人員操作效率?
分析以上儀器校準步驟,可以將信號源中心頻點和功率設置、信號源功率補償值設置、頻譜儀峰值讀取、頻譜儀功率補償值設置這些手動操作儀器的步驟使用程控實現。(信號源和頻譜儀程控的實現,請參考【VISA+SCPI實現安捷倫/是德信號源和頻譜儀的程控】)
本文中程控使用VISA+SCPI指令集實現,操作界面使用C#實現,實現方式還有其他的,可依據自身的熟悉程度進行選擇。表1給出了信號源校準程控指令及界面實例,頻譜儀的程控指令可參考https://download.csdn.net/download/qq_27424533/80233490,界面實例可與信號源一致。信號源的其他程控指令可參考https://download.csdn.net/download/qq_27424533/80233370。
四、儀器校準的自動化實現
當理解并實現以上儀器校準的程控方式后,我們就具備了儀器校準自動化實現的基礎。儀器校準的步驟在第二節(jié)中已經介紹清楚了,那么怎么實現儀器校準的自動化,則與個人的算法和思路相關,本文中的自動化實現思路如下:將信號源與頻譜儀直連后,由頻譜儀讀出各頻點的峰值功率,并將該峰值功率與頻點記錄在txt文件中,保存為信號源功率補償值;頻譜儀功率補償值則通過導入信號源功率補償值文件,對相同的頻點讀取頻譜儀的功率補償值,并將信號源和頻譜儀的功率補償值及對應的頻點值保存記錄在功率補償值文件中;儀器開機后,需要校準時,則讀取該文件中頻點對應的功率補償值設置到信號源和頻譜儀中即可。
界面實例如下:
給出前端代碼如下:
給出后端代碼如下:
//信號源補償值是在信號源與頻譜儀直連時檢測得到,中間不加衰減器private void Button_SGOffsTable_Click(object sender, RoutedEventArgs e){try{double fre, mk1, step;int n = 0;Offssta = Convert.ToDouble(TextBox_OffsFreSta.Text);Offssto = Convert.ToDouble(TextBox_OffsFreSto.Text);parentWindow.Button_SGRFONorOFF.IsChecked = false; //關閉信號發(fā)生器射頻parentWindow.Button_SGRFModONorOFF.IsChecked = false; //關閉雙音開關parentWindow.SGCMDsend(string.Concat(":POW:OFFS 0dB"), "信號源補償值設置成功!");parentWindow.SGCMDsend(string.Concat(":POW 0dBm"), "信號發(fā)生器功率設置成功!");parentWindow.PPCMDsend(":CALC:MARK:AOFF", "Marker點已關閉!"); //關閉所有maker點parentWindow.PPCMDsend(string.Concat(":DISP:WIND:TRAC:Y:RLEV 2dBm"), "調整頻譜儀參考電平。");parentWindow.PPCMDsend(":FREQ:SPAN 10MHz", "頻譜儀頻率帶寬設置成功!");parentWindow.PPCMDsend(":CALC:MARK1:STAT 1", "頻譜儀Marker1打開!");parentWindow.Button_SGRFONorOFF.IsChecked = true; //打開信號發(fā)生器射頻step = 0.5;File.Delete("SG_OFFSET_VALUE.txt"); //刪除txt文件"互調衰減測試數據.txt"for (fre = Offssta; fre <= Offssto; fre = fre + step){parentWindow.SGCMDsend(string.Concat(":FREQ ", fre.ToString(), ComboBox_OffsFreDW.Text), "信號發(fā)生器頻率設置成功!");parentWindow.PPCMDsend(string.Concat(":FREQ:CENT ", fre.ToString(), ComboBox_OffsFreDW.Text), "頻譜儀中心頻率設置成功!");Thread.Sleep(200);//parentWindow.PPCMDsend(string.Concat(":CALC:MARK1:X ", fre.ToString(), ComboBox_OffsFreDW.Text), "頻譜儀Marker1頻率設置成功!");parentWindow.PPCMDsend(":CALC:MARK1:MAX", "峰值點確定!");Thread.Sleep(300);mk1 = Convert.ToDouble(parentWindow.PPCMDread(string.Concat(":CALC:MARK1:Y?"), "頻譜儀Marker1功率為:"));OffsFre[n] = fre;SGOffs[n] = mk1;WriteFile("SG_OFFSET_VALUE.txt", string.Concat(OffsFre[n].ToString(), "_", SGOffs[n].ToString()));n = n + 1;}}catch{parentWindow.LogDebug(LogMsgType.Normal, "信號源補償表格生成異常!");}}總結
以上是生活随笔為你收集整理的安捷伦or是德信号源+频谱仪操作:从程控到自动测试(一)仪器校准的程控实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【移动端】手机界面的设计尺寸
- 下一篇: 湖南大学计算机学院张柏杨,王树林-湖大信