深入研究simulink建模与仿真之小数转换为整数的舍入模式(圆整模式、取整模式)

导言

simulink中有些模块可以配置整数的舍入模式,比如增益模块:

默认为Floor模式。


 

Floor

地板模式。

将正值和负值朝负无穷大方向舍入。等同于 MATLAB floor 函数。

举例:

Floor模式
1 1
1.4 1
2.5 2
3.6 3
0 0
-1 -1
-1.4 -2
-2.5 -3
-3.6 -4

Ceiling

天花板模式。

将正值和负值朝正无穷大方向舍入。等同于 MATLAB® ceil 函数。

举例:

Zero

零值模式

将数值向零舍入。等同于 MATLAB fix 函数。

相当于正数使用地板模式,负数使用天花板模式。从绝对值上看,直接抹掉小数部分

举例:

Round

圆整模式。最接近平常所理解的“四舍五入”模式。正数和负数都是按照绝对值舍入。

将数值舍入到最接近的可表示值。如果出现对等情况,则将正数朝正无穷大方向舍入,将负数朝负无穷大方向舍入。等同于 Fixed-Point Designer round 函数。

比如,1.49  =》 1;  1.50 =》 2;    -1.49  =》 -1; -1.50 =》-2

Nearest

最近模式。

将数值舍入到最接近的可表示值。如果出现对等情况,则朝正无穷大的方向舍入。等同于 Fixed-Point Designer nearest 函数。

跟Round模式不同的是,-1.5 =》 -1;  -2.5 =》 -2

Convergent

收敛模式。

将数值舍入到最接近的可表示值。如果出现对等情况,则舍入到最接近的偶数整数。等同于 Fixed-Point Designer™ convergent 函数。

与上述两种四舍五入不同的是,  如果处于中间值(X.5),则向X最接近的偶数舍入。

举例:

Simplest

最简模式。

自动选择是向负无穷大方向舍入还是向零舍入,以生成尽可能有效的舍入代码。

小结:

使用以下模型,对比各类转换模式的不同:


参考资料

Integer rounding mode

指定定点运算的舍入模式。

https://ww2.mathworks.cn/help/simulink/slref/datatypeconversion.html#f6-842904.bronkud-24

猜你喜欢

转载自blog.csdn.net/booksyhay/article/details/86688667