请教2407中的乘法问题!急。谢谢!

Maywolf   2008-6-7 13:49 楼主
向老师请教:

在2407中实现卷积的计算,用到了乘法器,指令是MAC。
其中相乘的两个数据一个是小数0.4830,一个是整数34
在汇编语言编写时,我将小数写成Q8格式:4830*256/10000;整数写成0022h。不理解的是,两个数是怎么相乘的?是不是DSP会将0022h当成是Q8格式来与之相乘?这样的话0022h不就成为小数了么?

一直没弄懂,请老师指点!谢谢


[ 本贴由 atuatu 于 2007-6-8 10:07 PM 最后编辑 ]

回复评论 (3)

另外, 0.4830  用 Q4  格式表示好象也不妥,精度太低, 为何不用 Q 15,Q 16 呢?

[ 本贴由 mlwang_km 于 2007-6-11 05:48 PM 最后编辑 ]
点赞  2008-6-10 09:45
谢谢你的解答!

4830*256/10000表示的实际值是0.48300000,也就是Q8格式。
选择这个精度,主要是考虑到这个小数和一个整数相乘后,它的整数部分值大于70。为了整数部分与小数部分兼顾,所以选择了Q8格式。
Q8     -128≤x≤127.9960938。

如果小数是被乘数Q8格式,整数是乘数,那这两相乘后Q0格式,结果的小数点位置和被乘数的小数点位置相同吗?也就是说,小数点还是处于第八位?
谢谢。



[ 本贴由 atuatu 于 2007-6-11 06:44 PM 最后编辑 ]
点赞  2008-6-10 10:29
我看错了, 0.483 用 Q 8 , Q8 格式 乘 Q0 格式,结果还是 Q 8 格式.

[ 本贴由 mlwang_km 于 2007-6-12 02:30 PM 最后编辑 ]
点赞  2008-6-11 03:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复