【技术贴】【DSP原理】定点数的运算
0赞
发表于 2010/5/26 0:35:29
阅读(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。
关于定标和其他运算,将在以后有时间的时候给出。