生成正选波形时浮点运算转标幺值定点整数运算

由于浮点运算占用CPU的运行时间大于定点运算,当我们在一些对时间特别敏感的系统中就需要对小数进行标幺处理,然后用定点整数的方式来进行运算

               表1   Q  ,S的取整范围

一般的小数的标幺格式采用Q15格式

我这边对0.1~1  标幺得到的数组如下

    f_0_1 = 3276,
    f_0_2 = 6553,
    f_0_3 = 9830,
    f_0_4 = 13107,
    f_0_5 = 16384,
    f_0_6 = 19660,
    f_0_7 = 22937,
    f_0_8 = 26214,
    f_0_9 = 29491,
    f_1_0 = 32767

对生成的sine波形进行标幺得到一个整数数组

标幺的乘法运算

设浮点乘法运算的表达式为:

float x, y,z;

z =  x*y;

假设经过标幺后的X定值为Qx,y为Qy   z为Qz

例如 x= 0.5  y=0.5

则 标幺后  X= 16384 ,Y= 16384   

则Z= X*Y>>(15+15-15) =8192

z =Z/32768 = 0.25