このアプリケーションノートは、このシリーズのパート1の続編として機能します。 ボックスカー平均化器によるSNR測定の改善このアプリケーションノートでは、デュアルボックスカーアベレージャの構成と動作原理について説明し、特に以下の実装に重点を置いています。 Mokuクラウドコンパイル Moku:Pro で。
その ボックスカーアベレージャー は、低デューティサイクル信号を測定するための信号対雑音比(SNR)を改善する上で重要な役割を果たす、広く使用されている計測器です。特定のイベントによってトリガーされる狭いゲート内で信号を統合することにより、パルス間のノイズ寄与を効果的に分離します。複数のゲートイベントを平均化することで、測定のSNRがさらに向上します。このアプリケーションノートでは、ボックスカーアベレージャの実装について詳しく説明します。 Moku:Pro Mokuクラウドコンパイル.
ボックスカーツールは利用可能 こちらMoku:Proの使い方ガイドをダウンロードするには、ここをクリックしてください。 こちら.
ボックスカー平均化器の動作原理
ボックスカー平均化装置と ロックインアンプ 繰り返し信号を検出する際の SNR パフォーマンスの向上に役立ちます。ボックスカー アベレージャは、入力信号に時間領域ボックスカー ウィンドウを適用し、課されたボックスカー ウィンドウの外側にある一時的なノイズ成分を効果的に軽減します。一方、ロックイン アンプは、狭帯域フィルターを展開して、中心周波数の周りの狭い範囲内の信号を抽出し、通過帯域を超えるノイズを除去します。したがって、ボックスカー アベレージャは、デューティ サイクルの低い信号の処理に特に適しています。このようなシナリオでは、時間領域信号の大部分は通常ノイズであるためです。
図1はボックスカーアベレージャの動作原理を示しています。ユーザー定義のトリガー信号は、トリガーから一定の遅延後にボックスカーゲートウィンドウをアクティブにします。ゲートウィンドウにより、入力信号がウィンドウ幅にわたって加算されます。次に、機器は積分値を平均化します。 n ボックスカー積分器から得られた結果を基に、必要な減衰または増幅のためにゲイン ステージで出力を調整します。
図 1: ボックスカー アベレージャの動作原理。入力信号は、トリガー信号によってアクティブになるボックスカー ウィンドウ内で統合されます。システム遅延を補正するために、ボックスカー ウィンドウとトリガー エッジの間にトリガー遅延が導入されます。統合された結果は平均化され、ゲイン ステージを通過してボックスカー アベレージャ出力が生成されます。
ボックスカー アベレージャの基本構造は、ボックスカー インテグレータ (ゲート) とアベレージャという 2 つの主要コンポーネントで構成されています。ボックスカー インテグレータは入力信号をフィルタリングし、対象信号のないサイレント ウィンドウから発生する不要なノイズを除去します。その後、アベレージャがボックスカー インテグレータからの出力を処理して、追加の信号平均化を行ってから最終出力を生成します。
次に、ボックスカー アベレージャを使用して処理される実際の信号について詳しく見てみましょう。図 2 は、トリガー信号とパルス信号のグラフです。特に、トリガー信号の立ち上がりエッジと対応するパルス信号の間には、目に見える遅延があります。この遅延は、信号経路内の電気部品によって生じる固有の遅延が原因であることが予想されます。
ボックスカー積分ウィンドウとパルス信号を合わせるために、トリガ発生に対して手動で積分プロセスに遅延を導入することができます。この時間調整は、 トリガー遅延 ボックスカー平均化器のパラメータ。図 2 では、トリガー遅延は約 176 ナノ秒ですが、ゲート幅は 320 ナノ秒に及び、実質的にパルス信号全体を網羅しています。
図2:トリガー信号(オレンジ色のトレース)の振幅は150 mVです。176 nsの遅延の後、320 ns幅のボックスカーウィンドウがアクティブ化され、測定されます。
トリガー遅延とゲート幅を設定した後、ボックスカー積分結果を平均化してノイズレベルをさらに低減することに焦点が移ります。このプロセスでは、S1 S5 までの平均が計算され、最終出力が計算されます。
図 3: SNR を向上させるために、ボックスカー積分の 1 つの期間 (S5 から SXNUMX までとラベル付け) の平均を計算します。
ボックスカー平均化器の実装
このセクションの目的は、Liquid Instrumentsから入手可能なボックスカー平均化器の実装に関する包括的なガイドを提供することです。 githubの 図 4 のステップバイステップのフローチャートで示されています。一般的な手順は次のように説明できます。
(1) 適切なトリガーのためのトリガーレベルの調整
ノイズフロアからトリガー信号のピーク値までの範囲内でトリガーレベルを設定します。
(2) ボックスカーゲートウィンドウをパルス信号と同期させ、ゲート幅を設定する
適切なボックスカー ゲート幅を選択し、適切なトリガー遅延を見つけます。光学実験では、光パス遅延と光検出器遅延により、トリガー信号がパルス信号に先行することがよくあります。このようなシナリオでは、トリガー遅延の補正が重要になります。
(3) 平均化器の長さの選択
十分な SNR と速度のバランスを実現するために、適切な平均化サイクル数を選択します。
(4) ゲインステージの調整
出力の飽和を防ぐか、潜在的な量子化エラーを最小限に抑えるために、ステップ 3 の結果に減衰または増幅を適用し、Moku の出力範囲を最大限に活用します。
図 4: ボックスカー平均化器を実装するための操作フローチャート。
次のセクションでは、Python コントロール パネルと Moku Cloud Compile (MCC) コントロール レジスタとのインターフェイスを介して、Moku:Pro でボックスカー アベレージャーを構成する手順について説明します。
Python でボックスカー平均化器を制御する
以下は、Python コントロール パネルを使用してボックスカー平均化の手順を実装するための手順です。
(1) トリガーレベルの調整
この実験では、150 mVの振幅を持つトリガー信号が与えられていますが、信号レベルを75 mVに選択することで、ボックスカー積分の安定したトリガーが確保されます。ボックスカーウィンドウは、適切なシステムトリガーが行われた場合にのみ表示されます。そうでない場合、安定したパルス信号もトリガー信号も表示されません。
図 5: 異なるトリガー レベル設定でのシステム応答。(a) トリガー レベル 0.2 V はトリガー信号振幅 0.15 V よりも高いため、ボックスカー ウィンドウはトリガーされず、ボックスカー ウィンドウとパルス信号の両方が存在しない状態になります。(b) トリガー レベルをトリガー信号振幅の半分に相当する 0.075 V に設定すると、ボックスカー ウィンドウとパルス信号の両方が正常にアクティブになります。
(2) トリガーボックスカーゲートウィンドウをパルス信号に合わせてゲート幅を設定する
これは、反復的な調整と観察のプロセスを通じて、または 自動応答オプション ボタンをクリックします。自動遅延機能は、パルス信号のピーク位置を自動的に識別し、パルスピークからボックスカーウィンドウの中点までの時間差を計算し、それに応じてトリガー遅延を調整します。
図 6: パルス トリガー遅延は、ボックスカー ウィンドウをパルス信号に合わせるために 236.8 ns に調整されます。
G食べた幅 も SNR を最適化するための重要なパラメータです。興味深いことに、ゲート幅の最適な設定は、必ずしもパルス信号全体をキャプチャすることではなく、大部分をキャプチャするだけで十分な場合がよくあります。この戦略は、ノイズ電力と比較して信号電力が低いパルス信号のセクションを除外することで SNR を最適化します。基本的に、信号電力がノイズ電力と比較して無視できるセグメントを削除できます。
図 7: SNR を最適化するために、ボックスカーの幅を調整して、信号の大部分のみをキャプチャします。次に、トリガー遅延をそれに応じて 249.6 ns に調整して、パルスとボックスカー ウィンドウを再調整します。
(3)平均化期間数の選択とゲイン段の調整
モードを「アライン」から「平均出力」に変更すると、データ読み出しボックスに平均出力信号が表示されます。
ボックスカー平均器の出力は、 n 平均ではなくボックスカー積分結果を出力するのは、FPGA に除算器を実装するのに時間がかかり、かなりのリソースが必要になるためです。実際の平均ではなく、積分結果を出力する方が効率的です。平均ボックスカー積分は、次の式を使用して計算できます。

図 8: モードを「Align」から「Average Output」に変更して出力値を読み取ります。次に、量子化エラーや出力飽和を回避するために出力ゲインを設定します。
MCC 制御レジスタ
Moku:Pro には、ボックスカー アベレージャを実装するためのレジスタを直接制御できる便利な機能があります。入力、制御、および出力ポートに割り当てられたデータ タイプの詳細な概要を表 1 に示します。Moku:Pro の制御レジスタの実際の構成は、この表に概説されている仕様と一致しています。ユーザーは、制御レジスタ 0 から 5 を調整することで、ボックスカー アベレージャの機能を完全に構成でき、Python コントロール パネルと同じレベルの制御が可能になります。
表 1: Boxcar Averager の入力、制御、および出力ポートの構成。
Moku:Proは図9に示すようにセットアップされています。この構成では、Moku:Proはマルチインストゥルメントモードで動作し、スロット1にボックスカーアベレージャを実装し、スロット2に出力モニタリング機能を搭載しています。スロット1のMCCブロックは、In 1を信号入力、In 2をトリガー入力として使用します。MCCブロックからの出力(Out AとOut B)は、スロット2のオシロスコープに接続され、ボックスカーアベレージャの出力信号を視覚化します。
図9:Moku:Proのマルチインストゥルメントモード構成。In 1は信号入力でIn Aに接続され、In 2はトリガー信号です。ボックスカーアベレージャのXNUMXつの出力(Out AとOut B)はオシロスコープに接続され、結果を表示します。
MCC ブロックの制御レジスタは、図 10 に示す値に設定されました。トリガー レベルは 2,244 に設定され、これはトリガーしきい値振幅 75 mV (2244 LSB、LSB は最下位ビットを表し、Moku:Pro のデジタル分解能である 29925 LSB/V で割った値) に相当します。
アライメントプロセスの前に、トリガー遅延を0に設定できます。ゲート幅が320nsの場合、その制御レジスタは100(320nsをMoku:Proのクロック周期3.2nsで割った値)に設定されます。さらに、平均長さ 100 に設定されており、出力は 100 個の個別のボックスカー積分から得られた平均であることを示しています。この値は、最終出力の品質に基づいて微調整できます。
ゲイン制御は 65,536 に設定されており、実質的には最下位 16 ビット (小数ビット) がすべてゼロに、整数ゲイン (最上位 16 ビット) が 655,360 に設定されます。この設定により、ボックスカー平均化器出力の単位ゲインが確立されます。顕著な量子化エラーが発生した場合は、この値を増やして出力を増幅できます。たとえば、この制御レジスタを 10 に設定すると、信号に 32,768 倍のゲインが提供されます。逆に、飽和が見られる場合、値を 0.5 に調整して、信号に XNUMX 倍の減衰を適用できます。
図10:トリガレベルは2,244(75 mV)、ゲート幅は100(初期幅320 ns)に設定されています。ボックスカーウィンドウと入力信号を同時に視覚化するため、スイッチ制御は2に設定されています。システム固有の遅延を明確に観察するため、トリガ遅延は0に設定されています。青いトレースはボックスカーウィンドウ、赤いトレースはパルス信号を表しています。ボックスカーウィンドウのピークと中間点の間の時間差は237 nsと測定されています。
図 10 を見ると、トリガー遅延補正を適用する前の青いトレースの先行間隔は赤いトレースの先行間隔より 237 ns 長いことがわかります。したがって、トリガー遅延を 74 クロック周期に設定して調整を行いました。図 11 に示すように、この調整により青いトレースと赤いトレースの位置が調整され、統合されたすべての入力信号が有効なパルス信号であることが確認されました。
図 11: トリガー遅延を 74 に調整して、トリガー信号に 236.8 ns の遅延を導入し、青 (ボックスカー ウィンドウ) と赤 (パルス信号) のトレースを正常に整列させます。
SNR を向上させるために、ゲート幅を 272 ns に調整し、ノイズ電力に比べて信号電力が低いパルス信号の不要なセグメントを破棄しました。次に、トリガー遅延をそれに応じて再調整し、変更されたボックスカー ウィンドウをパルス信号に再調整しました。
図 12: ゲート幅とトリガー遅延を微調整してパルス信号の余分な部分を除去し、最終結果の SNR を向上させます。
パラメータを設定した後、スイッチ制御値を 0 に設定して、ボックスカー平均化器の結果が MCC の Out A ポートを介して送信されるようにします。
図13: スイッチ制御はボックスカー平均化器出力をアクティブにするように設定されており、ゲイン制御は327に調整され、値が0.00499倍に縮小され、(a)に示す出力飽和が防止されます。実際の出力値は式(1)を使用して復元できます。
ディスカッション
このセクションでは、現在のボックスカー平均化器の制限について概説します。さらに、より複雑なアプリケーションに対応するための潜在的な機能強化を提案します。
最大ゲート幅
ゲート幅は 16 ビットで、最大 65536 サンプルに相当します。したがって、達成可能な最大ゲート長は、Moku:Pro では 209.715 µs、Moku:Lab では 524.288 µs、Moku:Go では 2.097 ms です。この計算は、同じく 16 ビットのトリガー遅延に拡張でき、達成可能な最大トリガー遅延はゲート長と同じままです。追加のトリガー遅延は、位相ロック ループまたは有限インパルス応答 (FIR) フィルターを適用することで導入できます。
デュアルボックスカーアベレージャー
特定の実験シナリオでは、励起または刺激パルスは、測定信号パルスの半分の周波数で動作するように構成されます。これは、レーザー繰り返し率の半分に設定されたレーザー変調周波数を使用するポンプ プローブ分光法などのアプリケーションで見られます。このような場合、物体の励起状態に関する情報を運ぶ実際の信号は、2 番目のパルスごとにのみ存在し、最初のパルスにはバックグラウンド レベルが含まれます。目的の信号を分離して抽出するには、最初のパルスと 2 番目のパルスの差を取るデュアル ボックスカー平均化アプローチが不可欠です。重要なのは、この減算プロセスが、関連する信号を抽出するだけでなく、取得した信号内の DC ベースラインの除去にも貢献するという 2 つの目的を果たすことです。
MCC によって実現される適応性により、デュアル ボックスカー アベレージャーの実装が簡単になります。この点に関する詳細な情報は、今後のアプリケーション ノートで提供されます。

図14: 各トリガーは 2 つのボックスカー ウィンドウ (高: パルス ボックスカー ウィンドウ、低: ベースライン ボックスカー ウィンドウ) をアクティブにして、2 つのプローブ パルス (ポンプありとなし) を同時に積分します。出力は、2 つの積分結果の差です。
製品概要
このアプリケーションノートでは、ボックスカーアベレージャの原理について解説します。ボックスカーアベレージャの実装と機能について説明します。 Mokuクラウドコンパイル (MCC)に Moku:Proボックスカー平均化器のSimulinkの例を調べるには、 こちらボックスカー平均化器の構成は、 Python コントロール パネルまたは直接制御レジスタ。さらに、このアプリケーション ノートでは、将来の反復における潜在的な改善点についても説明します。
ご質問がある場合
ナレッジベースのFAQから回答を見つけてください
デバイスの機能や機器の機能について質問がある場合は、当社の広範な情報を確認してください。 ナレッジベース 探している答えを見つけるために。また、人気の記事をすぐに確認したり、製品やトピックごとに検索を絞り込んだりすることもできます。
ユーザーフォーラムに参加してください
新しい機能をリクエストしたいですか?共有できるサポートのヒントがありますか?使用例から新機能の発表など、 ユーザーフォーラム 製品のアップデートだけでなく、Liquid Instruments や当社のグローバル ユーザー コミュニティとのつながりも提供するワンストップ ショップです。