第3讲 定点运算及浮点运算.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲 定点运算及浮点运算

三、DSP定点运算与浮点运算 数的定标 DSP程序的定点模拟 DSP芯片的定点运算 定点实现非线性函数的快速实现方法 浮点芯片中的数值表示格式 DSP浮点数的基本运算方法 1、数据格式 在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示 DSP芯片的数以2的补码形式表示 数的定标:“小数点” 的位置 Q表示法和S表示法 对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价。 浮点数与定点数的转换关系 浮点数转换为定点数 定点数转换为浮点数 浮点数 x=0.5,定标 Q=15, 则定点数=0.5*32768=16384 加法/减法运算的C语言定点模拟 float x,y,z; z=x+y; 两个操作数的定标值一样 如果加法/减法的结果超出16位的表示范围,则必须保留32位结果,以保证运算的精度 定点加法 描述: int x,y,z; long temp; /*临时变量*/ temp=y<<(Qx-Qy); temp=x+temp; z=(int)(temp>>(Qx-Qz)), 若Qx≥Qz z=(int)(temp<<(Qz-Qx)), 若Qx≤Qz 定点减法 设x=3.0,y=3.1,则浮点运算结果为z=x-y=3.0-3.1=-0.1; Qx=13,Qy=13,Qz=15,则定点减法为: x=24576;y=25395; temp=25395; temp=x-temp=24576-25395=-819; 因为Qx<Qz,故 z=(int)(-819<<2)=-3276。 验算:由于z的Q值为15,所以定点值z=-3276即 为浮点值z=-3276/32768?-0.1 结果超过16位表示范围 设x的Q值为Qx,y的Q值为Qy,且Qx>Qy,加法结果z的定标值为Qz,则定点加法为: int x,y; long temp,z; temp=y<<(Qx-Qy); temp=x+temp; z=temp>>(Qx-Qz),若Qx≥Qz z=temp<<(Qz-Qx),若Qx≤Qz 乘法运算的C语言定点模拟 float x,y,z; z = xy; int x,y,z; long temp; temp = (long)x; z = (temp×y) >> (Qx+Qy-Qz); 定点乘法 设x = 18.4,y = 36.8,则浮点运算值为z =18.4×36.8 = 677.12; Qx = 10,Qy = 9,Qz = 5,所以 x = 18841;y = 18841; temp = 18841L; z = (18841L*18841)>>(10+9-5) = 354983281L >>14 = 21666; 因为z的定标值为5,故定点 z = 21666即为浮点的 z = 21666/32 = 677.08 除法运算的C语言定点模拟 float x,y,z; z = x/y; int x,y,z; long temp; temp = (long)x; z = (temp<<(Qz-Qx+Qy))/y; 定点除法 设x = 18.4,y = 36.8,浮点运算值为z = x/y = 18.4/36.8 = 0.5; Qx = 10,Qy = 9,Qz = 15;所以有 x = 18841, y = 18841; temp = (long)18841; z = (18841L<<(15-10+9))/18841 = 308690944L/18841 = 16384; 因为商z的定标值为15,所以定点z = 16384即为浮点 z = 16384/32768= 0.5 程序变量的Q值确定 确定变量的Q值实际上就是确定变量的动态范围。设变量的绝对值的最大值为| max |,取整数n,使其满足 2、运算方法 通常的是全部以Q15格式表示的小数或以Q0格式表示的整数来工作 定点乘法 定点加法 定点除法 定点乘法 小数乘小数 Q15×Q15=Q30 0.5*0.5 = 0.25 0.100000000000000 ;Q15 ×0.100000000000000 ;Q15 00.010000000000000000000000000000=0.25 ;Q30 LT OP1 ;OP1=40

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档