舍入
当您以有限精度表示数字时,并非可用范围内的每个数字都可以精确表示。对定点数的任何运算结果通常都存储在比该数的原始格式更长的寄存器中。当结果放回原始格式时,将使用舍入方法将值转换为可表示的数字。在舍入运算中始终会损失精度,并产生量化误差和计算噪声。舍入带来的运算成本和偏置量取决于舍入方法本身。
选择舍入方法
每个舍入方法都有一组固有属性。根据您的设计要求,这些属性可能会使舍入方法更适合您或更不适合您。通过了解设计要求和每个舍入方法的属性,您可以确定哪种方案最适合您的需要。最重要的考虑因素是:
成本 - 在不考虑所用硬件的情况下,舍入方法所需的处理成本如何?
低 - 该方法只需极少的处理周期。
中 - 该方法需要中等数量的处理周期。
高 - 该方法需要较多处理周期。
注意
此处提供的成本估算没有考虑硬件。有些处理器内置了舍入模式,因此在计算每个舍入模式的真实成本之前,应仔细考虑所用的硬件。
偏置 - 舍入值减去原始值后的预期值:?
- 舍入方法引入负偏置。
- 舍入方法无偏置。
- 舍入方法引入正偏置。
Fixed-Point Designer 舍入模式
为使您在成本和偏置之间权衡方面有更大的灵活性,Fixed-Point Designer™ 产品当前支持以下舍入方法:
Fixed-Point Designer 舍入模式 | 描述 | 结值处理 | 成本 | 偏置 |
---|---|---|---|---|
向上 | 朝正无穷方向舍入到最邻近的可表示数字。 | 不适用 | 低 | 大的正向偏置 |
收敛 | 舍入到最邻近的可表示数字。 | 结值舍入到最邻近的偶数。 | 高 | 无偏置 |
向下 | 朝负无穷方向舍入到最邻近的可表示数字。相当于 2 的补码截断。 | 不适用 | 低 | 大的负向偏置 |
最邻近值 | 舍入到最邻近的可表示数字。 | 结值朝正无穷方向舍入到最邻近的可表示数字。 | 中等 | 小的正向偏置 |
舍入 | 舍入到最邻近的可表示数字。 |
| 高 |
|
最简 (仅限 Simulink®) | 自动在 Floor 和 Zero 之间选择,以产生尽可能高效的生成代码。 | 不适用 | 低 | 取决于操作 |
零 | 朝零方向舍入到最邻近的可表示数字。 | 不适用 | 低 |
|
选择舍入模式以用于诊断
有时候,向上舍入和向下舍入可用于诊断目的。例如,在一系列算术运算后,因为字长大小的限制,您可能不知道确切的答案,这就会引入舍入。如果系列中的每个运算都执行两次,一次向正无穷舍入,一次向负无穷舍入,您将获得正确答案的上限和下限。然后,您可以决定结果是否足够准确,或是否有必要进一步分析。