找回密码
 注册
关于网站域名变更的通知
查看: 340|回复: 1
打印 上一主题 下一主题

转——数据舍入算法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-9 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
转——数据舍入算法

! [1 Z5 y& ~+ ^% b2 B$ V" b3 ^% l7 v4 X) k3 Y2 a0 U1 g9 E
在数字信号处理中,测量数据由于加法、乘法等运算位宽被扩大,但是资源利用上的考虑,在精度和误差有效范围内后续的处理并不需要这么大的位宽,因此对数据进行截断或者舍入处理是很有必要的。如图1所示为Xilinx FIR IPCore的参数配置界面,在FIR滤波器实现中必不可少的就是乘累加运算了,因此输出必有舍入处理,如图中Output Rounding Mode选项中就有很多种舍入算法。
图1
         关于舍入算法有多种,主要有Round Toward Nearest、Round Ceiling、Round Floor和Truncation:0 D4 [1 m! S/ Q
       Round Toward Nearest
2 ~! _0 p# P9 X9 ?0 ?: Y6 JRounding Toward Nearest就是通常所说的“四舍五入”,以5为有符号数为例,高3位为整数位(包含最高位符号位),低2位为小数位。如图2所示,对5为有符号二进制数进行了舍入处理,舍去小数位,其中小数位大于0.5,整数位进1,小于0.5时不进位,而等于0.5时,舍入后数据打了问号,因为对于0.5的舍入处理,又可分为4种处理算法:
: S  A+ _4 g5 t( ]. i% i, A, o+ B2 P(1). Round Half Up' S+ [5 [3 I! U) M4 \6 {
(2). Round Half Down
& X( d: {" m  z* l+ x: l8 a(3). Round Half Even1 a! j2 l: U5 T3 D6 J6 K6 }- h
(4). Round Half Odd
  a% W* U$ K1 e+ p* r) a: |并且以上第(1)、(2)种算法对应分别有对称(Symmetric)和非对称(Asymmetric)2类。/ B4 C( D9 |, v- X' N3 I
图2
(1). Round Half Up/ v! T4 Z+ r- |( O
         Round Half Up算法对于0.5的舍入处理为向上取值,因此此例中整数位进1,而这仅对正数部分而言,对于负数部分可按照相对于0对称与否分为2类,如图3所示。" k% o1 p" J8 ^% O) T$ Z
图3
(2). Round Half Down. U/ R: j; P8 j  |
Round Half Down算法对于0.5的舍入处理为向下取值,因此此例中整数位不进,而这仅对正数部分而言,对于负数部分可按照相对于0对称与否分为2类,如图4所示。
9 H/ J+ A4 }" Y( C. b# e
图4
(3). Round Half Even# A& S. P# G1 u8 {  ~* u
Round Half Even算法根据有效位来判断是否进位,在此例中,舍去小数位,因此判断整数位即可,如果整数位为偶数,则不进位,奇数则进位,因此舍入处理后整数位肯定是个偶数。如图5所示,可以发现Round Half Even必然是Symmetric算法。9 t9 E/ ~9 M6 A7 {( t+ s+ f
图5
(4). Round Half Odd/ Z: r$ t$ E+ F7 u2 e
Round Half Odd算法根据有效位来判断是否进位,在此例中,舍去小数位,因此判断整数位即可,如果整数位为奇数,则不进位,偶数则进位,因此舍入处理后整数位肯定是个奇数。如图6所示,可以发现Round Half Odd必然是Symmetric算法。: T! }! v/ i( f# ], k& N
图6
       Round Ceiling
" C1 y; o& w1 P8 L5 H' ^$ y! B4 W3 ^         Round Ceiling算法的舍入处理总是朝正无穷趋近,对于正数而言,只要舍去位大于0,就进位;对于负数则直接截断处理,如图7所示。6 H# X- K1 g9 W/ t! E7 w4 |
图7
Round Floor
$ j: v1 l8 ^6 W4 Q$ p2 {Round Floor算法的舍入处理总是朝负无穷趋近,舍入处理与Round Ceiling相反,对于负数而言,只要舍去位大于0,就进位;对于正数则直接截断处理,如图8所示。
6 U' {' }$ D5 e4 o" p2 A- k5 W3 Y
图8
Truncation
# y! `% a3 c! k* A; U, pTruncation是直接的截位处理,如图9所示。另外还有一种Round To Zero算法,舍入处理采用的也是简单的截断。( R3 o4 S4 E* |( l1 k1 Y' _2 q
图9
- d0 g. ]# g' X9 p& e

该用户从未签到

2#
发表于 2019-5-9 17:46 | 只看该作者
很棒的资料 值得学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-2 20:28 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表