欢迎来到天天文库
浏览记录
ID:11728759
大小:620.00 KB
页数:6页
时间:2018-07-13
《q格式_dsp定点和浮点数学运算规则》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Q格式有符号数的表示法,机器数(出现在电脑的二进位数值)有3个特点,无符号或符号转换成数值来表示,没有+10101这样的资料,而是以010101来表示,只表示单纯的整数或小数,小数点的位置预设在一定的位置而较少变动,它的长度受到电脑硬体的限制,而不能无限增长。Q格式,就是将一个小数放大若干倍后,用整数来表示小数。Q格式前提无符号数:当参与运算的数值没有负数且运算的结果也没有负数时,则所有字元都可以表示数值,这种没有符号的数,称为无符号数(如记忆体储存位址),有符号数:数值中有某位数值代表符号,通常最高位作为符号位,0代表正,1代表负。 真值:有符号数
2、所代表的数值,例如:110所代表的值是-2而非6,有符号数只要去除符号位就可以获得该数的大小,在运算时,它的符号位可参与运算。但在加减运算时,必须将它分离出来,才能进行运算。有时,还要确定哪个有符号数的真值比较大,才能确定结果的符号。为了达到这些功能,电路的设计就相当复杂。所以很多电脑系统不直接使用有符号数,而使用有符号数的1’s补数或2’s补数表示法作为编码系统正弦脉波宽度调变(SPWM)之控制方法经Q格式乘法器转换成振幅与频率可变V/F控制,当成其单相感应马达的输入信号,藉由控制责任周期的大小,以达到变电压相对改变频率的效果。DSP1.实现数位系统
3、的第一步 在自然世界中,所有的物理量包括时间、电压、质量、位移等等,都是类比的、连续的。可是在数位系统中,讯号是在不连续的时间点取样,物理量或讯号的大小也不再是连续,而是被量化(Quantized)。在数位系统中,只能用有限字元长度的数字去表示数量的大小,而不能以无限精确的数值(实数)去表示。为了实现数位系统;使用了定数数与浮点数的表示法。 a)定点数(FixedPointNumber):指一个数字的表示,其小数点是在固定的位置(位元)。 b)浮点数(FloatingPointNumber):使用假数以及指数两部分来表示数值。 例如:一个不含正
4、负号的四位数十进制,包含三位整数和一位小数; 定点数所能表示的à ※最大值:999.9 ※最小值:000.1 ※动态范围:20log9999≒80(dB) ※所以小于0.1以及大于999.9的数值皆无法用此格式表示。 浮点数所能表示的à ※最大值:0.999×109 ※最小值:0.001×100 ※动态范围:20log1012≒240(dB) PS:动态范围:指一个数字表示法所能表示最大数值与最小数值的比值。 c)两种表示法的比较: ※有效位数:定点有效位数有四位数,浮点格式只有三位数。 ※价格:定点DSP价廉且普及(90%)
5、;浮点DSP运用在复杂运算价格昂 贵。 d)DSP的算数运算: ※负数:采用二补数法来表示。例如;﹣46(d)可表示成11010010(b)。用 二补数来表示有号数的好处是:只需一个加法器,就可以具备加、减 法运算的功能。 ※Q格式:小数点位于第n位元之右侧,称为Qn格式。例如; 16位元二进位无号数:0100001010000001 à在Q0格式下其表示的是:2^14+2^9+2^7+2^0=17025(d) à在Q8格式下其表示的是:2^6+2^1+2^-1+2^-8=66.50390~(d) à在Q16格式下其表示的是:2^-
6、2+2^-7+2^-9+2^-16=0.25978~(d) 进行加法或减法时,Q格式并不会影响运算法则,两个Q8格式的小数相 加,所得到的数值仍是Q8格式。两个Q6格式相减,所得到的数值仍是Q6格 式。因此在定点数之加减运算并不因Q格式不同而有差异。不过可能会产生溢位(overflow),而且不同格式的数值不能直接相加减。 乘法时,Q格式便会影响运算结果。两个16位元数做乘法,会得到32位元数。此时只能取16位元。 àQ0格式:取运算结果最低的16位元,删除较高的16位元。 àQ16格式:取运算结果最高的16位元,删除较低的16位元。 3
7、 处理有数号是采Q15格式来表示定点数,因为MSB被用来表示正负号。且在乘法运算不考虑溢位的问题。 举例:+0.5×(-0.5)=-0.25 1.100000000000000×0.100000000000000 s⊕s.110000000000000000000000000000 得到的结果MSB为两数的MSB做XOR求得,并取上面画底线Q15的部分 可得1.110000000000000(16bit)。为了使结果也是Q15格式,由于最高两位元 仅是表示正负号,所以DSP会自行将结果的最高位元舍弃。 CPU是定点微处理器不能直接处理小
8、数,C语言中的自动调用运行时的函数来处理浮点数(float型),C语言中抹平了定点处理器和浮点
此文档下载收益归作者所有