新闻  |   论坛  |   博客  |   在线研讨会
使用MATLAB和任意波形发生器创建高性能激励测试系统
越测越开心 | 2013-07-09 10:16:27    阅读:2091   发布文章

作者:Chris Loberg

 

泰克高级技术市场经理

 

测试工程师面临的极具挑战性的任务之一,是为测试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: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系列任意波形发生器运行前一步创建的波形所得到的截图。


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


为MATLAB编程构建GUI
上面介绍了基于文本的MATLAB命令可以怎样创建波形,控制AWG。对一次性测量或试验来说,这种方法足够了。但对固定程序内依赖变化的测量参数的频繁测试来说,图形用户界面(GUI)要快得多,使用起来简便得多。精心设计的GUI只提供完成作业所需的控件和范围。它可以针对某个应用在很窄的范围内订制,或者可以设置标签和按钮,允许用户从一组相关应用中选择应用。

MATLAB的TMTool应用是MATLAB仪器控制工具箱的一部分,是一个简单的图形界面,拥有一套优异的通用功能:搜索硬件、连接、配置、写入、读取。

图3显示了完全在MATLAB内部开发的用于泰克仪器的GUI,这里演示了GUI可以实现哪些操作。底层仪器命令与上面的MATLAB程序中类似,但访问这些功能的速度要快于手动编码命令。标签可以帮助用户建立测试结构,按钮则简化了通道激活及单一/连续执行等功能。高亮色彩指明了选择的按钮,最大限度地降低理解错误的可能性。

3. 使用这样的GUI前端可以更方便地使用MATLAB创建波形。


RF到串行及其它
串行总线标准一致性测量,如PCI Express和串行ATA,特别是串行接收机测试,是一门特别适合直接数字合成的学科。考虑一下抖动容限测试,其构成了几乎每个串行标准的大部分一致性测量要求。在高性能AWG出现前,抖动测试一直要求一个测试系统及下述夹具安排:一台数据发生器创建码型,一台噪声发生器作为随机调制源,一台正弦或函数发生器作为确定性抖动源,一个混频器,一台PC运行专用BIST (内置自检)设置程序,一台电源组合器,一个错帧计数器监测被测器件的输出。这么复杂的配置只是为了实现不间断的、可变的、拥有可控抖动的串行码型数据。

相比之下,一台高性能AWG可以使用直接数字合成技术,从波形内存中直接提供这样的数据流。在这种应用及其它应用中,软件驱动的方法的动态性要远远高于基于硬件的上一代产品。在串行流中,可以使用MATLAB或类似工具,在创建码型波形时插入所需的抖动。同时,可以使用扩频时钟特点、预加重或去重及其它标准串行数据属性,进一步修改数据。

许多其他应用也将从直接数字合成技术中受益,包括雷达、软件定义的无线电、超宽带RF、等等。AWG既可以放在串行设计人员的工作台上,也可以放在RF元器件评估工作台上。

总结
使用当今高性能任意波形发生器直接生成数字信号,为无线通信测量、串行一致性测试等应用使用高效的新技术提供了基础技术。完善的数学运算和分析软件包,如迈斯沃克公司的MATLAB,给创建波形及为AWG创建功能程序带来了全新的效率。在这套数学运算工具的帮助下,设计人员可以创建几乎任何关键波形形状,然后故意失真,以仿真真实环境条件。


想了解更多测试测量最新资讯?想与测试测量专家互动?敬请关注泰克科技官方微博:http://weibo.com/tekchina


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
皓曦  2013-07-22 12:24:30 

可以去实践下,挺有意思的

我们不是“测神”,但是希望通过分享的方式与大家探讨一下“神测”的艺术,让大家越测越开心!欢迎评论或留言——泰克中国AE团队
推荐文章
最近访客