dsp吧 关注:10,383贴子:16,863
  • 2回复贴,共1

刚学DSP的菜鸟求助

取消只看楼主收藏回复

累加器A里的值为1110 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx,可知冗余的符号位数为2,那么用NORM指令后,A里的值左移-6位,变成了0000 0011 10xx xxxx xxxx xxxx xxxx xxxx xxxx xxxx,可这不就变成正数了?而且书上给出的例子又没有先设置符号位扩展。


IP属地:福建1楼2015-05-18 15:10回复
    或者这么说,如果按Q15定义一个负的浮点数,然后左移16位后加载至A累加器。在没有设置符号扩展的情况下,A累加器的保护位应该都为零。那么显然这时候对A里的浮点数进行规格化,就会出错。可我的书里给出的恰恰就是这样的例子。我不知道我到底哪里想错了。


    IP属地:福建4楼2015-05-19 19:20
    回复
      书上给的程序是先把两个定点数转成浮点数,接着才设置符号位扩展,然后算两个浮点数相乘,再把结果用NORM指令转成定点数。因为两个定点数一个是正数,一个是负数,所以乘积为负数。设置符号位扩展显然是为了乘积结果的正确性。但前面的哪一个负的定点数转浮点数可没设置符号位扩展啊。


      IP属地:福建5楼2015-05-19 21:32
      回复