微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 使用MATLAB和任意波形发生器创建高性能激励测试系统

使用MATLAB和任意波形发生器创建高性能激励测试系统

时间:01-12 来源:互联网 点击:

使用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会话。

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命令,所示的环境中不要求这一命令。

图2显示了泰克AWG7000系列任意波形发生器运行前一步创建的波形所得到的截图。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top