【转载请注明出处】
(大疆2020芯片开发工程师A卷)
对12.918做无损定点化,需要的最小位宽是多少位,位宽选择11位时的量化误差是多少?
A. 12位,0.0118
B. 13位,0.0039
C. 12位,0.0039
D. 13位,0.0118
答案:C,12位,误差0.0039
解析:
12.918,定点量化时对整数部分和小数部分分别量化。
(1)整数部分12 ,最少使用4位量化,4-bit表示范围0~15;
(2)小数部分0.918 ,假设12.918整体使用12位量化,整数已使用4-bit,则小数部分还能使用8-bit量化,能够表示2的8次方共计256个刻度,每个刻度的间隔是1/256 = 0.00390625,这个值也就是量化精度。
小数0.918需要多少个刻度来表示呢? 0.918/(1/256) = 0.918 x 256 = 235.008,四舍五入取整,则使用235个刻度来表示,误差是0.008个刻度,误差大小是0.008 x (1/256) = 0.00003125。
量化误差小于量化精度的一半,认为是“无损量化”。由于量化后误差0.00003125肯定是小于精度0.00390625的一半,所以这个误差小到可以认为是无损量化。
当使用11位量化时,同理:
(1)整数部分12,最少仍需要4位量化,4-bit表示范围0~15;
(2)小数0.918,只能使用剩下的7-bit量化,能够表示2的7次方共计128个刻度,每个刻度的间隔是1/128。
小数0.918需要多少个刻度来表示呢?
0.918/(1/128) = 0.918 x 128 = 117.504,四舍五入取整,则使用118个刻度来表示,误差是-0.496个刻度,误差大小是-0.496 x (1/128) = -0.003875,保留四位小数并取正数,0.0039。