共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 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
| 【分享开发笔记,赚取电动螺丝刀】树莓派5串口UART0配置被打赏¥25元 | |
| 【STM32F103ZET6】17:分享在Rtos项目中断管理的使用经验被打赏¥23元 | |
| 【STM32F103ZET6】16:分享在中断中恢复串口任务,遇到的问题被打赏¥31元 | |
| 在FireBeetle2ESP32-C5上实现温度大气压检测及显示被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】SAME51双串口收发配置被打赏¥27元 | |
| Chaos-nano操作系统在手持式VOC检测设备上的应用被打赏¥37元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于在导入第三方库lib时,wchart类型冲突的原因及解决方案被打赏¥30元 | |
| 在FireBeetle2ESP32-C5上实现温湿度检测和显示被打赏¥20元 | |
| 在FireBeetle2ESP32-C5上实现光照强度检测及显示被打赏¥21元 | |
我要赚赏金
