Main Content

精度和范围

注意

您必须注意您选择的定点数据类型和定标的精度和范围,以了解是否调用舍入方法或是否发生上溢或下溢。

范围

范围是定点数据类型和定标可以表示的数字范围。下图说明了字长值为 wl、定标值为 S 和偏置值为 B 的 2 的补码定点数的可表示范围:

对于任何数据类型的有符号和无符号定点数,不同位模式的数量都为 2wl

例如,采用 2 的补码方法时,需要表示负数和零,因此最大值为 2wl -1 – 1。由于零只有一种表示,因此正数和负数的数量不相等。这意味着存在一个 2wl1 的表示,但没有 2wl1 的表示:

溢出处理

由于定点数据类型表示有限范围内的数字,因此如果运算结果大于或小于该范围内的数字,则可能发生上溢和下溢。

Fixed-Point Designer™ 软件允许您对溢出进行饱和绕回处理。饱和将正溢出表示为正在使用的范围中的最大正数,将负溢出表示为正在使用的范围中的最大负数。绕回使用模算术将溢出转换回数据类型的可表示范围。

创建 fi 对象时,任何溢出都会经过饱和处理。默认 fimath 的 OverflowAction 属性为 saturate。您可以通过将 fipref 对象的 LoggingMode 属性设置为 on 来记录上溢和下溢。

精度

定点数的精度是其数据类型和定标可表示的连续值之间的差值,等于其最低有效位的值。最低有效位的值(因此也是数字的精度)由小数位数决定。定点值的误差小于等于其数据类型和定标所确定精度的一半。

例如,二进制小数点右侧具有四位的定点表示的精度为 2-4(即 0.0625),这是其最低有效位的值。此数据类型和定标范围内的任何数字的误差都小于等于 (2-4)/2(即 0.03125),即精度的一半。这是以有限精度表示数字的示例。

舍入方法

当您以有限精度表示数字时,并非可用范围内的每个数字都可以精确表示。如果数字不能由指定的数据类型和定标精确表示,则使用舍入方法将该值转换为可表示的数字。虽然在舍入操作中始终会丢失一定的精度,但带来的操作成本和偏置量取决于舍入方法本身。为使您在成本和偏置之间权衡方面有更大的灵活性,Fixed-Point Designer 软件当前支持以下舍入方法:

  • Ceiling 朝正无穷方向舍入到最接近的可表示数字。

  • Convergent 舍入到最接近的可表示数字。在舍入机会均等的情况下,convergent 舍入到最邻近的偶数。这是工具箱提供的偏置最小的舍入方法。

  • Zero 在零方向上舍入到最接近的可表示数字。

  • Floor(相当于 2 的补码截断)朝负无穷方向舍入到最接近的可表示数字。

  • Nearest 舍入到最接近的可表示数字。在舍入机会均等的情况下,nearest 朝正无穷方向舍入到最邻近的可表示数字。此舍入方法是 fi 对象创建和 fi 算术的默认值。

  • Round 舍入到最接近的可表示数字。在舍入机会均等的情况下,round 方法进行如下舍入:

    • 将正数朝正无穷方向舍入到最邻近的可表示数字。

    • 将负数朝负无穷方向舍入到最邻近的可表示数字。

选择舍入方法.  每个舍入方法都有一组固有属性。根据您的设计要求,这些属性可能会使舍入方法更适合您或更不适合您。通过了解设计要求和每个舍入方法的属性,您可以确定哪种方案最适合您的需要。最重要的考虑因素是:

  • 成本 - 在不考虑所用硬件的情况下,舍入方法所需的处理成本如何?

    • 低 - 该方法只需极少的处理周期。

    • 中 - 该方法需要中等数量的处理周期。

    • 高 - 该方法需要较多处理周期。

    注意

    此处提供的成本估算没有考虑硬件。有些处理器内置了舍入模式,因此在计算每个舍入模式的真实成本之前,应仔细考虑所用的硬件。

  • 偏置 - 舍入值减去原始值后的预期值:Ε(θ^θ)?

    • Ε(θ^θ)<0 - 舍入方法引入负偏置。

    • Ε(θ^θ)=0 - 舍入方法无偏置。

    • Ε(θ^θ)>0 - 舍入方法引入正偏置。

下表比较了 Fixed-Point Designer 产品中可用的不同舍入方法。

Fixed-Point Designer 舍入模式成本偏置
向上大的正向偏置
收敛无偏置
  • 对于具有负值的样本,为大的正向偏置

  • 对于具有均匀分布的正值和负值的样本,无偏置

  • 对于具有正值的样本,为大的负向偏置

向下大的负向偏置
最邻近值中等小的正向偏置
舍入
  • 对于具有负值的样本,为小的负偏置

  • 对于具有均匀分布的正值和负值的样本,无偏置

  • 对于具有正值的样本,为小的正向偏置

Simplest
(仅限 Simulink®
取决于操作