社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 1227|回复: 0

数据舍入算法

[复制链接]

8886

TA的帖子

0

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

发表于 2013-4-25 13:28:54 | 显示全部楼层 |阅读模式
   在数字信号处理中,测量数据由于加法、乘法等运算位宽被扩大,但是资源利用上的考虑,在精度和误差有效范围内后续的处理并不需要这么大的位宽,因此对数据进行截断或者舍入处理是很有必要的。如图1所示为Xilinx FIR IPCore的参数配置界面,在FIR滤波器实现中必不可少的就是乘累加运算了,因此输出必有舍入处理,如图中Output Rounding Mode选项中就有很多种舍入算法。

图1

         关于舍入算法有多种,主要有Round Toward Nearest、Round Ceiling、Round Floor和Truncation:

       Round Toward Nearest

Rounding Toward Nearest就是通常所说的“四舍五入”,以5为有符号数为例,高3位为整数位(包含最高位符号位),低2位为小数位。如图2所示,对5为有符号二进制数进行了舍入处理,舍去小数位,其中小数位大于0.5,整数位进1,小于0.5时不进位,而等于0.5时,舍入后数据打了问号,因为对于0.5的舍入处理,又可分为4种处理算法:

(1). Round Half Up

(2). Round Half Down

(3). Round Half Even

(4). Round Half Odd

并且以上第(1)、(2)种算法对应分别有对称(Symmetric)和非对称(Asymmetric)2类。

图2

(1). Round Half Up

         Round Half Up算法对于0.5的舍入处理为向上取值,因此此例中整数位进1,而这仅对正数部分而言,对于负数部分可按照相对于0对称与否分为2类,如图3所示。

图3

(2). Round Half Down

Round Half Down算法对于0.5的舍入处理为向下取值,因此此例中整数位不进,而这仅对正数部分而言,对于负数部分可按照相对于0对称与否分为2类,如图4所示。

图4

(3). Round Half Even

Round Half Even算法根据有效位来判断是否进位,在此例中,舍去小数位,因此判断整数位即可,如果整数位为偶数,则不进位,奇数则进位,因此舍入处理后整数位肯定是个偶数。如图5所示,可以发现Round Half Even必然是Symmetric算法。

图5

(4). Round Half Odd

Round Half Odd算法根据有效位来判断是否进位,在此例中,舍去小数位,因此判断整数位即可,如果整数位为奇数,则不进位,偶数则进位,因此舍入处理后整数位肯定是个奇数。如图6所示,可以发现Round Half Odd必然是Symmetric算法。

图6

       Round Ceiling

         Round Ceiling算法的舍入处理总是朝正无穷趋近,对于正数而言,只要舍去位大于0,就进位;对于负数则直接截断处理,如图7所示。

图7

Round Floor

Round Floor算法的舍入处理总是朝负无穷趋近,舍入处理与Round Ceiling相反,对于负数而言,只要舍去位大于0,就进位;对于正数则直接截断处理,如图8所示。

图8

Truncation

Truncation是直接的截位处理,如图9所示。另外还有一种Round To Zero算法,舍入处理采用的也是简单的截断。

图9

此帖出自FPGA/CPLD论坛


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-4-26 11:47 , Processed in 0.079290 second(s), 18 queries , Redis On.

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