概述
1、题目
在FPGA中做小数乘法时,一般需要对定点小数量化处理。
量化过程中首先需要确定量化的位宽,位宽越大量化的精度越高。
如题所述,对12.918做无损定点化,首先需要确定对整数部分的量化位数。整数为12,无损量化必须采用4bit;
小数部分为0.918,假如采用12bit位宽,整数部分4bit,那么小数部分只有8bit。8bit所能表达的最大的整数为255(注意,定点小数在FPGA运算过程中是没有小数点的,比如12.918,实际存储的是12.918的二进制形式,所以8bit表示小数部分最大为255,在后续反量化时再除以256,相当于小数点右移8位即可)。0.918256 = 235.008,换算为整数为235,该值即为对0.918做8bit量化后的整数值。
下面需要对235进行反量化得到:235 / 256 = 0.91796875,和0.918相比误差为0.00003125。因为做的是无损定点化,所以考虑的应该是有效位,0.918的有效位为3位,而误差在小数点后面第三位为0,所以可以实现无损定点化。
再看位宽选择11位时,小数部分用7位表示,按照上面所述方法得到:
(int)(0.918128)/128 = 0.921875,量化误差为0.003875,可见在小数点后面第三位不为0,因此就不能实现无损量化,误差为0.0039
答案选D
2、注意:
- 小数部分量化方式是以1对应量化位宽下的模值,计算小数部分对应的整数(小数部分四舍五入);
- 无损定点化:指量化后误差不大于原小数的最低有效位对应值。
3、参考
参考
最后
以上就是超级期待为你收集整理的十进制小数定点化的全部内容,希望文章能够帮你解决十进制小数定点化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复