入力シーケンスXおよびYの相互相関を計算します。XおよびY入力にデータを配線して自動的に使用する多態性インスタンスを決定するか、インスタンスを手動で選択します。


icon

入力/出力

  • c1ddbl.png X

    Xは、最初の入力シーケンスです。

  • c1ddbl.png Y

    Yは、2番目の入力シーケンスです。

  • cenum.png アルゴリズム

    アルゴリズムは相関方法を指定します。アルゴリズムdirectに設定されている場合、このVIはダイレクトフォームの線形相関を使用して、相互相関を計算します。アルゴリズムfrequency domainに設定されている場合、このVIはFFTベースの技術を使用して、コンボリューションを計算します。

    Xと Yが 小さい場合、 direct 方式が一般的に速い。 Xと Yが 大きい場合、 frequency domain 方式が一般的に速い。また、2つの方法にはわずかな数値的な差異があります。

    0
    direct
    1
    frequency domain
    (デフォルト)
  • cenum.png 正規化

    正規化は、XYの間の相互相関を計算するのに使用する正規化メソッドを指定します。

    0
    none
    (デフォルト)
    1
    unbiased
    2
    biased
  • i1ddbl.png Rxy

    RxyXYの相互相関です。

  • ii32.png エラー

    エラーは、VIからのエラーまたは警告を返します。エラーは「エラーコードからエラークラスタ」VIに配線して、エラーコードまたは警告をエラークラスタに変換できます。

  • 1D相互相関

    シーケンスx(t)およびy(t)の相互相関Rxy(t)は、次の式で定義されます。

    ここで、記号⊖は相関を表す。

    「相互相関」VIの個別実行は以下のようになります。hは指標付けが負になり得るシーケンスを表し、Nは入力シーケンスXの要素数、MはシーケンスYの要素数とします。次の式で示されるとおり、その範囲外にあるXおよびYの指標付けされた要素が0であることを前提とします。

    xj = 0, j < 0 または jN

    および

    yj = 0、 j < 0または jMである。

    そして、「自己相関」VIは、次の式によってhの要素を求めます。

    ここで、j = –(N–1), –(N–2), …, –1, 0, 1, …, (M–2), (M–1)

    出力シーケンスRxyの要素は、次の式によってシーケンスhの要素と関連付けられます。

    Rxyi = hi – (N–1)

    ここで、i = 0, 1, 2, … , N+M–2

    LabVIEW配列は負の数値で指標付けできないため、t = 0のとき対応する相互相関は、出力シーケンスRxyN番目の要素になります。したがって、Rxyは、「相互相関」VIが指標付けをN回シフトした相互値を表します。

    以下のブロックダイアグラムは、「相互相関」VIを指標付けする1つの方法を示します。

    以下のグラフは、上記のブロックダイアグラムの結果です。

    相互相関の計算の精度を向上させるには、正規化が必要な場合もあります。このVIは、バイアスのある正規化とバイアスのない正規化を行います。

    1. 偏った正規化

      正規化に 偏りがある場合、LabVIEWは以下のように偏った正規化を適用します:

      Rxy(バイアスあり)j =

      for j = 0, 1, 2, ... ,M+N-2

      ここで、Rxy は正規化なしの xy 間の相互相関です。

    2. 不偏正規化

      正規化が 不偏である場合、LabVIEWは以下のように不偏正規化を適用します:

      Rxy(バイアスなし)j =

      for j = 0, 1, 2, ... ,M+N-2

      ここで、 Rxy は正規化しない xy の相互相関である。 f(j) は: