1,算式长度不应该太长,否则在转换过程中提示位宽超过128位,(用的64位matlab),长算式改为短算式就可以了。
2,不要过于相信推荐字长,有些地方需要更高的精度,如果用推荐字长,可能结果误差较大,用这个有较大误差的数去做运算的话误差更大,所以对于基础算符和经常用到的算符要提高其字长,进而提高算法精度,越往后的算符其字长可以不用那么大,推荐的就可以。
3,过程中的数据宁可过大不可过小,太小的话导致误差增大,所以避免得到太小的数的算法,如果通过仿真得到的数比较小,那么可以通过改变值的大小的方法改变,如扩大1000倍等方法。
4,浮点转定点过程中,小数部分是决定最后结果的误差甚至正确性的关键部分,在本次设计中刚开始规定小数部分长度是10位,总是出现各种各样的怪问题,将小数部分设为20位后问题基本没有了,想想也是,10位也就对应到十进制的千分位,稍微复杂点的运算这样的精度是不够的。
5,对于算法的testbench,要尽可能罗列出所有可能的值的组合,这样在建议长度的时候更准确。
另:不知道怎么回事,64位机子i5处理器,4g内存,跑起来一卡一卡的,好几次不得不重启,难道matlab这么耗资源?