使用MATLAB和任意波形發(fā)生器創(chuàng)建高性能激勵(lì)測(cè)試系統(tǒng)
另外,還為特定應(yīng)用提供了專用軟件,如串行數(shù)據(jù)。通過(guò)此類軟件,高速串行數(shù)據(jù)設(shè)計(jì)人員可以開發(fā)擁有特定數(shù)量的隨機(jī)抖動(dòng)、周期性抖動(dòng)或占空比相關(guān)(DCD)抖動(dòng)軟件成分的波形,或創(chuàng)建通道屬性,如預(yù)加重、ISI、噪聲和均衡。它還可以創(chuàng)建基于擴(kuò)頻技術(shù)的信號(hào)。通過(guò)結(jié)合使用信號(hào)發(fā)生軟件和AWG,設(shè)計(jì)人員可以在串行數(shù)據(jù)接收機(jī)和相關(guān)元器件上執(zhí)行壓力測(cè)試、檢定和一致性測(cè)試。
使用MATLAB
MATLAB是美國(guó)邁斯沃克公司出品的非常流行的軟件工具,為工程師們提供了完善的數(shù)學(xué)運(yùn)算、分析和DSP功能。MATLAB是基于數(shù)學(xué)的高級(jí)語(yǔ)言和互動(dòng)環(huán)境,旨在比通用編程語(yǔ)言更快地執(zhí)行計(jì)算密集型任務(wù),如C、C++、等等。MATLAB包括多種工具,設(shè)計(jì)人員可以利用這些工具,計(jì)算和預(yù)覽帶有調(diào)制、抖動(dòng)或失真等特點(diǎn)的復(fù)雜波形。
MATLAB的儀器控制工具箱便于直接從MATLAB與儀器通信(包括信號(hào)發(fā)生器)。工具箱支持GPIB、VISA、TCP/IP和UDP通信協(xié)議、等等。MATLAB和AWG之間一旦建立通信,這些工具使用起來(lái)會(huì)非常簡(jiǎn)明便捷,并支持小的優(yōu)化指令集。
使用MATLAB創(chuàng)建波形
上面的代碼實(shí)例涉及使用兩行“程序”生成基本正弦波,其簡(jiǎn)單地指明了范圍,調(diào)用函數(shù)。通過(guò)MATLAB及其它同類工具,可以設(shè)計(jì)復(fù)雜的波形。使用調(diào)制、失真、瞬態(tài)信號(hào)和抖動(dòng)“增強(qiáng)的”波形是壓力測(cè)試的核心。對(duì)這些信號(hào)編程可能要求兩行以上的代碼,但不用對(duì)這個(gè)過(guò)程心生畏懼,如下面的實(shí)例所示。注釋行前面的“%”符號(hào)是MATLAB慣例。對(duì)具體命令及其判定符,應(yīng)參閱MATLAB文檔。下面的實(shí)例用于泰克AWG,但對(duì)您可能遇到的任何AWG,這一過(guò)程類似。
1.指定波形特點(diǎn)
%This sample shows how to connect to an AWG to create a linear sweep waveform
%////////////////////////////////////////////////////////////////
%// Parameters you can change
%////////////////////////////////////////////////////////////////
clock = 10e+9; %// AWG clock
fc = 1.25e+9; %// Center frequency
pd = 4e-6; %// sweep period
fs = -4.5e6; %// starting frequency
fe = 4.5e+6; %// ending frequency
len = pd * clock; %Waveform length
t = (0:len-1)/clock; %Sample interval
這一段中的操作項(xiàng)設(shè)置儀器時(shí)鐘頻率和中心頻率及掃描頻率。所需的波形是RF線性調(diào)頻,掃描大約1.25 GHz的中心頻率。這些值用傳統(tǒng)工程符號(hào)表示,如“e+9”表示109倍。因此,中心頻率fc為1.25 x 109或1.25 GHz。掃描長(zhǎng)度是周期(4e-6)和時(shí)鐘(10e+9)的乘積。
2.生成波形
%Create a sample pulse waveform with I & Q
i = cos(2*pi*fs*t + 2*pi*(fe-fs)*(((t.^2)/2)/pd));
q = sin(2*pi*fs*t + 2*pi*(fe-fs)*(((t.^2)/2)/pd));
%Create IF waveform
Waveform = i .* cos(2*pi*fc*t) - q .* sin(2*pi*fc*t);
%Plot Waveform
plot(Waveform)
這個(gè)步驟的數(shù)學(xué)運(yùn)算非常密集。第一步設(shè)置的項(xiàng)目被輸入公式中,使用余弦公式定義同相(I)成分,使用正弦公式定義正交(Q)成分。然后,根據(jù)IQ薦組合計(jì)算稱為“Waveform”的陣列,最后繪制稱為Waveform的陣列圖。這就是實(shí)際IF波形。
3.初始化和連接
%Initialize the driver和connect to the instrument using Visa calls
%Use this for LAN, with your IP address
%[sess,msg]=NewSession(TCPIP::xxx.xxx.xxx.xxx::INSTR,LAN);
%Use this for GPIB, with your GPIB address
[sess,msg]=NewSession(GPIB0::01::INSTR,GPIB);
%Reset the instrument.
Write(sess,*RST);
在這一步中,您第一次接觸采用TCP/IP或GPIB協(xié)議的儀器。這個(gè)實(shí)例部分與特定GPIB地址的AWG打開一個(gè)新的通信會(huì)話。注意已經(jīng)包括LAN上儀器的同等行,但注釋符號(hào)使其失效。最后一行中的“Write”命令復(fù)位儀器。與上面特定應(yīng)用的第一段和第二段不同,這是一個(gè)很好的通用代碼段,幾乎適合使用AWG的任何MATLAB會(huì)話。本文引用地址:http://www.ex-cimer.com/article/201701/338035.htm
4.創(chuàng)建同步標(biāo)記
%Create marker1 data with single pulse at beginning.
Marker1 = int32([1 zeros(1 , len-1) ]);
%Create marker2 data with alternating 1s和zeros.
Marker2 = int32(mod((1:len) * 1, 2));
例如,泰克AWG為每個(gè)主要模擬輸出提供了數(shù)字標(biāo)記輸出。通常來(lái)說(shuō),最好使用離散的數(shù)字參考脈沖,同步外部?jī)x器與AWG,如示波器或計(jì)數(shù)器。標(biāo)記輸出通常用于這種目的。這個(gè)代碼段在波形開始處在Marker1中創(chuàng)建一個(gè)脈沖,Marker2則設(shè)置成時(shí)鐘,由通過(guò)整個(gè)波形記錄的交替的1和0 (101010101…)組成。
5.把波形發(fā)送到儀器
TransferWfmReal(sess, example.wfm, Waveform, Marker1, Marker2, len);
%Load the waveform to ch1
LoadWfm(sess,example.wfm,1);
這一步實(shí)際是兩步合在了一步中,如注釋行所示。這個(gè)語(yǔ)法中的“TransferWfmReal”導(dǎo)致波形數(shù)據(jù)以文件名“example.wfm”傳送到位于AWG系統(tǒng)設(shè)置中的AWG波形內(nèi)。“Load”命令把相同的數(shù)據(jù)位移到將使用的通道的實(shí)際波形內(nèi)存中。在執(zhí)行這對(duì)命令后,AWG準(zhǔn)備生成MATLAB中創(chuàng)建的波形。但是,現(xiàn)在還沒(méi)有定義輸出信號(hào)的實(shí)際電氣屬性。
6.設(shè)置通道的輸出參數(shù)
%Set channel properties Write(sess,SOUR1:VOLT:AMPL 0.2); Write(sess,SOUR1:MARK1:VOLT:HIGH 0.5); %Marker1 Write(sess,SOUR1:MARK2:VOLT:LOW 0.1); %Marker2 %Write(sess,SOUR1:FREQ 10e+9); Write(sess,[SOUR1:FREQ num2str(clock)]);
這組指令設(shè)置輸出參數(shù)。第一個(gè)Write命令設(shè)置輸出信號(hào)的幅度。最后的Write命令調(diào)用儀器的時(shí)鐘采樣率,本程序第一段規(guī)定時(shí)鐘采樣率為10 GS/s。
7.啟用通道和RUN
%Switch the channel on
Write(sess,OUTPut1 1);
%Run
Write(sess,AWGC:RUN)
這里的注釋說(shuō)明了真相。AWG通道只有在通道輸出啟用(打開)時(shí)才會(huì)傳送信號(hào)。這一功能可以視為最終衰減器階段與輸出連接器之間的簡(jiǎn)單的開關(guān)(一個(gè)差分對(duì)實(shí)際作為一個(gè)項(xiàng)目對(duì)待)。OUTPut1命令關(guān)閉這個(gè)開關(guān)。必須單獨(dú)啟用每條AWG通道(最多四條)。
現(xiàn)在可以命令儀器RUN,結(jié)果,MATLAB創(chuàng)建的波形將出現(xiàn)在輸出連接器上。注意沒(méi)有提供CloseSession命令,所示的環(huán)境中不要求這一命令。
評(píng)論