定点。浮点DSP区别
14_DSP技术原理及应用教程_课后答案
1 .1 数字信号处理器与一般通用计算机和单片机的主要差别有哪些?答:在通用的计算机上用软件实现该方法速度太慢, 适于算法仿真;在通用计算机系统上加上专用的加速处理机实现该方法专用性较强,应用受限制,且不便于系统的独立运行;用通用的单片机实现这种方式多用于一些不太复杂的数字信号处理,如简单的PID控制算法;用通用的可编程DSP芯片实现与单片机相比,DSP芯片具有更加适合于数字信号处理的软件及硬件资源,可用于复杂的数字信号处理算法;用专用的DSP芯片实现在一些特殊场合, 要求信号处理速度极高, 用通用的DSP 芯片很难实现,而专用的DSP 芯片可以将相应的信号处理算法在芯片内部用硬件实现,不需要编程。
1 .4 什么是冯·诺埃曼结构计算机, 什么是哈佛结构计算机, 二者的特点是什么?答:冯.诺曼结构:将指令、数据存储在同一个存储器中,统一编址,译稿指令计数器提供的地址来区分是指令还是数据。
取指令和取数据都访问统一存储器,数据吞吐率低。
哈佛结构:程序和数据存储在不同的存储空间,程序存储空间和数据存储空间是两个相互独立的存储空间,每个存储空间独立编址,独立访问。
1 .8 DSP的工作电压越来越低,内核电压已低至1V,这样做有何意义?为什么DSP内核工作电压和I/O工作电压不一样?答:集成电路速度越来越快,随之而来,功耗越来越大,这样散热就是很大的问题.在芯片走线尺寸不变的情况下,内部阻抗也不变,降低工作电压会降低功耗,这样能再较高频率下芯片发热较少。
内核不容易受到外部干扰,所以电压可以做的较低,但IO容易受外部信号干扰,保持较高电压容易是器件工作稳定,这是功耗和稳定性的折中。
1 .10 定点DSP和浮点DSP有什么区别?在具体应用中, 应如何选择?答:在浮点DSP中,数据即可以表示成整数,也可以表示成浮点数。
浮点数在运算中,表示数的范围由于其指数可自动调节,因此可避免数的规格化和溢出等问题。
但浮点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常见问题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,很容易造成瓶颈效应。
第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 这样大的动态范围使得我们在编程的时候几乎不必考虑乘法和累加的溢出,而如果使用定点处理器编程,对计算结果进行舍入和移位则是家常便饭,这在一定程度上会损失是精度。
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-定点和浮点数格式解析
① 小数乘小数(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复习资料+习题+答案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终极总结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器件接⼝。
三、问答题(10分)1. ’C54x DSP的串⾏⼝有哪些类型?各有什么特点?解:有标准同步串⼝SP、缓冲同步串⼝BSP、多路缓冲串⼝McBSP、时分多路同步串⼝TMD 四种。
缓冲串⼝(BSP)是⼀个增强型的标准串⼝,它由⼀个全双⼯双缓冲串⼝和⼀个⾃动缓冲单元(ABU)组成。
由于其中的串⾏⼝与标准串⼝的功能相同,因此在标准模式下,缓冲串⼝的操作与标准串⼝的⼯作⽅式是⼀样的。
不过⽆论是标准模式还是⾃动缓冲模式,BSP 都提供了⼀些增强功能。
主要包括了可编程控制的串⼝时钟、可选择时钟和帧同步信号的正负极性,能够以每帧8位、10位、12位和16位传输数据。
通过配置BSP的控制寄存器,BSP还能实现忽略帧同步信号的数据传输。
定点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。
这一优点在实现高精度复杂算法时尤为突出,为复杂算法的实时处理提供了保证。
定点数与浮点数
第3章 DSP 芯片的定点运算3.1 数 的 定 标在定点DSP 芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。
一个整型数的最大表示范围取决于DSP 芯片所给定的字长,一般为16位或24位。
显然,字长越长,所能表示的数的范围越大,精度也越高。
如无特别说明,本书均以16位字长为例。
DSP 芯片的数以2的补码形式表示。
每个16位数用一个符号位来表示数的正负,0表示数值为正,1则表示数值为负。
其余15位表示数值的大小。
因此二进制数0010000000000011b =8195 二进制数1111111111111100b =-4对DSP 芯片而言,参与数值运算的数就是16位的整型数。
但在许多情况下,数学运算过程中的数不一定都是整数。
那么,DSP 芯片是如何处理小数的呢?应该说,DSP 芯片本身无能为力。
那么是不是说DSP 芯片就不能处理各种小数呢?当然不是。
这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位。
这就是数的定标。
通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。
数的定标有Q 表示法和S 表示法两种。
表3.1列出了一个16位数的16种Q 表示、S 表示及它们所能表示的十进制数值范围。
从表3.1可以看出,同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。
例如:16进制数2000H =8192,用Q0表示 16进制数2000H =0.25,用Q15表示但对于DSP 芯片来说,处理方法是完全相同的。
从表3.1还可以看出,不同的Q 所表示的数不仅范围不同,而且精度也不相同。
Q 越大,数值范围越小,但精度越高;相反,Q 越小,数值范围越大,但精度就越低。
例如,Q0的数值范围是-32768到+32767,其精度为1,而Q15的数值范围为-1到0.9999695,精度为 1/32768 = 0.00003051。
因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。
DSP知识要点
DSP技术知识要点(电信)CHAP1冯、诺依曼结构和哈佛结构的特点冯、诺依曼结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
哈佛结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
DSP芯片的特点(为何适合数据密集型应用)1.采用哈佛结构2.采用多总线结构3.采用流水线技术4. 配有专用的硬件乘法-累加器5. 具有特殊的DSP指令6.快速的指令周期7.硬件配置强8.支持多处理器结构9.省电管理和低功耗。
定点DSP芯片和浮点DSP芯片的区别及应用特点定点DSP芯片,精度和范围是不能同时兼顾的。
定点DSP是主流产品,成本低,对存储器要求低、耗电少,开发相对容易,但设计中必须考虑溢出问题。
用在精度要求不太高的场合。
浮点DSP芯片,精度高、动态范围大,产品相对较少,复杂成本高。
但不必考虑溢出的问题。
用在精度要求较高的场合。
定点DSP的表示(Qm.n,精度和范围与m、n的关系)及其格式转换○1整数表示法○2小数表示法○3数的定标;n越大,数值范围越小,但精度越高;相反,n越小,数值范围越大,但精度就越低。
不同Qm.n 形式的数进行加减运算时,通常将动态范围小的数据格式转换成动态范围大的数据格式。
即n大的数据格式向n小的数据格式转换。
方法:将n 大的数向右移相差的位数,这时原数低位被移出,高位则进行符号扩展。
TI公司的三大主力系列DSP芯片的特点及应用领域C2x、C24x称为C2000系列,定位于控制类和运算量较小的运用,主要用于代替MCU,应用于各种工业控制领域,尤其是电机控制领域。
C54x、C55x称为C5000系列,低功耗高性能,定位于中等计算量的应用。
DSP简介
DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色DSP既是Digital Signal Processing的缩写(数字信号处理的理论和方法)或者是Digital Signal Processor(用于数字信号处理的可编程微处理器)的缩写。
我们所说的DSP技术,则一般指将通用的或专用的DSP处理器用于完成数字信号处理的方法和技术。
1. DSP的特点(1)在一个指令周期内可完成一次乘法和一次加法。
(2)程序和数据空间分开,可以同时访问指令和数据。
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。
(4)具有低开销或无开销循环及跳转的硬件支持。
(5)快速的中断处理和硬件I/O支持。
(6)具有在单周期内操作的多个硬件地址产生器。
(7)可以并行执行多个操作。
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
1)哈佛结构和改进的哈佛结构。
哈佛结构就是将程序代码和数据的存储空间分开,各有自己的地址和数据总线。
之所以采用哈佛结构,是为了并行进行指令和数据处理,从而可以大大地提高运算的速度。
为了进一步提高信号处理的效率,在哈佛结构的基础上,又加以改善。
使得程序代码和数据存储空间之间可以进行数据的传输,称为改善的哈佛结构。
2)采用流水技术。
流水技术是将各指令的各个步骤重叠起来执行。
DSP处理器所采用的将程序存储空和数据存储空间的地址与数据总线分开的哈佛结构,为采用流水技术提供了很大的方便。
固定点与浮点
固定点与浮点数字信号处理技术可以分为两类-定点和浮点运算。
这些名称是指用于存储和处理数据的数字表示的格式。
定点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中的浮点与定点比较
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 三元组表示法举例
Q格式_dsp定点和浮点数学运算规则
Q格式有符号数的表示法,机器数(出现在电脑的二进位数值)有3个特点,无符号或符号转换成数值来表示,没有+10101这样的资料,而是以010101来表示,只表示单纯的整数或小数,小数点的位置预设在一定的位置而较少变动,它的长度受到电脑硬体的限制,而不能无限增长。
Q格式,就是将一个小数放大若干倍后,用整数来表示小数。
Q格式前提无符号数:当参与运算的数值没有负数且运算的结果也没有负数时,则所有字元都可以表示数值,这种没有符号的数,称为无符号数(如记忆体储存位址),有符号数:数值中有某位数值代表符号,通常最高位作为符号位,0代表正,1代表负。
真值:有符号数所代表的数值,例如:110所代表的值是-2 而非6,有符号数只要去除符号位就可以获得该数的大小,在运算时,它的符号位可参与运算。
但在加减运算时,必须将它分离出来,才能进行运算。
有时,还要确定哪个有符号数的真值比较大,才能确定结果的符号。
为了达到这些功能,电路的设计就相当复杂。
所以很多电脑系统不直接使用有符号数,而使用有符号数的1’s补数或2’s补数表示法作为编码系统正弦脉波宽度调变(SPWM)之控制方法经Q 格式乘法器转换成振幅与频率可变V/F 控制,当成其单相感应马达的输入信号,藉由控制责任周期的大小,以达到变电压相对改变频率的效果。
DSP1.实现数位系统的第一步在自然世界中,所有的物理量包括时间、电压、质量、位移等等,都是类比的、连续的。
可是在数位系统中,讯号是在不连续的时间点取样,物理量或讯号的大小也不再是连续,而是被量化(Quantized)。
在数位系统中,只能用有限字元长度的数字去表示数量的大小,而不能以无限精确的数值(实数)去表示。
为了实现数位系统;使用了定数数与浮点数的表示法。
a)定点数(Fixed Point Number):指一个数字的表示,其小数点是在固定的位置(位元)。
b)浮点数(Floating Point Number):使用假数以及指数两部分来表示数值。
信号与系统面试题目
信号与系统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编码的基本原理及其基本的实现方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当时,方便易用性抵消了成本问题带来的不利影响。浮点器件是最早支持 C 语言的 DSP 之一,而定点 DSP 则仍须在汇编代码级上进行编程。此外,对浮点格式而言,实数运算可直接通过代码加入硬件运算中,而定点器件则必须通过软件才能间接执行实数运算,这就增加了算法指令并延长了开发时间。由于浮点 DSP 易于编程,因此其最初主要用于开发工作强度较大的情况,如研究、原型开发、影像识别、工作站的三维图像加速器以及雷达等军用系统。
成本与方便易用性
浮点 DSP 提供的计算能力更高,这也是其区别于定点 DSP 功能的最大差异所在。但在浮点 DSP 刚刚出现的 20 世纪 90 年代初期,其它因素往往掩盖了基本的数学计算问题。浮点功能需要的内部电路多,而 32 位数据路径比当时可用的定点器件要宽一倍。晶片面积越大,引脚数量就越多,封装也越大,这就大大提高了新款浮点器件的成本,因此数字化语音与电信集成卡 (concentration card) 等高产量应用仍更倾向于采用较低成本的定点器件。
另一方面,音频的数据流更为有限,对 24 位采样且每秒 48 千个采样 (ksps) 的速度而言,约为 1Mbps 的速度。新兴的采样率为 192 ksps,为该数据速率的四倍,但其数据流仍然大大低于视频流。不过音频数据的处理必须比视频精确得多。眼睛很容易就被欺骗,特别当影像运动时更是如此;但耳朵就很难欺骗了。因此音频需要浮点硬件提供的更大的字长。
将相同大小的溢出空间集成到浮点 DSP 中将需要 60 个中间结果位(24 个信号+24 个系数+12 个溢出),这将超过大多数应用对精度的要求。但就取幂而言,我们将结果标准化,这样所有 24 位或 53 位都有效,溢出位就不必要了。TI 的 TMS320C67x 系列等浮点 DSP 允许开发人员在双精度内部运算与单精度 I/O 结合的模式下优化精确度与性能。其结果是得到的精确度比定点或单精度浮点运算提供的精确度高得多,但又不会产生完全双精度 I/O 带来的周期问题。
ቤተ መጻሕፍቲ ባይዱ
视频与音频数据集要求
将视频与音频应用的数据集要求加以对比,就很容易看出使用浮点格式的优势。视频的采样率很高,其像素数据采样率相当于每秒数十乃至数百个兆位 (Mbps),具体的值决于应用。像素数据通常以 8 至 12 位的短字表示,每一位代表影像的红、绿、蓝 (RGB) 位面。业界标准的 MPEG 视频压缩算法的关键数学运算包括离散余弦变换 (DCT) 与量化,且过滤有限。DCT 与量化采用整数运算就能有效处理,它与短数据字相结合使得视频成为定点 DSP 很自然的应用,特别对那些设计有大量并行数据路径与片上视频接口的情况更是如此。
最后一点应稍做解释。在 DSP 的内部架构中,三种数据字长相当重要,应当考虑。第一是 I/O 信号字长,正如我们已经说过的那样,其就浮点而言为 24 位,就定点 DSP 而言通常为 16 位。第二就是用于乘法的系数字长。定点系数为 16 位,与信号数据相同;但浮点系数则可能为 24 位或 53 位,这取决于所用的是单宽度精度还是双宽度精度。如果指数表示有意义的零,则精确度实际上会超过上述位数。
第二,在接近于零时必须保持信号精确度,以避免人耳可以分辨的谐波失真。浮点格式从本质上说与人耳的敏感度配合得很好,因为它在分数趋近于零时会变得更精确。相反,定点系统在分数极小的情况下会取近似值等于零,这就降低了精确度。所有上述浮点实数算法方面都对真实复制音频信号至关重要。
决定数据集
其它类型应用的数据集也可受益于浮点的精确度。在医疗影像识别中,更高的精确度能够支持许多层次的信号输入,包括光、X 射线、超声波与其它来源的输入等,它们都必须进行定义与处理,以生成提供有用诊断信息的输出影像。动态范围较大对雷达至关重要,这种情况下,系统应能够在从零到无穷大的范围内进行跟踪,而只用整个范围的一个较小的子集进行目标捕获与识别。动态范围较大也有助于让机器人处理不可预见的情况,如在机器人正常有限的运动范围中遇到的障碍等。与上述应用形成对比的是,定点器件为巨大的通信市场提供更好的服务,因为大多数通信数据都是以八位字节串行传输,随后进行内部扩展以根据整数运算进行 16 位处理。
最后,就是保存迭代乘加 (MAC) 运算中间结果的字长,通常称作寄存器文件。对单一 16 位乘以 16 位的乘法而言,将需要 32 位的乘积;而就单一 24 位乘以24 位的尾数乘法而言,则需 48 位的乘积(指数有不同的数据路径)。但是,迭代 MAC 需要额外的位用于溢出空间 (overflow headroom)。在 16 位定点器件中,溢出空间通常为 8 位,这就使总的中间结果字长为 40 位(16 个信号+16 个系数+8 个溢出)。
早期在易用性方面的差异也已经减小。高效的 C 编译程序与工具早已能支持定点 DSP,为代码执行带来了可视性。直接采用浮点硬件实施实数运算仍有优势;但目前先进的建模工具、完整的数学函数库以及现成的算法降低了为定点器件开发复杂应用的难度。
浮点的精确度
目前,选用定点DSP还是浮点 DSP 归根结底在于应用数据集是否需要浮点算术功能。总体说来,设计人员应解决两个问题:数据集要求多高的精确度?数据集的可预见度有多大?
不同的数字格式
定点与浮点 DSP 的基本差异在于它们各自对数据的数字表示法不同。定点硬件严格执行整数运算,而浮点 DSP 既支持整数运算又支持实数运算,后者以科学计数法进行了标准化。字长为 16 位的定点 DSP 实现 (rovide) 64K 的精度,带符号整数值范围为 -215 至 215-1。
逐渐趋同
目前,早先在成本与易用性间的差异已经不那么明显了。总体说来,定点 DSP 仍然在成本上有优势,而浮点 DSP 仍然在易用性上有优势,但差别已经缩小很多,因此上述因素已经不再起决定作用了。
成本日益成为片上系统 (SOC) 集成与产量的问题,而不是 DSP 内核本身大小的问题。在十年前还只能放置单个晶体管的空间,目前可放置数十个晶体管。目前,占据晶片面积最多的是存储器,而不是逻辑,而且许多基于 DSP 的产品都充分利用再扩展 (rescaling) 的优势,针对具体市场的需求集成了不只一个内核。定点 DSP 的成本仍然较低,因为其针对大众市场应用的产量很高;但是,如果大规模量产的需求出现,那么浮点器件也将受益于规模效益带来的同样的成本降低。
三个因素影响着浮点格式的内在高精度。首先,浮点 DSP 的 24 位 I/O 字长在整数与实数值方面可实现比定点器件中常用的 16 位字长更高的精确度。第二,取幂大幅提高了应用可用的动态范围,较大的动态范围对处理极大数据集以及难以方便预计数据集范围的情况相当重要。第三,浮点硬件内部的数据表示法比定点器件更为精确,这就保证了最终结果的精确度更高。
最近几年,高密度集成与支持改善使两种 DSP 在使用方便性与成本上都较为接近。目前,器件类型的选择越来越取决于应用数据集是否要求浮点格式的更多计算功能。因此,设计大规模量产信号处理应用的开发人员现在开始发现浮点格式更多的内在价值。他们将视线投向传统定点 DSP 开发模式之外的领域,并探索浮点 DSP 所带来的设计机遇。
近年来,随着数字信号处理领域不断发展,DSP 也由应用推动发展。SOC 集成意味着更多的存储器和不同的内核与专用外设一起均能集成到同一器件上,这就使 DSP 产品能够按特定市场的需求进行定制。在此环境中,浮点功能已成为整体 DSP 产品组合中的另一要素。
定点DSP与浮点 DSP 之间在成本与易用性方面仍有某些差异,但随着时间的推移,上述差异已经不大。对设计人员最具重要性的特性在于浮点格式具有更高的算术灵活性与精确度。对高保真音频以及需要实数运算、更高精确度与较大动态范围的其它数据集应用而言,浮点 DSP 是最佳的解决方案。
与此相对比,浮点 DSP 将数据路径分为两部分:一是可用作整数值或实数基数的尾数,二是指数。在支持业界标准单一精确运算的 32 位浮点 DSP 中,尾数为 24 位,指数为 8 位。由于其较长的字长与取幂范围,该器件支持 16M 的精度范围,这样的动态范围大大高于定点格式可提供的精确度。实施业界标准双精度(64 位,包括一个 53 位的尾数与 11 位的指数)的器件还可实现更高的精确度。
尽管过去常用定点器件实现高保真音频,但目前则转向采用精确度更高的浮点格式。某些浮点 DSP 集成了多通道音频串行端口 (McASP),从而简化了音频系统的设计,这就为上述发展趋势提供了支持。随着最新型音频创新在消费类电子产品中的日益普及,对浮点 DSP 的需求也将上升,这也有助于让其成本更接近于定点 DSP。
自十多年前浮点数字信号处理器 (DSP) 推出以来,就为实时信号处理提供了算术上更为先进的备选方案。然而,定点器件至今仍是业界的支柱,当然成本低是主要原因。定点 DSP 每器件产品的价格更低,这对大规模大众市场应用而言是相当重要的优势。
相比较而言,浮点 DSP 能够实现更快速而简便的开发,因此对开发成本比单位制造成本重要的小规模应用而言,更是最佳的选择。
使用完全 24 位浮点 I/O 精度来进行声音采样,这就得到 144 dB 的动态范围,大大超出了声音复制所需的全振幅范围。此外,音频还要求宽系数与中间结果提供的精确度,其原因有二。首先,音频应用通常使用串联无限脉冲响应滤波器 (IIR) 以实现最低时延与最高性能。但串联过滤每一级都会传播上一级的错误。信号与系数字长越长,精确度越高,上述传播错误的影响就越小。