Simulink中,当Gain模块
的增益设为-1时,如果输出的数据类型和输入保持一致,可以认为和Unary Minus模块
是等价的。它们:
- 都可以将输入信号反转(乘以 -1)
- 对于标量或简单向量信号,它们产生的输出是完全一样的
- 都支持标量、向量、矩阵输入,只要维度兼容
Gain模块和Unary Minus模块有一些细微的差别,例如:
Unary Minus模块专用于取负操作,语义更清晰,增益无法调整(总是 -1)。
Gain 模块是通用增益放大器,可以将增益设为任意值,包括 -1。
Unary Minus模块的输出数据类型与输入数据类型相同。它不支持数据类型转换,输出的数据类型始终与输入的数据类型一致。
Gain 模块允许指定输出数据类型,当输入和输出数据类型不一致时,Gain 模块会进行数据类型转换。
注意Gain模块的数据类型转换是在乘法运算之后再进行的,也就是说输入数据类型为in8时,当输入-128,将输出数据类型设为int16,Gain模块依然会面临Unary Minus模块同样的整数类型溢出问题。
换个说法,当Gain模块的增益为-1时,如果输入数据类型为无符号类型,仿真和生成代码时都会触发报错。