DSP

定点c程序之一:定标

2019-07-13 11:56发布

定点DSP把所有数据都当作整数来处理 ü在定点DSP芯片中,数字运算都是基于整形数的运算,也即所有操作数都用整形数表示。运算精度取决于整形数的字长,一般定点DSP的字长为16、24、或32。 ü定点数用2的补码表示,16比特定点数表示的数值范围-32768~32767 ü如1111111111111100b = -4 ü定点DSP如何处理小数/分数? ü数的定标:设定小数点在16位整形数的适当位置,小数点前面部分表示数的整数部分;小数点后面部分表示小数部分 当小数点处于不同位置时,所能表示的数字的范围不同,因此,要根据信号变量的取值范围来对数进行定标,选取合适的小数点位置。 数的定标有Q表示法和S表示法   定点数的数值计算方法 0000010.001010000 = 21+2-3+2-5=2+0.125+0.03125=2.15625 1111010.100000000 = -0000101.011111111+1     =-0000101.100000000=-5.5 定点数的范围和精度 不同的Q值表示的数字范围不同,Q值越大,表示的数的范围越小,同时精度越大; 反之,Q值越小,表示的数的范围越大,数的精度越小. Q15的表示的范围是-1~0.9999695,精度为1/32768; Q0表示的范围是-32768~32767,精度为1 定点数的精度和范围是一对矛盾,程序员应该准确估计变量的动态范围,然后进行适当的定标,使数字表示既不会溢出,又能达到最高的精度. 定点数和浮点数的转换 浮点数(x)转换为定点数(xq):xq=intx * 2Q 定点数(xq)转换为浮点数(x):x=floatxq * 2-Q