Main Content

定标

定点数的动态范围比具有相同字长的浮点数小得多。为避免溢出情况并最大限度地减少量化误差,必须对定点数进行定标。

使用 Fixed-Point Designer™ 软件,您可以选择由二进制小数点来定义定标的定点数据类型,您也可以选择适合您需要的任意线性定标。本节内容介绍可用于定点数据类型的定标选择项。

您可以通过一般的斜率和偏置编码方案来表示定点数。

real-world value=(slope×integer)+bias

其中斜率可以表示为

slope=slope adjustment factor × 2fixed exponent

整数有时称为存储的整数。这是原始二进制数字,其中假定二进制小数点位于字的最右侧。在 Fixed-Point Designer 文档中,固定指数的负值通常称为小数长度

斜率和偏置一起表示定点数的定标。在零偏置的数字中,只有斜率影响定标。仅由二进制小数点位置定标的定点数相当于以偏置为零、斜率调整因子为 1 的 [斜率 偏置] 表示的数。这称为二进制小数点定标或二次幂定标:

real-world value=2fixed exponent×integer

real-world value=2-fraction length×integer

二进制小数点定标

二进制小数点或二次幂定标涉及在定点字内移动二进制小数点。这种定标模式的优点是最大程度减少了处理器算术运算的数量。

使用纯二进制小数点定标,一般斜率和偏置公式的分量具有以下值:

  • bias = 0

  • slope adjustment factor = 1

  • slope = slope adjustment factor × 2fixed exponent = 2fixed exponent

量化真实数字的定标由斜率 S 定义,斜率限于 2 的幂。2 次幂的负数称为小数长度。小数长度是二进制小数点右边的位数。对于纯二进制小数点定标,请将定点数据类型指定为

  • 有符号类型 - fixdt(1, WordLength, FractionLength)

  • 无符号类型 - fixdt(0, WordLength, FractionLength)

整数是定点数据类型的特例。整数具有斜率为 1、偏置为 0 或小数长度为 0 的平凡定标。将整数指定为

  • 有符号整数 - fixdt(1, WordLength, 0)

  • 无符号整数 - fixdt(0, WordLength, 0)

斜率和偏置定标

当按斜率和偏置进行定标时,量化的真实数字的斜率 S 和偏置 B 可以取任何值。斜率必须为正数。使用斜率和偏置,将定点数据类型指定为

  • fixdt(Signed, WordLength, Slope, Bias)

未指定定标

将未指定定标的定点数据类型指定为

  • fixdt(Signed, WordLength)

Simulink® 信号、参数和状态不能有未指定的定标。当未指定定标时,您必须使用自动最佳精度定标等其他机制来确定 Simulink 软件使用的定标。

相关主题