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


icon

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) は:

2D相互相関

「相互相関」VIは、以下のように、2次元の相互相関を計算します。

ここで、i = –(M1–1), … , –1, 0, 1, … , (M2–1)およびj = –(N1–1), … , –1, 0, 1, … , (N2–1)です。

また、M1 は行列 X の行数です。

N 1は行列 Xの列数M 2は行列 Yの行数N 2は行列 Yの数、 Xと Yの 範囲外の添字要素は、以下の関係に示すように、0に等しくなる:

x(m,n)=0、m<0または mM1 またはn<0または nN1

および

y(m,n) = 0, m < 0 または m≥ M2 または n < 0 または n≥ N2.

出力行列Rxyの要素は、以下のようにhの要素と関連付けられます。

i = 0, 1, 2, … , M1+M2–2 および j = 0, 1, 2, … , N1+N2–2 の場合、Rxy(I,j) = h(i–(M1–1), j–(N1–1))