Matlab定点数分析

Matlab常常作为硬件算法的软件实现平台。数字电路设计相关的算法分析大多在RTL实现之前使用Matlab进行建模分析,其中一个重要环节是将算法中的数据进行定点化,即量化。量化策略影响到算法的性能和精度,并影响到最终结果。如何在Matlab中评估这种影响,确定数据的合理的定点量化策略,我们需要使用 NumericTypeScope 类来做。

1
2
3
4
5
h = NumericTypeScope;
fi_a = fi(a); % a is a floating point matrix
step(h, fi_a); % analysis the a's range and accuracy
reset(h); % reset the storage
release(h); % release the resource

NumericTypeScope 类可以探测某个数据张量的动态范围,并自动评估出一个最好的、尽量没有精度损失的测量策略——即整数位和小数位的位宽各是多少。上述命令只能分析一次定点数,即分析一个变量。分析下一个变量必须release一下h,但并不需要每次都reset。