新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 使用MATLAB和任意波形發生器創建高性能激勵測試系統

        使用MATLAB和任意波形發生器創建高性能激勵測試系統

        作者: 時間:2017-01-12 來源:網絡 收藏


        另外,還為特定應用提供了專用軟件,如串行數據。通過此類軟件,高速串行數據設計人員可以開發擁有特定數量的隨機抖動、周期性抖動或占空比相關(DCD)抖動軟件成分的波形,或創建通道屬性,如預加重、ISI、噪聲和均衡。它還可以創建基于擴頻技術的信號。通過結合使用信號發生軟件和AWG,設計人員可以在串行數據接收機和相關元器件上執行壓力測試、檢定和一致性測試。

        使用MATLAB
        MATLAB是美國邁斯沃克公司出品的非常流行的軟件工具,為工程師們提供了完善的數學運算、分析和DSP功能。MATLAB是基于數學的高級語言和互動環境,旨在比通用編程語言更快地執行計算密集型任務,如C、C++、等等。MATLAB包括多種工具,設計人員可以利用這些工具,計算和預覽帶有調制、抖動或失真等特點的復雜波形。

        MATLAB的儀器控制工具箱便于直接從MATLAB與儀器通信(包括信號發生器)。工具箱支持GPIB、VISA、TCP/IP和UDP通信協議、等等。MATLAB和AWG之間一旦建立通信,這些工具使用起來會非常簡明便捷,并支持小的優化指令集。

        使用MATLAB創建波形
        上面的代碼實例涉及使用兩行“程序”生成基本正弦波,其簡單地指明了范圍,調用函數。通過MATLAB及其它同類工具,可以設計復雜的波形。使用調制、失真、瞬態信號和抖動“增強的”波形是壓力測試的核心。對這些信號編程可能要求兩行以上的代碼,但不用對這個過程心生畏懼,如下面的實例所示。注釋行前面的“%”符號是MATLAB慣例。對具體命令及其判定符,應參閱MATLAB文檔。下面的實例用于泰克AWG,但對您可能遇到的任何AWG,這一過程類似。

        1.指定波形特點
        %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

        這一段中的操作項設置儀器時鐘頻率和中心頻率及掃描頻率。所需的波形是RF線性調頻,掃描大約1.25 GHz的中心頻率。這些值用傳統工程符號表示,如“e+9”表示109倍。因此,中心頻率fc為1.25 x 109或1.25 GHz。掃描長度是周期(4e-6)和時鐘(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)

        這個步驟的數學運算非常密集。第一步設置的項目被輸入公式中,使用余弦公式定義同相(I)成分,使用正弦公式定義正交(Q)成分。然后,根據IQ薦組合計算稱為“Waveform”的陣列,最后繪制稱為Waveform的陣列圖。這就是實際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協議的儀器。這個實例部分與特定GPIB地址的AWG打開一個新的通信會話。注意已經包括LAN上儀器的同等行,但注釋符號使其失效。最后一行中的“Write”命令復位儀器。與上面特定應用的第一段和第二段不同,這是一個很好的通用代碼段,幾乎適合使用AWG的任何MATLAB會話。

        本文引用地址:http://www.104case.com/article/201701/338035.htm

        4.創建同步標記
        %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為每個主要模擬輸出提供了數字標記輸出。通常來說,最好使用離散的數字參考脈沖,同步外部儀器與AWG,如示波器或計數器。標記輸出通常用于這種目的。這個代碼段在波形開始處在Marker1中創建一個脈沖,Marker2則設置成時鐘,由通過整個波形記錄的交替的1和0 (101010101…)組成。

        5.把波形發送到儀器
        TransferWfmReal(sess, example.wfm, Waveform, Marker1, Marker2, len);
        %Load the waveform to ch1
        LoadWfm(sess,example.wfm,1);

        這一步實際是兩步合在了一步中,如注釋行所示。這個語法中的“TransferWfmReal”導致波形數據以文件名“example.wfm”傳送到位于AWG系統設置中的AWG波形內。“Load”命令把相同的數據位移到將使用的通道的實際波形內存中。在執行這對命令后,AWG準備生成MATLAB中創建的波形。但是,現在還沒有定義輸出信號的實際電氣屬性。

        6.設置通道的輸出參數
        %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)]);

        這組指令設置輸出參數。第一個Write命令設置輸出信號的幅度。最后的Write命令調用儀器的時鐘采樣率,本程序第一段規定時鐘采樣率為10 GS/s。

        7.啟用通道和RUN
        %Switch the channel on
        Write(sess,OUTPut1 1);
        %Run
        Write(sess,AWGC:RUN)

        這里的注釋說明了真相。AWG通道只有在通道輸出啟用(打開)時才會傳送信號。這一功能可以視為最終衰減器階段與輸出連接器之間的簡單的開關(一個差分對實際作為一個項目對待)。OUTPut1命令關閉這個開關。必須單獨啟用每條AWG通道(最多四條)。

        現在可以命令儀器RUN,結果,MATLAB創建的波形將出現在輸出連接器上。注意沒有提供CloseSession命令,所示的環境中不要求這一命令。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 西林县| 南皮县| 米泉市| 盱眙县| 杭锦旗| 浦北县| 台北市| 绍兴市| 远安县| 通山县| 孝昌县| 阳新县| 咸阳市| 隆安县| 阜南县| 新绛县| 卢龙县| 安宁市| 重庆市| 应城市| 遂昌县| 色达县| 沂源县| 金阳县| 铁岭市| 汉源县| 安吉县| 南充市| 新源县| 神池县| 淮安市| 夏邑县| 那坡县| 北海市| 仁布县| 鲁甸县| 博湖县| 南郑县| 绥阳县| 咸丰县| 奉新县|