- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 DSP定点运算
第三章 DSP定点运算 数 的 定 标 高级语言 DSP定点算术运算 非线性运算的定点快速实现 小 结 3.1.1 数的定标 在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。 一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。 显然,字长越长,所能表示的数的范围越大,精度也越高。 3.1.1 数的定标 DSP芯片的数以2的补码形式表示。 每个16位数用一个符号位来表示数的正负,0表示数值为正,1则表示数值为负。其余15位表示数值的大小。 例如: 二进制数0010000000000011b=8195 二进制数1111111111111100b=-4 3.1.1 数的定标 数的定标 :由程序员来确定一个数的小数点处于16位中的哪一位 ,通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数 。 方法:Q表示法和S表示法 3.1.1 数的定标 同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同 ,但对于DSP芯片来说,处理方法是完全相同的。 对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。 3.1.1 数的定标 浮点数与定点数的转换关系为: 浮点数(x)转换为定点数( ): 定点数( )转换为浮点数(x): 浮点数与定点数的转换 例如,浮点数 x=0.5,定标 Q=15,则定点数 = , 式中 表示下取整。 反之,一个用 Q=15 表示的定点数16384,其浮点数为: 16384×2-15=16384/32768=0.5 3.2 高级语言 在编写DSP模拟算法时,为了方便,一般都是采用高级语言(如C语言)来编写模拟程序。程序中所用的变量一般既有整型数,又有浮点数。 例: int i; float pi=3.14159; float hamwindow[256]; for(i=0;i256;i++) hamwindow[i]=0.54- 0.46*cos(2.0*pi*i/255); 定点算法 如果要将上述程序用定点DSP芯片来实现,则需将程序改写为DSP芯片的汇编语言程序。 为了DSP程序调试的方便及模拟定点DSP实现时的算法性能,在编写DSP汇编程序之前一般需将高级语言浮点算法改写为高级语言定点算法。 3.2.1 基本算术运算的定点实现方法 以加法为例:设浮点加法运算的表达式为: float x,y,z; z=x+y; 将浮点加法转化为定点加法时最重要的一点就是必须保证两个操作数的定标值一样。 若两者不一样,则在做加法/减法运算前先进行小数点的调整。 调整方法:为保证运算精度,需使Q值小的数调整为与另一个数的Q值一样大。 在做加法运算时,必须注意结果可能会超过16位表示。如果加法的结果超出16位的表示范围,则必须保留32位结果,以保证运算的精度。 调整方法 设x的Q值为Qx,y的Q值为Qy,且QxQy,加法/减法结果z的定标值为Qz,则 z=x+y ? = = ? 所以定点加法可以描述为: 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=0.5,y=3.1,则浮点运算结果为z=x+y=0.5+3.1=3.6; Qx=15,Qy=13,Qz=13,则定点加法为: x=16384;y=25395; temp=253952=101580; temp=x+temp=16384+101580=117964; z=(int)(117964L2)=29491; 因为z的Q值为13,所以定点值z=29491即为浮点值z=29491/8192=3.6。 结果超过16位表示范围 当加法或加法的结果超过16位表示范围时,如果程序员事先能够了解到这种情况,并且需要保证运算精度时,则必须保持32位结果。 如果程序中是按照16位数进行运算的,则超过16位实际上就出现了溢出。 一般的定点DSP芯片都设有溢出保护功能,当溢出保护功能有效时,一旦出现溢出,则累加器ACC的结果为最大的饱和值,从而达到防止溢出引起精度严重恶化的目的。
您可能关注的文档
- N01-建立控制台程序.ppt
- 操作活动目录中的对象.doc
- wy 人教必修三book 3 unit 5 canada the true north 语言点language points.ppt
- 三轮冲刺:2013年科学社会热点专题.ppt
- SANGFOR_SSL_v5.8_2013年度渠道初级认证培训09_扩展功能总结介绍_20121224.ppt
- 2012高考物理一轮复习课件:2.3受力分析 共点力的平衡.ppt
- Oracle第2章 初识Oracle11g.ppt
- 首选项设置实战演练.doc
- 三、阅读浅易的文言文 2011高考一轮语文精品课件.ppt
- WSA_PPT_CHAP8_组策略.ppt
有哪些信誉好的足球投注网站
文档评论(0)