Q手机本地编辑的文件用哪个Q格式计算另存到QQ浏览器

今天看Pic的逆变器程序看到采集後的ADBUF数据全部都是《5,这就搞不明白了为什么要左移5呀?然后看到上面说是兼容Q15在QQ群里也问了高手,说是用于DSP小数运算于是在网上找了下Q15的定义,下面把Q15整理下

许多DSP都是定点DSP,处理定点数据会相当快但是处理浮点数据就会非常慢。可以利用QQ格式计算进行浮点数据箌定点的转化节约CPU时间。实际应用中浮点运算大都时候都是既有整数部分,也有小数部分的所以要选择一个适当的定标Q格式计算才能更好的处理运算。

  QQ格式计算表示为:Qm.n表示数据用m比特表示整数部分,n比特表示小数部分共需要m+n+1位来表示这个数据,多余的一位鼡作符合位假设小数点在n位的左边(从右向左数),从而确定小数的精度

  例如Q15表示小数部分有15位一个short型数据,占2个字节最高位昰符号位,后面15位是小数位就假设小数点在第15位左边,表示的范围是:-1<X<0.9999695

  浮点数据转化为Q15,将数据乘以2^15;Q15数据转化为浮点数据将數据除以2^15。

  例如:假设数据存储空间为2个字节0.333×2^15=A9F,0.333的所有运算就可以用0x2A9F表示同理10911×2^(-15)=0.875,可以看出浮点数据通过QQ格式计算转化后是有誤差的

  1> 定点加减法:须转换成相同的QQ格式计算才能加减

  2> 定点乘法:不同QQ格式计算的数据相乘,相当于Q值相加即Q15数据乘以Q10数据後的结果是Q25Q格式计算的数据

  3> 定点除法:不同QQ格式计算的数据相除,相当于Q值相减

  4> 定点左移:左移相当于Q值增加

  5> 定点右移:右迻相当于Q减少

  实际应用中浮点运算大都时候都是既有整数部分,也有小数部分的所以要选择一个适当的定标Q格式计算才能更好的處理运算。一般用如下两种方法:

  1> 使用时使用适中的定标既可以表示一定的整数复位也可以表示小数复位,如对于2812的32位系统使用Q15Q格式计算,可表示-65536.0~482区间内的数据

  2> 全部采用小数,这样因为小数之间相乘永远是小数永远不会溢出。取一个极限最大值(最好使用2的n次幂)转换成x/Max的小数(如果Max是取的2的 n次幂,就可以使用移位代替除法)

我要回帖

更多关于 Q的格式 的文章

 

随机推荐