计算输入序列XY的卷积。通过连线数据至xy输入端可确定要使用的多态实例,也可手动选择实例。


icon

输入/输出

  • c1dcdb.png X

    X是第一个复数输入序列。

  • c1dcdb.png Y

    Y是第二个复数输入序列。

  • cenum.png 算法

    算法指定使用的卷积方法。算法的值为direct时,VI使用线性卷积的direct方法计算卷积。算法frequency domain时,VI使用基于FFT的方法计算卷积。

    如果 XY 较小, direct 方法通常更快。如果 XY 较大, frequency domain 方法通常更快。此外,两个方法数值上存在微小的差异。

    0
    direct
    1
    frequency domain
    (默认)
  • i1dcdb.png X * Y

    X * YXY的卷积。

  • ii32.png 错误

    错误返回VI的任何错误或警告。将错误连接至错误代码至错误簇转换VI,可将错误代码或警告转换为错误簇。

  • 一维卷积

    信号x(t)和y(t)的线性卷积定义如下:

    其中,符号*表示线性卷积。

    算法direct,VI使用下列等式进行离散线性卷积,获取X * Y的元素。

    i = 0, 1, 2, … , M+N–2

    hX * Y

    NX中元素的数量、 MY中的元素数、 XY 的范围之外的索引元素等于零,如以下关系所示:

    xj =0, j <0,或 jN

    yj =0, j <0,或 jM

    算法frequency domain,VI按照下列步骤计算线性卷积:

    • 首先,按照下列公式,VI在XY的结尾填充0,使其长度为M + N – 1,如下等式所示:
    • 然后,VI按照下列公式对X'和Y'进行傅立叶变换。
    X'(f) = FFT(x') Y'(f) = FFT(y')
    • 最后,VI将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