北斗幻影

【技术贴】【DSP原理】定点数的运算

0
阅读(2283)

内容基本取自于 冬雷 《DSP原理及开发技术》 清华大学出版社,北京交通大学出版社 2007

若有不明请指出,参考请见《DSP原理及开发技术》。

【1】乘法

假设定点运算中的两个数都是16位的整形数。

设x的定标值为Qx,y的定标值为Qy,乘法结果的定标值为Qz。假设成绩的数值没有超过16位数的表示范围,由于成绩是32位数,则:Qz=Qx+Qy,因此,如果Qz=Qx,z>>Qy,取低16位作为乘积值即可。

举个例子:

设x=1.5,y=0.8,Qx=14,Qy=13,Qz=13,则有x=24576,y=6553,z=x*y=24576*6553=161046528=$9996000

将32位的乘积值z=$9996000右移Qx=14位,得到乘积的16位数结果为

z=($9996000)>>14=$2665=9829

所以乘积的实际值为:

z=9829*2^(-Qz)=9829*2^(-13)=9829/8192=1.998291015625接近于1.2。

关于定标和其他运算,将在以后有时间的时候给出。