共2条
1/1 1 跳转至页
DSP 请教一个关于定点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如何知道z是Q15的?也就是说,DSP在硬件上如何将3276认为是0.1这个小数值?
我的理解是这样的,是否z这个变量只是在整个运算过程中作一个中间变量的作用,在整个程序的计算的最后才将计算结果根据其定标的Q值转换成小数,以实现小的舍入误差,就像上一个例子一样,z的值-3267也只是一个中间变量,如果这个结果需要最终输出,仍然需要把-3267/32768,计算得到-0.1这个实际的浮点小数。
这个理解是否正确?请各位前辈指教
答 1: re需要输出吗?不需要。所以…… 答 2: re:sourse呵呵,恍然大悟!多谢多谢!
另外有个问题想问问你,这样由程序员进行定标写的浮点运算程序
与用编译器支持的浮点型的运算,在速度上相差多大?
设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如何知道z是Q15的?也就是说,DSP在硬件上如何将3276认为是0.1这个小数值?
我的理解是这样的,是否z这个变量只是在整个运算过程中作一个中间变量的作用,在整个程序的计算的最后才将计算结果根据其定标的Q值转换成小数,以实现小的舍入误差,就像上一个例子一样,z的值-3267也只是一个中间变量,如果这个结果需要最终输出,仍然需要把-3267/32768,计算得到-0.1这个实际的浮点小数。
这个理解是否正确?请各位前辈指教
答 1: re需要输出吗?不需要。所以…… 答 2: re:sourse呵呵,恍然大悟!多谢多谢!
另外有个问题想问问你,这样由程序员进行定标写的浮点运算程序
与用编译器支持的浮点型的运算,在速度上相差多大?
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 |