Engee 文档

Convolution

调节两个输入数据。

类型: Convolution

图书馆中的路径:

/Signal Operations/Signal Operations/Convolution

说明

卷积*块执行多维输入数组 的第一维度与多维输入数组 的第一维度的卷积。该程序块还可以将矢量列与多维输入数组的第一维度进行卷积。

卷积的一般公式如下:

Engee*数字信号处理*库的两个模块适用于两个输入信号的卷积:

  • 卷积

  • 离散 FIR 滤波器

卷积*块假定 的所有元素在每个时间步都可用,并在每个时间步计算整个卷积。

离散 FIR 滤波器*块可用于在 的所有元素在每个时间步都可用,但 是在整个模拟时间内到达的序列的情况下对信号进行卷积。使用*离散 FIR 滤波器*块时,卷积只计算一次。

端口

输入

端口_1 - 第一个输入信号
标量"|"向量"|"矩阵"|"多维数组

第一个输入信号 ,可以是标量、矢量、矩阵或多维数组。

如果两个输入均为实数,则输出信号为实数。如果一个或两个输入端都是复数,则输出信号为复数。除第一个输入端口外,两个输入端口的所有输入维度必须具有相同的值。

如果输入 的索引超出其有效范围,则其值为零。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

*支持复数:是

端口 2 - 第二个输入信号
标量"|"向量"|"矩阵"|"多维数组

第二个输入信号 ,可以是标量、矢量、矩阵或多维数组。

如果两个输入都是实数,输出信号也是实数。如果一个或两个输入端都是复数,则输出信号为复数。除第一个输入端口外,两个输入端口的所有输入尺寸必须具有相同的值。

如果输入 的索引超出其有效范围,则其值为零。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

*支持复数:是

输出

端口_1 - 输出信号
标量"|"向量"|"矩阵"|"多维数组

标量、矢量、矩阵或多维数组的折叠信号。

如果两个输入都是实数,输出信号就是实数。如果一个或两个输入均为复数,则输出信号为复数。

数据类型: Float64

*支持复数:是

参数

主要参数

计算域 - 计算域
时间(默认) | 频率 | 最快

设置卷积计算域:

时间"--程序块在时域中计算,这样可以最大限度地减少内存使用量。

定点信号只支持时域。输入定点信号时,确保*计算域*参数设置为 "时间"。

更多信息

选择合适的卷积单元

问题 答案 推荐区块

您要执行多少次卷积

多次卷积,每个时间步长一次

  • 块 *卷积

在整个模拟期间进行一次卷积

*卷积块

  • 区块 *离散 FIR 滤波器 *

输入序列的长度是多少

两个序列的长度都是有限的

  • 块 *卷积

  • 块 *离散 FIR 滤波器 *

一个序列有无限长(非预定义)的长度

  • 离散 FIR 滤波器*块

有多少输入是标量流

  • 块 *卷积

  • 块 *离散 FIR 滤波器 *

一个或两个

*缓冲区*块,然后是*卷积*块

  • *离散 FIR 滤波器*块

转换两个多维数组

卷积*块总是计算两个多维输入数组沿第一维的卷积。当两个输入数组都是多维数组时,它们的第一个维度的大小可能不同,但所有其他维度的大小必须相同。例如,如果 是一个 Mu by N by P 的数组,而 是一个 Mv by N by P 的数组,那么输出就是一个 (Mu+Mv-1) by N by P 的数组。

如果 是 N 上的矩阵 Mu 是 N 上的矩阵 Mv,则 的输出是 N 上的矩阵 (Mu+Mv-1),其第 j 列由以下元素组成

如果输入 的索引超出其范围,则它们的值为零。如果两个输入都是实数,输出也是实数。如果一个或两个输入均为复数,则输出为复数向量。

多维数组的列向量卷积

如果一个输入是列向量,另一个输入是多维数组,程序块会独立地将向量与多维数组的第一个维度卷积。例如,如果 是乘 1 的列向量 Mu 是乘 N 的矩阵 Mv,则输出是乘 N 的矩阵 (Mu+Mv-1),其第 j 列由这些元素组成:

两个列向量的卷积

卷积*程序块也接受两个列向量作为输入。如果 是长度分别为 Mu 和 Mv 的列向量,那么 Convolution 程序块将对长度分别为 Mu 和 Mv 的向量进行卷积,使得:

输出为长度为 1 的列向量 (Mu+Mv-1)。