
DSP定点和浮点数格式ppt课件.ppt
42页DSP 运算根底• 1、、 DSP的数据表示的数据表示• 2、定点数的格式与运算、定点数的格式与运算• 3、浮点数的格式与运算、浮点数的格式与运算1、、 DSP的数据表示的数据表示格式格式字长字长16位位32位位定点定点浮点浮点24位位格式和字长决议了数据的精度和动态范围格式和字长决议了数据的精度和动态范围格式和字长也在一定程度上决议了格式和字长也在一定程度上决议了DSP处置器处置器的本钱、功耗和编程难度的本钱、功耗和编程难度2、、 定点数的格式与运算定点数的格式与运算•1. 定点数的格式定点数的格式•1〕〕Qn格式格式•2〕数值范围与精度〕数值范围与精度•3〕动态范围〕动态范围 •2. 定点数的算术运算定点数的算术运算•1〕定点数的加减法运算〕定点数的加减法运算•2〕定点数的乘法运算〕定点数的乘法运算•3〕定点数的除法运算〕定点数的除法运算l小数点小数点1. 定点数的格式定点数的格式1〕〕Qn格式格式lQ标志:表示隐含的小数点的位置标志:表示隐含的小数点的位置l二进制补码数二进制补码数01010011b,粗线表示隐含的小数点位置,粗线表示隐含的小数点位置l对于负数〔最高位对于负数〔最高位MSB为为1〕,要先把它转化为无符号二进制数,再进〕,要先把它转化为无符号二进制数,再进展计算,最后加上负号展计算,最后加上负号 例:例:8位字长位字长位位7MSB6543210LSB二二进制制补码01010011Q0符号符号26252423222120Q4符号符号2221202-12-22-32-4Q7符号符号2-12-22-32-42-52-62-7定点数与浮点数、定点数与定点数之间的转换关系定点数与浮点数、定点数与定点数之间的转换关系l浮点数浮点数X Qn格式的定点数格式的定点数Xnl例:例:5.1875 Q4定点数定点数l5.1875×24 ==83 ==01010011blQn格式的定点数格式的定点数Xn 为浮点数为浮点数Xl例:例: (Q7) 01010011b 浮点数浮点数l83/27 ==0.6484375lQn格式的定点数格式的定点数Xn Qm格式的定点数格式的定点数Xml例:例:(Q7) 01010011b Q4定点数定点数l83/27 ==0.6484375lint(0.6484375 ×24 ) ==int(10.375) ==10==00001010bl10/24 ==0.625≠ 0.6484375l给定字长给定字长N,采用,采用Qn格式表示小数格式表示小数l数值范围:数值范围:l精精 度:度:2〕数值范围与精度〕数值范围与精度Qn格式格式数数值范范围精度精度Q15-1~~0.9999694824218750.000030517578125Q14-2~~1.999938964843750.00006103515625Q13-4~~3.99987792968750.0001220703125Q12-8~~7.9997558593750.000244140625Q11-16~~15.999511718750.00048828125Q10-32~~31.99902343750.0009765625Q9-64~~63.9980468750.001953125Q8-128~~127.996093750.00390625Q7-256~~255.99218750.0078125Q6-512~~511.9843750.015625Q5-1024~~1023.968750.03125Q4-2048~~2047.93750.0625Q3-4096~~4095.8750.125Q2-8192~~8191.750.25Q1-16384~~16383.50.5Q0-32768~~327671l16位字长位字长Qn格式的数值范围与精度格式的数值范围与精度l动态范围:数据表示格式中可以表示的最大值与最小值之比动态范围:数据表示格式中可以表示的最大值与最小值之比lN位定点数的动态范围:位定点数的动态范围:l用分贝表示为:用分贝表示为:3〕动态范围〕动态范围l动态范围:数据表示格式中可以表示的最大值与最小值之比动态范围:数据表示格式中可以表示的最大值与最小值之比定点定点DSP处置器大多采用处置器大多采用16位定点数位定点数l对于要求更大动态范围的运用,可以采用扩展字长的方式,对于要求更大动态范围的运用,可以采用扩展字长的方式,即用两个或更多的字来表示数据即用两个或更多的字来表示数据l定点定点DSP处置器要求编程时要仔细思索信号幅值和中间结果,处置器要求编程时要仔细思索信号幅值和中间结果,在防止溢出和尽能够减小舍入误差的前提下,使精度和动态在防止溢出和尽能够减小舍入误差的前提下,使精度和动态范围最大化范围最大化 2. 定点数的算术运算定点数的算术运算1〕定点数的加减法运算〕定点数的加减法运算l一样的一样的Qn格式,保证隐含的小数点对齐格式,保证隐含的小数点对齐l最能够出现的问题是运算结果的溢出最能够出现的问题是运算结果的溢出l例:两个例:两个8位数相加,无溢出位数相加,无溢出l进位位与最高位〔进位位与最高位〔MSB〕一样〕一样l8位字长可以表示结果,没有发生数据溢出位字长可以表示结果,没有发生数据溢出11111100b〔〔 -4〕〕00101001b〔〔 41〕〕+ 11111110b〔〔 -2〕〕+ 00110011b〔〔 51〕〕111111010b〔〔 -6〕〕001011100b〔〔 92〕〕l例:两个例:两个8位数相加,有溢出位数相加,有溢出l进位位与最高位〔进位位与最高位〔MSB〕不同〕不同l运算结果发生溢出,运算结果发生溢出,8位字长已不能正确地表示结果位字长已不能正确地表示结果10110000b〔〔 -80〕〕00101001b〔〔 41〕〕+ 10111111b〔〔 -65〕〕+ 01110011b〔〔115〕〕非非饱和方式:和方式:101101111b〔〔-145〕〕非非饱和方式:和方式:010011100b〔〔156〕〕饱和方式:和方式:110000000b〔〔-128〕〕饱和方式:和方式:001111111b〔〔127〕〕l溢出是由于字长有限,运算结果超出数值的表示范围引溢出是由于字长有限,运算结果超出数值的表示范围引起的起的l饱和方式饱和方式l定点数减法运算的原理与加法运算一样定点数减法运算的原理与加法运算一样 2〕定点数的乘法运算〕定点数的乘法运算lDSP处置器都有硬件乘法器和乘法指令,可实现单周期乘处置器都有硬件乘法器和乘法指令,可实现单周期乘法运算法运算l二进制乘法运算包含一系列的移位和加法运算二进制乘法运算包含一系列的移位和加法运算l定点数乘法运算不要求相乘数有一样的定点数乘法运算不要求相乘数有一样的Qn格式格式l两个相乘数分别为两个相乘数分别为Qn和和Qm格式,字长为格式,字长为N,结果为,结果为Q(n+m)格式,字长为格式,字长为2Nl根据根据n和和m的不同取值,定点数乘法运算可以分成三种情况的不同取值,定点数乘法运算可以分成三种情况l①① 小数乘小数〔小数乘小数〔n、、m≠0,,m≤ n〕〕l②② 整数乘小数〔整数乘小数〔n≠0、、m=0〕〕l③③ 整数乘整数〔整数乘整数〔n=m=0〕〕 ①① 小数乘小数〔小数乘小数〔n、、m≠0,,m≤ n〕〕l例:两个相乘数分例:两个相乘数分别为Q7和和Q6格式,格式,8位字位字长l两个定点小数作乘法运算,两个定点小数作乘法运算,结果左移一位,保管高位得到果左移一位,保管高位得到运算运算结果,果,结果果为Qm〔〔m≤ n〕格式〕格式 0.1000000b〔0.5 Q7 〕 01.100000b〔1.5 Q6 〕000.1100000000000b〔0.75 Q13〕左移一位:00.11000000000000b〔0.75 Q14〕取高8位: 00.110000b〔0.75 Q6 〕②② 整数乘小数〔整数乘小数〔n≠0、、m=0〕〕l例:两个相乘数分别为例:两个相乘数分别为Q7和和Q0格式,格式,8位字长位字长0.1000000b〔0.5 Q7〕 11111001.b〔-7 Q0〕111111100.1000000b〔-3.5 Q7〕左移一位:11111100.10000000b〔-3.5 Q8〕取高8位: 11111100.b〔-3. Q0〕l误差小于等于误差小于等于Qn格式精度的一半,即小于等于格式精度的一半,即小于等于1/2n+1l单次计算的误差并不大,但假设是延续的运算,那么误差单次计算的误差并不大,但假设是延续的运算,那么误差会累积和传送,从而产生比较大的误差会累积和传送,从而产生比较大的误差lDSP处置器提供了自动舍入功能来减小误差处置器提供了自动舍入功能来减小误差l保管整个保管整个32位中间结果位中间结果l小数乘小数、整数乘小数运算都要求对乘积结果左移一位小数乘小数、整数乘小数运算都要求对乘积结果左移一位后,保管高位后,保管高位lDSP处置器带有可选的自动左移一位的功能,消除移位操处置器带有可选的自动左移一位的功能,消除移位操作的时间开销作的时间开销③③ 整数乘整数〔整数乘整数〔n=m=0〕〕l例:两个相乘数都为例:两个相乘数都为Q0格式,格式,8位字长位字长l整数相乘,结果为整数相乘,结果为Q0格式,需查询标志位确定保管的位数,格式,需查询标志位确定保管的位数,结果不需求左移一位结果不需求左移一位11111100.b〔-4 Q0〕 11111001.b〔-7 Q0〕0000000000011100.b〔28 Q0〕取低8位: 00011100.b〔28 Q0〕3〕定点数的除法运算〕定点数的除法运算l大多数大多数DSP处置器不提供单周期除法指令处置器不提供单周期除法指令l除法是乘法的逆运算,包括一系列移位和条件减法运除法是乘法的逆运算,包括一系列移位和条件减法运算,需求用除法子程序实现算,需求用除法子程序实现l例:例:8位字长的正整数相除位字长的正整数相除l被除数为被除数为00001010b〔〔10〕〕l 除数为除数为00000011b〔〔3〕〕l①① l②② 00001010b- 00000110b商数:00000001 余数:00000100bl③③ 00001000b- 00000110b商数:00000011 余数:00000010bl④④ l⑤⑤ 00000100b- 00000110b余数〔丢弃〕:11111110b商数:00000110 余数:00000100b00001000b- 00000110b商数:00001101 余数:00000010bl⑥⑥ l⑦⑦ 00000100b- 00000110b余数〔丢弃〕:11111110b商数:00011010 余数:00000100b00001000b- 00000110b商数: 00110101 余数:00000010bl⑧⑧ l⑨⑨ 对结果的小数点右移一位,得到果的小数点右移一位,得到Q5格式的格式的结果果011.01010b〔〔3.3125〕,最高位〕,最高位MSB为符号位符号位 00000100b- 00000110b余数〔丢弃〕:11111110b商数: 01101010 余数:00000100bl计算中,共进展了计算中,共进展了7次移位和条件减操作,得到次移位和条件减操作,得到8位〔位〔1个符号位和个符号位和7个数据位〕的结果个数据位〕的结果l要添加精度,可以添加移位和条件减的次数,如要添加精度,可以添加移位和条件减的次数,如15次移次移位和条件减可以得到位和条件减可以得到16位的结果位的结果l对于两个正的小数相除〔对于两个正的小数相除〔Qn格式除以格式除以Qm格式〕格式〕l如如Q3格式的格式的00001.010b〔〔1.25〕除以〕除以Q2格式的格式的000000.11b〔〔0.75〕〕l把两个正的小数看作两个把两个正的小数看作两个Q0格式的正整数相除,即格式的正整数相除,即00001010b〔〔10〕除以〕除以00000011b〔〔3〕〕l与上面例子一样,结果为与上面例子一样,结果为Q5格式格式011.01010bl最后对结果的小数点位置左移最后对结果的小数点位置左移n-m 位位l对于本例对于本例3-2=1>0,那么结果的小数点左移一位,最后,那么结果的小数点左移一位,最后结果为结果为Q6格式格式01.101010b〔〔1.65625〕〕l假设除法运算中包含负数,应将负数变换为等值的正数,假设除法运算中包含负数,应将负数变换为等值的正数,然后作除法运算,最后加上正确的符号然后作除法运算,最后加上正确的符号2.3 浮点数的格式与运算浮点数的格式与运算•1. 浮点数的格式浮点数的格式 •1〕〕IEEE754浮点数格式浮点数格式 •2〕〕TMS320C3X浮点数格式浮点数格式 •3〕浮点数的数值范围、精度和动〕浮点数的数值范围、精度和动态范围态范围 •2. 浮点数的算术运算浮点数的算术运算 •1〕浮点数的加减法运算〕浮点数的加减法运算 •2〕浮点数的乘法运算〕浮点数的乘法运算 •3〕浮点数的除法运算〕浮点数的除法运算l浮点数表示为尾数和指数的方式浮点数表示为尾数和指数的方式l式中,式中,m 为尾数,为尾数,e 为指数为指数l符号、尾数和指数编码在同一个二进制字中符号、尾数和指数编码在同一个二进制字中1. 浮点数的格式浮点数的格式l符号、尾数和指数的位数和位域不同,浮点数格式不符号、尾数和指数的位数和位域不同,浮点数格式不同,常用的浮点数格式有同,常用的浮点数格式有lIEEE754规范定义的单精度格式和双精度格式规范定义的单精度格式和双精度格式lTI公司定义的公司定义的TMS320C3X浮点数格式浮点数格式 1〕〕IEEE754浮点数格式浮点数格式l单精度格式:单精度格式:24位有效数字,总共占用位有效数字,总共占用32 位位l双精度格式:双精度格式:53位有效数字精度,并总共占用位有效数字精度,并总共占用64位位l扩展单精度格式:扩展单精度格式:l扩展双精度格式:必需至少具有扩展双精度格式:必需至少具有64位有效数字,并总位有效数字,并总共占用至少共占用至少79 位位l表示的数值表示的数值 l通常情况,即通常情况,即 1 ≤ e ≤ 254 时时l四种特殊情况四种特殊情况l①① 当当 e=0、、f≠0 时,尾数是个非,尾数是个非归一化的数一化的数l②② 当当 e=0、、f=0 时,,x=0l③③ 当当 e=255、、f=0 时,,x为正〔正〔s=0〕或〕或负〔〔s=1〕的无〕的无穷大大l④④ 当当 e=255、、f≠0 时,,x为一个无效数〔一个无效数〔NaN—Not a Number〕〕 l最高位〔第最高位〔第31位〕为符号位位〕为符号位sl①① 32位位单单精度浮点数精度浮点数1100,0011,0101,0010,0000,0000,0000,0000bl②② 32位位单精度浮点数精度浮点数0011,1101,0011,1110,0000,0000,0000,0000bl例例l许多许多32位浮点位浮点DSP处置器具有处置器具有40位的运位的运算单元,可以进展扩展单精度格式的浮算单元,可以进展扩展单精度格式的浮点运算点运算l扩展单精度格式与单精度格式的区别是,扩展单精度格式与单精度格式的区别是,扩展单精度格式的尾数添加了扩展单精度格式的尾数添加了8位,到位,到达达31位位 2〕〕TMS320C3X浮点数格式浮点数格式l16位短浮点格式位短浮点格式l32位单精度格式位单精度格式l40位扩展精度格式位扩展精度格式l32位单精度浮点数格式用的最多位单精度浮点数格式用的最多l表示的数值表示的数值 3〕浮点数的数值范围、精度和动态范围〕浮点数的数值范围、精度和动态范围l以以IEEE754单精度浮点数为例单精度浮点数为例l数值范围数值范围l不思索不思索s,当,当e=254,,f 为全全1l最大的数〔最大的数〔1--2-23〕〕2127=1.701412×1038,,加上符号就加上符号就对应为正的和正的和负的最大数的最大数lIEEE754单精度浮点数的数精度浮点数的数值范范围为,,l--1.701412×1038~~1.701412×1038l精度精度l尾数尾数 f 为为23位,位, f 变化的最小值为变化的最小值为1/2 23l与定点数不同,这个最小值并不是浮点数的精度,与定点数不同,这个最小值并不是浮点数的精度,精度还与指数有关精度还与指数有关l浮点数的精度是变化的,与数值的大小有关浮点数的精度是变化的,与数值的大小有关l定点数的数值是等间隔的定点数的数值是等间隔的l由于指数项的存在,浮点数的变化不是等间隔的,由于指数项的存在,浮点数的变化不是等间隔的,指数大、数值大、数值间隔也大;相反,指数小、指数大、数值大、数值间隔也大;相反,指数小、数值小、数值间隔也小数值小、数值间隔也小l最大数〔最大数〔1--2-23〕〕2127l不思索不思索s,当,当e=1,,f 为全零时,得到最小数为全零时,得到最小数2-126l动态范围动态范围l动态范围动态范围l假设思索假设思索e=0、、f0 时的情况,动态范围还会更时的情况,动态范围还会更大大l浮点数的数值范围和动态范围都要比定点数大的浮点数的数值范围和动态范围都要比定点数大的多,浮点数的精度是变化的,与数值的大小有关多,浮点数的精度是变化的,与数值的大小有关2. 浮点数的算术运算浮点数的算术运算l浮点数的算术运算分成两个部分浮点数的算术运算分成两个部分l尾数的算术运算尾数的算术运算l指数的算术运算指数的算术运算l设两个浮点数分两个浮点数分别为lx1 == m1 × 2e1lx2 == m2 × 2e2lm1和和e1分分别为x1的指数和尾数的指数和尾数lm2和和e2分分别为x2的指数和尾数的指数和尾数l浮点浮点DSP处置器提供单周期加法、乘法和乘累加运处置器提供单周期加法、乘法和乘累加运算算1〕浮点数的加减法运算〕浮点数的加减法运算l设e1>e2,浮点数,浮点数x1和和x2的加法的加法为l x1 ++ x2 == m1×2e1 ++ ( m2 × 2e2--e1 ) × 2e1l == ( m1 ++ m2×2e2--e1) × 2e1l加法运算的过程为加法运算的过程为l先对指数小的数按照指数大的数归正,使两个数的先对指数小的数按照指数大的数归正,使两个数的指数相等指数相等l然后将归正后的尾数相加然后将归正后的尾数相加l浮点数减法运算的原理与加法运算一样浮点数减法运算的原理与加法运算一样2〕浮点数的乘法运算〕浮点数的乘法运算l浮点数浮点数x1和和x2的乘的乘积为lx1 × x2 == ( m1 × m2 ) × 2e1++e2l乘法运算的过程乘法运算的过程l尾数尾数m1和和m2相乘相乘l指数指数e1和和e2相加相加l为满足浮点数的格式要求,还需求对尾数乘积的结为满足浮点数的格式要求,还需求对尾数乘积的结果进展归一化处置,并相应调整指数值,以及对特果进展归一化处置,并相应调整指数值,以及对特殊情况的处置等殊情况的处置等3〕浮点数的除法运算〕浮点数的除法运算l浮点数浮点数x1除以除以x2为l x1 ÷ x2 == ( m1 ÷ m2 ) × 2e1--e2l除法运算的过程为除法运算的过程为l尾数尾数m1除以除以m2l指数指数e1和和e2相减相减l为满足浮点数的格式要求,还需求对尾数相除的结为满足浮点数的格式要求,还需求对尾数相除的结果进展归一化处置,并相应调整指数值,以及对特果进展归一化处置,并相应调整指数值,以及对特殊情况的处置等殊情况的处置等l浮点浮点DSP处置器普通不提供单周期除法指令,浮点处置器普通不提供单周期除法指令,浮点除法需求用除法子程序来实现除法需求用除法子程序来实现练习〔1〕试写出下述X,Y定点乘法C言语模拟程序设x=18.4,y=36.8,Qx=10;Qy=9;Qz=5〔2〕试写出下述X,Y定点除法C言语模拟程序设x=18.4,y=36.8,Qx=10;Qy=9;Qz=15。












