Main Content

舍入

当您以有限精度表示数字时,并非可用范围内的每个数字都可以精确表示。对定点数的任何运算结果通常都存储在比该数的原始格式更长的寄存器中。当结果放回原始格式时,将使用舍入方法将值转换为可表示的数字。在舍入运算中始终会损失精度,并产生量化误差和计算噪声。舍入带来的运算成本和偏置量取决于舍入方法本身。

选择舍入方法

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

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

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

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

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

    注意

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

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

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

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

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

Fixed-Point Designer 舍入模式

为使您在成本和偏置之间权衡方面有更大的灵活性,Fixed-Point Designer™ 产品当前支持以下舍入方法:

Fixed-Point Designer 舍入模式描述结值处理成本偏置
向上朝正无穷方向舍入到最邻近的可表示数字。不适用大的正向偏置
收敛舍入到最邻近的可表示数字。结值舍入到最邻近的偶数。无偏置
向下朝负无穷方向舍入到最邻近的可表示数字。相当于 2 的补码截断。不适用大的负向偏置
最邻近值舍入到最邻近的可表示数字。结值朝正无穷方向舍入到最邻近的可表示数字。中等小的正向偏置
舍入舍入到最邻近的可表示数字。
  • 对于正数,结值朝正无穷方向舍入到最邻近的可表示数字。

  • 对于负数,结值朝负无穷方向舍入到最邻近的可表示数字。

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

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

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

最简
(仅限 Simulink®
自动在 FloorZero 之间选择,以产生尽可能高效的生成代码。不适用取决于操作
朝零方向舍入到最邻近的可表示数字。不适用
  • 对于具有负值的样本,为大的正向偏置

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

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

选择舍入模式以用于诊断

有时候,向上舍入和向下舍入可用于诊断目的。例如,在一系列算术运算后,因为字长大小的限制,您可能不知道确切的答案,这就会引入舍入。如果系列中的每个运算都执行两次,一次向正无穷舍入,一次向负无穷舍入,您将获得正确答案的上限和下限。然后,您可以决定结果是否足够准确,或是否有必要进一步分析。

相关主题