Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

信号発生器のアーキテクチャ: アナログ出力上級機能

0 ratings | 0.00 out of 5
Read in | Print | PDF

Overview

このドキュメントでは、信号発生器を使用した、波形のリンクおよびループによるカスタム仕様の信号生成、スクリプト機能と呼ばれる機能を使用したダイナミック波形生成、マーカやデータマーカイベントを使用した他の計測器と同期する方法を習得することができます。このチュートリアルは、ナショナルインスツルメンツの信号発生器の基礎シリーズの一環です。このシリーズの各チュートリアルでは、信号発生器のアーキテクチャ、機能、またはアプリケーションについての基本概念を解説します。信号発生器を使用するアプリケーションの詳細については、信号発生器アプリケーションメインページ(英語)を参照してください。

NI信号発生器は、SMC(Synchronization and Memory Core)アーキテクチャを使用して、デバイスのオンボードメモリ、外部ハードウェア、D/A変換器(DAC)に共通のインタフェースを提供します。この技術資料では、2つのタイプの信号発生器(任意関数発生器と任意波形発生器)を比較しています。また、メモリアーキテクチャ、DACに関する注意事項、デジタルゲイン、フィルタ処理および補間、信号生成エンジン、各種のイベントを含む信号発生器のさまざまな側面を取り上げています。図1は、一般的な信号発生器のブロック図を示します。


[+] 画像を拡大
図1. 信号発生器のブロック図

以下のセクションでは、信号生成における各コンポーネントの役割について考察します。また、信号発生器で最良の信号を生成するのに必要な技術の詳細について学習します。信号発生器は、タイプや機能に応じて対応デバイスが異なることに注意する必要があります。たとえば、任意関数発生器は通常1 MB未満のオンボードメモリを使用しますが、任意波形発生器では最大512 MBのオンボードメモリと高度なシーケンス機能を使用します。また、いくつかの任意波形発生器は、ベースバンドI/QとIF信号を生成するためにオンボード信号処理(OSP)を実装しています。この技術資料ではOSPを取り上げていないため、その詳細については『OSPの概要』を参照してください。

信号発生器のタイプ

ほとんどの信号発生器には、DAC、オンボードメモリ、アナログまたはデジタルフィルタ処理回路などの共通コンポーネントが含まれています。ただし、信号発生器はメモリオプションとクロック特性に応じて2つのタイプに分けられます。これらの2つのカテゴリは、関数発生器と任意波形発生器(AWG)です。

関数発生器

関数発生器は、正確な周波数で周期波形を生成するように設計されています。通常、ダイレクトデジタルシンセシス(DDS)として知られるクロックメカニズムを使用して、1 µHz以下の精度で正確な周波数を生成します。またDDSは、位相連続方式で周波数を動的に変更する機能を関数発生器に提供します。さらに、関数発生器は反復波形を出力するため、波形の単一周期を格納するメモリのみを必要とします。NI任意関数発生器は、正弦波、方形波、ランプ波、三角波を含む標準ライブラリから、もしくは16 kSのユーザ定義波形からさまざまな周期波形を生成することができます。関数発生器の共通アプリケーションには、フィルタ特性テスト、刺激応答テスト、クロックソース生成などが含まれます。

任意波形発生器

一方で、任意波形発生器は大きく、複雑な波形を生成するように設計されています。その結果、大容量オンボードメモリと高度なクロックメカニズムが使用されます。SMCアーキテクチャは最大512 MBのメモリを扱います。また、任意波形発生器は複雑なシーケンスに対して波形の高度なリンク、ループ、スクリプトを実行することができます。SMCは、他の計測器との同期のためのさまざまなマーカおよびトリガ機能も提供します。これらの機能の詳細については、後ほど説明します。

大容量オンボードメモリ

最新の信号発生器(特にAWG)は、大きな波形を格納するために大容量オンボードメモリを実装しています。PCIまたはPXIベースの計測器は、PCIバスによる高スループットが可能なため、このメモリを効果的に使用することができます。

信号発生器は、波形とシーケンス命令を格納するためにオンボードメモリを使用します。複雑なシーケンス命令は、メモリの大部分を占める場合があります。NI信号発生器のアーキテクチャを使用すれば、複数の波形とシーケンス命令を同じ計測器のメモリにロードすることができます。図2は、一般的なNI信号発生器のメモリの割り当てを示します。


[+] 画像を拡大
図2. 信号発生器のメモリ割り当て

NI信号発生器は、最大512 MBのオンボードメモリにより長い再生時間を実現することができます。さらに、NI-FGENドライバを使用すれば、信号発生器での波形生成中に、これらの波形をメモリに書き込み、上書きすることが可能です。したがって、PCIバスで実現する高スループットにより、ストリーミング生成用の波形セグメントを連続して上書きすることができます。

D/A変換器(DAC)

最新の信号発生器は、高度なDACを使用して、メモリにあるデジタル波形をアナログ信号に変換します。弊社が使用するすべてのDACは、DACが一定の時間に異なる電圧レベルを保持するサンプル&ホールド機能で動作します。正しいサンプルレートの選択の詳細については、『高周波数アナログ信号の概要(英語)』を参照してください。また、多くのD/A変換器は、補間により実効サンプルレートを向上させます。詳細については、『スペクトル純度を向上させる補間およびフィルタ処理』を参照してください。

デジタルゲインおよび減衰

信号発生器は幅広い電圧レベルで信号を生成するように設計されているため、アナログゲインアンプとデジタルゲイン処理を使用して、信号発生器の振幅確度と柔軟性を最大化します。NI信号発生器は通常、DACアナログ出力を異なるアナログ電圧レンジに増幅するために、3つの異なるゲインパスを提供します。図3は、これらの各パスの出力例を示します。


[+] 画像を拡大
図3. 信号発生器のゲインアンプ

また、信号発生器は、DACのフルレンジを使用するために、信号を増幅または減衰するデジタルゲインを実装しています。この機能により、サンプルはアナログサンプルとして生成される前に、ゲイン係数によりデジタル的にスケールされます。その結果、異なる波形をメモリに再ロードすることなく、特定の信号の振幅を動的に調整することができます。特定の信号パスの最大範囲まで波形を増幅することが可能です。

補間およびフィルタ処理

前述したように、DACは真の理想的な信号のみを近似することができます。実際に、DACのステップ出力により高周波数のスペクトル成分が発生するため、最新の信号発生器はアナログおよびデジタルフィルタを実装して、理想的なアナログ信号の最良の近似を提供しています。その例として、フィルタ処理されていない信号の時間領域を図4に示します。


[+] 画像を拡大
図4. DACサンプル&ホールド出力

サンプル&ホールド出力の結果、高周波数のスペクトル成分が生成されます。これらの成分は、サンプルレートの各倍数、プラスまたはマイナスの基本トーンで発生します。したがって、100 MHzでサンプリングされた20 MHzの正弦波を生成する際に、80、120、180、220 MHzで成分が表示されます。図5は、20 MHzの正弦波の周波数領域を示します。


[+] 画像を拡大
図5. 20 MHzの正弦波のスペクトル成分

グラフが示すように、高周波数のスペクトル成分によって生成中の信号の周波数領域が歪む可能性があります。 

NI信号発生器は、アナログおよび/またはデジタルフィルタを使用して、高周波数のスペクトル成分を除去します。まず、デジタル有限インパルス応答(FIR)フィルタは、信号を補間して実効サンプルレートを向上させます。たとえば、20 MHzの正弦波を100 MS/sでサンプリングして4倍で補間し、400 MS/sの実効サンプルレートを実現する場合について考えてみましょう。以下の図6に示すように、実効サンプルレートを向上させることで、最も近いスペクトル成分は新しい実効サンプルレートの中心付近に移動します。


[+] 画像を拡大
図6. 4X補間された20 MHzの正弦波のスペクトル成分

図6が示すように、デジタルフィルタ処理(補間)はスペクトル成分を完全に除去することはできません。その代わり、それらを高周波数にシフトします。ただし、多くの信号発生器はアナログフィルタも使用します。アナログフィルタは、ノイズフロアを下回るこれらのスペクトル成分を減衰することができます。これを示したのが、ローパスアナログフィルタが適用された後の同じ周波数領域を表した図7です。


[+] 画像を拡大
図7. 補間およびアナログフィルタ処理された20 MHzの正弦波

図7が示すように、スペクトル成分はデバイスのノイズフロアを下回る位置にあります。この例では、アナログローパスフィルタが60 dBで高周波数のスペクトル成分を減衰します。その結果、信号発生器は、理想的なアナログ信号をより正確に近似したアナログ信号として生成することができます。図8は、補間およびフィルタ処理された信号の時間領域を示します。


[+] 画像を拡大
図8. 20 MHzの正弦波の時間領域

図8は、時間領域で表示されていた個々のステップが表示されなくなることを示しています。その代わり、出力は純粋な正弦波のように表示されます。したがって、補間およびアナログフィルタ処理は信号発生器のアナログ信号の正確な近似の機能に役立っています。フィルタ処理と補間がスペクトル純度に及ぼす影響の詳細は、『スペクトル純度を向上させる補間およびフィルタ処理』を参照してください。

クロック

DACの分解能が生成する信号の振幅確度に大きな影響を及ぼすのと同様に、DACに提供するクロックは生成する信号の周波数確度に影響を与えます。そのため、正確なクロックメカニズムの効果を信号の周波数領域で測定することができます。最新の信号発生器は、クロックジッタを最小限に抑え、正確な周波数でDAC出力をクロックするさまざまな方法を提供します。以下のセクションは、各クロックメカニズムとその利点について説明します。

Nで除算

分周(またはNで除算)クロックは、信号発生器のタイムベースを分周して固有の周波数を導き出します。このコンポーネントは、電圧制御水晶発振器(VCXO)を使用して、信号発生器の基本的な高周波数タイムベースを生成します。Nで除算回路は、このタイムベースを整数で除算した値の周波数を導き出すことができます。たとえば、200 MHzのタイムベースを200、100、66.6、および50 MS/sなどの周波数に分周することができます。

サンプルクロックのジッタが一番小さいため、Nで除算クロックメカニズムを使用することをお勧めします。ただし、有効なサンプルレートはタイムベースの整除数である必要があるため、クロックメカニズムの柔軟性は低くなります。

高分解能クロック

信号発生器の2番目のクロックオプションは、最も精度の高い周波数分解能を実現する高分解能クロックです。このメカニズムにより、基本的なタイムベースの除数ではなくても、サンプルクロックを最大レートまで生成することが可能になります。NI信号発生器は、このクロックメカニズムで1 µHz以下の精度でクロックを生成します。このクロックモードは、分周クロックでは得られない正確なクロック周波数を必要とするアプリケーションに有益です。ただし、高分解能クロックは、Nで除算メカニズムよりも多くのクロックジッタが発生します。

ダイレクトデジタルシンセシス(DDS)

NI関数発生器は、ダイレクトデジタルシンセシスとして知られるクロックメカニズムが利用できます。DDSは、まず有限メモリ領域に大きな反復波形を格納することで機能します。NI製品では、波形(正弦波、三角波、方形波、任意波形)の1周期は、16,384ポイントで表され、メモリに格納されます。波形がメモリに格納されると、非常に高精度の周波数で波形が生成されます。

DDSを使用した波形生成は、任意波形の生成とは根本的に異なることを理解することが重要です。任意波形の生成では、波形の各サンプルがメモリに格納され、連続して生成されます。DDSで生成された信号の動作は若干異なります。このメカニズムにより、波形の1周期がメモリに格納されます。ただし、信号を生成している時、DACは波形の各ポイントを生成しません。その代わり、正確な周波数を生成している際、図9に示すように、DACは必要なサンプルレートを生成するために生成のサンプルをスキップします。


[+] 画像を拡大
図9. ダイレクトデジタルシンセシスで21 MHzの信号を生成する

DDSを実行する際、任意の時点で生成信号の位相を決定するためのルックアップテーブルが必要になります。図10は、ダイレクトデジタルシンセシスによる波形生成の構成ブロックを示します。


[+] 画像を拡大
図10. ダイレクトデジタルシンセシスの機能ブロック

図10が示すように、位相アキュムレータは、サンプルクロックと必要な周波数を比較して、位相レジスタを増分します。ここでの基本概念は、DDSを実行すると、信号の必要な瞬時位相に基づいて適切なサンプルを選択して、正確な周波数で周期信号を生成することができることです。波形を214(16,384)ポイントで表すことで、ルックアップテーブルを用いて16,384の位相増分を表すことができます。DDSにより、関数発生器は正確な周波数で信号を生成することができます。実際に、NI 5406デバイスは48ビットのDDSを使用して、1 µHz以下の周波数精度を提供します。

DDSが正確な周波数を生成する方法の詳細については、『ダイレクトデジタルシンセシス(DDS)を使用する(英語)』を参照してください。

基準クロック

信号発生器はサンプルクロックを使用して新しいサンプルの生成時間を決定する一方で、基準クロックは複数の計測器を同期する上で重要になります。基準クロックを使用する時、信号発生器は位相ロックループ(PLL)を介して、外部クロックとサンプルクロックを位相ロックすることができます。PLLは、サンプルクロックの位相と基準クロックの位相を揃えるフィードバック回路です(図11を参照)。その結果、複数のデバイス間で同じ基準クロックを共有することで、サンプルクロックを同期し、生成した信号を揃えることができます。図11は、PLLのブロック図を示します。


[+] 画像を拡大
図11. 基本的な位相ロックループ回路

ブロック図が示すように、PLLはVCXOの位相を制御するフィードバック制御システムです。周波数基準信号は、位相検波器に適用されます。位相検波器は、2つの入力信号間の位相差異に比例する電圧を出力します。最後にループフィルタは、基準信号の位相と一致するように発振器のクロックの位相を調整します。それにより、基準周波数とサンプルクロックの位相を完全に一致させることができます。

リンクおよびループ(波形生成エンジン)

NI信号発生器は、高度なSMC機能を使用して、波形セグメントをリンクし、ループします。リンクとループは2つの生成モード(シーケンスモードとスクリプトモード)に分けられます。シーケンスモードでは、オンボードメモリで格納されたシーケンス命令を使用して、一連の定義済みの波形を出力するように信号発生器を構成することができます。一方スクリプトモードでは、信号発生器の出力がハードウェアまたはソフトウェアのトリガの状態に依存するダイナミック波形シーケンスを作成できるため、さらにパワフルな機能です。また、スクリプトモードは、波形シーケンスの分岐を実行するために、「if/else」などの条件ステートメントを使用します。リンクとループでは、マーカまたはマーカイベントなどの機能を使用して、1つまたは複数のトリガ信号を出力するように構成することができます。高度なタイミングと同期を実現するSMCアーキテクチャの使用方法については、『任意波形発生器での波形シーケンス/トリガ』を参照してください。

シーケンスモード

シーケンスモードでは、構成済みのシーケンスを通して一連の波形を生成することができます。また、さまざまなトリガモードを実行すれば、シーケンスの次の波形に進むことが可能です。一般的なトリガモードには、単一トリガ、連続トリガ、ステップトリガ、バーストトリガがあります。これらの各モードは、各波形が生成される時に異なる出力のオプションを提供します。その例として、以下にステップトリガモードを挙げます。


ステップトリガモードでは、トリガを使用してシーケンスリストの各波形のステップ間を移動します。生成セッションを開始したら、特定のステップに構成された回数分、最初の波形が反復されます。波形が適切な回数で反復された後、次のトリガが受信されるまで波形の最後のサンプルが連続して繰り返されます。次のトリガが受信されると、2番目の波形が構成された反復回数で生成されます。この処理は、構成された最後の波形が生成されるまで繰り返されます。この時点で、生成シーケンスを再開するのにトリガ条件が必要です。これを示したのが図12です。


[+] 画像を拡大
図12. ステップトリガモードでのシーケンス

図12が示すように、信号発生器は、最初のトリガが受信されるt0の時に最初の波形の生成を開始します。また、構成された反復回数(この場合は2回)に達するまで「step 0」の生成を繰り返します。図12から分かるように、信号発生器は、次のトリガが受信される時間t1まで「step 0」の出力が終わると待機します。

スクリプトモード

シーケンスモードは、信号発生器がトリガの受信時に一連の波形を出力できますが、このモードには制約があります。基本的に、シーケンスモードでは信号生成が開始される前に各ステップを構成する必要があります。条件付き出力のダイナミックスクリプトを構成するには、スクリプトと呼ばれる高度なシーケンス機能が必要です。

スクリプトを使用すると、信号発生器でシステム内のハードウェアまたはソフトウェアのイベントに基づいて波形のシーケンスをダイナミックに出力することができます。また、その柔軟性により高度な波形制御を実現します。スクリプトを使用すれば、複数の波形間のリンクとループが実行できるだけでなく、スクリプトトリガの構成を使用して検査対象デバイスで発生したイベントで条件付き波形を生成することもできます。スクリプトトリガにより、スクリプトエンジンは特定のトリガラインの状態に応じて生成する波形をダイナミックに選択します。

その例として、「Repeat Until」コマンドを使用するスクリプトについて考えてみましょう。このスクリプトでは、スクリプトトリガがTRUEになるまで「waveform1」が繰り返されるように構成します。図13はスクリプト例を示します。


図13. 「Repeat Until」コマンドを使用したスクリプト例

生成される波形を決定する変数として「scriptTrigger0」が使用されることに注目してください。このスクリプトでは、信号発生器はまず「waveform0」を生成します。波形が生成されたら「waveform1」の生成を繰り返し、「scripttrigger0」がTRUEになるまでこの波形を繰り返します。このイベントが発生すると、信号発生器はシーケンスを完了する前に「waveform2」を生成します。図14は、このスクリプトによる出力信号を示します。


[+] 画像を拡大
図14. 「Repeat Until」スクリプトでの信号発生器の出力

図14が示すように信号発生器は、「scripttrigger0」がTRUEになるまで「waveform1」を生成し続けます。したがって、スクリプトにより、信号発生器の出力を決定するようにスクリプトトリガを構成して、ダイナミック波形を生成することができます。スクリプトが高度な信号生成を実現する方法については、『任意波形発生器での波形シーケンス/トリガ』を参照してください。

トリガおよびイベント

他の計測器との同期のために、SMCアーキテクチャはマーカイベントおよびデータマーカイベントなどの機能を提供します。これらのイベントを使用すれば、出力トリガを生成して他の計測器の動作を制御するように、信号発生器を構成することができます。マーカイベントにより、構成されたサンプル数と同期する状態になるように、最大1つ(シーケンスモード)または4つ(スクリプトモード)のトリガラインを構成することができます。それとは対照的に、データマーカイベントは、最大4ビットのアナログ波形を最大4つのトリガラインに経路設定することが可能です。このタイプの出力トリガでは、トリガの状態が実際の波形に取り込まれます。

マーカイベント

マーカイベントは、波形の開始からサンプル数のオフセットをカウントすることで、指定されます。シーケンスモードでは、シーケンスの各ステップに対して1つのマーカイベントを構成することができます。スクリプトモードの場合、特定の波形の異なるオフセットで最大4つのマーカを構成することが可能です。図15が示すように、マーカに関連するトリガラインは、20番目のサンプルを生成する同じクロックエッジでアサートされるようになります。また、この図からトリガラインがサンプルクロック周波数の40周期でアサートされることも分かります。


[+] 画像を拡大
図15. マーカイベント出力のタイミング

適切なノードを使用すれば、多くの方法でマーカ出力の動作を構成することができます。図15は、サンプルクロックの8周期分のパルスとして構成されたマーカイベントを示します。

データマーカイベント

データマーカイベントを使用すると、最大4つの波形データビットをデジタル信号として物理トリガラインにエクスポートすることができます。たとえば、一般的な信号発生器は、16ビットのDACを使用します。16ビットのサンプルは、サンプルクロックの各周期でDACに送信されます。各サンプルの最大4ビットを物理トリガラインに経路設定することもできます。したがって、他のハードウェアとの同期のために、これらの4つの波形ビットをデジタル波形として構成することが可能です。4ビットは任意の値を選択できますが、アナログ出力への影響を最小限に抑えるために、通常は最下位ビットが使用されます。図16は、データビットマーカを使用した信号のタイミング図です。


[+] 画像を拡大
図16. ビット単位で表した波形

図16は、ハイライトされた各16ビットサンプルの最下位4ビットを示します。データマーカイベントを使用すれば、これらの各ビットをデジタル信号としてトリガラインに直接経路設定することができます。他の計測器との同期を実現するSMCの使用方法については、『任意波形発生器での波形シーケンス/トリガ』を参照してください。

まとめ

最新の信号発生器は、SMCアーキテクチャを使用して、複雑で高精度のアナログ信号の生成を実現します。その結果、信号発生器はさまざまな信号を生成し、広範囲にわたるアプリケーションに役立つことができます。これを実現するのに使用できる機能の詳細については、『信号発生器の基礎』を参照してください。信号発生器を使用するアプリケーションの詳細については、『信号発生器アプリケーションのメインページ(英語)』を参照してください。

関連リンク

 

0 ratings | 0.00 out of 5
Read in | Print | PDF

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).