使用任意波形(或函数)发生器产生想要的任意信号

1.说明

本文主要记述,本人使用Tektronix(泰克)公司的  AFG3101 型号的任意函数发生器(Arbitrary Function Generator,AFG) AWG520型号的任意波形发生器 (Arbitrary Waveform Generator,AWG)的一些经验方法,如有不当,还请指出,谢谢!

2.生成任意波形

主要有两种方法生成,一是使用 Tektronix(泰克)提供的 ArbExpress 软件创建生成波形,二是使用Matlab,这里主要讲述如何将数据转换成任意波形(或函数)发生器支持的波形文件。

2.1 使用ArbExpress 软件创建生成波形

Tektronix(泰克)公司为信号发生器提供了波形和函数发生器软件,ArbExpress软件是Tektronix(泰克)公司提供的一款用于创建编辑和生成波形文件的软件,可到官网下载(ArbExpress),目前最新的是ArbExpress3.1,需要登录才能下载。此外,还需要安装Microsoft .NET Framework Version 1.1 或更高版本,软件才能运行,安装过程中会提示安装TekVISA ,是关于示波器的一款软件,根据需要决定是否安装。

注:ArbExpress软件的具体使用方法,在此并不介绍,请参见软件手册。

下图2-1显示如何使用Equation Editor 创建生成 频率为2MHz的正弦波的绝对值波形:

图 2-1  使用ArbExpress的Equation Editor生成

点击OK后, 生成下图2-2所示波形:

图2-2 生成的 abs(sin) 波形

这时候,还可以利用软件提供的波形编辑功能(旋转,相加,相乘,归一化等等)对波形进行操作,得到想要的波形。之后点击File -> Save as 选择保存文件类型,对于AFG选择 '.tfw',对于AWG选择 ‘.wfm’ 。

当然如果已经连接仪器,还可以右击直接发送波形至信号发生器,如下图2-3所示:

图2-3 直接发送波形至仪器

2.2 使用Matlab产生波形

ArbExpress虽然提供了 公式 产生信号的功能,但用起来并不是很方便,实际上对于初学者很不方便,编译时只给出错误的行,不给原因,而且还有好多莫名其妙的错误,都不知道错误的原因,也许是本人没有深刻理解它的使用方法。

Matlab是一款功能强大的数值分析计算软件,其在科学研究与工程上的重要性在此不再重复。新建Matlab 脚本(Script)文件,输入下面的代码,生成abs(sin)信号:

t = 0:0.001:1;
t = t*(1e-6);
f = 1e6;% 1MHz
x = abs(sin(2*pi*f*t));
plot(t,x)
title('abs(sin),f=2 MHz,Number of Samples:1001')

结果如下图所示:

图2-4 Matlab 生成abs(sin)信号

但是如何将生成的数据传送给仪器呢?

ArbExpress 软件原本提供了,Matlab与仪器交互的方法,可是,按照该软件提供的方法,并不能实现,原因及自己提出的解决方法见第4小节:4. 将数据转换成仪器支持的文件格式

3. 传送波形文件至信号发生器

Tektronix(泰克)公司为其信号发生器产品提供了多种交互方式,可以通过 GPIB,USB,LAN口等方式。下面主要介绍如何通过 USB 和 网线 连接 电脑(PC)及 仪器,以便将数据发送到仪器。其它方式,参见软件手册。

3.1 USB连接方式

以AFG3101为例,将USB接入AFG3101的后面板的USB的接口中,另一端插入电脑的USB口。

打开ArbExpress 软件,按下图3-1所示步骤连接仪器:

图3-1 使用USB连接仪器与PC机

然后定位到自己产生的波形文件(tfw格式)在PC机上的的位置,将文件直接拖拽至EMEM或USER1~USER4即可,如下图所示

图3-2 传送波形文件至任意函数发生器AFG3101

等待传送完成,仪器上变得到了你的波形,如下图所示:

图3-3 传送至信号发生器的波形

还可以直接在软件中直接调整波形参数,然后点击“Apply”即可更改。

也可以通过 图2-3 所示的方式 将波形文件发送至仪器。

3.2 网线连接方式

工具:交叉网线、PC机、信号发生器。

交叉网线不同于一般的网线,只是水晶头接法不一样。关于交叉网线的制作,自行搜索,也可参见:交叉网线制作图解。

下面以AWG520为例。

用交叉网线连接AWG520与PC机,接着设置PC机IPV4地址,由于比较简单,这里不进行介绍,这里设置IPV4地址为:192.168.0.1

然后在 仪器前面板 找到“Utility ”按钮,如下图红色圈1 所示:

图3-4 AWG520 前面板

然后按下图,按下Comm红色圈所对应的按钮,弹出下图所示界面,根据需要修改红色框中的IP地址(这里用图示默认值):

图3-5 Comm界面

接着,按下 上图3-5 中 右侧 Execute Ping ... 所对应的按钮,进行 Ping测试,弹出如下界面:

图3-6 Ping 测试界面

在上图红色框中输入PC机IPV4地址,如上图所示,然后按下 OK对应的按钮,进行 测试,如果 提示:“...... is alive” ,则表明连接正常。

当然也可以在PC机中打开 DOS 界面,输入:ping 192.168.0.2 进行测试。

测试成功后,打开ArbExpress 软件,点击:File Transfer & Control,然后右击下图3-7中的AWG Ethernet,选择Set IP Address,在弹出的对话框地址栏中输入仪器的IPV4地址,192.168.0.2。然后点击Connect,然而,却不能连接,会弹出错误提示窗口。

最后发现,原来是地址填错了,是的,正确的应该是:192.168.000.002,如下图3-7所示,哦,我晕

图3-7 使用网线连接仪器并传输波形文件

连接上后,按上图,把波形文件(如上图中的 sinc.wfm)拖拽到仪器中即可把文件传输到AWG520。

下面还需要在AWG520上选择加载波形。

首先,按下仪器前面板上的 Setup 按钮(图3-4 中红色圈2),然后,按下屏幕右下角的AWG 对应的按钮,在按下右侧Load 对应按钮,在弹出的界面中,选择波形文件,如下图中的 sinc.wfm,然后,按下 OK 即可。

图3-8 选择波形文件

加载后的波形如下图3-9 所示:

图3-9 自己创建的sinc 波形

下面讲述如何将,数据转换成,ArbExpress支持的波形文件。

4. 将数据转换成波形文件

虽然可以很方便的用Matlab产生想要的任意波形数据,但并不能直接传送给仪器,除非,使用ArbExpress提供的Matlab工具,找到你的ArbExpress安装路径,进入Tools下的Matlab文件夹(如 E:\Program Files (x86)\Tektronix\ArbExpress\Tools\Matlab),将此路径添加进 Matlab的搜索路径 ,或设置为Matlab的当前工作路径。然后在Matlab中建立脚本文件,举例如下:

% example of connect to AFG3101 with USB%% New Session[ SessionID , StatusMsg ] = NewSession ('USB::0x0699::0x0342::C021173::INSTR', 'USB');%% Generate waveform
t = 0:0.001:1;
t = t*(1e-6);
f = 1e6;% 1MHz
x = abs(sin(2*pi*f*t));
plot(t,x)
title('abs(sin),f=2 MHz,Number of Samples:1001')%% Send DataData = x;[Status,StatusMsg] = SendWfm (SessionID, 'example.wfm', Data, 1001);%% Close SessionCloseSession(SessionID) ;

但实验中,会提示错误下图所示错误:

图4-1 Matlab错误提示

但是,在Tools\Matlab下可以找到 matarb.dllmatarb.mexw32 文件,如下图所示:

图4-2 ArbExpress 提供的Matlab 工具

可以看出matarb.mexw32文件为32位版本,而本人所用Matlab为64位版本,于是重新安装32位版本的Matlab。

-------------待补充

应该是版本不兼容的问题。根据手册说明,Matlab版本应该为6的,以上的需要重新编译。本人在XP系统上安装了Matlab6.5 测试,仍然报错。而该工具没有提供源代码文件(虽然手册中说有),无法重新编译生成新的文件,无奈之下,放弃了这种方法。如有知道如何解决这个问题的大牛,还请指出解决方法,非常感谢!

于是乎,想到能否通过数据格式转换,将数据转换成ArbExpress支持的文件。

后来,发现ArbExpress,支持csv 和 txt文件,于是,将波形文件保存成csv文件,用记事本打开后,如下图,所示:

图4-3 一种csv格式

很容易可以看出规律,数据 第一列为 时刻,第二列为信号值。于是乎想到,将数据保存成类似的格式,然后导入ArbExpress中,再保存成其它格式的文件,一试,再试,屡试不爽

如可以在用于生成波形的Matlab文件中加入:signal = [t' x'];  save signal.txt -ascii signal         如下面的Matlab代码中红色加粗部分所示:

t = 0:0.001:1;
t = t*(1e-6);
f = 1e6;% 1MHz
x = abs(sin(2*pi*f*t));
plot(t,x)
title('abs(sin),f=2 MHz,Number of Samples:1001')% Save to txt
signal = [t' x'];
save signal.txt -ascii signal

然后在ArbExpress 中打开signal.txt 文件,弹出下图对话框,按图中所示操作:

图4-4 打开txt文件,选择格式

之后,可以看到波形,如下图所示

图4-5 signal.txt 中的波形

然后 Flie -> Save as,保存成你想要的文件即可,当然,在保存之前,你还可以对波形进行修改。

如有更好的方法,欢迎交流!谢谢!

使用任意波形(或函数)发生器产生想要的任意信号相关推荐

  1. python波形分析库_Python科学计算——任意波形拟合

    任意波形的生成(geneartion of arbitrary waveform) 在商业,军事等领域都有着重要的应用,诸如空间光通信 (free-space optics communication ...

  2. python正弦波和等腰三角波_Python科学计算——任意波形拟合

    任意波形的生成 (geneartion of arbitrary waveform) 在商业,军事等领域都有着重要的应用,诸如空间光通信 (free-space optics communicatio ...

  3. dve 二维数组信号 显示波形_函数任意波形发生器价格

    函数任意波形发生器价格,深圳市乐信智测科技有限公司成立于2017年01月11日,注册地位于深圳市龙华区民治街道北站社区创业花园177-180栋411,法人代表为李澍龙. 函数任意波形发生器价格, 说明 ...

  4. 普源DG1062Z函数/任意波形发生器产品介绍

    DG1000Z系列函数/任意波形发生器是一款集函数发生器.任意波形发生器.噪声发生器.脉冲发生器.谐波发生器.模拟/数字调制器.频率计等功能于一身的多功能信号发生器.该系列所有型号皆具有2个功能*相同 ...

  5. pcb外观维修_「维修案例」泰克AFG3021函数任意波形发生器故障维修

    在产品调试的过程中,大多数的电路需要输入某种幅度随时间变化的信号,在这样的应用场景中,一个完整的测试测量系统一般会包含激励源,被测件和采集仪器三个部分.采集仪器通常使用的是示波器和逻辑分析仪,而信号源 ...

  6. 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...

    方浩 鼎阳硬件设计与测试智库专家组成员 传统的函数发生器可以输出正弦波.方波.三角波等标准波形,但是在实际的测试场景中,为了模拟产品在实际使用过程中的复杂情况,往往需要人为地去制造一些"不规 ...

  7. 已调信号波形是怎样的_【鼎阳硬件智库原创 | 测试测量】初识任意波形发生器...

    方浩 鼎阳硬件设计与测试智库专家组成员 在产品调试的过程中,大多数的电路需要输入某种幅度随时间变化的信号,在这样的应用场景中,一个完整的测试测量系统一般会包含激励源,被测件和采集仪器三个部分.采集仪器 ...

  8. 两波形相位差的计算值_如何将您的计算机用作任意波形发生器

    了解您的计算机如何用作任意波形发生器.在本文中,我们将使用Scilab生成数字信号,这些信号可以通过计算机的音频硬件转换为模拟波形. 最近我一直在撰写文章,证明Scilab用于各种信号处理任务.在这种 ...

  9. 使用SBench 6为任意波形发生器创建,捕获和传输波形

    任意波形发生器(AWG)是一种功能强大且灵活的信号发生器,能够在发生器带宽范围内输出任意波形.拥有AWG之后,您将需要在其中产生波形.创建,捕获,修改和传输测试波形的步骤可以很容易地与发生器的步骤相匹 ...

  10. 高速数据采集卡与AWG任意波形发生器在量子计算中的应用现状

    量子计算的现状与发展 自21世纪初以来,量子科学,特别是量子信息科学这个领域,研究活动正在迅速增加. 这一研究领域有望取得巨大的技术进步,这可能对我们未来计算和通信得运营方式产生深远影响. 科学家们正 ...

最新文章

  1. 损失函数理解汇总,结合PyTorch1.7和TensorFlow2
  2. php微信扫码支付报错,(转)微信调用扫码和支付功能是都报错 the permission value is offline verifying...
  3. 解决警告inconsistent dll linkage
  4. 拼图项目:延期的后果
  5. sharepoint2013的审核日志的时间区域设置
  6. php 网页转换成pdf文件格式,将网页HTML转换成PDF格式文件的几种办法
  7. vf程序设计与c语言,全国计算机等级考试vf和C语言哪个更好
  8. 局域网组网 | 交换机常用命令
  9. 机器学习笔记(九)——数据降维:主成分分析法(PCA)
  10. python车辆检测模型_使用OpenCV和Python构建自己的车辆检测模型
  11. 虽然没有见过凌晨四点的洛杉矶,但是我们见证了了凌晨灯火通明科技园:程序员的痛谁懂
  12. 基于CSS的个人网页
  13. cesium 学习笔记(三) 在地图上放置3D建筑模型
  14. JavaScript常见问题及答案
  15. 凡事预则立不预则废,你有自己的应急基金吗?教你如何理财
  16. 一分钟带你解读光纤收发器,秒懂(一)
  17. js 实现呼起(打开)app
  18. 传感网与物联网的区别,这二者之间的具体区别到底是什么?
  19. jst基本语法第十五讲:正则表达式
  20. 图像傅里叶变换--OpenCV

热门文章

  1. 战神引擎传奇手游源码【诛仙玛法单职业五大陆】
  2. 如何快速实现高并发短文检索
  3. 快速拿到 win10 锁屏壁纸
  4. 飞鱼星路由器常见问题解答
  5. 路由器刷openwrt
  6. LVDS通信协议以及概念
  7. win7升级win10时报0x80072F8F - 0x20000错误处理
  8. echarts wordCloud画词云图(自定义背景)
  9. 图扑数字孪生数据中心机房,助力产业绿色低碳转型
  10. 意外把移动硬盘标记为活动分区怎么办?