浮点数的定点化
来源:互联网 发布:模拟人生3在mac怎么玩 编辑:程序博客网 时间:2024/05/14 08:30
FPGA(一般只能处理定点数):浮点数的定点化
浮点数例子 : 2.918 12.918 3.1415926
转成定点数要定义小数需求多少位,整数需求多少位
例:16位的定点数(MAX:16’d32767 MIN:-32768)
3位整数位宽,12位的小数位,最高位的符号位
取低15位,其中第14,13,12位最大能表示7,
小数最大12位能表示的最大精度:1/4096=0.00244140625
(0.00244140625*4095 = 0.999755859375)
极限最大值表示:7.999755859375
说明:
判断能否用12位精度表示(即:无损失定点化),看能否除尽:
比如:12.918
3位整数位宽最大只能表示7 所以整数12需要4位位宽
小数部分0.918 判断:0.918/0.00244140625 = 3760128 所以12位小数位能表示0.918
例:2.918进行定点化的过程:
8/32768 = 0.00244140625(最大精度)
2.918/0.00244140625 = 11952.128 ~=11952 表示2.918定点后的值
0.128表示量化误差
例:3.1415926进行定点化
3.1415926/(8/32768) ~=12868
12868转化为浮点数: 16’d12868 = 16’b0011 0010 0100 0100
其中: 整数部分表示 011 = 3 小数部分表示 0010 0100 0100 = 580
(10进制数580需要转换成小数:580/4096=0.1416015625)
量化误差:0.0000089625
总结:
1.定义位宽
2.表示出最大最小值
3.定点化过程
浮点数的乘法表示(注意相乘后位宽变化):
例:2.918*3.1415926 ~= 11952*12868
浮点结果 : 2.918*3.1415926 = 9.1671672068
定点结果 : 11952*12868 = 153798336 ~= 9.167095184326171875
153798336 = 0000 1001 0010 1010 1100 0110 1100 0000
整数部分表示: 001001 = 9
小数部分表示: 2803392/(2^24) = 0.167095184326171875
例:正数的定点化
5bit的正数位,8bit的小数位
11.11111定点数的结果
- 浮点数的定点化
- 浮点数的定点化
- FPGA(一般只能处理定点数):浮点数的定点化
- 连载:编写高效代码(10) 在精度允许的条件下,将浮点数定点化
- 编写高效代码(4) 在精度允许的条件下,将浮点数定点化
- 定点化的基本原理
- FFT 定点化的文章
- tensorflow模型的定点化
- FPGA基础知识17(Matlab中滤波器的定点化 浮点运算转换为定点运算)
- 定点化
- 定点化
- 定点化
- 定点化资料
- 算法定点化
- 算法定点化
- OSTU定点化
- 定点化问题
- 算法定点化
- 如何通过GPS定位器,通过网页请求获取:经纬度信息和速度,以及中文地址信息
- Contest Hunter #46 T1
- 2017腾讯实习生编程题 简单但是没想起来 后悔终生啊
- 关于屏幕的旋转问题
- XCode8去掉多余LOG
- 浮点数的定点化
- 二维有序数组查找给定值
- 使用ViewPager时,如何对view进行更新
- 1
- 看完必会的JSONP
- 事件 事件冒泡 事件捕获 怎么兼容事件addeventlistener attachEvent addEvent 兼容事件对象
- 11
- SQL语句中的运行时参数
- Markdown (一种标记语言)简明语法