メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Find Delay

2 つの信号間の遅延を検出

  • Find Delay block

ライブラリ:
Communications Toolbox / Utility Blocks

説明

Find Delay ブロックは、ある信号とその信号が遅延して歪んだ可能性のある信号との間の遅延を検出します。これは、伝送済み信号と受信信号を比較してビット エラー レートを検出するのに便利ですが、受信信号の遅延はわかりません。このブロックは列ベクトルまたは行列の入力信号を受け入れます。行列入力の場合、このブロックは行ベクトルを出力し、行列の各チャネルの遅延を個別に検出します。信号遅延の詳細については、Delays in Communication Systemsを参照してください。

このアイコンは、オプションの chg 端子をもつブロックを示しています。Find Delay block showing the optional 'chg' port.

すべて展開する

Find Delayブロックを使用して、2 つの信号間の遅延を探します。Find Delay ブロックには [Correlation window length] パラメーターがあり、これを信号間の遅延に基づいて調整しなければなりません。[Correlation window length] が短すぎると、計算される遅延が正しくなくなります。

モデルの確認

Bernoulli Binary Generatorブロックは、1 秒あたり 1 個のサンプルを出力するように設定されています。出力は上と下のパスに分岐します。上のパスは、Find Delay ブロックに基準信号を提供します。下のパスは、Find Delay ブロックに遅延パスを提供します。Delay (Simulink)ブロックは下のパスで 10 サンプルの遅延を挿入します。Find Delay ブロックは 2 つの入力信号を比較し、計算された遅延と遅延変更フラグを出力します。計算された遅延の値が [Correlation window length] よりも長い間にわたり一定である場合、chg 端子は 0 を出力します。chg 端子の出力 1 は、前の相関ウィンドウでの遅延の変化を示します。時間スコープには Find Delay ブロックの delay 出力と chg 出力が表示されます。

モデルの実行

[Correlation window length] パラメーターを 15 サンプルに設定してモデルを実行します。経時的な chg 端子出力の変動を観察します。比較に利用できる以前の相関期間データがないため、最初の相関ウィンドウ期間 (時間 0 から 15 秒) の Find Delay ブロック出力は無視します。

最初の相関ウィンドウ期間の後、計算された遅延の出力には経時的な遅延誤差が示されます。相関ウィンドウのうち 1 つを除くすべてについて、chg 端子は 1 を出力し、前の相関ウィンドウでの遅延の変化を示します。この結果は、[Correlation window length] が短すぎるため、Find Delay ブロックで 2 つの信号間の遅延を正しく計算できないことを示しています。

Find Delay ブロックの [Correlation window length] パラメーターを 40 サンプルに設定してモデルを実行します。

この実行では、計算される遅延は 40 秒の目盛りの 10 サンプルで安定し、chg 端子は [Correlation window length] 期間のうちの 1 つのみで 1 に切り替わります。2 番目の相関ウィンドウ期間 (80 秒の時点) の後、計算された delay 出力は安定化し、残りの実行の間 chg 出力は 0 に切り替わります。

この例では、ランダムな信号 sig1 と信号の遅延コピー sig2 の間の遅延をFind Delayブロックを使用して計算します。Delay (Simulink)ブロックのインスタンスを使用して信号の遅延と整列を行います。

モデルの構造

このモデルは、並列信号パスを使用して、信号 sig1 と信号 sig2 間の遅延のサンプル数を計算および比較します。

  • 上のパスでは、Find Delay ブロックを使用して sig1sig2 の間の遅延を計算します。上のパスの Delay ブロックは、計算された信号遅延を入力し、その遅延を基準信号 sig1 に追加します。

  • 下のパスでは、Delay ブロックを使用して固定の遅延を基準信号に追加します。

  • 固定の遅延がある信号と計算された遅延がある信号を比較して、両方の信号に同じ遅延が適用されたことを示します。

遅延信号の比較

下の遅延パスと上の遅延パスで出力された信号間の差分をプロットします。プロットされた遅延の差分がゼロの場合、両方の信号に同じ遅延が適用されていることを示します。計算された遅延はシミュレーションの実行後に表示されます。

The delay computed by the |Find Delay| block is 7.

2 つの信号のサイズとレートが異なる場合、合計遅延が基準信号のフレーム長より小さい限り、遅延は分解可能です。Find Delay ブロックがマルチレート信号間の遅延を計算します。Delay ブロックを使用して信号の遅延と整列を行います。バッファー出力サイズを調整して分解可能な遅延と分解不可能な遅延を示します。

モデルの構造

このモデルは、並列信号パスを使用して、2 つの信号 sig1sig2 間の遅延のサンプル数を計算および比較します。

  • 上のパスでは、7 にバッファーの値を加えた 99 サンプルの固定の遅延が基準信号に追加されます。

  • 下のパスでは、Find Delay ブロックが 2 つの信号間の遅延を計算します。この遅延の量が、Delay (Simulink)ブロックを使用して、遅延のない信号 sig1 に適用されます。

ランダム整数データは、基準信号 sig1 および遅延信号 sig2 として機能する 100 サンプルのフレームのデータ ストリームを提供します。バッファーされた信号長に離散遅延長を加えた長さが基準信号のフレーム長を超えない限り、基準信号と遅延信号間の遅延は分解可能です。

このモデルを実行すると、Find Delay ブロックによって計算された遅延が表示されます。固定の遅延が追加された基準信号と計算された遅延が追加された基準信号の差がプロットされます。プロットされた遅延の差分がゼロの場合、Find Delay ブロックは入力信号の固定の遅延と一致します。

出力バッファー サイズを 92 に設定した場合の遅延信号の比較

固定の遅延の信号と Delay ブロックからの出力の差をプロットします。プロットされた遅延の差分がゼロで安定している場合、両方の信号に同じ遅延が適用されていることを示します。

バッファーを 92 に設定し、バッファーされた信号に 7 サンプルの遅延を追加すると、信号遅延の合計が 99 サンプルになります。合計遅延が基準信号のフレーム長である 100 サンプルより小さいため、遅延は分解可能です。

The total delay computed by the |Find Delay| block is 99.

出力バッファー サイズを 94 に設定した場合の遅延信号の比較

固定の遅延の信号と Delay ブロックからの出力の差をプロットします。プロットされた遅延の差分がシミュレーション全体で非ゼロを維持している場合、2 つの信号間の遅延の差分が分解不可能であることを示します。

バッファーを 94 に設定し、バッファーされた信号に 7 サンプルの遅延を追加すると、信号遅延の合計が 101 サンプルになります。合計遅延が基準信号のフレーム長である 100 サンプルを超えているため、遅延は分解不可能です。

The total delay computed by the |Find Delay| block is 101.

この例では、Find Delayブロックを使用して 2 つの信号間の遅延を判定する方法を示します。ここでは、Calculate and Specify Receive Delay for Error Rate Blockの例と同じパンクチャド符号化モデルを使用できます。

遅延ブロックの作成と追加

パンクチャド符号化モデルに、2 つの Find Delay ブロックを追加します。1 つは Inner Error Rate ブロックの受信遅延を判定するためのもので、もう 1 つは Outer Error Rate ブロックの受信遅延を判定するためのものです。

モデルのシミュレーション

次に、モデルを実行し、内部および外部の受信遅延を表示します。

モデルをシミュレートします。Find Delay ブロックの表示を見ると、Calculate and Specify Receive Delay for Error Rate Blockで計算した受信遅延と値が同じであることがわかります。

端子

入力

すべて展開する

元の基準信号。ベクトルまたは行列として指定します。sRefsDel の次元とサンプル時間は一致しなければなりません。

データ型: double

遅延した、または歪んだバージョンの基準信号。ベクトルまたは行列として指定します。sRefsDel の次元とサンプル時間は一致しなければなりません。

データ型: double

出力

すべて展開する

遅延出力。sRef 入力と sDel 入力との間の遅延の信号サンプル数を示すスカラーまたはベクトルとして返されます。

行列入力の場合、この出力は行ベクトルであり、入力行列の各チャネルの遅延を個別に検出します。

遅延出力は、[Correlation window length (samples)] パラメーターの値よりも小さい非負の整数です。

データ型: double

遅延フラグ。0 または 1 として返されます。chg 端子は、前のサンプルで計算された遅延から変更がある場合 1 を出力し、変更がない場合 0 を出力します。

依存関係

この端子を有効にするには、["change signal" 出力端子を含める] パラメーターを選択します。

データ型: Boolean

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

ブロックが 2 つの信号の相互相関を計算するために使用するサンプルの数。相関ウィンドウを長くすると、計算された遅延の信頼性は高まりますが、遅延を計算する処理時間が長くなります。

chg 出力端子を追加するには、このパラメーターを選択します。chg 端子は、前のサンプルで計算された遅延から変更がある場合 1 を出力し、変更がない場合 0 を出力します。

遅延計算の停止基準を設定する場合に選択します。選択した場合、ブロックは、[更新を無効にする定遅延出力の数] パラメーターで指定された回数だけ同じ遅延値が計算された後、遅延の更新を停止します。

この回数だけ同じ遅延値が計算された後に更新を無効にします。正の整数として指定します。このパラメーターの値は、ブロックが更新を停止する前に同じ遅延を何回計算しなければならないかを示します。

依存関係

このパラメーターを有効にするには、[更新の繰り返しを無効にする] パラメーターを選択します。

ブロックの特性

データ型

double | enumerated | integera | single

多次元信号

なし

可変サイズの信号

なし

a 符号付き整数のみ。

詳細

すべて展開する

ヒント

  • [Correlation window length (samples)] パラメーターの値を十分に大きく設定して、計算された遅延が最終的に一定の値で安定するようにします。このようにすれば、オプションの chg 出力端子からの値が一定の値 0 で安定します。

    • 計算された遅延が一定でない場合は、相関ウィンドウ長の値を増やしてください。

    • 相関ウィンドウ長の値が増えたため、それがシミュレーション時間を超える場合は、それに応じてシミュレーション時間も長くする必要があります。

    • 遅延をおおまかに推定できる場合は、[Correlation window length] はその値の 4 倍で安定した遅延推定値を生成します。

  • 2 つの信号間の相互相関の範囲が広い場合は、[Correlation window length (samples)] パラメーターの値を予期される遅延よりもはるかに大きくする必要があります。そうしないと、アルゴリズムは誤った値で安定する可能性があります。たとえば、CPM 信号が広範囲の自己相関の場合、この遅延した信号には広範囲の相互相関があります。この場合、[Correlation window length (samples)] 値を予想される遅延値よりも大幅に大きくしてください。

  • ブロックが [Correlation window length (samples)] パラメーターの値の 75% よりも大きい遅延を計算する場合、信号 sRef はおそらく、信号 sDel に対して遅延します。この場合、信号線を 2 つの入力端子につながるように切り替えてください。

  • 指定されたサンプル数だけ同じ遅延値が計算された後にブロックが遅延の更新を停止するように構成するには、[更新の繰り返しを無効にする] を選択し、[更新を無効にする定遅延出力の数] フィールドに正の整数を入力します。たとえば、[更新を無効にする定遅延出力の数]20 に設定した場合、ブロックは同じ値を 20 回連続して計算した後、遅延の再計算と更新を停止します。更新の繰り返しを無効にすると、目標の定常遅延に達した後、シミュレーションの実行が高速化されます。

アルゴリズム

Find Delay ブロックは、1 番目の信号と時間シフトした 2 番目の信号の相互相関を計算し、相互相関が最大となるインデックスを検出することで、遅延を求めます。

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入

参考

ブロック

関数

トピック