首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

泰克高级技术市场经理

测试工程师面临的极具挑战性的任务之一,是为测试PCB原型或硅转生成激励信号,或为RF技术定义复杂的高频调制信号。尽管在工作台上摆满脉冲发生器、函数发生器、调制发生器和RF发生器也不失为一种方法,但使用任意波形发生器(AWG)直接合成生成信号提供了更高的灵活性、可重复性和测量精度。

灵活性源自我们生成波形的方式,其直接来自AWG中的内存,因此管理简便,可以满足无穷无尽的各类应用和测试需求。AWG基于采样的结构基本上与数字示波器的操作相反。示波器从模拟波形中采集样点,而任意波形发生器则从存储的样点中重建模拟波形(即DAC与ADC)。这些样点基本上可以定义任何波形,从正弦波到串行数字脉冲。

许多传统信号发生仪器只生成一种波形,如正弦波,并依赖外部调制器,来进一步处理信号。相比之下,AWG使用直接数字生成技术,生成包含要求的调制特点或传输路径效应的信号,如抖动、噪声、符号间干扰(ISI)、等等。可以使用各种软件工具,定义和建立信令特点。

与示波器一样,AWG一直紧跟电子器件和RF领域中发生的速度和复杂性迅速提高的发展步伐。最新AWG提供了高采样率、长波形内存、深动态范围和必要的分辨率,可以满足国防电子、高速串行、光学网络和高级研究中最苛刻的信号发生要求。

AWG最重要的主打指标之一是采样率。就在去年,采样率刚刚跃升到大约24 GS/s (每秒千兆样点)。而今天,AWG已经实现了50GS/s的采样率。这意味着在RF应用中,可以使用AWG生成高达20 GHz的复杂宽带信号。在高速串行应用中,可以使用当今的50 GS/s AWG,生成高达122.5 Gb/s的高波特率基带信号,同时仍能提供所需的垂直分辨率,处理复杂调制,如OFDM和高阶QAM格式。

AWG正日益成为各种测试测量应用的激励源,这是因为与其它方式相比,其提供了大量固有的优势,包括:

●可以通过数百种方式修改存储的信号信息或数字样点,如滤波、卷积、时移、调制、等等。
●通过改变采样时钟的频率,可以改变输出频率,而不会改变波形成分。
●可以在输出波形中任何地方增加异常特点(如瞬态信号或跌落)。这适用于提供“真实环境”压力,如原型验证过程中的正弦曲线抖动。
●直接数字合成技术可以与设计(建模)工具一起使用,仿真元器件、信道和/或系统性能。
●基于软件的编辑工具简化了开发和修改波形的过程。

创建波形
随着设计人员需要设计的信号越来越复杂,基于软件的工具已经成为创建波形的首选手段。更加完善的软件工具可以归档和重用代码,从数学函数中计算几乎任何波形,对得到的波形建模。市场上有多种波形创建工具,从最简单的工具,直到高级工具。

下面概括介绍了提供的部分选项以及基于MATLAB的更详细的实例。

大多数AWG包括一套基本波形文件,可以调用到波形内存中。这些波形通常直接从简单的数学函数中导出,如正弦公式。其它基本波形包括三角波、锯齿波、方波等信号形状。机载功能为在AWG及相连器件上执行“存在信号”检查提供了方便的方式,这些功能对其它简单测试可能已经足够了。

许多厂商通常还提供基本的成套波形创建和编辑工具,这些工具设计成在Windows计算平台或在仪器本身内部运行。图1显示了用来创建正弦波的公式编辑器。



1. 标配AWG波形工具可以快速创建波形,如图中所示的正弦波。


公式窗口(左上方)包含着实际公式和其它细节,公式具体如下:
#Here w = 2*pi*10^4*t
#The Freq of the equation F= 1/((points/cycle) * clock)
#In this equation Freq is 1/1000*100ns = 10KHz i.e. 10^4
#View the waveform with the settings Points: 1K,SR,10MS/s
Range(0us, 100us)

注意,大多数文本由注释组成,运算函数是简单的“sin(w)”。一旦基本波形完成,绘图工具可以使用人为失真或畸变改动简单的正弦形状。

另外,还为特定应用提供了专用软件,如串行数据。通过此类软件,高速串行数据设计人员可以开发拥有特定数量的随机抖动、周期性抖动或占空比相关(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会话。


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:VOLTOW 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系列任意波形发生器运行前一步创建的波形所得到的截图。



2. 这是泰克AWG7000系列屏幕上看到的实例中得到的线性调频波形。


http://weibo.com/tekchina
金牌会员发的果然不一样,看起来就是好难的样子
返回列表