主要内容

Convolution

两个输入项的卷积

  • Convolution block

库:
DSP System Toolbox / Signal Operations

描述

Convolution 模块将 N 维输入数组 u 的第一个维度与 N 维输入数组 v 的第一个维度进行卷积。该模块还可以将列向量与 N 维输入数组的第一个维度进行卷积。

卷积的一般公式为:

y(k)=nu(nk)v(k)

可使用以下两个 DSP System Toolbox™ 模块对两个输入信号进行卷积:

Convolution 模块假设 uv 的所有元素在每个 Simulink® 时间步都可用,并在每个时间步计算整个卷积。

如果 v 的所有元素在每个时间步都可用,但 u 是在仿真期生命周期内出现的序列,则可以使用 Discrete FIR Filter 模块对信号进行卷积。使用 Discrete FIR Filter 模块时,仅计算一次卷积。

要确定哪个模块最适合您的需要,请参阅选择合适的卷积模块

示例

端口

输入

全部展开

第一个输入 u 指定为标量、向量、矩阵或 N-D 数组。当两个输入都是实数时,输出也是实数。当一个输入或两个输入是复数时,输出也是复数。除第一个维度外,两个输入的所有输入端口维度都必须具有相同的值。

当索引超出其有效范围时,输入 uv 为零。

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
复数支持:

第二个输入 v,指定为标量、向量、矩阵或 N 维数组。当两个输入都是实数时,输出也是实数。当一个输入或两个输入是复数时,输出也是复数。除第一个维度外,两个输入的所有输入端口维度都必须具有相同的值。

当索引超出其有效范围时,输入 uv 为零。

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
复数支持:

输出

全部展开

卷积信号,根据输入信号以标量、向量、矩阵或 N-D 数组形式返回。当两个输入都是实数时,输出也是实数。当一个输入或两个输入是复数时,输出也是复数。当索引超出其有效范围时,输入 uv 为零。有关卷积信号如何根据输入而变化的更多详细信息,请参阅详细信息

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
复数支持:

参数

全部展开

“主要”选项卡

设置模块计算卷积的域:

  • 时间 - 模块在时域中计算,这样可以最小化内存使用量。

  • 频率 - 模块在频域中计算,这可能比在时域中计算需要的计算次数更少,具体取决于输入长度。

  • 最快 - 模块在计算次数最少的域中进行计算。

仅在时域中支持定点信号。输入定点信号时,请确保将计算域参数设置为时间

“数据类型”选项卡

将定点运算的舍入模式指定为以下模式之一:

  • 向下

  • 向上

  • 收敛

  • 最邻近值

  • 舍入

  • 最简

有关更多详细信息,请参阅舍入模式

注意

当满足以下所有条件时,舍入模式对整数溢出进行饱和处理参数对数值结果没有影响:

  • 乘积输出数据类型为继承:通过内部规则继承

  • 累加器数据类型为继承:通过内部规则继承

  • 输出数据类型为继承:与累加器相同

使用这些数据类型设置时,模块以全精度模式工作。

选中此参数时,模块会对其定点运算的结果进行饱和处理。清除此参数时,模块会对其定点运算的结果进行绕回处理。有关饱和绕回的详细信息,请参阅定点运算的溢出处理

注意

当满足以下所有条件时,舍入模式对整数溢出进行饱和处理参数对数值结果没有影响:

  • 乘积输出数据类型为继承:通过内部规则继承

  • 累加器数据类型为继承:通过内部规则继承

  • 输出数据类型为继承:与累加器相同

使用这些数据类型设置时,模块以全精度模式工作。

乘积输出指定 Convolution 模块中乘积运算的输出的数据类型。

  • 继承:通过内部规则继承 - 模块根据内部规则继承乘积输出数据类型。有关此规则的详细信息,请参阅Inherit via Internal Rule

  • 继承:与第一个输入相同 - 模块指定乘积输出数据类型与第一个输入数据类型相同。

  • fixdt([],16,0) - 模块指定一种自动确定符号的二进制小数点定标的定点数据类型,其字长为 16 位,小数长度为 0。

您也可以使用数据类型助手来设置乘积输出数据类型。要使用该助手,请点击显示数据类型助手按钮

有关数据类型助手的详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

有关乘积输出数据类型的详细信息,请参阅Multiplication Data Types定点数据类型

累加器指定 Convolution 模块中累加运算的输出的数据类型。

  • 继承:通过内部规则继承 - 模块根据内部规则继承累加器数据类型。有关此规则的详细信息,请参阅Inherit via Internal Rule

  • 继承:与第一个输入相同 - 模块指定累加器数据类型与第一个输入数据类型相同。

  • 继承:与乘积输出相同 - 模块指定累加器数据类型与乘积输出数据类型相同。

  • fixdt([],16,0) - 模块指定一种自动确定符号的二进制小数点定标的定点数据类型,其字长为 16 位,小数长度为 0。

您也可以使用数据类型助手来设置累加器数据类型。要使用该助手,请点击显示数据类型助手按钮

有关数据类型助手的详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

有关如何在此模块中使用累加器数据类型的图示,请参阅定点数据类型

输出指定 Convolution 模块的输出的数据类型。

  • 继承:与累加器相同 - 模块指定输出数据类型与累加器数据类型相同。

  • 继承:与第一个输入相同 - 模块指定输出数据类型与第一个输入数据类型相同。

  • 继承:与乘积输出相同 - 模块指定输出数据类型与乘积输出数据类型相同。

  • fixdt([],16,0) - 模块指定一种自动确定符号的二进制小数点定标的定点数据类型,其字长为 16 位,小数长度为 0。

您也可以使用数据类型助手来设置输出数据类型。要使用该助手,请点击显示数据类型助手按钮

有关详细信息,请参阅控制信号的数据类型 (Simulink)

有关输出数据类型的详细信息,请参阅定点数据类型

指定模块可以输出的最小值。Simulink 使用此最小值来执行:

  • 仿真范围检查。请参阅指定信号范围 (Simulink)

  • 定点数据类型的自动定标。

指定模块可以输出的最大值。Simulink 使用此最大值来执行:

  • 仿真范围检查。请参阅指定信号范围 (Simulink)

  • 定点数据类型的自动定标。

选择此参数可防止定点工具覆盖您在“模块”对话框中指定的数据类型。

模块特性

数据类型

double | fixed point | integer | single

直接馈通

no

多维信号

no

可变大小信号

no

过零检测

no

详细信息

全部展开

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2006a 之前推出

另请参阅

函数

模块