一维卷积(CDB)
- 更新时间2025-07-30
- 阅读时长4分钟
计算输入序列X和Y的卷积。通过连线数据至x和y输入端可确定要使用的多态实例,也可手动选择实例。

输入/输出
X
—
X是第一个复数输入序列。
Y
—
Y是第二个复数输入序列。
算法
—
算法指定使用的卷积方法。算法的值为direct时,VI使用线性卷积的direct方法计算卷积。算法为frequency domain时,VI使用基于FFT的方法计算卷积。 如果 X 和 Y 较小, direct 方法通常更快。如果 X 和 Y 较大, frequency domain 方法通常更快。此外,两个方法数值上存在微小的差异。
X * Y
—
X * Y是X和Y的卷积。
错误
—
错误返回VI的任何错误或警告。将错误连接至错误代码至错误簇转换VI,可将错误代码或警告转换为错误簇。 |
一维卷积
信号x(t)和y(t)的线性卷积定义如下:

其中,符号*表示线性卷积。
如算法为direct,VI使用下列等式进行离散线性卷积,获取X * Y的元素。

i = 0, 1, 2, … , M+N–2
h为X * Y
N 是 X中元素的数量、 M 是 Y中的元素数、 在 X 和 Y 的范围之外的索引元素等于零,如以下关系所示:xj =0, j <0,或 j ≥ N
且
yj =0, j <0,或 j ≥ M。
如算法为frequency domain,VI按照下列步骤计算线性卷积:
- 首先,按照下列公式,VI在X和Y的结尾填充0,使其长度为M + N – 1,如下等式所示:

- 然后,VI按照下列公式对X'和Y'进行傅立叶变换。
- 最后,VI将X'(f)乘以Y'(f),并计算乘积的反傅立叶变换。结果为X和Y的线性卷积,如下列等式所示。
该VI计算线性卷积,而不是圆周卷积。然而,由于 x(t) * y(t)N ⇔ X(f)Y(f)是一个傅里叶变换对,其中 x(t) * y(t)N 是 x(t)和 y(t)的循环卷积,你可以创建一个循环卷积的版本。使用下图所示的程序框图计算圆周卷积。

范例
请参考LabVIEW附带的下列范例文件。
- labview\examples\Signal Processing\Signal Operation\Edge Detection with 2D Convolution.vi
X
—
算法
—
X * Y
—
错误
—