NI PXI任意波形発生機能

概要

この記事では、NI PXI任意波形発生器のさまざまな機能と関連する概念について説明します。NI PXI任意波形発生器の詳細については、「PXI波形発生器とは」を参照してください。

内容

波形サイズ&

ほとんどの信号発生器のメモリアーキテクチャでは、波形サイズと量に制限があります。デバイスメモリにダウンロードされるすべての波形は、サンプル数に関しては最小波形サイズ以上である必要があります。また、デバイスメモリにダウンロードされる波形サンプルのサイズは、特定の数またはの整数倍である必要があります。

たとえば、NI 5412任意波形発生器は最小波形サイズ4、量4ですが、最小波形サイズ256、量8サンプルであった前世代よりも柔軟性があります。NI 5412では、サイズが4、8、12、16などの波形を出力できますが、前世代ではサイズが256、264、272、280などの波形のみを出力できます。

波形シーケンス


信号発生器のオンボードメモリには、複数の波形とその波形シーケンス命令をロードできます。シーケンスを使用して波形を生成するという概念は、「波形シーケンス」または「波形リンク/ループ」と呼ばれています。ループ波形は1つの波形を複数回繰り返し、リンク波形はAWGの再生リストを指定します。AWGは波形をオンボードメモリに保存するため、波形の長さが制限されます。波形ループは、何度も繰り返されるサブコンポーネントを含む信号の生成に役立ちます。波形セグメントをループすると、メモリ効率が向上し、波形の持続時間が長くなります。

以下の図は、波形とセグメントシーケンスの概念を示します。


図1


図1では、波形Aは、オンボードメモリにダウンロードされる1サイクル分の正弦波を表しています。波形Bは、オンボードメモリにダウンロードされる1サイクル分のランプ波形を表しています。これらの各波形は、最小波形サイズと量子規則に従う必要があります。


図2


上記の図2のセグメント1は、波形Aが3回繰り返されたことによって作成されたセグメントを表しています。波形セグメント2は、波形Bが2回繰り返されたセグメントを表しています。波形セグメント3では、波形Aの繰り返し数は一回のみです。


図3

 


図3に示すように、これらの波形はシーケンスでリンクされています。

波形トリガ


信号ソースには、波形生成を制御するためのいくつかのハードウェアトリガがあります。トリガは、デバイスの機能を開始するための外部からの刺激信号です。トリガ刺激には、TTLデジタルエッジ、ソフトウェア機能、およびアナログレベルが含まれます。外部トリガは、マーカイベント(後述)とともに再エクスポートすることができます。これにより、ハードウェア動作を外部回路または他のNIデバイスと同期させることが可能です。通常、信号ソーストリガは波形生成を開始するか、波形出力開始後にAWGが1つの波形ステージから別のステージにステップします。一般的に使用される4つのトリガモード(開始トリガモード、連続トリガモード、ステップトリガモード、バーストトリガモード)について説明します。


図4


図4に示すように、開始トリガモードでは、メモリで定義された波形シーケンスがシーケンス全体を通して一度だけ生成され、その後波形生成が停止します。発生器が開始トリガを受信した後、波形生成が最初のステージで開始され、最後のステージまで続行されます。シーケンスリスト全体が生成された後、最後のセグメントの最後のサンプルが連続的に生成されます。

一方、連続トリガモードでは、波形セグメントをすべて組み合わせた全シーケンスが連続的に生成されます(図5を参照)。開始トリガモードと連続トリガモードでは、最初のトリガの後に続くすべてのトリガは無視されます。


図5


図6に示すように、ステップトリガモードでは、シーケンスリストで定義された波形はトリガが認識されるたびに1つのセグメントを生成します。特定のセグメントに構成された回数分、波形が反復されます。セグメント生成が停止した後、次のトリガが受信されるまで波形の最後のサンプルが連続して出力されます。次のトリガを受信すると、次のセグメントで定義された波形が構成されたループ数だけ生成されます。シーケンスリストの最後まで実行された後、波形生成は最初のセグメントに戻り、次に続くトリガによってこのプロセスが再開されます。トリガは、セグメントの生成が完了した後にのみ認識されます。それ以外の場合、トリガは無視されます。


図6


バーストトリガモードはステップトリガモードと非常によく似ていますが、シーケンスリストで定義された各波形セグメントは、最後のセグメントの最後のサンプルを繰り返すのではなく、別のトリガが発生するまで連続的に生成します。


図7

マーカ出力

マーカは、波形生成内の特定の場所で生成できるデジタルパルスです。マーカは各シーケンスセグメントに配置され、他のデバイスのタイミングを制御するトリガとして使用できます。たとえば、マーカ出力は通常、高速デジタイザおよびオシロスコープのデジタルトリガとして使用されます。

各セグメントの波形バッファの開始から(サンプル数の)オフセットをカウントすることで、マーカ出力を指定することが可能です。波形がセグメント内で複数回反復する場合、波形が反復するたびに構成されたサンプル位置でマーカが生成されます。

波形が複数回反復するセグメント内でマーカを1回だけ生成する必要がある場合は、セグメントを複数のセグメントに分割してください。たとえば、100回反復する正弦波で1回目のみマーカを生成する必要がある場合、特定のサンプル位置でマーカで正弦波を生成し、1回のみ反復するセグメントを作成します。マーカなしで正弦波を生成するセグメントを作成し、そのセグメントが99回反復するように指定します。

この方法は、異なるセグメントを組み合わせる際に使用できます。たとえば、正弦波ごとに5つのマーカを生成するには、1つのマーカと1回の反復を含むセグメントと、その後に4回反復するマーカなしのセグメントを作成します。これらの2つのセグメントは、必要な限り繰り返されます。


図8

データマーカイベント

標準マーカ出力の最大の制限事項は、波形セグメントごとに1つのマーカイベントしか発生しないことです。データマーカイベントは、マーカ機能を拡張して1つのセグメントで複数のマーカイベントを可能にします。ご使用のデバイスがデータ マーカ イベントをサポートしているかどうかを確認するには、『Find the Right Signal Generator』ガイドを参照してください。

データマーカは、16の波形データビットの1つをデバイスの有効な出力先にエクスポートできるイベントです。AWGは、デジタル/アナログ変換器を使用して一連のデジタルサンプルをアナログ波形に変換します。たとえば、NI 5421 AWGにはサンプルあたり16の波形データビットがあります。16の波形データビットのうち、最大4つまでを一度にエクスポートすることが可能です。

データマーカイベントのデジタルレベルは、特定のデータビットが波形データ内で切り替わる時に変化します。波形データビットがセグメント内で複数回切り替わる場合、データマーカレベルはそのたびに変化します。データビットレベルがHighのとき、データマーカレベルもHighになります。この関係を反転することもできます。

以下の図は、指定されたデータビットが切り替わる際にLOWからHIGHまたはHIGHからLOWに切り替わるエクスポートしたデータマーカイベントを示します。NI 5421では、データマーカイベントをRTSIバス、PXIトリガライン、SYNC OUT/PFI 0およびPFI 1、またはPFI 4およびPFI 5にエクスポートできます。

 


図9


データマーカイベントにより、信号発生器と他のデバイス間の同期を強化できます。たとえば、AWGとデジタイザは通常、エクスポートされたAWGの開始トリガを使用して同期されます。ただし、開始トリガがエクスポートされてから出力コネクタでアナログ波形が生成されるまでの間に、わずかな遅延が発生します。データマーカイベントをトリガソースとして使用すると、マーカイベントがアナログ出力と直接同期されるため、トリガ応答時間が短縮されます。

スクリプト処理


スクリプトは、非常に複雑な波形およびトリガシーケンスを素早く簡単に作成できる強力な機能です。スクリプトを使用して、生成操作で複数の波形をリンクしたり繰り返し実行することができます。スクリプトは、生成する波形、生成する順序、生成する回数を記述する一連の命令で、条件文を含むこともできます。デバイスには同時に複数のスクリプトを保存できます。どのスクリプトを実行するかの選択はスクリプト名で指定します。このセクションでは、スクリプトを作成するための構文と、アプリケーションでスクリプトを使用する方法について説明します。

まず、以下の簡単なスクリプトの例を見てみましょう。


script myScript
波形の生成1
波形の生成2
波形の生成3
end script


このスクリプトを実行すると、3つの波形が連続して生成されます。スクリプト/終了スクリプト、生成、繰り返し/終了、if/else/end if、待機、クリアの6つの主な命令を使用して、より複雑なスクリプトを簡単に作成できます。

スクリプト/終了スクリプト - 1つのスクリプト内に含まれる命令のセットを定義し、そのスクリプトに名前を関連付けます。

生成 - 名前付き波形を生成します。波形全体またはその一部を生成できます。また、名前付き波形の指定された位置にマーカを生成することもできます。

繰り返し/終了 - 一連の命令を繰り返します。ハードウェアスクリプトトリガを受信するまで、有限回、無限回、または繰り返します。

If/Else/End If - 特定のスクリプトトリガが受信されたかどうかに基づいて、実行するスクリプトのセクションを決定します。

待機 - スクリプトトリガを受信するまで実行を一時停止します。

クリア - 以前にラッチされたスクリプトトリガを無視します。このオプションは通常、wait untilまたはrepeat until命令の前に使用します。


これらのスクリプト関数を使用して複雑な波形シーケンスを作成するサンプルをいくつか見てみましょう。NI Script Editorを使用すると、スクリプトの書き込み、保守、エラーチェックを簡単に行うことができます。

有限反復 (N回) - このスクリプトは波形1、波形2、波形3を生成します。波形2は3回繰り返されます。

スクリプト有限反復
波形の生成1
repeat 3
波形の生成2
end repeat
波形の生成3
end script


条件付き反復 - このスクリプトは波形1、波形2、波形3を生成します。波形2はscripttrigger0が発生するまで繰り返されます。

スクリプト条件反復
波形の生成1
repeat until scriptTrigger0
波形の生成2
end repeat
波形の生成3
end script


条件分岐 - If/Then Else - このスクリプトは波形1を生成します。そして、scripttrigger0を受信すると、wavform2が生成されます。それ以外の場合は、scripttrigger0が受信されていない場合、wave3が生成されます。

スクリプト条件分岐
波形の生成1
if scripttrigger0 then
波形の生成2
else
波形の生成3
end else
end script


複数波形をステップ実行する - このスクリプトは、waveform1を生成し、scripttrigger0を待機します。scripttrigger0が発生すると、スクリプトはwave2を生成します。スクリプトはscripttrigger0が再度発生するのを待機し、波形3を生成します。「クリア」命令は、「待機」命令が無視される前にスクリプトトリガが確実に受信されるように使用されます。このシーケンス全体は、生成が中止されるまで永遠に繰り返されます。

スクリプトステップ複数波形
永遠に繰り返す
波形の生成1
clear scripttrigger0
wait until scripttrigger0

波形の生成2
clear scripttrigger0
wait until scripttrigger0

波形の生成3
clear scripttrigger0
wait until scripttrigger0
end repeat
end script


マーカで波形を生成する - このスクリプトは波形1を生成し、サンプル20でマーカイベントを生成します。


スクリプト生成Withマーカ
generate waveform1 marker0(20)
end script

関連NI製品

このドキュメントに関連するNI製品は下記のとおりです。

Was this information helpful?

Yes

No