在使用網絡分析儀搭建測試系統進行自動測量時,特別是天線測量系統,要多次連續掃描并獲取所有數據,要求快的測量速度。矢量網絡分析NSWEEP系列指令,多次掃描的數據保存在緩存,執行N次掃描后,遠程批量讀取,從而實現快的多次掃描測試和批量數據讀取。如果N次掃描的數據量過大,例如超過100M,可以在測量的同時,讀取緩存。
本例程代碼實現以下功能:
%% # Read N times sweep data from R&S VNA% *******************************************************% # This script set N times sweep and read a batch of data %********************************************************%% # Instrument connection via LAN IPofVNA = '192.168.0.11'; strInstr=strcat('TCPIP0::',IPofVNA,'::hislip0::INSTR');% # Create NI-VISA object VNA=visa('rs',strInstr);% # IO buffer size of VNAMAX_SWEEP_POINTS = 20001;VNA.InputBufferSize = MAX_SWEEP_POINTS*8; % # Open object(VNA)fopen(VNA);%% # Read instrument settingfprintf(VNA,'FORM:DATA ASC/n');fprintf(VNA,'SWE:POIN?/n');sweeppnts = str2double(fscanf(VNA));fprintf(VNA,':SYST:FREQ? MIN/n');Freq_start = str2double(fscanf(VNA));fprintf(VNA,':SYST:FREQ? MAX/n');Freq_stop = str2double(fscanf(VNA));%% # Read trace1 - float32fprintf(VNA,'FORM:DATA REAL,32/n');% # sweep n timesnsweep = 100;fprintf(VNA,sprintf('SWE:COUN %d//n', nsweep));% # Start sweepfprintf(VNA,'INIT1:CONT OFF; :INIT1:IMMediate; *WAI/n');% # Read n times trace1 totallydata = zeros(sweeppnts*2,nsweep);S_Real = zeros(sweeppnts,nsweep);S_imag = zeros(sweeppnts,nsweep);S = zeros(sweeppnts,nsweep);for i=1:nsweep fprintf(VNA,sprintf('CALC1:DATA:NSW:FIRS? SDAT, %d; *WAI//n',i)); header=fread(VNA,2,'char'); digits=str2double(char(header(2))); datalen = fread(VNA,digits,'char'); LenOfData=str2double(char(datalen)); data(:,i) = fread(VNA, LenOfData/4,'float32'); eos = fscanf(VNA); % complex S_Real(:,i) = data(1:2:2*sweeppnts,i); S_imag(:,i) = data(2:2:2*sweeppnts,i); S(:,i) = S_Real(:,i)+1i*S_imag(:,i);end%% # close VNAfclose(VNA);
相關產品
免責聲明
客服熱線: 15267989561
加盟熱線: 15267989561
媒體合作: 0571-87759945
投訴熱線: 0571-87759942
下載儀表站APP
Ybzhan手機版
Ybzhan公眾號
Ybzhan小程序