# Abs
输出输入信号的绝对值
- 库: Sysblock / MathOperation
# 描述
Abs 模块输出输入信号的绝对值。
对于有符号整数数据类型,最小负值的绝对值无法用该数据类型表示。在这种情况下,由对整数溢出进行饱和处理复选框控制模块的行为。
| 如果您... | 模块将... | 而且... |
|---|---|---|
| 选中此复选框 | 饱和处理为该整数数据类型的最大正值 | 对于 8 位有符号整数,-128 对应为 127。对于 16 位有符号整数,-32768 对应为 32767。对于 32 位有符号整数,-2147483648 对应为 2147483647。 |
| 不选中此复选框 | 绕回到该整数数据类型的最小负值 | 对于 8 位有符号整数,-128 依然是 -128。对于 16 位有符号整数,-32768 依然是 -32768。对于 32 位有符号整数,-2147483648 依然是 -2147483648。 |
Abs 模块支持过零检测。但是,当您在对话框中选择启用过零检测时,该模块不会在定点工具中报告仿真最小值或最大值。如果您要使用定点工具来分析模型,请先对模型中的所有 Abs 模块禁用过零检测。
# 示例
对于一个正弦波的绝对值信号的输出。
参考示例模型
。
# 端口
# 输入
u — 输入信号标量 | 向量
绝对值模块的输入信号。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
# 输出
y — 绝对值输出信号标量 | 向量
输入信号的绝对值。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
# 参数
# 常设
# 信号属性
输出数据类型 — 指定输出数据类型Inherit: sameAsInput (默认) | Inherit: internalRule | Inherit: backPropagation | double | float | int8 | int32 | uint32 | fixdt(1,16,0) | fixdt(1,16,2^0,0) | fixdt(1,16,1.0,0,0.0)
为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象。
对整数溢出进行饱和处理 — 选择发生整数溢出时的行为off (默认) | on
如果选中此复选框,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。一般情况下,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。
| 操作 | 执行此操作的原因 | 发生的情况 | 示例 |
|---|---|---|---|
| 选中此复选框。 | 您的模型可能有溢出,并且您希望在生成的代码中具有显式饱和保护。 | 溢出将饱和处理为数据类型可以表示的最大值。 | 数字 130 不适合一个有符号 8 位整数,因此饱和处理为 127。 |
| 不选中此复选框。 | 您需要优化所生成代码的效率。 | 溢出会绕回到由数据类型表示的适当值。 | 数字 130 不适合一个有符号 8 位整数,因此绕回 -126。 |
# 版本历史记录
- 在 2024b 之前推出
# 限制信息
- 参数-常设-启用过零检测 — 启用过零检测
- 参数-常设-采样时间 — -1 以外的采样时间值
- 参数-信号属性-输出最小值 — 范围检查的最小输出值
- 参数-信号属性-输出最大值 — 范围检查的最大输出值
- 参数-信号属性-锁定输出数据类型设置以防止被定点工具更改 — 防止定点工具覆盖输出数据类型
- 参数-信号属性-整数舍入模式 — 定点运算的舍入模式