アプリケーションノート

Moku:Go の任意波形発生器

MATLAB を使用した変調された任意波形の生成

任意波形発生器は、検出器や通信デバイスなどの被試験デバイスに特定の刺激信号を出力するために使用されます。このアプリケーション ノートでは、MATLAB で Moku:Go の任意波形ジェネレーターを使用して、パルスおよびバースト変調で 2 つの任意波形を生成するチュートリアルを提供します。

このノートに付属する MATLAB スクリプトとテキスト ファイルは、Liquid Instruments の Web サイトからダウンロードできます。


Moku:Go

Moku:Go は、14 つのアナログ入力、2 つのアナログ出力、2 個のデジタル I/O ピン、およびオプションの統合電源を備えた 16 台の高性能デバイスに XNUMX 台以上のラボ機器を組み合わせています。

任意波形発生器

検出器と通信デバイスは通常、標準的な正弦波や方形波ではなく、高度に任意の信号を処理します。したがって、このようなデバイスの特性評価には、ユーザー定義の波形を出力してテスト対象デバイスの特定の信号をシミュレートできる任意波形発生器 (AWG) が必要です。波形は数式または事前に記録されたデータに基づくことができます。たとえば、地震検知器をテストする場合、エンジニアは事前に記録された地震信号を生成し、検知器の応答を分析し、それに応じて検知器の設計を改良できます。

Moku:Go の任意波形ジェネレーターは、最大 65,536 MSa/s のサンプリング レートで最大 125 ポイントのカスタム波形を生成できます。波形はファイルからロードするか、最大 32 セグメントの区分数学関数として入力して、真に任意の波形を生成できます。

ユーザー定義の波形を生成する機能とは別に、Moku:Go の AWG にはパルスとバーストという 2 つの変調モードもあります。パルス変調は信号をはるかに遅いレートで繰り返し、信号を
サイクル間で設定電圧を保持します。パルス モードは、信号を発信して返された信号を測定するレーダー探知機など、低デューティ サイクルの繰り返しイベントをシミュレートするために使用されます。バースト モードでは、トリガー条件が満たされると出力が生成されます。これは、パーティクルカウンターのインパルス応答またはデジタル通信デバイスの応答である可能性があります。したがって、信号変調により、AWG をさらに幅広いアプリケーションで使用できるようになります。

このノートでは、MATLAB の Moku アプリケーション プログラミング インターフェイス (API) を利用して、Moku:Go から 2 つの異なる波形を生成し、Windows Moku:Go アプリを使用して別の Moku:Go で出力信号を測定します。テキスト ファイルから信号をロードする方法と、数式に基づいて信号を生成する方法を示します。次に、各信号にパルス変調とバースト変調を適用します。

このメモには、サンプル スクリプト AWG_appnote.m とカスタム ファイルを含むテキスト ファイルが付属しています。
波形 sq_wave.txt は次の場所で入手できます。 https://download.liquidinstruments.com/documentation/app-note/referencefiles/Using_AWG_with_Moku_Go_Supporting_Files.zip

また、サンプル スクリプトを実行する前に、Moku-MATLAB ツールボックスがインストールされていることを確認してください。ツールボックスは次からダウンロードできます。

https://www.liquidinstruments.com/resources/software-utilities/matlab-api/.

カスタム波形の生成

このセクションでは、Moku:Go の AWG を使用して 1 つの波形を生成します。図 XNUMX に、方形波とチャープ信号の XNUMX つの波形を示します。

方形波は 1000 要素の配列であり、付属のテキスト ファイル sq_wave.txt からロードされます。これは、カスタム波形をファイルからロードする方法を示すだけでなく、同じファイルが Windows および Mac アプリでも使用できるため、Moku:Go AWG に使用できる波形定義ファイルの例を示すことも目的としています。

1000 番目の波形も XNUMX 要素の配列であり、次の方程式を使用して生成されます。

y = sin[2π(50t2)]

コラボレー t は、1000 から 0 までの等間隔に配置された 1 個の要素の配列です。Moku:Go AWG は、ルックアップ テーブルを形成するために電圧値のみを必要とします。 t 計算にのみ使用されます y 値を調整し、図 1 のプロットを生成します。

フィギュア 1: サンプル波形の MATLAB プロット

任意の波形がルックアップ テーブルにロードされたら、それらを Moku:Go に展開して信号の生成を開始できます。

Moku:Go への接続は、AWG_appnote.m の 30 行目で次の MATLAB コマンドを使用して、その IP アドレスを介して確立されます。

m = MokuArbitraryWaveformGenerator(ip, true);

交換する ip Moku:Go の IP アドレスを使用してデバイスに接続します。

次に、出力波形は次のコマンドを使用して設定されます。 generate_waveform このコマンドは、チャネル、サンプル レート、ルックアップ テーブル データ、周波数、振幅の 1 つの必須パラメータをこの順序で受け取ります。たとえば、出力チャンネル 39 は XNUMX 行目で次のように設定されます。

m.generate_waveform(1, "Auto", square_wave, le3, 1);

これは、チャンネル 1 が、 square_wave ルックアップテーブル。信号の周波数は 1kHz、振幅は 1V になります。pp.

図2: Moku:Go 測定ハードウェアのセットアップ

AWG からの出力信号が図 1 の波形と一致することを確認するために、Windows アプリ インターフェイスを使用してオシロスコープ機器を実行する別の Moku:Go をセットアップしました。図 2 では、上の Moku:Go はオシロスコープ計測器を実行し、下の Moku:Go は AWG 計測器を実行しています。 AWG を実行している Moku:Go の出力は、オシロスコープを実行している Moku:Go の入力に接続されています。

図3: MATLAB サンプル スクリプトから生成された AWG 出力を測定する Moku:Go オシロスコープ。

キャプチャされた信号は図 3 に示されており、図 1 の波形と一致しています。オシロスコープのチャンネル 1 は、1kHz であると予想される周波数を測定します (実際の測定値は 998.4 Hz)。これはカーソルでも確認できますが、ここでは方形波の 1 サイクルの周期が 1ms です。両方のチャンネルの振幅は 1V を測定しますpp 予想どおりです (実測値はチャンネル 0.9998 で 1V、チャンネル 1.009 で 2V)。

パルス変調

パルス変調モードでは、出力波形は最大 2 つまで構成できます。18 = 任意波形の各繰り返し間のデッドタイムは 262144 サイクル。

この例では、パルス変調を使用して方形波信号に 2 つのデッド サイクルを導入します。

パルス変調セクションの行 51 のコメントを解除することで、サンプル スクリプトでパルス変調をオンにできます。変調プロパティは次のように設定されます。

m.pulse_modulate(1, 'dead_cycles',2,'dead_voltage',0);

ここで、最初のパラメータはパルス変調を適用するチャネルです。信号の各サイクルの間には 2 サイクルのデッドタイムがあります。デッドタイム中の電圧は0Vです。

図4ではオシロスコープを使用して波形も確認しています。


図4: オシロスコープで測定したパルス変調を伴う方形波。

バースト変調

バースト モードでは、出力波形を別の信号ソースからトリガーできます。トリガ条件が満たされると、設定されたバースト条件で信号が生成されます。 Moku:Go は 2 種類のバースト モードを提供します。NCycle では、トリガー時に設定されたサイクル数の波形を生成できます。 Start は、トリガーされると波形出力を開始します。

この例では、方形波 (1 V) を生成します。pp 200 Hz) 波形発生器を内蔵したオシロスコープ Moku:Go (上部ユニット) を使用します。この方形波は、バースト変調のトリガー信号として AWG Moku:Go (下部ユニット) の入力 1 に供給されます。

図5: オシロスコープ出力 1 を AWG のトリガー信号として使用した Moku:Go ハードウェア セットアップ

サンプル スクリプトの 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 がトリガ信号を表示するように設定されています。方形波の各サイクルごとに、2 サイクルのチャープ波形が AWG から生成されることがわかります。

図6: オシロスコープ出力方形波をトリガーとして使用するバースト変調チャープ信号。

まとめ

このアプリケーション ノートでは、MATLAB を使用して Moku:Go の任意波形ジェネレーターで波形を定義できる柔軟性を示しました。波形が数式で定義されているか、ファイルからロードされているかに関係なく、同じ MATLAB スクリプトで波形を Moku:Go にシームレスにダウンロードし、計測器を構成できます。

リンク

MATLAB スクリプトとテキストファイル

https://download.liquidinstruments.com/documentation/appnote/referencefiles/Using_AWG_with_Moku_Go_Supporting_Files.zip

Moku 用の MATLAB API:

https://www.liquidinstruments.com/resources/software-utilities/matlab-api/


ご質問等ございますか?印刷可能なバージョンが必要ですか?

当社までご連絡ください: support@liquidinstruments.com