在 fdatool 中发现在对滤波器的数据进行定点化时,可以选择不同的 rounding mode 和 overflow mode,对于舍入模式,我以前只用过round fix floor ceiling,但是这次发现默认的舍入模式是 nearest convergent ,没有见过这种舍入模式,因此看了下帮助文档,对 convergent 舍入模式有了初步了解。以下即为帮助文档内相关部分的简单翻译,如果有不对的地方,还请大家指正。
在一些算法的定点实现中,经常要用有限位宽的定点数去表示浮点数,因此就要用到不同的舍入模式round mode。此外还有将大位宽的数据截断为小位宽的数据,此时也要用到不同的舍入模式round mode。
虽然在舍入过程中总会损失精度,但是不同的舍入模式还是会引入不同的资源消耗和精度误差,为了给您提供在资源消耗和精度误差之间权衡的灵活性,DSP System Toolbox software 支持以下几种舍入模式:
1. Ceiling ,将计算结果向着正无穷的方向舍入到最近的整数;对应 ceil 函数。
2. Convergent,将计算结果向着最近的整数舍入,如果出现1/2的情况,向着最近的偶数舍入;在DSP System Toolbox中,这是 least biased 的舍入模式;对应 convergent 函数。
3. Floor, 等效于 truncation ,将计算结果向着负无穷的方向舍入到最近的整数;对应 floor 函数。
4. Nearest , 将计算结果向着最近的整数舍入,如果出现1/2的情况,向着正无穷的方向舍入到最近的整数;对应 nearest 函数。
5. Round , 将计算结果向着最近的整数舍入,如果出现1/2的情况,对于正数,向着正无穷的方向舍入到最近的整数;对于负数,向着负无穷的方向舍入到最近的整数;对应 round函数。
6. Simplest , 用在 simulink 中,有 simulink 根据情况判断,自动进行舍入。
7. Zero , 将计算结果向着0方向舍入,对应 fix 函数。