matlab saturate,MATLAB定点仿真方法的学习笔记

定点仿真方法的学习笔记(一)

在用MATLAB工具对算法进行仿真时,数据的流动是以浮点形式进行的,浮点型又分单

dc63054917f58f3fbb24cf3a73f880ba.png

单精度浮点型数据用32 bit 来存储数据,其中符号位1 bit,指数位8 bit,尾数位23 bit。双精度浮点型数据则用64 bit 来存储数据,其中符号位1 bit,指数位11 bit,尾数位52 bit。

这样的数据存储方式能够保证一个数的精度。但是在考虑硬件实现的时候(如FPGA,定点DSP),数据的流动是以固定长度的二进制序列进行,因此,为了进一步的反映硬件实现中算法性能,我们需要对数据的类型做重新的定义,使得所表示的数据更符合硬件平台上的处理方式。

做定点仿真实际就是对算法中的每一个数据进行量化,用规定字长的二进制序列表示一个数,使它接近实际值。为了方便对数据类型做定点转换,MATLAB提供了强大的Fixed-Point Toolbox 来帮助我们做这项工作。以下的所用内容只是个人对Fixed-Point Toolbox 学习的总结,如有任何疑问,请查找HELP 中的相关内容,理解上如有错误,恳请斧正。

先介绍几个对象给大家认识,也就是Object,个人认为定点的过程就是让数据在 fi

这个对象下进行工作。

●fi 对象

当你用 fi 这个函数对一个数据进行定点处理时,你就构造了一个fi 对象(说白了也是一个数,你规定了这个数的数据类型)。你可以对这个对象进行运算。与一个数不同的是这个对象有很多的属性,在这里先把它们中常用的列出来,并对它们做一些简要说明,后面会用实例告诉大家怎么去理解这些属性。

?Data 属性

该属性可以让你了解一个fi对象在不同的数据形式下的具体值,如二进制(bin),八进制(oct),十进制(dec),十六进制(hex),双精度(double)等等。

?fimath 属性

该属性规定了fi 对象在进行数据运算时,处理数据的习惯(数学运算,截位方式,溢出方式)。它是一个比较抽象意义上的属性,你可以用另一个对象对它进行定义。当你要定义fi对象的fimath属性时,你需要先定义一个fimath的对象,再用fimath 对象定义fi对象的fimath属性。将在fimath对象中介绍。

?numerictype 属性

该属性包含了fi对象的所有数据类型信息。它是一个比较抽象意义上的属性,你可以用另一个对象对它进行定义。当你要定义fi对象的numerictype属性时,你需要先定义一个numerictype对象,再用numerictype对象定义fi对象的fimath属性。将在numerictype对象中介绍。

●fimath 对象

该对象的常用属性如下:

?CastBeforeSum 属性

在两个操作数进行加法之前,是否将操作数影射成“和”的数据类型。“0”表示“否”,“1”表示“是”。例如,若两个操作数(对象)是18 bit,定义“和”为12 bit,若该属性为“0”,则两个操作数先进行“加”操作,然后对“和”截位得到12 bit输出,若该属性为“1”,则两个操作数先截位成12 bit,然后再进行“加”操作。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值