Main Content

Dot Product

生成两个向量的点积

  • Dot Product block

库:
Simulink / Math Operations
HDL Coder / Math Operations

描述

Dot Product 模块生成输入向量的点积。标量输出 y 等于 MATLAB® 运算

y = sum(conj(u1) .* u2 ) 

其中 u1u2 表示输入向量。输入可以是向量、列向量(单列矩阵)或标量。如果两个输入都是向量或者都是列向量,它们的长度必须相同。如果 u1u2 都是列向量,模块将输出 MATLAB 表达式 u1'*u2 的等效项。

输入向量的元素可以是实数值或复数值信号。输出的信号类型(复信号或实信号)取决于输入的信号类型。

输入 1输入 2输出

实信号

实数

实数

实数

复数

复数

复信号

实信号

复数

复数

复数

复信号

端口

输入

全部展开

表示点积计算的第一个操作数的信号。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

代表点积计算的第二个操作数的信号。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

输出

全部展开

由两个输入信号的点积计算得到的输出信号。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

参数

全部展开

清除此复选框可使各个输入具有不同数据类型。

编程用法

模块参数InputSameDT
类型:字符向量
'on' | 'off'
默认值'on'

Simulink® 检查的输出范围的下限值。

Simulink 使用最小值执行下列操作:

注意

输出最小值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。

编程用法

模块参数OutMin
类型:字符向量
'[ ]'| 标量
默认值'[ ]'

将 Simulink 检查的输出范围的上限值指定为有限的双精度实数标量值。

注意

如果您指定总线对象作为此模块的数据类型,请不要为模块的总线数据设置最大值。因为 Simulink 会忽略此设置。但请为指定作为数据类型的总线对象的总线元素设置最大值。有关总线元素的“最大值”参数的信息,请参阅 Simulink.BusElement

Simulink 使用最大值执行下列操作:

注意

输出最大值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。

编程用法

模块参数OutMax
类型:字符向量
:标量
默认值'[ ]'

为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType。有关详细信息,请参阅 控制信号的数据类型

当您选择继承的选项时,模块的行为如下所示:

  • 继承: 从内部规则继承 - Simulink 在考虑嵌入式目标硬件的属性的同时,会选择相应的数据类型来平衡数值准确性、性能和生成的代码大小。如果更改了嵌入式目标的设置,则依内部规则选择的数据类型可能会发生变化。例如,如果该模块将 int8 类型的输入乘以 int16 的增益,并且将 ASIC/FPGA 指定为目标硬件类型,则输出数据类型为 sfix24。如果指定未指定(假定通用 32 位)(即通用 32 位微处理器)为目标硬件,则输出数据类型为 int32。如果目标微处理器不能提供适应输出范围的字长,Simulink 软件将在诊断查看器中显示错误。

    有时软件不能同时满足优化代码效率和保证数值准确性这两个需求。如果内部规则不能满足您对数值准确性或性能的特定需求,请使用下列选项之一:

    • 显式指定输出数据类型。

    • 使用简单的选项继承: 与输入相同

    • 显式指定默认数据类型(例如 fixdt(1,32,16)),然后使用定点工具为您的模型提供数据类型建议。有关详细信息,请参阅 fxptdlg (Fixed-Point Designer)

    • 要指定您自己的继承规则,请使用继承: 通过反向传播继承,然后使用 Data Type Propagation 模块。有关如何使用此模块的示例说明,请参阅 Signal Attributes 模块库中的 Data Type Propagation Examples 模块。

    注意

    当输入是小于单精度的浮点数据类型时,Inherit: Inherit via internal rule 取决于 Inherit floating-point output type smaller than single precision 配置参数的设置。当对数据类型进行编码所需的位数小于对单精度数据类型编码所需的 32 位时,数据类型小于单精度。例如,halfint16 小于单精度。

  • Inherit: 通过反向传播继承 - 使用驱动模块的数据类型。

  • 继承: Same as first input - 使用第一个输入信号的数据类型。

编程用法

模块参数OutDataTypeStr
类型:字符向量
'Inherit: Inherit via internal rule | 'Inherit: Same as first input' | 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
默认值'Inherit: Inherit via internal rule'

选中此选项将锁定此模块的输出数据类型设置,从而防止通过定点工具和定点顾问进行更改。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)

编程用法

模块参数LockScale
类型:字符向量
'off' | 'on'
默认值'off'

指定定点运算的舍入模式。有关详细信息,请参阅舍入 (Fixed-Point Designer)

模块参数始终舍入到最邻近的可表示值。要控制模块参数的舍入方法,请在封装字段中使用 MATLAB 舍入函数输入表达式。

编程用法

模块参数RndMeth
类型:字符向量
值:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
默认值:'Floor'

指定对溢出是进行饱和处理还是绕回处理。

  • off - 溢出将绕回到数据类型可以表示的合适值。

    例如,数字 130 不适合一个有符号的 8 位整数,因此绕回 -126。

  • on - 将溢出饱和处理为数据类型能够表示的最小值或最大值。

    例如,一个有符号的 8 位整数的溢出可以饱和处理为 -128 或 127。

提示

  • 如果您的模型存在可能的溢出,而您希望在生成的代码中进行显式饱和保护,请考虑选中此复选框。

  • 如果您希望优化生成的代码的效率,请考虑清除此复选框。

    清除此复选框还可以帮助您避免过度地指定信号超出范围时的处理方式。有关详细信息,请参阅信号范围错误故障排除

  • 如果选中此复选框,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。

  • 一般情况下,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。

编程用法

模块参数SaturateOnIntegerOverflow
类型:字符向量
值:'off' | 'on'
默认值:'off'

模块特性

数据类型

Boolean | double | fixed point | half | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

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

版本历史记录

在 R2006a 之前推出