FAQs from Rohde & Schwarz

如何使用 Python 手动生成 *.wv 文件的示例说明

描述

我想使用 Python 手动生成波形文件 (*.wv) 以便之后能够加载到矢量信号发生器。

解决方案

如要手动生成 *.wv 文件,您需要获得波形的 I 和 Q 数据以及采集信号样本所用的采样频率(时钟)。

本文以 10 MHz 时钟和 20 个样本的 I/Q 序列为例。

常见问题-如何-使用-Python-手动-生成-.wv-文件-的-示例说明_01

在波形文件的报头中插入标签。每个波形必须插入“TYPE”、“CLOCK”、“LEVEL OFFS”和“WAVEFORM”标签。

用户可以选择在“TYPE”标签后按任意顺序插入所有其他标签。

I 和 Q 数据的数值范围为 –1.0 至 +1.0,16 位数模转换器的波形调制范围为 -32767 至 +32767,二者相对应。

此 16 位有符号整数必须转换为以十六进制小端格式表示的 I 和 Q 结果值。

之后,数据必须按如下结构以二进制格式插入“WAVEFORM”标签:

  • 计算长度
  • 长度 = I/Q 数值对数量 * 4 + 1 = 20*4 + 1 = 81 个字节
  • 在数据集开头插入字符串 {WAVEFORM-81:#
  • 在数据集末尾插入符号 }

运行上述代码后,用户可以使用 R&S ARB Toolbox 打开生成的文件并获得以下波形。用户可以对比 Python 代码的 I 和 Q 数据,确认正确生成数据。

常见问题-如何-使用-Python-手动-生成-.wv-文件-的-示例说明_02

参考:
SMBV100B 使用手册
https://www.rohde-schwarz.com/produkte/messtechnik/vektorsignalgeneratoren/rs-smbv100b-vektorsignalgenerator_63493-519808.html