FAQs from Rohde & Schwarz

Pythonを使用して手動で*.wvファイルを作成する方法の例

説明

Pythonを使用して、ベクトル信号発生器にロードできる波形ファイル(*.wv)を手動で作成するにはどうすればいいですか?

解決策

*.wvファイルを手動で作成するには、波形のI/Qデータと、信号がサンプリングされたサンプリング周波数(クロック)が必要です。

この簡単な例では、10 MHzのクロックと、20サンプルのI/Qシーケンスを使用しています。

FAQ-Pythonを使用して手動で*.wvファイルを作成する方法の例_01

波形ファイルのヘッダーには、タグと呼ばれるものが挿入されます。TYPE、CLOCK、LEVEL OFFS、WAVEFORMの各タグは、すべての波形ファイルに必須です。

他のタグはすべてオプションであり、TYPEタグの後に任意の順序で挿入できます。

I/Qデータの数値の-1.0~+1.0の範囲は、波形の16ビットD/Aコンバーターの-32767~+32767の変調範囲に対応します。

この16ビットの符号付き整数を、リトルエンディアン形式の16進数で表した結果のI/Q値に変換する必要があります。

その後、データを2進フォーマットでWAVEFORMタグに次の形式で挿入します。

  • 長さの計算
  • 長さ=I/Qペアの数×4+1=20×4+1=81バイト
  • データセットの先頭に、{WAVEFORM-81:#という文字列を置きます。
  • データセットの末尾に}という記号を置きます。

上記のコードを実行した後、作成されたファイルをR&S ARB Toolboxで開くと、次のような波形が得られます。PythonコードのI/Qデータと比較することで、データが正しく作成されていることがわかります。

FAQ-Example-on-how-to-manually-generate-a-.wv file-with-Python_02

参考資料:
SMBV100Bユーザ・マニュアル
https://www.rohde-schwarz.com/produkte/messtechnik/vektorsignalgeneratoren/rs-smbv100b-vektorsignalgenerator_63493-519808.html