原文链接:https://blog.csdn.net/weixin_43205692/article/details/108020012
例:12.918进行定点化,11位的位宽带来的量化误差是多少?
4位用来表示整数,7位用来表示小数。分辨率为:1/(2^7)=0.0078125
0.918/0.0078125~=118
118*0.0078125=0.921875
量化误差:0.921875-0.918=0.003875
如果用12位表示,则8位表示。分辨率为:1/(2^8)=0.00390625
0.918/0.00390625=235.008
235*0.00390625=0.91796875
量化误差:|0.91796875-0.918|=0.00003125<0.0005
对12.918进行无损量化,要保留小数点后四位,就是比0.001多一位,同样,二进制的2^-8是0.00390625,它是0.008的1/2,也就是说在二进制中它能精确到0.008的后一位,也就是可以做到无损量化了。
Matlab 提供了方便的定点函数fi
fi(data,s,w,f) 各参数的定义:
data:需要定点化的浮点数;
s:signed or unsigned 标志;
w:数据位宽,如果是signed 包含符号位;
f:定点小数精度。