入力シーケンスXYのコンボリューションを計算します。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
    (デフォルト)
  • i1ddbl.png X * Y

    X * YXYのコンボリュ-ションです。

  • ii32.png エラー

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

  • 1Dコンボリューション

    信号x(t)およびy(t)の線形コンボリューションは以下のように定義されます。

    ここで、記号*は線形コンボリューションを意味します。

    アルゴリズムdirectの場合、VIは次の公式を使用して線形コンボリューションを個々に行い、X * Yの要素を取得します。

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

    また、hX * Y です。

    Nは Xの要素数です、 Mは Yの要素数です、 XY の 範囲外の被指数要素は,以下の関係に示すように,0 に等しくなる:

    xj = 0, j < 0, または j≥N

    および

    yj =0、 j <0、または jMとする。

    アルゴリズムfrequency domainの場合、このVIは次の手順を順に実行して線形コンボリューションを計算します。

    • まず、以下の式で示すように、XYの長さがM + N – 1となるように末尾を0でパッドします。
    • 次に、以下の式に従って、X'とY'のフーリエ変換を実行します。
    X'(f) = FFT(x') Y'(f)=FFT(y')である。
    • さらに、X'(f)にY'(f)を乗算して、積の逆フーリエ変換を計算します。その結果が以下の式で示すようにXYの線形コンボリューションです。
    X * Y = IFFT(X'(f) · Y'(f))

    したがって、このVIは線形コンボリューションでなく巡回コンボリューションを計算します。しかし、 x(t) * y(t)NX(f)Y(f) はフーリエ変換の組で、 x(t) * y(t)Nx(t) と y(t) の循環畳み込みなので、畳み込みの循環バージョンを作ることができる。巡回コンボリューションの計算には、以下の図のようなブロックダイアグラムを使用できます。

    サンプルプログラム

    LabVIEWに含まれている以下のサンプルファイルを参照してください。

    • labview\examples\Signal Processing\Signal Operation\Edge Detection with 2D Convolution.vi