Moku 任意波形发生器功能详解:任意波形发生器用于为被测设备(例如检测器和通信设备)输出特定的激励信号。 在本应用笔记中,我们提供了有关使用 Moku:Go 的任意波形发生器和 MATLAB 生成两个带有脉冲和突发调制的任意波形的教程。
任意波形发生器
任意波形发生器用于为被测设备(例如检测器和通信设备)输出特定的激励信号。 在本应用笔记中,我们提供了有关使用 Moku:Go 的任意波形发生器和 MATLAB 生成两个带有脉冲和突发调制的任意波形的教程。
Moku:Go 在一个高性能设备中结合了 10 多种实验室仪器,具有 2 个模拟输入、2 个模拟输出、16 个数字 I/O 引脚和可选的集成电源。
探测器和通信设备通常使用高度任意的信号,而不是标准的正弦波和方波。因此,对此类设备进行表征需要一个任意波形发生器 (AWG),它可以输出用户定义的波形来模拟被测设备的特定信号。波形可以基于数学公式或来自预先记录的数据。例如,为了测试地震探测器,工程师可以生成预先记录的地震信号并分析探测器的响应并相应地改进探测器设计。
Moku:Go 的任意波形发生器可以以高达 125 MSa/s 的采样率生成多达 65,536 个点的自定义波形。波形可以从文件中加载,或作为具有多达 32 段的分段数学函数输入,以生成真正的任意波形。
除了生成用户定义波形的能力外,Moku:Go 的 AWG 还具有两种调制模式:脉冲和脉冲串。脉冲调制以慢得多的速率重复信号,并允许信号在周期之间保持设定电压。脉冲模式用于模拟低占空比重复事件,例如发射信号并测量返回信号的雷达探测器。一旦满足触发条件,突发模式就会生成输出。这可以是粒子计数器的脉冲响应或数字通信设备的响应。因此,信号调制使 AWG 能够用于更广泛的应用。
在本说明中,我们将利用 MATLAB 的 Moku 应用程序编程接口 (API) 从 Moku:Go 生成两个不同的波形,并使用 Windows Moku:Go 应用程序测量另一个 Moku:Go 的输出信号。我们将演示如何从文本文件加载信号以及如何根据数学公式生成信号。然后,我们将对每个信号应用脉冲调制和突发调制。
本说明附有示例脚本 AWGappnote.m 和包含自定义的文本文件
波形 sqwave.txt 可在 https://download.liquidinstruments.com/documentation/app-note/referencefiles/UsingAWGwithMokuGoSupportingFiles.zip 获得
还请确保在运行示例脚本之前安装了 Moku-MATLAB 工具箱,该工具箱可以从以下位置下载:
https://www.liquidinstruments.com/resources/software-utilities/matlab-api/。
在本节中,我们将使用 Moku:Go 的 AWG 生成两个波形。 两种波形如图 1 所示:方波和线性调频信号。
方波是一个包含 1000 个元素的数组,从随附的文本文件 sq_wave.txt 加载。 这不仅用于演示如何从文件加载自定义波形,还展示了可用于 Moku:Go AWG 的示例波形定义文件,因为同一文件也可用于 Windows 和 Mac 应用程序。
第二个波形也是一个包含 1000 个元素的数组,使用以下等式生成:
其中 t 是由 0 到 1 均匀分布的 1000 个元素组成的数组。Moku:Go AWG 仅需要电压值来形成其查找表,t 仅用于计算 y 值并生成图 1 中的图。
一旦将任意波形加载到查找表中,我们就可以将它们部署到 Moku:Go 并开始生成信号。
与 Moku:Go 的连接是通过其 IP 地址在 AWG_appnote.m 的第 30 行使用以下 MATLAB 命令建立的。
m = MokuArbitraryWaveformGenerator(ip, true);
将 ip 替换为您的 Moku:Go 的 IP 地址以连接到设备。
然后使用 generate_waveform 命令设置输出波形,该命令按此顺序接收五个必需参数:通道、采样率、查找表数据、频率和幅度。 例如,输出通道 1 在第 39 行设置如下:
m.generate_waveform(1, "Auto", square_wave, le3, 1);
这意味着通道 1 将使用 square_wave 查找表以自动分配的采样率生成信号。 信号的频率为 1kHz,幅度为 1Vpp。
为了确认 AWG 的输出信号与图 1 中的波形匹配,我们设置了另一个 Moku:Go,使用 Windows 应用程序界面运行示波器仪器。 在图 2 中,顶部的 Moku:Go 正在运行示波器仪器,而底部的 Moku:Go 正在运行 AWG 仪器。 运行 AWG 的 Moku:Go 的输出连接到运行示波器的 Moku:Go 的输入。
捕获的信号如图 3 所示,与图 1 中的波形相匹配。示波器的通道 1 测量的频率预期为 1kHz(实际测量为 998.4 Hz)。 这也是用光标确认的,这里方波的1个周期的周期是1ms。 两个通道的幅度都按预期测量为 1Vpp(通道 1 的实际测量值为 0.9998V,通道 2 的实际测量值为 1.009V)。
在脉冲调制模式下,输出波形可以配置为在任意波形的每次重复之间最多有 218 = 262144 个死区时间周期。
在本例中,我们将使用脉冲调制在方波信号中引入 2 个死循环。
通过在脉冲调制部分取消注释第 51 行,可以在示例脚本中打开脉冲调制。 调制属性配置为:
m.pulse_modulate(1,'dead_cycles',2,'dead_voltage',0);
其中第一个参数是应用脉冲调制的通道; 信号的每个周期之间有2个周期的死区时间; 死区期间的电压为 0V。
波形也使用图 4 中的示波器确认。
在脉冲串模式下,可以从另一个信号源触发输出波形。 一旦满足触发条件,将生成设置突发条件的信号。 Moku:Go 提供两种突发模式: NCycle 可在触发时生成一定数量的波形周期; Start 触发时将启动波形输出。
在此示例中,我们将使用带有内置波形发生器的示波器 Moku:Go(顶部单元)生成方波(1 Vpp 200 Hz)。 该方波将作为突发调制的触发信号输入 AWG Moku:Go(底部单元)的输入 1。
通过取消注释示例脚本的第 58 行,可以在示例脚本中启用突发调制。 调制配置为:
m.burst_modulate(2,'Input1','NCycle','burst_cycles',2,'trigger_level',0.1);
其中输出通道 2 由输入 1 触发,一旦触发将产生 2 个周期的啁啾信号。 触发条件是输出 1 信号在上升沿越过 0.1 V。 选择 0.1 V 的触发电平是因为它是方波中的一个急剧上升沿,以创建一个清晰的触发。
图 6 显示了示波器捕获的信号,其中通道 1 已设置为显示触发信号。 我们可以看到,对于方波的每个周期,AWG 都会产生 2 个周期的啁啾波形。
本应用笔记展示了使用 MATLAB 在 Moku:Go 的任意波形发生器中定义波形的灵活性。 无论波形是由数学公式定义还是从文件加载,同一个 MATLAB 脚本都可以将波形无缝下载到 Moku:Go 并配置仪器。
上海昊量光电作为Liquid Instruments公司在中国大陆地区主要的代理商,为您提供专业的选型以及技术服务。对于Moku 任意波形发生器有兴趣或者任何问题,都欢迎通过电话、电子邮件或者微信与我们联系。
如果您对Moku 任意波形发生器(可以产生四路独立波形)有兴趣,请访问上海昊量光电的官方网页查看更多Moku系列产品:
https://www.auniontech.com/details-1728.html
更多详情请联系昊量光电/欢迎直接联系昊量光电
上海昊量光电设备有限公司是光电产品专业代理商,产品包括各类激光器、光电调制器、光学测量设备、光学元件等,涉及应用涵盖了材料加工、光通讯、生物医疗、科学研究、国防、量子光学、生物显微、物联传感、激光制造等;可为客户提供完整的设备安装,培训,硬件开发,软件开发,系统集成等服务。
您可以通过我们昊量光电的官方网站www.auniontech.com了解更多的产品信息,或直接来电咨询4006-888-532。