应用笔记

Moku:Lab 和 MATLAB

在 MATLAB 中使用任意波形发生器

在本应用笔记中,我们提供了一个使用 Moku:Lab 的任意波形发生器和 MATLAB 的教程。 详细介绍了将两个简单波形从 MATLAB 直接部署到 Moku:Lab 的分步说明。 我们使用第二个运行示波器和频谱分析仪仪器的 Moku:Lab 来确认输出波形。

然后显示利萨如曲线示例以及更复杂的 2 通道波形。

本说明随附的 MATLAB 文件可从 Liquid Instruments 下载。

下载用户手册

任意波形发生器

Moku:Lab 的任意波形发生器 (AWG) 可以以高达 65,536 GSa/s 的采样率生成多达 1 个点的自定义波形。 波形可以从文件加载,或作为最多 32 段的分段数学函数输入,使您能够生成真正的任意波形。 在本笔记中,我们将生成波形并将其直接下载到 Moku:Lab,完全在 MATLAB 中完成。

先决条件和设置

本应用笔记和教程假设您已经安装了 MATLAB 和相关的 Moku:Lab MATLAB 工具箱:

Moku:Lab 支持以下 MATLAB 版本:

  • Windows:MATLAB R2013a 及更高版本
  • Linux:MATLAB R2013a 及更高版本
  • MacOS:MATLAB 2014a 及更高版本

对于工具箱:

MATLAB 2015+

  1. 在此处下载 Moku:Lab 工具箱: http://updates.liquidinstruments.com/static/moku-MATLAB-2.8.1.mltbx
  2. 在 MATLAB 中,打开下载的 .tblx 文件
  3. 选择“安装”
  4. 确认安装 帮助魔库 在 MATLAB 终端

数学实验室 2013-2014

  1. 在此处下载 Moku:Lab 工具箱压缩包: https://updates.liquidinstruments.com/static/moku-MATLAB-2.8.1.zip
  2. 提取 zip,通常为 ../MATLAB/Add-Ons/Toolboxes
  3. 打开 MATALB,然后在主页工具窗格中单击“设置路径”
  4. 单击“添加子文件夹”并选择解压缩的 ZIP 文件夹
  5. 点击“保存”将工具箱文件夹添加到MATLAB路径

在本说明中,我们在 MacOS 上使用 MATLAB R2019b。

Moku:MATLAB 实验室

为了让 MATLAB 控制 Moku:Lab,运行 MATLAB 的计算机必须与 Moku:Lab 在同一子网/LAN 上。 MATLAB需要Moku:Lab的IP地址; 您可以通过以下两种方式之一确定这一点:

  • Bonjour/zeroconf 服务发现工具
  • 在 Moku:Lab 的 iPad 应用程序的启动屏幕上; 按住 Moku:Lab 的图标以显示其 IP 地址

在 MATLAB 中,您可以使用命令访问 Moku:Lab 文档 帮助魔库

MATLAB 工具箱包含大量示例脚本,这些脚本通常位于工具箱文件夹中。 在 MacOS 上,它位于:

~/Library/ApplicationSupport/MathWorks/MATLAB Add-Ons/Toolboxes/moku-MaTLAB-2.8.1/examples

在Windows上:

\Users\...\AppData\Roaming\MathWorks\MATLAB Add-Ons\Toolboxes\moku-MATLAB-2.8.1\examples

资料下载

每个示例的 MATLAB 脚本均可在此处下载:

https://download.liquidinstruments.com/documentation/app-note/reference-files/20-0331_AppNote-MatLab-UsingAWG_ScriptsForMokuLabAWG.zip


示例 #1:具有谐波的方波和正弦波

对于我们的第一个示例,我们将部署工具箱示例:

arbitrarywavegen_basic.m

参考这个脚本,我们看到数组 square_wave 被定义为长度为 100 的数组,由 +1 或 -1 的值组成。

not_square_wave 被定义为长度为 100 的值的数组,描述正弦波加上几个奇数次谐波。

运行 MATLAB 脚本后,用户输入 IP 地址并在脚本中输入以下行:

m = MokuArbitraryWaveGen(ip)

在 Moku:Lab 上设置和部署任意波形发生器仪器实例。 然后为每个通道调用一个

m.write_lut

m.gen_waveformfunction

在 Moku:Lab 硬件上配置波形。

我们可以使用 MATLAB 绘图和绘图命令查看和确认这些波形。 图 1 以蓝色显示方波,以红色显示正弦波加谐波。

图 1:示例波形的 MatLab 图

数字 1: 示例波形的 MATLAB 图

 

但是,查看这些在 Moku:Lab 上生成的波形更有用。 在我们的实验台上,顶部的黑色 Moku:Lab 连接到 MATLAB,并使用部署的 AWG 生成我们的两个信号。

下方的蓝色 Moku:Lab 与运行示波器仪器的 iPad 连接。 此设置如图 2 所示。

图 2:Moku:Lab 工作台设置

数字 2: Moku:实验室设置

AWG 输出通道连接到示波器输入,我们可以在 iPad 上观察波形。 光标显示 1 MHz 的预期频率(屏幕上的实际测量值为 999.4 kHz)。 Moku:Lab 与 Dropbox 的集成使我们能够快速共享屏幕截图,请参见图 3(显示实际 AWG 输出)、通道 2 上的方波(蓝色)和通道 1 上的正弦波加谐波(红色)。

图 3:Moku:Lab 示波器屏幕截图,显示从 MATLAB 生成的 MokuLab AWG

数字 3: Moku:Lab 示波器屏幕截图,显示从 MATLAB 生成的 MokuLab AWG 

由于 Moku:Lab 的灵活性,我们可以快速将蓝色 Moku:Lab 从示波器切换为频谱分析仪。

图 4 中显示的方波频谱和方波的预期一样,显示了 1 MHz 的基波和一系列延伸到 100 MHz 的绘图极限的奇次谐波。

图 4:Moku:Lab 频谱分析仪上的方波频谱

数字 4: Moku:Lab 频谱分析仪上的方波频谱

我们的 not_square_wave MATLAB 脚本本质上是对具有 7 个奇次谐波的正弦波求和。 not_square_wave 的频谱如图 5 所示,其中显示了 1 MHz 基波和延伸至 7 MHz 的 15 个谐波峰值。 这在屏幕上用 iPad 应用程序的光标标记。

图 5:在 Moku:Lab 频谱分析仪上看到的“非方波”

数字 5: 在 Moku:Lab 频谱分析仪上看到的“非方波”


示例 #2:利萨如图形

对于 Moku:Lab 的 AWG 的第二个示例,我们将生成一个经典的 Lissajous 图。 Lissajous 曲线在 x 和 y 中定义为:

x = ( at + d )

y = ( bt )

纳撒尼尔·鲍迪奇 (Nathaniel Bowditch) 于 1815 年研究了这组曲线,后来在 1857 年,儒勒·安托万·利萨如 (Jules Antoine Lissajous) 对其进行了更详细的研究。

通过将一些 Moku:Lab API 函数调用集成到 [3] 中的 MATLAB 脚本中,我们可以定义一些波形并在 MATLAB 中查看生成的 Lissajous 曲线。 这个 MATLAB 脚本是

lissajous_moku.m

运行后,一个 GUI 窗口将在 MATLAB 中打开,并允许用户配置变量 A、a、d、B、b 和 t。 单击“开始”,MATLAB 将绘制图形,几秒钟后,将波形下载到连接的 Moku:Lab 的 AWG。 图 6 显示了 MATLAB 输出,图 7 显示了在第二台 Moku:Lab 示波器上以 XY 模式运行时捕获的 Moku:Lab 任意波形发生器的输出。

图 6:MATLAB Lissajous 曲线

数字 6: MATLAB 利萨如曲线

图 7:Moku:Lab 示波器上显示的 Moku:Lab 任意波形发生器

数字 7: Moku:Lab 的 AWG 显示在 Moku:Lab 的示波器上


进一步阅读:双通道模式生成

应用说明,“Moku:Lab 的任意波形发生器; 二维任意波束控制的双通道同步模式生成”[2]; 描述了使用 MATLAB 定义复杂的 4 通道扫描螺旋波形的 AWG 的特定用例。


总结

本应用笔记展示了您可以在 MATLAB 中通过数学公式定义波形的灵活性和速度。 相同的 MATLAB 脚本将波形无缝下载到联网的 Moku:Lab AWG,以立即生成所描述的信号。


参考资料

[1] Moku:Lab 的 AWG 用户手册

[2] Moku:Lab 的示波器用户手册

[3] MATLAB 中的 Lissajous 曲线: https://www.mathworks.com/matlabcentral/fileexchange/28987-lissajous-curve

[4] Moku:实验室的任意波形发生器; 用于二维任意波束控制的双通道同步模式生成 http://download.liquidinstruments.com/documentation/app-note/App%20Note%20-%20MokuLab%20AWG%20Dual%20Channel%20Sync%20Pattern%20Generation.pdf


有疑问或想要可打印版本?

请与我们联系 support@liquidinstruments.com