dsp处理浮点数_关于IQMATH和浮点数在DSP的深入理解
使用了一段时间IQmath来处理浮点数,发现对其的理解还是不够,只是限于根据其resolution/precison来选取不同的IQ形式来处理浮点数。今天就遇到了一个比较棘手的问题,如果我想把一个整数Uint16型赋给IQ15类型的,发现再转换回整数的时候赋值已经不对了,我通过先将Uint16赋给FLOAT32型,再使用语句,temp=_IQ(float32);(此语句的作用是将浮点类型转换为定点IQ15的格式)发现这样处理后,再换回整数时赋值和原始赋值是相同的。可是,为了一个赋值运算,我将要多申请多少FLOAT32型的变量! 我想一定有办法可以直接赋值,我深入理解了下float32型的构造,float和int都是固定长度的,4字节(32位机子)。int是精确的,超出范围就溢出了。数据错误了。而float并不是单纯的101010这样存储,是把4个字节划分为 符号位,指数位,尾数位 比如1.123123*10^35;3个部分固定的,因为有指数,存储的范围当然比int大了。 但是3个部分也有范围限制,所以当你精度值越大时,越不精确了。取了例子,众所周知单精度浮点型的有效数字长度为7位(不知道的小朋友要好好复习C语言了),那么比如一个数字2.1234567891*10^14,那么赋给float后他就变成了2.1234567*10^14,后面都是精确的了,那么这个数字的无效范围就变成了21345670000000---2134567999999999,可见其多么不精确了。 那么IQmath是不是可以用同样的方法理解呢,答案是类似的,IQmath的IQ型不像FLOAT32分成3个部分,而是分成了2个部分,整数(符号位包括其中)位和小数位,我仔细看了下IQmath官方的手册,其实每个IQ都是个LONG型,通过不同的位数的定标(其实就是定小数点的位置),来实现不同精度的小数和取值范围,那么IQ15就是用低15位来表示小数位,用来表示整数的部分就是高(32-15)位了,那么照这个思路,我们要把一个整形Uint6直接赋给IQ15也是很容易的了,只要赋值后,再将IQ值向左移位15位就好了。经过实验发现果然是这样的。这样的话,以后IQ和整型的转换就变得非常简单了,如果你愿意的话,都可以替IQmath补充函数这类函数进去,这样对各种数据的处理会变得更加游刃有余。
dsp处理浮点数_关于IQMATH和浮点数在DSP的深入理解相关推荐
- 64位浮点数_浮点数运算的机器误差分析
感觉跟专栏主题不是很搭... 不过这是这学期计算物理的作业,还是放上来吧,也算勉强沾边了吧. 用一个浮点数相加的例子来演示计算机在计算时所产生的误差. 在Python中,用0.2+0.4 会得到0.6 ...
- 整数存储怎么转化为浮点数_非整数值如何存储在浮点数中(以及为什么要浮点数)...
整数存储怎么转化为浮点数 by Shukant Pal 通过Shukant Pal 非整数值如何存储在浮点数中(以及为什么要浮点数) (How non-integer values are store ...
- 64位浮点数_浮点数误差
chopper:目录zhuanlan.zhihu.com 本篇文章通过解析浮点数精度格式,分析为什么浮点数会出现误差,并提供了减少浮点数运算误差要尽量遵循的原则. 在计算机中,小数有两种表示方式:定 ...
- python判断复数浮点数_荐Python数据类型(整数,浮点数,复数,字符串,format()用法)(超详细笔记)...
一.整数类型 1.与数学中的整数概念一致,没有取值范围限制. 2.整数类型共有4种进制表示:十进制.二进制.八进制. 十六进制,默认十进制,其他进制需增加引导符(不区分 大小写) 二进制 0b或0B, ...
- python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表、生成浮点数列表(指定是否包含末尾值)
python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表.生成浮点数列表(指定是否包含末尾值) 目录
- python的浮点数_Python中整数和浮点数
Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致. 基本的运算: 1 + 2 + 3 # ==> 6 4 * 5 - 6 # ==> 14 7.5 ...
- 浮点数——科学计数法、浮点数表示、加减运算和浮点数的使用
目录 1.2浮点数 1.2.1 科学计数法 1.2.2 浮点数表示 1 符号位 2价码位 1.2.3 加减运算 1.2.4 浮点数的使用 1.2浮点数 浮点数是采用科学计数法来表示的,由符号位.有效数 ...
- FPGA学习笔记(2):半精度浮点数乘法器和半精度浮点数加法器的Verilog实现
开发环境 1.Vivado 2019.2 2.仿真:Vivado Simulater 半精度浮点数介绍 IEEE754-2008包含一种"半精度"格式,只有16位宽.故它又被称之为 ...
- python定义整数浮点数_Python中整数和浮点数
Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致. 基本的运算: 1 + 2 + 3 # ==> 6 4 * 5 - 6 # ==> 14 7.5 ...
最新文章
- OpenStack RPM Sample 解析
- Pytorch教程(十六):FashionMNIST数据集DataSet DataLoader
- BZOJ1036 (其实这只是一份板子)
- Android之提示订阅配置订阅需要传新的包 添加结算权限。
- 前端学习(3128):react-hello-react之回调形式的ref
- Docker学习总结(61)——Docker、Docker-Compose、Docker swarm 、 K8s 之间的区别
- Mongoose源码分析之--简单的服务器搭建(C语言)
- Python操作Mysql实例代码教程(查询手册)
- SSM - 全局跨域处理
- hadoop中4种压缩格式的特征的比较
- bootstrap 页面垂直居中_bootstrap div垂直居中+水平居中保持响应式
- 当当网,京东商城,一号店,苏宁易购百万数据抓取爬虫程序
- 身份认证是计算机网络系统的用户,计算机网络知识:网络认证技术之身份认证技术...
- H5+js实现别踩白块儿
- uniapp显示服务器请求超时,uniapp发布H5连接服务器超时
- spring boot整合Quartz 在Job类中注入其他对象报空指针异常java.lang.NullPointerException 	at com.sxt.quartz.QuartzDemo.e
- pstack无法查看进程堆栈“Could not attach to target”问题
- 小红书竞品分析_小红书与网易考拉 竞品分析报告
- SAP 采购订单入库——退货、免费入库
- 梦寐的电子市场终于可以去了哦!o(∩_∩)o...哈哈