zoukankan      html  css  js  c++  java
  • 浮点数定点化

      FPGA只能处理定点数,Alteral stratix 10可以支持硬浮点,如军方雷达、机器视觉等硬件加速。  

      浮点数:2.918 3.1415986
      浮点转定点:(如16位,表示范围32767~-32768)
          定义小数需求多少位(如12位)
          整数需求多少位(如3位)
          最高位为符号位(针对有符号数,1位)
      对于低15位,整数最大表示7,小数最大精度1/(2^12)=0.000244140625,小数最大能表示(1/(2^12))4095=0.999755859375
      即使用15位二进制数(最大32767)表示浮点小数(最大7.999755859375)
      如对2.918定点化的过程:
        量化精度:(8/32768)
        量化结果:2.918/(8/32768)=11952.128~=11952
        定点化会产生量化误差。
      如对3.1415926定点化过程;
        3.1415926/(8/32768)=12867.9632896~=12868

        浮点数运算:2.918*3.1415926=9.1671672068
        11952x12868=153798336
        153798336=(0)_(00_1001)_(0010_1010_1100_0110_1100_0000)
        符号位1位,表示正数,
        整数6位,表示十进制数为9,
        小数24位,为(0010_1010_1100_0110_1100_0000)b=(2803392)d,
        2803392/(2^24)=0.167095184326171875
        所以153798336转换为浮点数为9.167095184326171875
        与原浮点数结果有误差。
    综上:
        第一步:规定位宽
            整数位宽:能够表示整数部分的最少bit数。
            小数位宽:能够满足最大小数精度的bit数,如小数位宽为N,则能表示的小数精度为1/(2^N)
        第二步:确定最大值与最小值
        第三步:定点化处理

  • 相关阅读:
    Entity Framework在WCF中序列化的问题
    OTS
    ClickHouse原理解析与应用实践--摘录
    在docker中安装ogg19
    性能测试指标记录
    docker安装oracle12c记录
    docker安装oracle19c记录
    kudu
    stm32模拟iic从机程序
    STM32启动代码注释
  • 原文地址:https://www.cnblogs.com/MAQI/p/7489029.html
Copyright © 2011-2022 走看看