硬汉嵌入式论坛

 找回密码
 立即注册
查看: 10464|回复: 2
收起左侧

[客户分享] FPU学习——Q格式

[复制链接]

20

主题

55

回帖

20

积分

初级会员

积分
20
发表于 2012-12-19 21:23:40 | 显示全部楼层 |阅读模式
有符号数的表示法,机器数(出现在电脑的二进位数值)有3个特点, 无符号或符号转换成数值来表示,
没有+10101这样的资料,而是以010101来表示,只表示单纯的整数或小数,小数点的位置预设在一定
的位置而较少变动,它的长度受到电脑硬体的限制,而不能无限增长。Q格式,就是将一个小数放大若
干倍后,用整数来表示小数。
Q格式前提
      无符号数:当参与运算的数值没有负数且运算的结果也没有负数时,则所有字元都可以表示数值,
这种没有符号的数,称为无符号数(如记忆体储存位址),有符号数:数值中有某位数值代表符号,通常
最高位作为符号位,0代表正,1代表负
      真值:有符号数所代表的数值,例如:110所代表的值是 -2 而非 6,有符号数只要去除符号位就可
以获得该数的大小,在运算时,它的符号位可参与运算。但在加减运算时,必须将它分离出来,才能进
行运算。有时,还要确定哪个有符号数的真值比较大,才能确定结果的符号。为了达到这些功能,电路
的设计就相当复杂。所以很多电脑系统不直接使用有符号数,而使用有符号数的1’s补数或2’s补数表示法
作为编码系统


DSP芯片的定点运算



1. 数据的溢出:

  1> 溢出分类:
       上溢(overflow), 下溢(underflow)2>溢出的结果
  

MinMax
     unsigned char0255
     signed char-128127
     unsigned int065535
     signed int-3276832767
 
     上溢在圆圈上按数据逆时针移动;下溢在圆圈上顺时钟移动。例:signed int :32767+1=-32768;
     -32768-1=32767unsigned char:255+1=0; 0-1=255   3>为了避免溢出的发生,一般在DSP中可
     以设置溢出保护功能。当发生溢出时,自动将结果设置为最大值或最小值。


2. 定点处理器对浮点数的处理:

  1> 定义变量为浮点型(float,double),用C语言抹平定点处理器和浮点处理器的区别,但是程序的代码庞大,
运算速度也慢。2> 放大若干倍表示小数。比如要表示精度为0.01的变量,放大100倍去运算,运算完成后再转化。
但是这个做法比较僵硬,如要将上面的变量重新定义成0.001精度,又需要放大1000倍,且要重新编写整个程序,考虑
溢出等问题。3> 定标法:Q格式:通过假定小数点位于哪一位的右侧,从而确定小数的精度。Q0:小数点在
第0位的后面,即我们一般采用的方法Q15 小数点在第15位的后面,0~14位都是小数位。
转化公式:Q=(int)(F×pow(2,q)) F是浮点数
                  F=(float)(Q×pow(2,-q)) Q是定标数

3. Q格式的运算

  1> 定点加减法:须转换成相同的Q格式才能加减
       2> 定点乘法:不同Q格式的数据相乘,相当于Q值相加
       3> 定点除法:不同Q格式的数据相除,相当于Q值相减
       4> 定点左移:左移相当于Q值增加
       5> 定点右移:右移相当于Q减少

4. Q格式的应用格式

  实际应用中,浮点运算大都时候都是既有整数部分,也有小数部分的。所以要选择一个适当的
定标格式才能更好的处理运算。一般用如下两种方法:1> 使用时使用适中的定标,既可以表
示一定的整数复位也可以表示小数复位,如对于2812的32位系统,使用Q15格式,可表示-65536.0
~65535.999969482区间内的数据。2> 全部采用小数,这样因为小数之间相乘永远是小数,
永远不会溢出。取一个极限最大值(最好使用2的n次幂),转换成x/Max的小数(如果Max是取的2
的n次幂,就可以使用移位代替除法)。

天天向上
回复

使用道具 举报

20

主题

55

回帖

20

积分

初级会员

积分
20
 楼主| 发表于 2012-12-19 21:25:38 | 显示全部楼层
网上有很多Q格式的介绍,大家可以查查,如果以前用过定点DSP,那么就对这个很熟悉了。
天天向上
回复

使用道具 举报

3

主题

28

回帖

37

积分

新手上路

积分
37
发表于 2014-4-22 12:32:23 | 显示全部楼层
关键是怎么去用一个Q15的数据
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 06:50 , Processed in 0.276346 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表