欢迎来到天天文库
浏览记录
ID:28020758
大小:47.50 KB
页数:4页
时间:2018-12-07
《定点dsp实现浮点运算时的定标问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、程序变fi的Q值确定--定点DSP实现浮点运算时的定标问题2008-08-2718:45在前面儿节介绍的例子中,凼于X,y,z的值都是己知的,因此从浮点变为定点吋Q值很好确定。在实际的DSP应用中,程序中参与运算的都是变量,那么如何确定浮点程序中变朵的Q位呢?从前而的分析可以知道,确定变:ft的Q位实际上就是确定变朵的动态范W,动态范围确定了,则Q值也就确定了。设变量的绝对值的S大值力
2、max
3、,注意
4、max
5、必须小干或等于32767。収-个整数n,使满足2n-l<
6、max
7、<2n则有2-Q=2-15*2n=2-(1
8、5-n)Q=15-n例如,某变量的值在-1至+1之间,即
9、max
10、11、max12、就町以确定K.Q值,那么变g的13、max14、又是如何确定的呢?一般來说,确定变量的15、max16、有两种方法。一种是理论分析法,另一种是统计分析法。1.理论分析法冇些变S的动态范围通过理论分析是可以确定的。例如:⑴三角函数。^^匕⑻或y=cos(x),由三角函数知识可知,17、y18、<=l。(2)汉明窗。y(n)=0.54—0.46coslnnn/(N-l)J,0<=n<=N-lo因为-l<=cos19、_220、nn/(N-l)J<=l,所以0.08<=y(n)<=1.0。(3)FIR卷积。y(n)=Zh(k)x(n-k),设E21、h(k)22、=l.(),且x(n)是模拟信号12位量化值,即有23、x(n)24、<=2All,则25、y(n)26、<=2八11。⑷理论已经证明,在A相关线性预测编硕LPC)的程序设计中,反射系数ki满足下列不等式:27、ki28、<1.0,i=l,2,…,p,p为LPC的阶数。2.统计分析法对于理论上无法确定范闹的变朵,一般采用统汁分析的方法来确定其动态范喇。所谓统计分析,就足川足够多的输入信号样值来确矩程序屮变景的动态29、范围,这里输入信号一方面要有一定的数量,另一方面必须尽可能地涉及各种情况。例如,在语音信号分析中,统计分析时就必须来粜足够多的语音信兮样值,并M在所采集的语音样值中,应尽吋能地包含各种情况。如音量的人小,声音的种类(男声、女声等)。只奋这样,统计出來的结果才能具奋典型性。当然,统计分析毕竟不可能涉及所冇可能发生的情况,因此,对统计得出的结果在程序设计时可采収一些保护措施,如适当牺牲一些精度,Q值取比统计值稍大些,使用DSP芯片提供的溢出保护功能等。DSP芯片的定点运算2008-09-0911:20DSP芯片的定点运兑30、1.数据的溢出:1>溢出分类:上溢(overflow):卜溢(underflow)2〉溢出的结果:MaxMinMinMaxunsignedchar0255signedchar-128127unsignedint065535signedint-3276832767上溢在岡圈上按数据逆时针移动;下溢在岡圈上顺时钟移动。例:signedint:32767+1=—32768;-32768-1=32767unsignedchar:255+1=0;0-1=2553>为了避免溢出的发生,一般在DSP中可以设置溢出保护功能。3发生溢31、出时,A动将结果设置为最大值或最小值。1.定点处理器对浮点数的处理:1>定义变S为浮点型(float,double),用C语言抹平定点处理器和浮点处理器的区别,但是程序的代码庞人,运算速度也慢。2〉放大若干倍表示小数。比如耍表示精度为0.01的变量,放大100倍去运算,运算完成P再转化。但是这个做法比较僵硬,如要将上而的变:W:重新定义成().001精度,又需要放人1000倍,且要重新编写整个程序,考虑溢出等问题。3>定标法:Q格式:通过假定小数点位于哪一位的右侧,从而确定小数的精度。Q0:小数点在第0位的后而,即我32、们一般采用的方法Q15小数点在第15位的后面,0〜14位都是小数位。转化公式:Q=(int)(FXpow(2,q))F=(float)(QXpow(2,—q))3.Q格式的运算1〉走点加减法:须转换成相同的Q格式才能加减2〉定点乘法:不同Q格式的数据相乘,相当于Q值相加3〉定点除法:不同Q格式的数裾相除,相当于Q位相减4〉定点左移:左移相当于Q值增加5>定点右移:右移相当于Q减少4.Q格式的应用格式实际应川屮,浮点运算人都吋候都足既奋整数部分,也奋小数部分的。所以要选择一个适当的定标格式冰能更好的处理运算。一般用如卜33、两种方法:1>使用吋使用适屮的定标,既可以表示一定的整数复位也可以表示小数复位,如对于2812的32位系统,使川QI5格式,可表示一65536.0〜65535.999969482区间内的数据。2>全部采用小数,这样因为小数之叫相乘永远是小数,永远不会溢出。取一个极限最大值(敁好使用2的n次幂),转换成x/Max的小数(如果Max是取的2的n次暴
11、max
12、就町以确定K.Q值,那么变g的
13、max
14、又是如何确定的呢?一般來说,确定变量的
15、max
16、有两种方法。一种是理论分析法,另一种是统计分析法。1.理论分析法冇些变S的动态范围通过理论分析是可以确定的。例如:⑴三角函数。^^匕⑻或y=cos(x),由三角函数知识可知,
17、y
18、<=l。(2)汉明窗。y(n)=0.54—0.46coslnnn/(N-l)J,0<=n<=N-lo因为-l<=cos
19、_2
20、nn/(N-l)J<=l,所以0.08<=y(n)<=1.0。(3)FIR卷积。y(n)=Zh(k)x(n-k),设E
21、h(k)
22、=l.(),且x(n)是模拟信号12位量化值,即有
23、x(n)
24、<=2All,则
25、y(n)
26、<=2八11。⑷理论已经证明,在A相关线性预测编硕LPC)的程序设计中,反射系数ki满足下列不等式:
27、ki
28、<1.0,i=l,2,…,p,p为LPC的阶数。2.统计分析法对于理论上无法确定范闹的变朵,一般采用统汁分析的方法来确定其动态范喇。所谓统计分析,就足川足够多的输入信号样值来确矩程序屮变景的动态
29、范围,这里输入信号一方面要有一定的数量,另一方面必须尽可能地涉及各种情况。例如,在语音信号分析中,统计分析时就必须来粜足够多的语音信兮样值,并M在所采集的语音样值中,应尽吋能地包含各种情况。如音量的人小,声音的种类(男声、女声等)。只奋这样,统计出來的结果才能具奋典型性。当然,统计分析毕竟不可能涉及所冇可能发生的情况,因此,对统计得出的结果在程序设计时可采収一些保护措施,如适当牺牲一些精度,Q值取比统计值稍大些,使用DSP芯片提供的溢出保护功能等。DSP芯片的定点运算2008-09-0911:20DSP芯片的定点运兑
30、1.数据的溢出:1>溢出分类:上溢(overflow):卜溢(underflow)2〉溢出的结果:MaxMinMinMaxunsignedchar0255signedchar-128127unsignedint065535signedint-3276832767上溢在岡圈上按数据逆时针移动;下溢在岡圈上顺时钟移动。例:signedint:32767+1=—32768;-32768-1=32767unsignedchar:255+1=0;0-1=2553>为了避免溢出的发生,一般在DSP中可以设置溢出保护功能。3发生溢
31、出时,A动将结果设置为最大值或最小值。1.定点处理器对浮点数的处理:1>定义变S为浮点型(float,double),用C语言抹平定点处理器和浮点处理器的区别,但是程序的代码庞人,运算速度也慢。2〉放大若干倍表示小数。比如耍表示精度为0.01的变量,放大100倍去运算,运算完成P再转化。但是这个做法比较僵硬,如要将上而的变:W:重新定义成().001精度,又需要放人1000倍,且要重新编写整个程序,考虑溢出等问题。3>定标法:Q格式:通过假定小数点位于哪一位的右侧,从而确定小数的精度。Q0:小数点在第0位的后而,即我
32、们一般采用的方法Q15小数点在第15位的后面,0〜14位都是小数位。转化公式:Q=(int)(FXpow(2,q))F=(float)(QXpow(2,—q))3.Q格式的运算1〉走点加减法:须转换成相同的Q格式才能加减2〉定点乘法:不同Q格式的数据相乘,相当于Q值相加3〉定点除法:不同Q格式的数裾相除,相当于Q位相减4〉定点左移:左移相当于Q值增加5>定点右移:右移相当于Q减少4.Q格式的应用格式实际应川屮,浮点运算人都吋候都足既奋整数部分,也奋小数部分的。所以要选择一个适当的定标格式冰能更好的处理运算。一般用如卜
33、两种方法:1>使用吋使用适屮的定标,既可以表示一定的整数复位也可以表示小数复位,如对于2812的32位系统,使川QI5格式,可表示一65536.0〜65535.999969482区间内的数据。2>全部采用小数,这样因为小数之叫相乘永远是小数,永远不会溢出。取一个极限最大值(敁好使用2的n次幂),转换成x/Max的小数(如果Max是取的2的n次暴
此文档下载收益归作者所有