首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 解决方案 > 定点DSP如何做浮点运算(2)

定点DSP如何做浮点运算(2)

北极星电力网技术频道    作者:佚名   2010/12/9 13:05:04   

 关键词:  DSP 浮点运算

  我们用数学表达式做一下总结:

  x表示实际的数(*一个浮点数),q表示它的Qn型定点小数(一个整数)。

  q=(int)(x*2^n)

  x=(float)q/2^n

  由以上公式我们可以很快得出定点小数的+-*/算法:

  假设q1,q2,q3表达的值分别为x1,x2,x3

  q3=q1+q2若x3=x1+x2

  q3=q1-q2若x3=x1-x2

  q3=q1*q2/2^n若x3=x1*x2

  q3=q1*2^n/q2若x3=x1/x2

  我们看到加减法和一般的整数运算相同,而乘除法的时候,为了使得结果的小数点位不移动,对数值进行了移动。

  用c语言来写定点小数的乘法就是:

  shortq1,q2,q3;

  ....

  q3=((longq1)*(longq2))>>n;

  由于/2^n和*2^n可以简单的用移位来计算,所以定点小数的运算比浮点小数要快得多。下面我们用一个例子来验证一下上面的公式:

  用Q12来计算2.1*2.2,先把2.12.2转换为Q12定点小数:

  2.1*2^12=8601.6=8602

  2.2*2^12=9011.2=9011

  (8602*9011)>>12=18923

  18923的实际值是18923/2^12=4.619873046875和实际的结果4.62相差0.000126953125,对于一般的计算已经足够精确了。

来源:
友情链接
北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有