tag 标签: 小数

相关博文
  • 热度 4
    2018-6-25 12:23
    3416 次阅读|
    0 个评论
    定点小数运算 有些FPGA中是不能直接对浮点数进行操作的,只能采用 定点数 进行数值运算。 所谓定点小数就是把小数点的位置固定,我们要 用整数来表示小数 。 先以10进制为例。如果我们能够计算12+34=46的话,当然也就能够计算1.2+3.4 或者 0.12+0.34了。所以定点小数的 加减法和整数的相同,并且和小数点的位置无关。乘法就不同了。 12*34=408,而1.2*3.4=4.08。这里1.2的小数点在第1位之前,而4.08的小数点在第2位之前,小数点发生了移动。所以在做乘法的时候,需要对小数点的位置进行调整?!可是既然我们是做定点小数运算,那就说小数点的位置不能动!!怎么解决这个矛盾呢,那就是舍弃最低位。 也就说1.2*3.4=4.1,这样我们就得到正确的定点运算的结果了。所以在做定点小数运算的时候不仅需要牢记小数点的位置,还需要记住表达定点小数的有效位数。上面这个例子中,有效位数为2,小数点之后有一位。 现在进入二进制。我们的定点小数用16位二进制表达,最高位是符号位,那么有效位就是15位。小数点之后可以有0 - 15位。我们把 小数点之后有n位叫做Qn ,例如小数点之后有12位叫做Q12格式的定点小数,而Q0就是我们所说的整数。 Q12的正数的最大值是 0 111 . 111111111111,第一个0是符号位,后面的数都是1,那么这个数是十进制的多少呢,很好运算,就是 0x7fff / 2^12 = 7.999755859375。对于Qn格式的定点小数的表达的数值就它的 整数值 除以2^n。在计算机中还是以整数来运算,我们把它想象成实际所表达的值的时候,进行这个运算。 反过来把一个实际所要表达的值x转换Qn型的定点小数的时候,就是x*2^n了。例如 0.2的Q12型定点小数为:0.2*2^12 = 819.2,由于这个数要用整数储存, 所以是819 即 0x0333。因为舍弃了小数部分,所以0x0333不是精确的0.2,实际上它是819/2^12 =0.199951171875。 我们用数学表达式做一下总结: x表示实际的数(*一个浮点数), q表示它的Qn型定点小数(一个整数)。 q = (int) (x * 2^n) x = (float)q/2^n 验证: 由于/ 2^n和* 2^n可以简单的用移位来计算,所以定点小数的运算比浮点小数要快得多。下面我们用一个例子来验证一下上面的公式: 用Q12来计算2.1 * 2.2,先把2.1 2.2转换为Q12定点小数: 2.1 * 2^12 = 8601.6 = 8602 2.2 * 2^12 = 9011.2 = 9011 12 = 18923 18923的实际值是18923/2^12 = 4.619873046875 和实际的结果 4.62相差0.000126953125,对于一般的计算已经足够精确了。
  • 热度 18
    2014-12-6 13:59
    3624 次阅读|
    0 个评论
    在 verilog 中没有小数的概念,如果要有小数的计算,最普遍的办法是将小数按 2 的倍数增大计算完后缩小相同的倍数。按 2 的多少倍数增大是个关键。 例如需要将 0.2 变成整数计算,那么需要将 0.2x2 N 使之成为整数,如果没法成为真正的整数,那么就取误差范围相对于小的倍数。 如果 0.2 x 2 3 = 1.6, 那么 verilog 是取 1.6 中的整数进行计算,误差就是( 1.6-1 ) /1.6 = 0.38 左右; 如果 0.2 x 2 6 = 12.8, 那么 verilog 是用 12 进行计算,误差范围是 0.8/12.8 = 0.0625 ;相比之下增大倍数越大同倍数减少时误差范围越来越小,但是不需要夸张的增加放大倍数,通过实际情况,在合理的误差范围内就可以了。
相关资源
  • 所需E币: 1
    时间: 2022-8-3 22:46
    大小: 12.09KB
    上传者: xyzzyxaaa
    【实验92】数字各位与小数的拆分.zip
  • 所需E币: 2
    时间: 2022-5-12 10:02
    大小: 9.35MB
    上传者: czd886
    CMOS单片收发机多模小数频率综合器的设计
  • 所需E币: 4
    时间: 2020-1-4 23:21
    大小: 14.27KB
    上传者: rdg1993
    任意数分频(包括奇偶数和小数)的各种设计方法……
  • 所需E币: 5
    时间: 2020-1-14 14:07
    大小: 127.79KB
    上传者: 16245458_qq.com
    小数分频原理维普资讯http://www.cqvip.com小数分频原理施自胜摘要L~本文详细地阐述了小数分频频率合成嚣的原理,井扼要地分析了小数对环路性能的改善.小敷分频频率合成嚣具有频率间随精细、换频快捷、频谱纯净和体积小巧等优点,可广泛应用于通信和电子饭嚣中.一、引言自从Finden首先在1943年使用。FrcqcncySysthcsizcr一词来命名他的谐波倍频产生器以来.新的频率合成方案不断涌现,按频率合成方法可分为两太类:一是直接频率合成(DFS);二是间接频率合成,它又有单环频率合成(NFS)、多环频率合成(MNFS)和小数分频频率合成(FNFS)等三种、然而,在这些方法中,频谱纯度换频速度以及频率间隔等指标往往是相互矛盾的.DFS尽管有很高的换频速度,但随着频率间隔的降低.元器件数目激增、体积增大,且产生许多难以预料的组合频率:NFS虽然集成度高体积小巧,但频率间隔与换频建度以及频谱纯度之间存在严重的矛盾;MNFS实际上是对DFS和NFS的折衷.上述矛盾仍未解决.1969年1月DANA实验室有限公司的一项专利“披露了一种利用单环频率合成器来减小频率间隔的新方珐――小数分频或称数字相位.新颖、独特的小数分频不仅解决了频率间隔问题,还……
  • 所需E币: 3
    时间: 2020-1-14 19:46
    大小: 82.53KB
    上传者: quw431979_163.com
    小数fpga,小数fpga、……
  • 所需E币: 3
    时间: 2020-1-15 09:27
    大小: 15.02KB
    上传者: 238112554_qq
    任意数分频(包括奇偶数和小数)的各种设计方法及代码!,任意数分频(包括奇偶数和小数)的各种设计方法……