1D相互相関 (DBL)
- 更新日2025-07-30
- 5分で読める
入力シーケンスXおよびYの相互相関を計算します。XおよびY入力にデータを配線して自動的に使用する多態性インスタンスを決定するか、インスタンスを手動で選択します。

入力/出力
X
—
Xは、最初の入力シーケンスです。
Y
—
Yは、2番目の入力シーケンスです。
アルゴリズム
—
アルゴリズムは相関方法を指定します。アルゴリズムがdirectに設定されている場合、このVIはダイレクトフォームの線形相関を使用して、相互相関を計算します。アルゴリズムがfrequency domainに設定されている場合、このVIはFFTベースの技術を使用して、コンボリューションを計算します。 Xと Yが 小さい場合、 direct 方式が一般的に速い。 Xと Yが 大きい場合、 frequency domain 方式が一般的に速い。また、2つの方法にはわずかな数値的な差異があります。
正規化
—
正規化は、XとYの間の相互相関を計算するのに使用する正規化メソッドを指定します。
Rxy
—
RxyはXとYの相互相関です。
エラー
—
エラーは、VIからのエラーまたは警告を返します。エラーは「エラーコードからエラークラスタ」VIに配線して、エラーコードまたは警告をエラークラスタに変換できます。 |
1D相互相関
シーケンスx(t)およびy(t)の相互相関Rxy(t)は、次の式で定義されます。

ここで、記号⊖は相関を表す。
「相互相関」VIの個別実行は以下のようになります。hは指標付けが負になり得るシーケンスを表し、Nは入力シーケンスXの要素数、MはシーケンスYの要素数とします。次の式で示されるとおり、その範囲外にあるXおよびYの指標付けされた要素が0であることを前提とします。
xj = 0, j < 0 または j ≥ Nおよび
yj = 0、 j < 0または j ≧ Mである。そして、「自己相関」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のとき対応する相互相関は、出力シーケンスRxyのN番目の要素になります。したがって、Rxyは、「相互相関」VIが指標付けをN回シフトした相互値を表します。
以下のブロックダイアグラムは、「相互相関」VIを指標付けする1つの方法を示します。

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

相互相関の計算の精度を向上させるには、正規化が必要な場合もあります。このVIは、バイアスのある正規化とバイアスのない正規化を行います。
-
偏った正規化
正規化に 偏りがある場合、LabVIEWは以下のように偏った正規化を適用します:
Rxy(バイアスあり)j =
for j = 0, 1, 2, ... ,M+N-2
ここで、Rxy は正規化なしの x と y 間の相互相関です。
-
不偏正規化
正規化が 不偏である場合、LabVIEWは以下のように不偏正規化を適用します:
Rxy(バイアスなし)j =
for j = 0, 1, 2, ... ,M+N-2
ここで、 Rxy は正規化しない x と y の相互相関である。 f(j) は:

X
—
アルゴリズム
—
Rxy
—
エラー
—