8063|11

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于定点DSP进行浮点运算的问题 [复制链接]

在用定点DSP进行浮点运算时采用Q值定标,而DSP如何实现Q值的?比如在下边这个程序中
设x=3.0,y=3.1,则浮点运算结果为z=x-y=3.0-3.1=-0.1;
Qx=13,Qy=13,Qz=15,则定点减法为:
x=24576;y=25295;
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。
在得出运算结果z的时候,DSP如何知道x是Q13的?它是否会将QX=24576按照Q15的格式来处理?如果是这样,我们在程序中应该怎样处理才能得到正确的结果?

最新回复

嗯,学习了  详情 回复 发表于 2008-5-27 08:07
点赞 关注
 

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

定点计算

所有的数据在计算的时候必须定好标,注意数据取值范围。
DSP在计算的时候不会知道你的数值是什么格式的,只能进行整型的+-*/,计算的结果只能自己保存的时候注意转换成相应的格式喽。
个人认为!
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
那样肯定不对~
比如Q13格式的数据,DSP会当作Q15来处理,得到的结果当然不一样!
我是这样处理的~

如:A=Q14,B=Q15,Z=Q14
long int temp
temp= A<<1;
temp=temp+B;
Z=temp>>1;

但是不知道为什么出来的结果总是不对!人都要崩溃了~~

 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
对于定点DSP,它本身是不知道你使用的什么格式的,都一律按照int的处理。你必须自己设定好Q值,输出的时候注意浮点的位置。我一个月前才做过相关的C programming,port code from ADSP to C5509A~
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

5
 
First I assume by saying Q14 here you mean Q2.14 fractional format.
如果只是拿这个例子来说,最后得到的C (Q14)其实是rounding过后的值,因为它的精度低于B (Q15)。既然如此,我觉得可以先将B进行四舍五入变成Q14的format (either unbiased rounding or biased rounding dependent on your application),再进行加减乘除运算,应该就没问题了。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
我特意查了资料,觉得两个不同Q的数值做加减运算时这样处理是允许的,不知道你的结果有什么不对?是误差太大,还是根本不是你要的结果?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
temp 是 long 类型的,也就是32位的.

两个Q15的数相加还是Q15位的数.其结果再怎么样也不可能超出32位,怎么会溢出呢?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
我想请教一下关于Q格式运算中的\"rounding\"与\"saturation\"这两个术语的正确中文翻译.

因为这是在处理溢出和饱和是经常出现的词,但我个人一直无法准确把握它们的含义.

谢谢.
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
我的理解是这样的:

若DSP能处理16位的定点数,那么Q15的运算范围在(-1≤x≤0.9999695)范围内,也就是说

Q15能处理的数值的最大绝对值不超过1.所以两个数相加后极有可能溢出.但是对于long类型的

Q15,它能处理的最大绝对值应该为(-32768≤x≤32767),所以把16位的Q15转换为32位的

Q15格式进行+/-运算应该不会溢出.

不知道这样理解正确否?

请指点.
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 

Q运算如果想保证精度就要用Q值大的格式运算,如果想防止溢出就用Q值小的格式运算.如果想

要防溢又想要保证精度,那么就要事先估计运算数据的最大值.要提高运算的速度,最好能采用满足

精度要求的低Q位运算.

能否指点一下\"rounding\"在Q运算中的含义吗?

 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
呵呵,虽然我已经顺利解决问题了,不过看了各位的发言,仍然受益非浅,先谢谢大家了,希望大家能够相互提高`
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

12
 
嗯,学习了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表