定点DSP和浮点DSP的区别与比较
IQmath库函数和定标及标么化

三角运算函数 Iqsin Iqcos IQatan2
数学计算函数 Iasqrt IQisqrt 其它函数 Iqabs IAsat
GLOBAL_Q格式的选择 由于数据精度和动态范围本身相互矛盾,必须根据具体要求确 定其中的折中,以达到系统最优。默认为Q24。系统中各种模 块Q格式不一样,因此,应定义局部Q格式,以便在具体模块 中取代全局Q格式。由于IQmathTables包含Iqmath函数使用的 所有查表数据已固化在BOOTROM中,.cmd文件该段必须定 义为NOLOAD类型。程序会自动定位查表符号。使用 Simulator时,由于没有目标板,须将库中的数据表一并加载。
采用固定Q15定标的运算规则 采用固定Q15的定标运算可避免计算过程中反复进行移位的 麻烦,也简化了算法,提高了算法的可移植性。同时,Q15 也可保证较高的运算精度。
加法 只需要考虑饱和处理。
Ia=20446(0.624), Ib=3276(0.1) Ic=Ia+Ib=20446+3276=23722(0.724)
除法运算 Qx,Qy,Qz,若Z=X/Y,Qz’=Qx-Qy。 Qz Qz‘ ,Qz Qz' , 商需要左移 Qz Qz' 位;
Qz Qz' ,
x 1.25 y 0.8 Qx 12 Qy 10
商需要右移
Qz‘ Qz
位。
x 5120 , y 819 z x / y 5120 / 819 6 z $0006 Qz Qz' 10 ( 12 10 ) 8 $600 1536 1 1536 z 1536 10 1.5 1024 2
定点DSP——精选推荐

定点DSP譬≈≯.j§蠹等鼍一≯|鼍毒ll|0誊.定点DSPC55X实现浮点相关逗算■大连海事大学孙兴邦刘亮夏志忠引言DSP结构可以分为定点和浮点型两种.其中,定点型DSP可以实现整数,小数和特定的指数运算,它具有运算速度快,占用资源少,成本低等特点;灵活地使用定点型DSP进行浮点运算能够提高运算的效率.目前对定点DSP结构支持下的浮点需求也在不断增长,主要原因是: 实现算法的代码往往是采用C/C++编写,如果其中有标准型的浮点数据处理,又必须采用定点DSP器件,那么就需要将浮点算法转换成定点格式进行运算.同时,定点DSP结构下的浮点运算有很强的可行性,因为C语言和汇编语言分别具有可移植性强和运算效率高的特点,因此在定点DSP中结合C语言和汇编语言的混合编程技术将大大提高编程的灵活度,以及运算速度.大多数DSP的开发工具只是在C语言的基础上支持标准的浮点运算,而定点DSP硬件一般都是面向定点的运算,不支持标准的浮点运算,缺乏硬件的支持极大地限制了浮点的应用,因而标准的浮点运算在实际定点DSP 应用中并不多见.C55O9是一款16位定点DSP.在本文中,对C55O9输入FTSK信号,用C语言和汇编语言混合编程的方式对输入浮点型的FTSK信号进行相关运算,并输出浮点运算结果.这种方法的特点是:在C语言中方便地进行数据格式转化,在汇编语言中进行乘法和加法运算,既达到很高的运算精度,又极大地提高了运算效率.1定点DSPC语言开发环境中的浮点数据格式在定点DSP中,整型数是用16位二进制格式来存储的,但是DSP的C语言和汇编语言中定义的单精度浮点型数据都是标准C语言浮点表示格式.这种格式在C55X中,符合IEEE754标准.它定义了单精度32位和双精度64位的格式.32位IEEE754单精度标准中,第一位是符号位,其后8位用来存放指数,最后23位用来存放小数尾数,如下:l符号位I指数lMSB尾数LSBll32位I31位一24位l23位一1位l在IEEE754单精度浮点标准中,明确包含了符号位,第32位用作符号位.尾数进行了归一化,以产生一个1.f 格式的数,,是小数部分,占用分配的23位.因为规格化的数最左一位总是1,所以不需要存储该位,在该格式中它是隐式的.这样一个位的尾数实际上存放了一个+1位数.为使尾数规格化,指数被适当增减,来跟踪规格化所需的左右移位数以及小数点.最常用的是用8位指数表示0~255,即0%e%255:z一(一1)×2(1.,)其中:S是符号位,0为正数,1为负数;e是指数位,无符号8位;f是尾数的小数部分,23位.例如:IEEE754格式下浮点正数00110001001111100 000000100000000的十进制表示为:符号位一0(因为它是一个正数)尾数一1+2+2+2+2+2+2一1.48440551758指数一2+2+2一98十进制等值数一1.48440551758×2.'一2.76492073681×l0IEEE754格式下浮点负数11100001010101100000000000000000的十进制表示为:符号位一1(因为它是一个负数)尾数一1+2+2+2+2一1.6875指数一2+2+2一194十进制等值数一一1.6875×2""一一2.49031044995×10.2相关运算的实现2.1数据提取方式在本软件设计中,FTSK输人数据的频率包含800Hz,I200Hz,I600Hz,2020Hz,通过相关运算提取80074《平方机乌嵌入式系惋应冈》l圈匝l田_盈唧***************.cn(F告专用)Hz信号.具体参数是:FTSK输入数据的采样率为8000Hz.相关运算输入数据:每次运算对输入数据先提取1600个点,并分离出这些数据的最后40个点;然后对下一个输入数据提取1600个点,并把刚才取的40个点加在这1600个点后面组成1640长度的数组,作为相关运算的输入.这样做的原因是,最大限度地消除每次提取的1600个点相邻部分的影响,提高相关输出的精准度.相关运算的输入数据都为浮点型,而通过MATLAB仿真计算出来的系数也都为小于1的浮点数.通过在C语言中调用汇编语言,在定点C5509中实现此浮点运算,并输出用800Hz相关运算提取出的波形.2.205509中实现浮点运算方法此相关运算的输入是浮点型数据,相关系数是小于1的单精度浮点型数.对于定点DSP,由于不能直接进行浮点数的乘法运算,因此必须对输入数据进行类型转换.首先,相关运算的输入数据是FTSK浮点数据.在C语言中,单精度浮点数据是以IEEE754标准存储的32位数据,而C5509中C语言调用汇编语言,是通过寄存器AR0 从C语言传递给汇编语言的是数据指针,这个指针是指向16位数据的,所以相关的输入32位浮点数要先转化为l6位整型数据.本文这样实现:C程序中先把浮点数据乘以10后(提高运算精度),强制类型转化为整型数据,然后把此16位数据的指针赋给调用汇编的入口参数,即通过寄存器AR0传递到汇编程序中.然后,在汇编程序中, 相关的系数是小于1的小数;在DSP中,汇编语言直接定义的格式是将其转换为16位二进制2的补码表示形式(例如0.8用8×32768/10来表示).从汇编程序入口进入的,经过强制类型转换的整型数据也是以16位二进制形式存储的,通过与16位的小数相乘得到的是32位数, 存储在累加器A中.其中,前16位是运算结果的整数部分,后16位是小数部分.由于从汇编语言程序返回C程序的参数是16位的,故取运算结果的高16位(此前已经把输入数据乘以10,最大限度地提高了运算精度,这里直接取高16位).把这16位数据返回C程序,得到整型数据,再强制类型转化为单精度浮点型数据,再除以1O,即得到了最后相关运算的结果.经实际运算检验,通过这种方法在C55O9里进行浮点运算,最终结果实现了很高的精度,而且通过调用汇编语言,极大地提高了运算的效率.2.3仿真实际在用户板上用TI公司提供的CCSEmulator调试程序,实现了硬件仿真;而对此DSP算法来说,也可用TI公司提供的软件仿真器(Simulator)实现软件仿真.TI公司提供的软件CCS中有一项强大的探测点功能.它是一个开发算法的工具,将计算机数据文件传送到目标板或计算机的缓冲区中提供DSP软件应用,而且可以通过CCS提供的图形窗口观察输入/输出数据波形. 本次算法设计中利用CCS的断点和探测点进行数据的输入,利用图形窗口观察输入/输出的波形.2.4实际运算的结果分析从输入波形可以看到,有4种不同的频率,可以算出最低频率是800Hz,经过800Hz相关运算得出的输入波形与输出波形对比如图1所示.在图1中,可以看到输入波形中频率最低的波形.2个波峰时间差(即周期)是0.0054—0.00416—0.00124S, 取倒数是806.45,所以此波形是800Hz部分;再看输出波形,4个尖峰正好分别对应输入4个800Hz频率分量. 如果在后面再加上低通滤波器,就可以滤出更平滑的曲线,如图2所示.2.5测试程序运行时间CCS中提供了一种评价器(profiler).它通过收集在图1800Hz相关运算的输入/输出波形图对比...,...一...,蚺擅士田,.........R_—u一十 (75)图2相关运算结果经过低通滤波后的波形图指定代码区间程序执行的统计性能,确定程序中各段所花费的处理器时间,从而识别并消除性能发挥的瓶颈,缩短程序的执行时间,使程序更有效;利用评价器分析可以确定执行某个特殊的函数花费了多少个时钟周期,以及对它调用的频繁度等.本设计中相关浮点运算通过C语言编程和C,汇编语言混合编程两种方式的对比,用CCS提供的评价器可以测出,调用汇编语言的方式比纯C语言编程方式,速度提高了51.2.结语在定点DSP中进行浮点运算,要经过复杂的数据格式转化,因此用定点DSP取代浮点DSP,在降低设备成本的情况下,必定会提高研发的成本.如果直接把IEEE754标准的32位单精度浮点数据转化为16位整型数,要经过相当复杂的过程,在满足一定精度的前提下,可以使用本文的转化方式.使用C语言和汇编语言混合编程的方法,达到了大大提高运算效率的目的,不失为很灵活的编程方法.簟参考文献[1][英]AndrewBateman,lainPaterson—Stephens.TheDSP HandbookAlgorithms,ApplicationsandDesignTechniques,2003.[2]胡庆钟,李小刚,等.TMS320C55XDSP原理,应用和设计I-M].北京:机械工业出版社,2006.r3]程佩青.数字信号处理教程I-M].第2版.北京:清华大学出版社,2002.[4]IEEEStandardforBinaryFloating—PointArithmetic.孙共舞甏硕壬篷妥研宽蠢氟惫逸拣馆恕骞跷.壤1琵x譬薯鼍赣!罄l季|-毫誊曩:秀誊誊叠.一j.孽|叠蘩孽誊鼙{瓤篱2Q鹬篱警警誊鏊罄高线性度620~1100MHz正交调制--器--一凌力尔特公司(LinearTechnologyCorporation)推出的新型高性能正交调制器LT557i,针对850"-965MHzGSM,CDMA200o,舞ISM和RFID调制器应用进行了优化.该器件接受I(同相)和Q(正交相位)基带信号并将其直接调制至射频信号..0或低中频(IF)发射器架构使基站设计师能够实现高性能,同时降低功耗并减少器件数,因此可以缩小系统尺寸并降低系统成本.该器件具有卓越的线性度,在900MHz时OIP3(输出3阶截取点)为21.7dBm,OIP2(输出2阶截取点)为63.8dBm,I~I时在采用5V电源时仅消耗97mA静态电流.LT5571的输出噪声层为一159dBm/Hz,并具有一42dBm的低LO泄漏.它在900MHz时的镜频抑制为一53dBc.LT5571满足或超过了GSM蜂窝基站以及其他高性能无线基础设施发射器所要求的动态范围LT5571是一种高度集成的芯片,内含2个匹配的高线性度混频器,1个5OQL0输入缓冲器,1个精确的O./90.LO移相器和1个工作频带为62O~1100MHz的片上射频输出变压器.这个射频变压器汇总来自I通道扣Q通道混频器的已调制信号,产生一个单端5OQ匹配输出.同样,L0输入也是单端的,从而减少了所需的外部组件数并减轻了设计工作的负担.LT5571的2个片上混频器是内部平衡的,因此其L0泄漏性能非常好.凭借0dBm的L0输入功率,在未经校准的情况下,至RF输出的泄漏达到一42dBm(在900MHz).同样,片内精准移相器的准确度优于0.5.,从而实现了一53dBc 的未校准镜频抑制性能.如果需要,还可以通过校准将镜频抑制并把L0泄漏性能改善到优于一70dBc.LT5571的高阻抗I和Q输入具有0.5VDC共模偏置,允许灵活的AC或DC耦合以及简单连接至多个D/A转换器或基带驱动电路.LT5571用单5V电源电压工作,典型工作电流为97mA.该器件可以用ENABLE引脚关断.在禁止工作时,该芯片消耗的最高静态电流为100A,以降低功耗.就半双工或时分复用工作模式而言,该芯片可以利用ENABLE引脚迅速接通和关断.7《聋卉缸j入:泰刍埔…A~n.+…nfr'-垂击田,。
DSP面试常见问题

DSP常见问题1.DSP与普通的微处理器的不同?单周期指令:大多数DSP都拥有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样可以大大提高系统的执行效率。
它可以在一个时钟周期内执行一条语句。
快速乘法器:信号处理算法往往大量用到乘加(multiply-accumulate,MAC)运算。
DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。
硬件乘法器占用了DSP芯片面积的很大一部分。
(与之相反,通用微处理器采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)。
多总线:DSP有分开的代码和数据总线(一般用术语“哈佛结构”表示),这样在同一个时钟周期内可以进行多次存储器访问——这是因为数据总线也往往有好几组。
有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数。
地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。
这包括前(后)增(减)、环状数据缓冲的模地址以及FFT 的比特倒置地址。
地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP 可以在一个时钟周期内可以完成的工作量。
硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。
对硬件辅助循环的支持,可以让DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件。
数据格式:除了标准的整数型格式外,DSP一般支持定点和(或)浮点数。
对数据格式和精度的选择取决于应用程序所需,例如:16位定点DSP可以满足语音信号处理和控制所需24位和32位定点DSP可以满足高质量音频信号处理所需32位浮点DSP可以满足图形和图像处理所需1:DSP采用改进的Harvard结构,程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,而单片机多数采用的是冯•罗依曼结构,所有的操作都必须经过累加器A,很容易造成瓶颈效应。
浮点处理器相对于定点处理器有何不同

浮点处理器相对于定点处理器有何不同
C28x+FPU架构的C2000微处理器在原有的C28x定点CPU的基础上加入了一些寄存器和指令,来支持IEEE 单精度浮点数的运算。
对于在定点微处理器上编写的程序,浮点C2000也完全兼容,不需要对程序做出改动。
浮点处理器相对于定点处理器有如下好处:
编程更简单
性能更优,比如除法,开方,FFT和IIR滤波等算法运算效率更高。
程序鲁棒性更强。
一、IEEE754格式的浮点数
C28x+FPU的单精度浮点数遵循IEEE754格式。
它包括:
尾数
表1:IEEE单精度浮点数
(1)非规格化数值非常小,计算公式为(-1)sx2(E-126)x0.M
(2)正常范围数值计算公式为(-1)sx2(E-127)x1.M
正常范围数值落在±~1.7 x 10 -38 to ±~3.4 x 10 +38范围内。
从表1可以看出,IEEE754标准包括:
标准数据格式和特殊值,比如非数值(NaN)和无穷大
标准舍入模式和浮点运算
多平台支持,包括德州仪器C67x系列芯片。
C2000对该标准作了一些简化:
状态标志位和比较运算不区分正0和负0
非规格化数值被认为是0
对非数值(NaN)处理方式和无穷大一样。
IEEE754标准有5种舍入模式,C28x+FPU只支持其中两种:
--截断:小数位不管大小全部舍去。
第7章DSP定点数和浮点数(重要)

第7章D S P定点数和浮点数(重要)本期教程主要跟大家讲解一下定点数和浮点数的基础知识,了解这些基础知识对于后面学习ARM官方的DSP库大有裨益。
特别是初学的一定要理解这些基础知识。
7.1 定点数和浮点数概念7.2 IEEE浮点数7.3 定点数运算7.4总结7.1定点数和浮点数概念如果小数点的位置事先已有约定,不再改变,此类数称为“定点数”。
相比之下,如果小数点的位置可变,则称为“浮点数”(定点数的本质是小数,整数只是其表现形式)。
7.1.1定点数常用的定点数有两种表示形式:如果小数点位置约定在最低数值位的后面,则该数只能是定点整数;如果小数点位置约定在最高数值位的前面,则该数只能是定点小数。
7.1.2浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数。
典型的比如相对于浮点数的定点数(Fixed Point Number)。
在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置。
货币的表达就可以使用这种方式,比如 99.00 或者 00.99 可以用于表达具有四位精度(Precision),小数点后有两位的货币值。
由于小数点位置固定,所以可以直接用四位数值来表达相应的数值。
SQL 中的 NUMBER 数据类型就是利用定点数来定义的。
还有一种提议的表达方式为有理数表达方式,即用两个整数的比值来表达实数。
定点数表达法的缺点在于其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数。
最终,绝大多数现代的计算机系统采纳了所谓的浮点数表达方式。
这种表达方式利用科学计数法来表达实数,即用一个尾数(Mantissa ),一个基数(Base),一个指数(Exponent)以及一个表示正负的符号来表达实数。
比如 123.45 用十进制科学计数法可以表达为 1.2345 × 102,其中 1.2345 为尾数,10 为基数,2 为指数。
浮点数利用指数达到了浮动小数点的效果,从而可以灵活地表达更大范围的实数。
DSP技术总结

DSP技术知识要点(电信)CHAP11、冯、诺依曼结构和哈佛结构的特点冯、诺依曼结构:该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
2、DSP芯片的特点(为何适合数据密集型应用)采用哈佛结构;采用多总线结构;采用流水线技术;配有专用的硬件乘法-累加器;快速的指令周期3、定点DSP芯片和浮点DSP芯片的区别及应用特点若数据以定点格式工作的——定点DSP芯片。
若数据以浮点格式工作的——浮点DSP芯片。
浮点DSP芯片,精度高、动态范围大,产品相对较少,复杂成本高。
但不必考虑溢出的问题。
用在精度要求较高的场合。
4、定点DSP的表示(Qm.n,精度和范围与m、n的关系)及其格式转换(1)数的总字长:m+n+11位符号位:最高位是符号位,0代表正数,1代表负数m表示数的2的补码的整数部分的位数n表示数的2的补码的小数部分的位数正数:补码=原码负数:补码=原码取反+1(2)m越小,n就越大,则数值范围越小,但精度越高;m越大,n就越小,则数值范围越大,但精度越低。
(3)十进制转换成Qm.n形式:先将数乘以2^n 变成整数,再将整数转换成相应的Qm.n形式不同Qm.n形式之间的转换:不同Qm.n形式的数进行加减运算时,通常将动态范围小的数据格式转换成动态范围大的数据格式。
即n大的数据格式向n小的数据格式转换。
方法:将n 大的数向右移相差的位数,这时原数低位被移出,高位则进行符号扩展。
IQmath的应用

IQmath库的定点DSP算法设计引言DSP数字信号处理器DSP数字信号处理器是一个实时处理信号的微处理器,分为定点和浮点两种基本类型,它们之间最大差异在于浮点DSP比定点DSP具有更强大的计算能力和更大范围的动态精度。
浮点DSP内部设有专门支持浮点运算的硬件单元,对浮点格式的数据可以直接通过代码加入硬件运算中,因此运算速度很高。
而定点DSP没有定点运算单元,它对浮点格式的实数必须通过软件才能实现,这样就增加了指令代码,间接地使得定点DSP运算速度低于浮点DSP,典型的浮点处理器,如TI公司的C6000系列,几乎所有的嵌入式微控制器都为定点处理器,如TI公司的C2000系列。
因为浮点DSP的价格更加昂贵,因此定点DSP仍然有其巨大的优势。
但是任何算法都需要进行浮点运算,因此如何提高在定点DSP 上进行的浮点运算的速度和精度,就成为了用户开发时必须要考虑的关键问题。
TI公司专门为定点处理器TMS320C2000系列提供的IQmath库为解决上述问题提供了良好的实现方法。
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
1 数的定标:Q格式有符号数的表示法,机器数(出现在电脑的二进位数值)有3个特点,无符号或符号转换成数值来表示,没有+10101这样的资料,而是以010101来表示,只表示单纯的整数或小数,小数点的位置预设在一定的位置而较少变动,它的长度受到电脑硬体的限制,而不能无限增长。
Q格式,就是将一个小数放大若干倍后,用整数来表示小数定点DSP不能直接处理小数,编程时处理小数有3种方法:①把变量定义成float类型。
DSP定点与浮点的区别

DSP定点与浮点的区别可能对于入门级的dsp开发者有所帮助。
本文关注定点dsp与浮点dsp的对比,主要从三个方面来分析。
感谢我所引用的资料的作者。
一般来说,定点dsp处理器具有速度快,功耗低,价格便宜的特点;而浮点dsp处理器则计算精确,动态范围大,速度快,易于编程,功耗大,价格高。
1、宏观上的区别从宏观上讲,浮点dsp比定点dsp的动态范围大得多。
定点运算中,程序员必须时刻关注溢出的发生,为了防止溢出,要么不断进行移位定标,要么做截尾。
前者耗费大量时间和空间,后者则带来精度的损失。
相反,浮点运算dsp扩大了动态范围,提高了精度,节省了运算时间和存储空间,因为大大减少了定标,移位和溢出检查。
举个例子(来自/s/blog_518dfe5b0100e17w.html)定点的计算不过是把一个数据当作整数来处理,通常AD采样来的都是整数,这个数相对于真实的模拟信号有一个刻度因子,大家都知道用一个16位的AD去采样一个0到5V的信号,那么AD输出的整数除以2^16再乘以5V就是对应的电压。
在定点DSP中是直接对这个16位的采样进行处理,并不将它转换成以小数表示的电压,因为定点DSP无法以足够的精度表示一个小数,它只能对整数进行计算。
而浮点DSP的优势在于它可以把这个采样得到的整数转换成小数表示的电压,并不损失精度(这个小数用科学记数法来表示),原因在于科学记数法可以表示很大的动态范围的一个信号,以IEEE754浮点数为例,单精度浮点格式: [31] 1位符号 [30-23]8位指数 [22-00]23位小数这样的能表示的最小的数是+-2^-149,最大的数是+-(2-2^23)*2^127.(这里不去研究这个最小最大范围是如何计算出来的)动态范围为20*log(最大的数/最小的数)=1667.6dB 这样大的动态范围使得我们在编程的时候几乎不必考虑乘法和累加的溢出,而如果使用定点处理器编程,对计算结果进行舍入和移位则是家常便饭,这在一定程度上会损失是精度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定点与浮点运算DSP 的比较
DSP数字信号处理器是一种特别适合于进行数字信号处理的微处理器,主要用于实时快速地实现各种数字信号处理算法。
定点运算DSP 在应用中已取得了极大的成功,而且仍然是DSP 应用的主体。
然而,随着对DSP 处理速度与精度、存储器容量、编程的灵活性和方便性要求的不断提高、自80 年代中后期以来,各DSP 生产厂家陆续推出了各自的32bit浮点运算DSP。
和定点运算DSP 相比,浮点运算DSP 具有许多优越性:浮点运算DSP 比定点运算DSP 的动态范围要大很多。
定点DSP 的字长每增加1bit,动态范围扩大6dB。
16bit 字长的动态范围为96dB。
程序员必须时刻关注溢出的发生。
例如,在作图像处理时,图像作旋转、移动等,就很容易产生溢出。
这时,要么不断地移位定标,要么作截尾。
前者要耗费大量的程序空间和执行时间,后者则很快带来图像质量的劣化。
总之,是使整个系统的性能下降。
在处理低信噪比信号的场合,例如进行语音识别、雷达和声纳信号处理时,也会发生类似的问题。
32bit 浮点运算DSP 的动态范围可以作到1536dB,这不仅大大扩大了动态范围,提高了运算精度,还大大节省了运算时间和存储空间,因为大大减少了定标,移位和溢出检查。
由于浮点DSP 的浮点运算用硬件来实现,可以在单周期内完成,因而其处理速度大大高于定点DSP。
这一优点在实现高精度复杂算法时尤为突出,为复杂算法的实时处理提供了保证。
32bit 浮点DSP 的总线宽度较定点DSP 宽得多,因而寻址空间也要大得多。
这一方面为大型复杂算法提供了可能、因为省的DSP 目标子程序已使用到几十MB 存储器或更多;另一方面也为高级语言编译器、DSP 操作系统等高级工具软件的应用提供了条件。
DSP 的进一步发展,必然是多处理器的应用。
新型的浮点DSP 已开始在通信口的设置和强化、资源共享等方面有所响应。
TMS320C6000家族为高性能DSP,包括:
TMS320C62X定点DSP系列、TMS320C64X定点DSP系列、TMS320C67X定点DSP系列。
TMS320C62X系列
工作频率:150-300MHz,运行速度:1200-2400MIPS,内部2个乘法器、6个算术逻辑单元,超长指令字(VLIW)结构,大容量的片内存储器和大范围的寻址能力,4个DMA接口,2个多通道缓存串口,2个32位片内外设。
TMS320C64X系列
工作频率:400-600MHz,运行速度:3200-4800MIPS,具有特殊功能的指令集。
TMS320C67X系列,为高性能浮点DSP
工作频率:100-225MHz,运行速度:600-1350MIPS,具有4个浮点/定点算术逻辑单元,2个定点算术逻辑单元,2个浮点/定点乘法器。