定点DSP和浮点DSP的区别与比较

合集下载

IQmath库函数和定标及标么化

IQmath库函数和定标及标么化
格式变换函数atoIQ,IqtoF IQtoIQN 算术运算函数 Iqmpy IQdiv
三角运算函数 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——精选推荐

定点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面试常见问题

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章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技术总结

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的应用

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处理器具有速度快,功耗低,价格便宜的特点;而浮点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 这样大的动态范围使得我们在编程的时候几乎不必考虑乘法和累加的溢出,而如果使用定点处理器编程,对计算结果进行舍入和移位则是家常便饭,这在一定程度上会损失是精度。

对定点计算与浮点计算有了新的认识[转]

对定点计算与浮点计算有了新的认识[转]

对定点计算与浮点计算有了新的认识[转]因为长期纠结与这个问题,所以今天查阅了很多资料,包括C90,C99标准,ARM构架标准,GCC⼯具链⽂档和⼀些杂七杂⼋的技术⽂章,总算理清了⼀些思路,更正了⼀些观念。

⾸先,对于标准C本⾝来说,并没有定点⼩数的说法,其float double等数据类型都是定义为浮点格式(浮点格式有不同的标准,常⽤的是IEEE754),⽽对于特定的⽬标系统,其实现是依赖于编译器的。

对于ARM系列构架的处理器来说,编译器提供浮点运算的软件实现和硬件实现(需要浮点协处理器的⽀持)。

(但是ARM⽀持乘法指令,模拟浮点运算速度是否会有提⾼)。

对于DSP来说,⼀般分为浮点DSP与定点DSP,与ARM⼀样,若定点DSP需要进⾏浮点运算那么也是通过软件模拟来实现的,因为速度上没有优势。

DSP应该是⽀持单周期乘法的,这⼀点与通⽤处理器不同,虽说很多通⽤处理器也⽀持乘法指令,但是需要多个周期。

⽽若要提⾼速度,在没有浮点协处理器的情况下,是否应该采⽤定点运算⽅式。

实际上,定点运算就是将⼩数数据变为整数计算,⽽在程序实现是不引⼊浮点数据类型(标准C下),⽽规定⼩数点在数据中的位数。

但这样做会影响数据的表⽰范围,但整数计算不会损失精度(除法?)。

通⽤处理器进⾏DSP处理:专⽤的DSP芯⽚与通⽤处理器结构上不同,但是对于数字信号处理(DSP,不是DSP芯⽚)本⾝来说⽤哪种处理器进⾏计算并没有明确界定,这⼀点在很多⽂献和技术⽂档中都没有明确的说明。

前者应该是适合⽤作DSP的处理器,⽽后者也并不是不能做DSP应⽤,⽽且在很多领域这两者并没有⼀个显著的分别(数字信号处理的特点是⼤量的乘法累加运算),⽽在很多专⽤专业领域算法的实现上也会出现很多类似的计算。

那么应该选择哪⼀种芯⽚作为处理器就成为了⼀个很微妙的问题。

我在sourceforge中找到了⼀个fixed point库,提供⼀些基本的算术运算,⽤标准C实现,希望对以后有帮助。

信号与系统面试题目

信号与系统面试题目

信号与系统1、的话音频率一般为300~3400HZ,若对其采样且使信号不失真,其最小的采样频率应为多大?若采用8KHZ的采样频率,并采用8bit的PCM编码,则存储一秒钟的信号数据量有多大?(仕兰微面试题目)2、什么耐奎斯特定律,怎么由模拟信号转为数字信号。

(华为面试题)3、如果模拟信号的带宽为5khz,要用8K的采样率,怎么办?(lucent) 两路?4、信号与系统:在时域与频域关系。

(华为面试题)5、给出时域信号,求其直流分量。

(未知)6、给出一时域信号,要求(1)写出频率分量,(2)写出其傅立叶变换级数;(3)当波形经过低通滤波器滤掉高次谐波而只保留一次谐波时,画出滤波后的输出波形。

(未知)7、sketch 连续正弦信号和连续矩形波(都有图)的傅立叶变换。

(Infineon笔试试题)8、拉氏变换和傅立叶变换的表达式及联系。

(新太硬件面题)DSP、嵌入式、软件等1、请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析;如果没有,也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途。

(仕兰微面试题目)2、数字滤波器的分类和结构特点。

(仕兰微面试题目)3、IIR,FIR滤波器的异同。

(新太硬件面题)4、拉氏变换与Z变换公式等类似东西,随便翻翻书把如.h(n)=-a*h(n-1)+b*δ(n) a.求h (n)的z变换;b.问该系统是否为稳定系统;c.写出FIR数字滤波器的差分方程;(未知)5、DSP和通用处理器在结构上有什么不同,请简要画出你熟悉的一种DSP结构图。

(信威dsp软件面试题)6、说说定点DSP和浮点DSP的定义(或者说出他们的区别)(信威dsp软件面试题)7、说说你对循环寻址和位反序寻址的理解.(信威dsp软件面试题)8、请写出【-8,7】的二进制补码,和二进制偏置码。

用Q15表示出0.5和-0.5.(信威dsp软件面试题)9、DSP的结构(哈佛结构);(未知)10、嵌入式处理器类型(如ARM),操作系统种类(Vxworks,ucos,winCE,linux),操作系统方面偏CS方向了,在CS篇里面讲了;(未知)11、有一个LDO芯片将用于对手机供电,需要你对他进行评估,你将如何设计你的测试项目?12、某程序在一个嵌入式系统(200M CPU,50M SDRAM)中已经最优化了,换到零一个系统(300M CPU,50M SDRAM)中是否还需要优化?(Intel)13、请简要描述HUFFMAN编码的基本原理及其基本的实现方法。

DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理

DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理

DSP学习笔记(⼆)——DSP中浮点数与定点数格式与运算处理DSP学习笔记(⼆)——DSP中浮点数与定点数格式与处理1 DSP中的数据表述DSP中数据通常是有定点数与表⽰,其中可以对字长进⾏相关定义,可以选取字长为16位、24位、32位不同字长使⽤。

⽽格式与字长决定了数据的精度与动态范围,同时也⼀定程度上决定了DSP处理器的功耗、成本与编程难度。

定点数:⼩数点位置为确定的。

浮点数:⼩数点位置可以改变。

定点运算的硬件实现较为简单,功耗较⼩,主要注意的是数据的定标、溢出以及误差。

器减结构较为复杂,但是精度较⾼,⾼级语⾔容易⽀持。

2 定点数的格式与相关运算2.1 定点数格式定点数格式:Q n 格式,n为⼩数位数。

即Q15 ,⼩数点右边有15个⼩数位,如果我们定义了⼀个长度为32位的数字,那么⼩数位为15,1位符号位,16位为整数位。

整数⼩数点固定在最后,定点数⼩数位固定使⽤上⽂的Q n 格式表⽰,两者都使⽤⼆进制补码形式表⽰。

例: Q4格式:01010011b=1·22+1·20+1·2-3+1·2-4=83/24=5.1875对于负数(最⾼位MSB为1),要先把它转化为⽆符号⼆进制数,再进⾏计算,最后加上负号。

图2-1 ⼆进制Q格式表⽰定点数与浮点数转化时需要使⽤2n 的关系进⾏转化。

转化关系如下图:图2-2 定点数与浮点数转化关系浮点数转换为定点数时,由于⼩数点后的位数有限,会产⽣截断误差。

2.2 数值范围与精度Qn 格式,字长为N数值范围: -2N-12n~2N-1-12n精度:12n由于符号位占1位,所以数据位为N-1,n越⼤范围越⼩,但精度越⾼。

图2-3 数值范围与精度2.3 动态范围数据格式中最⼤值与最⼩值之⽐即为动态范围。

N位定点数动态范围:分贝表⽰:dsp⼤多采⽤16位定点数,动态范围为90.3db。

Dsp⼤多采⽤16为定点数,运算硬件实现较为简单,更⼤动态范围应⽤可以使⽤拓展字长⽅式。

DSP-定点和浮点数格式解析

DSP-定点和浮点数格式解析

① 小数乘小数(n、m≠0,m≤ n) ② 整数乘小数(n≠0、m=0) ③ 整数乘整数(n=m=0)
① 小数乘小数(n、m≠0,m≤ n)
例:两个8位数相加,有溢出 进位位与最高位(MSB)不同 运算结果发生溢出,8位字长已不能正确地表示结果
10110000b( -80) + 10111111b( -65) 非饱和模式:101101111bቤተ መጻሕፍቲ ባይዱ-145)
00101001b( 41) + 01110011b(115) 非饱和模式:010011100b(156)
2)数值范围与精度
给定字长N,采用Qn格式表示小数
2 N 1 2 N 1 1 数值范围: n ~ 2 2n

度:
1
2n
16位字长Qn格式的数值范围与精度
Qn格式 Q15 数值范围 -1~0.999969482421875 精度 0.000030517578125
Q14
饱和模式:110000000b(-128)
饱和模式:001111111b(127)
溢出是由于字长有限,运算结果超出数值的表示范围引 起的
饱和模式
定点数减法运算的原理与加法运算相同
2)定点数的乘法运算
DSP处理器都有硬件乘法器和乘法指令,可实现单周期乘 法运算 二进制乘法运算包含一系列的移位和加法运算 定点数乘法运算不要求相乘数有相同的Qn格式 两个相乘数分别为Qn和Qm格式,字长为N,结果为 Q(n+m)格式,字长为2N 根据n和m的不同取值,定点数乘法运算可以分成三种情况
DSP 运算基础
• 1、 DSP的数据表示
• 2、定点数的格式与运算 • 3、浮点数的格式与运算

DSP原理及应用邹彦主编课后答案

DSP原理及应用邹彦主编课后答案

《D S P原理及应用(修订版)》邹彦主编课后答案(个人终极修订版)(总10页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第一章1、数字信号处理实现方法一般有几种答:课本P2(2.数字信号处理实现)2、简要地叙述DSP芯片的发展概况。

答:课本P2( DSP芯片的发展概况)3、可编程DSP芯片有哪些特点答:课本P3( DSP芯片的特点)4、什么是哈佛结构和冯诺依曼结构他们有什么区别答:课本P3-P4(1.采用哈佛结构)5、什么是流水线技术答:课本P5(3.采用流水线技术)6、什么是定点DSP芯片和浮点DSP芯片它们各有什么优缺点答:定点DSP芯片按照定点的数据格式进行工作,其数据长度通常为16位、24位、32位。

定点DSP的特点:体积小、成本低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。

浮点DSP芯片按照浮点的数据格式进行工作,其数据长度通常为32位、40位。

由于浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。

但它的硬件结构相对复杂、功耗较大,且比定点DSP芯片的价格高。

通常,浮点DSP芯片使用在对数据动态范围和精度要求较高的系统中。

7、DSP技术发展趋势主要体现在哪些方面答:课本P9(发展技术趋势)8、简述DSP系统的构成和工作过程。

答:课本P10(系统的构成)9、简述DSP系统的设计步骤。

答:课本P12(系统的设计过程)10、DSP系统有哪些特点答:课本P11(系统的特点)11、在进行DSP系统设计时,应如何选择合理的DSP芯片答:课本P13(芯片的选择)12、TMS320VC5416-160的指令周期是多少毫秒它的运算速度是多少MIPS 解:f=160MHz,所以T=1/160M==;运算速度=160MIPS第二章1、TMS320C54x芯片的基本结构都包括哪些部分答:课本P17(各个部分功能如下)2、TMS320C54x芯片的CPU主要由几部分组成答:课本P18(3、处理器工作方式状态寄存器PMST中的MP/MC、OVLY和DROM3个状态位对’C54x的存储空间结构有何影响答:课本P34(PMST寄存器各状态位的功能表)4、TMS320C54x芯片的内外设主要包括哪些电路答:课本P40(’C54x的片内外设电路)5、TMS320C54x芯片的流水线操作共有多少个操作阶段每个操作阶段执行什么任务完成一条指令都需要哪些操作周期答:课本P45(1.流水线操作的概念)6、TMS320C54x芯片的流水线冲突是怎样产生的有哪些方法可以避免流水线冲突答:由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。

DSP复习资料+习题+答案

DSP复习资料+习题+答案

DSP复习资料+习题+答案1、定点DSP:数据以定点格式⼯作的DSP芯⽚称为定点DSP芯⽚,该芯⽚简单、成本较低。

两种基本表⽰⽅法:整数表⽰⽅法:主要⽤于控制操作、地址计算和其他⾮信号处理的应⽤。

⼩数表⽰⽅法:主要⽤于数字和各种信号处理算法的计算中。

定点表⽰并不意味着⼀定是整数表⽰。

2、浮点DSP:数据以浮点格式⼯作的DSP芯⽚称为浮点DSP芯⽚,该芯⽚运算精度⾼、运⾏速度快。

浮点数在运算中,表⽰数的范围由于其指数可⾃动调节,因此可避免数的规格化和溢出等问题。

但浮点DSP⼀般⽐定点DSP复杂,成本较⾼。

3、TI公司常⽤的DSP芯⽚可以归纳为三⼤系列:TMS320C2000系列:TMS320C2xx/C24x/C28x等;TMS320C5000系列:TMS320C54x/C55x等;TMS320C6000系列:TMS320C62x/C67x/C64x4、在对I/O空间访问时,除了使⽤数据总线和地址总线外,还要⽤到IOSTRB、IS和I/W控制线。

5、C54x C语⾔相同点:1)结构化程序设计的思想,以函数为单位2)⼤部分变量、常量、结构体、枚举、联合体、指针的定义3)局部变量、全局变量、静态变量、动态变量4)宏定义、宏展开、宏调⽤5)算术、关系、逻辑、位操作运算符以及运算符之间的优先级和结合性6)函数的组织:顺序结构、分⽀结构、循环结构不同点:1)所处理数据的性质不同;程序结构不同PC :采集好的,数据量⼤;DSP:实时采集,量⼩2)数据的输⼊输出设备不同3)死循环”的对待上不同。

4)语法结构及细节上的不同6、汇编器有5条伪指令可识别汇编语⾔程序的各个部分:.bss 为未初始化的变量保留空间;.data 通常包含了初始化的数据;.sect 定义已初始化的命名段,其后的数据存⼊该段;.text 该段包含了可执⾏的代码;.usect 在⼀个未初始化的有命名的段中为变量保留空间。

7、段的处理链接器在处理段的时候,有如下2个主要任务:(1)将由汇编器产⽣的的⼀个或多个.obj⽂件链接成⼀个可执⾏的.out⽂件;(2)重新定位,将输出的段分配到相应的存储器空间。

定点DSP与浮点DSP的比较

定点DSP与浮点DSP的比较

声明:本文章系转载并稍加整理标注,可能对于入门级的dsp开发者有所帮助。

本文关注定点dsp与浮点dsp的对比,感谢我所引用的资料的作者。

定点dsp与浮点dsp的比较(1)DSP数字信号处理器是一种特别适合于进行数字信号处理的微处理器,主要用于实时快速地实现各种数字信号处理算法定点运算DSP数字信号处理器在应用中已取得了极大的成功,而且仍然是DSP应用的主体。

然而,随着对DSP处理速度与精度、存储器容量、编程的灵活性和方便性要求的不断提高、自80年代中后期以来,各DSP生产厂家陆续推出了各自的32bit浮点运算DSP。

定点DSP指令集定点DSP指令集是按两个目标来设计的:·使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。

·将存贮DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)。

和定点运算DSP相比,浮点运算DSP具有许多优越性:浮点运算DSP比定点运算DSP的动态范围要大很多。

定点DSP的字长每增加1bit,动态范围扩大6dB。

16bit字长的动态范围为96dB。

程序员必须时刻关注溢出的发生。

例如,在作图像处理时,图像作旋转、移动等,就很容易产生溢出。

这时,要么不断地移位定标,要么作截尾。

前者要耗费大量的程序空间和执行时间,后者则很快带来图像质量的劣化。

总之,是使整个系统的性能下降。

在处理低信噪比信号的场合,例如进行语音识别、雷达和声纳信号处理时,也会发生类似的问题。

而32bit浮点运算DSP的动态范围可以作到1536dB,这不仅大大扩大了动态范围,提高了运算精度,还大大节省了运算时间和存储空间,因为大大减少了定标,移位和溢出检查。

由于浮点DSP的浮点运算用硬件来实现,可以在单周期内完成,因而其处理速度大大高于定点DSP。

这一优点在实现高精度复杂算法时尤为突出,为复杂算法的实时处理提供了保证。

DSP中的浮点与定点比较

DSP中的浮点与定点比较

Q8
S7.8
-128 ≤ X ≤ 127.996 093 8
Abstract:This paper introduces the fixed-point data format and floating-point data format commonly used in DSP, compares the advantages and disadvantages of the two data formats,and puts forward some suggestions on the applicable scenarios and format selection.
1 浮点数据格式与定点数据格式
1.1 浮点数据格式
在计算机系统的发展过程中提出过多种方法表
示实数,但是目前为止使用最广泛的是浮点表示法。
IEEE(Institute of Electrical and Electronics Engineers, 电子电气工程师协会)在 I985 年制定的 IEEE 754(IEEE Standard for Binary Floating-Point Arithmetic,ANSI/IEEE Std 754-1985)二进制浮点运算规范,是浮点运算部件 的工业标准 [1]。
采用以下浮点表示格式表示 16 位浮点数,该格式
为 IEEE 745 标准的子集,除了能够完成要求的实数表 示外,处理上也更为简洁。总位宽 m=16 bit,格式如图 1 所示,用一个三元组 {S,E,M} 来表示一个数 N。
15 14
10 9
0
S
E
M
1 bit
n bit
(m-n-1) bit
图 1 三元组表示法举例

固定点与浮点

固定点与浮点

固定点与浮点数字信号处理技术可以分为两类-定点和浮点运算。

这些名称是指用于存储和处理数据的数字表示的格式。

定点DSP设计代表和操纵整数-通过至少16位,收益率高达65,536个可能的位模式(2 -正面和负面的整数16)。

浮点DSP代表和操纵通过类似的方式,以科学记数法,其中一个数字代表一个尾数和一个指数(例如,A×2 32位的最低有理数B,其中'A'是尾数'B'是指数),收益率高达4,294,967,296个可能的位模式(2 32)。

“定点”是指在数字代表相应的方式,用一个固定位数的号码后,有时会之前,小数点。

与浮点表示,小数点的位置可以“浮动”的相对数量的有效位数。

例如,用一个统一的小数点位置约定的定点表示可以代表的数字123.45,1234.56,12345.67,等,而浮点表示,除了代表等1.234567,123456.7,0.00001234567,12345670亿等,可以支持浮点值比定点范围更广,能够代表非常小的数字和非常大的数字。

定点表示法,相邻数字之间的差距总是等于一个值,而在浮点表示法,相邻数字之间的差距不是均匀分布的- 任何两个数字之间的差距是价值约一万次,比小(ANSI / IEEE标准754标准格式)数字,大数字和小小的数字之间的差距之间的巨大差距。

动态范围和精度固有的浮点计算的幂保证更大的动态范围-最大和最小的可表示的数字-这是特别重要时,处理非常大的数据集或数据集的范围可能是不可预知的。

因此,浮点处理器,非常适合计算密集型应用。

同样重要的是在精确的范围内考虑固定和浮点格式- 数字之间的差距的大小。

每次DSP产生一个新的号码,通过数学计算,这个数字必须四舍五入到最接近的值,可以通过使用格式存储。

四舍五入和/或截断数字信号处理过程中自然产生的量化误差或'噪音' - 实际模拟值和量化的数字值之间的偏差。

由于相邻数字之间的差距可以是定点加工相比,浮点处理时,舍入误差可以更明显。

DSP简答题

DSP简答题

DSP简答题⼆、简答题(每题5分,共20分)1.什么是定点DSP芯⽚和浮点DSP芯⽚?各有什么优缺点?解:按数据的定点格式⼯作的DSP芯⽚称为定点DSP;按数据的浮点格式⼯作的DSP芯⽚称为浮点DSP;定点DSP的价格便宜,功耗低,但运算精度低;浮点DSP的价格较⾼,C语⾔编程调试⽅便,运算精度⾼。

2. 简述流⽔线操作的基本原理。

解:流⽔线操作是各指令以机器周期为单位相差⼀个时钟周期,连续并⾏⼯作的情况。

其本质是DSP多条总线彼此独⽴地同时⼯作,使得同⼀条指令在不同机器周期内占⽤不同总线资源。

同时,不同指令在同⼀机器周期内占⽤不同总线资源。

3. ’C54x DSP有哪些重复操作?各有什么优点?解:有单条指令重复执⾏和程序块重复执⾏两种重复操作。

单条指令重复操作功能,可以使乘法/累加和数据块传送那样的多周期指令在执⾏⼀次之后变成单周期指令,⼤⼤提⾼了这些指令的执⾏速度。

利⽤块重复操作进⾏循环,是⼀种零开销循环。

4. 软件可编程等待状态发⽣器的功能是什么?解:软件可编程等待状态产⽣器可以将外部总线周期扩展到7个机器周期(C549、C5402、C5410和C5420为14个机器周期),这样’C54x DSP可以⽅便地与慢速的⽚内存储器和I/O器件接⼝。

四、简答题1.简述哈佛结构的基本特征,并画出⽰意图。

P3哈佛结构结构采⽤双存储空间,程序存储器和数据存储器分开,取指和读数可以同时进⾏,扩展了存储器带宽,增加了系统的吞吐量。

2.简述TMS320C54x DSP的ALU的可能的输⼊数据来源。

P44第⼀种答案:ALU的X输⼊端的数据:①移位器的输⼊②来⾃数据总线DB的数据存储器操作数ALU的Y输⼊端的数据:①累加器A中的数据②累加器B中的数据③来⾃数据总线CB的数据存储器操作数④T寄存器中的数据第⼆种答案:可以使⽤的输⼊形式包括:16位的⽴即数,从数据存储器读出的16位字,暂存器T中的16位字,从数据存储器中读出的2个16位字,从数据存储器读出的1个32位字,从其中⼀个累加器输出的40位值3.简述辅助寄存器(AR0~AR7)的主要功能。

定点 DSP 处理浮点数

定点 DSP 处理浮点数

定点DSP处理浮点数BG6RDFTMS320C5509A是16位定点数处理器,其累加器是32位/40位的。

在定点处理器中处理浮点数需要对定点数进行定标。

下面所说的定点数都是指有符号数。

通常采用的定标有Q15和Q31,分别表示小数点后有二进制15位和二进制16位。

因此16位Q15最大能表示的数是1 2 ,32位Q31最大能表示的数是1 2 。

定标不同的数可以直接相乘,例如Q13*Q15=Q28。

两个定标不同的数不能直接相加,比如Q13+Q15,通常要将Q15右移两位,转换为Q13后再相加,当然这样损失了两位的精度。

DSP进行的乘累加操作常常Q15的数,这样结果为Q30,存储在累加器中。

为了将累加器的结果转换为更为常用的Q31定标,55x系列DSP在状态寄存器ST1_55中设置了FRCT 控制位,FRCT=1时,乘积自动左移一位,这样乘积变成了Q31。

对于累加器中Q31定标的数,直接取累加器中高16位,就能获得结果的Q15定标数。

很多时候Q15不能解决问题,比如IIR滤波器num, den系数中通常有大于等于1的系数,超过了Q15的范围,只能用Q14,Q13等定标。

这时乘累加操作就需要进行修正了,比如IIR滤波器中系数用Qx定标,输入数据和输出数据用Qy定标,Q Q Q ,为获得Qy的输出数据必须将累加器中的乘积右移x位,另外在乘累加操作开始前必须将输入数据在累加器中左移y位,进行对齐后才能进行乘累加。

当然,这种修正都是在没有考虑FRCT 的情况下。

在C5500 DSPLIB中iircas51函数中,FRCT设置为1,输入输出数据采用Q15定标,如果系数也是Q15定标,则程序运行无误,如果系数采用Q14及以下定标则会产生严重的问题。

以下是其代码片段:MOV *AR0+ << #16, AC1 ; HI(AC1) = x(n)||RPTBLOCAL loop2‐1 ;inner loop: process a bi‐quadMPYM *AR1+, AC1, AC0 ; AC0 = b0*x(n)MACM *AR1+, *(AR3+T0), AC0 ; AC0 += b1*x(n‐1)MACM *AR1+, *AR3, AC0 ; AC0 += b2*x(n‐2)MOV HI(AC1), *AR3 ; x(n) replaces x(n‐2)||AADD T1, AR3 ; point to next x(n‐1)MASM *AR1+, *(AR4+T0), AC0 ; AC0 ‐= a0*y(n‐1)MASM *AR1+, *AR4, AC0 ; AC0 ‐= a1*y(n‐2)MOV rnd(HI(AC0)), *AR4 ; y(n) replaces y(n‐2)||AADD T1, AR4 ;point to next y(n‐1)MOV AC0, AC1 ;input to next biquad从代码片段可以看出,累加器AC0为Q31定标,输出数据是累加器高16位。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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个浮点/定点乘法器。

相关文档
最新文档