图片缩略图

使用MATLAB在Agilent MXG, ESG, PSG信号源上生成波形

版本1.7.0.1 (2.5 KB) 维诺德
MATLAB®示例下载安捷伦MXG, ESG或PSG信号源上的任意波形数据。
4.3
7评级

23下载

更新2016年9月1日

查看版本历史

查看许可协议

MATLAB是一种拥有超过1,000,000用户的软件环境和编程语言,用于生成任意和标准波形,配置和控制仪器,构建自动化测试应用程序,以及分析和可视化来自其他仪器的数据。MATLAB仅在使用MA金宝appTLAB及其仪表控制工具箱™时支持仪器通信。
本例使用MATLAB生成任意波形(IQ数据),配置仪器,将波形下载到安捷伦源,并指示仪器何时生成波形。

要执行此示例,请在MATLAB命令窗口中键入' Generate_Waveform_Agilent '。注意:在generate_agilent_波形中修改IP地址。将“m”文件传输到信号源IP地址。

这个MATLAB示例已经在N5182A MXG上进行了测试,但应该适用于其他安捷伦信号源,包括这些MXG, ESG和PSG模型:E4428C,E4438C,N5181A,N5182A,N5183A,E8241A,E8244A,E8251A,E8254A,E8247C,E8257C, E8267C,E8257D, E8663B,N8211A,N8212A。

要了解有关使用MATLAB和仪器控制工具箱™配置和控制仪器的更多信息,请访问:
//www.tatmou.com/下载188bet金宝搏products/instrument

如需试用MATLAB和/或仪表控制工具箱,请访问//www.tatmou.com/agilent/instrument/tryit.html

有关在安捷伦仪器上使用MATLAB的更多信息,包括MATLAB示例、演示、驱动程序和视频,请访问:
//www.tatmou.com/agilent

引用作为

维诺德(2021)。使用MATLAB在Agilent MXG, ESG, PSG信号源上生成波形(//www.tatmou.com/matlabcentral/fileexchange/24048-generating-waveforms-on-agilent-mxg-esg-psg-signal-sources-using-matlab), MATLAB中央文件交换。检索

意见及评分(12

阿里·塞特·卡亚

撒拉族moheb


当我运行你的代码这个错误发生
使用icinterface/fopen错误(第83行)
failed open:连接超时

Generate_Waveform_Agilent中的错误(第36行)
fopen(获得);
我在解决这个错误之前做了什么

马斯先生

值得注意的是,该模块依赖于仪表控制工具箱。

马斯先生

尼古拉,我认为把两个补码称为“有符号”有点尴尬,因为它只是一个二进制表示。然而,我相信它们的意思是安捷伦组件将签名数据表示为二补。我不认为他们是在暗示你让2成为补位,然后笨拙地向数据中添加一个符号位(不确定这是如何做到的)。我同意你的说法,你指出的代码中有一个错误。

我相信代码的目的是写出无符号的16位整数值,当Agilent组件将其解释为二进制补码时,将产生正确的有符号值。

在我讨论这种方法的代码实现问题之前,我首先要问为什么我不只是缩放数据并转换为'int16',然后使用binblockwrite写出签名数据。我希望二进制数据可以写成2补的形式,这样就完成了。毕竟,'int16'的二进制表示形式与转换为二进制补码并转换为'uint16'的数据相同。

如果我对安捷伦组件的解释的假设是正确的,那么从有符号2到无符号2补的转换,我相信会使所有的数据都为负。

这段代码的最后两行有问题:
比例= 2^15-1;
Scale = Scale /tmp;
波=圆(波*刻度);
Modval = 2^16;
Wave = uint16(mod(modval + Wave, modval));

首先,将数据缩放到范围[-2^15+ 1,2 ^15-1]。然后最后一行将范围移动到[(mod(2^16-2^15+ 1,2 ^16), mod(2^16+2^15- 1,2 ^16)] =[2^15- 1,2 ^16-1]。如果你把这个范围解释为16位2的补码,我相信所有的数字最终都是负数。

现在,2^16的加法是将一个正的2的补语值转换为它的负补语的典型操作(反之亦然),所以我可以理解作者是如何结束这样做的。然而,我认为只应该对消极的数据进行处理。

用下面两行替换最后一行可以得到想要的结果:
波(波<0)= modval +波(波<0);
波= uint16(波)

模数运算不再需要。

Vinh勒

伟大的脚本。这对我很管用。一个问题:如何计算I/Q基带信号采样率?说我需要发送一个1Mhz的音调,并在发送到RF之前过滤它?

安捷伦波形下载助手做同样的工作吗?

瑞安

在连接MATLAB和安捷伦仪器方面做得很好。

Attique Ur Rehman

你好所有的,
首先感谢脚本,其次我尝试了安捷伦N5182A的代码,但不幸的是N5182A显示一个错误,即。"ERROR_ -275,文件名错误"

等待善意的回应…

廖谢伟

MATLAB_WFM是一个文件吗?

尼古拉Stanchev

你好,

谢谢你的剧本。它非常有用,只是有一个bug需要更正。
我使用这个脚本格式化/缩放波形。我成功下载到安捷伦信号发生器PSG E8267D。

不幸的是,PSG输出信号(ARB波形调制)不是假设的那样。我期望看到突发扩频信号,但我得到了几个dB变化的平坦信号。

经过几个小时的调查,我发现问题的原因是在Matlab代码中使用了Two的补体格式。

Wave = uint16(mod(modval + Wave, modval));

我已经得到了正确的PSG的输出信号,没有2的补格式。

如果你打开安捷伦PSG编程指南(E8251-90255),你会看到下面这句话“…数据必须是有符号的,2的补码(二进制)格式…(非常有趣的组合,不是吗?)
在C/ c++中,所附示例脚本中没有使用2的补体格式。

最好的问候,
尼古拉

马可


我已经在安捷伦信号发生器E8267D中尝试了这个程序。

然而,仪器显示一个错误消息-275错误的文件名在第59行之后:
binblockwrite(deviceObject,wave,'uint16',[':MEM:DATA "WFM1:' ArbFileName '",']);

MATLAB版本兼容性
使用R2009a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!