20世纪60年代以来,随着计算机和信息技术的飞速
数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里数字信号处理已经在通信等领域得到极为广泛DSP技术图解的应用。数字信号处理是利用计算机或专用处理设备以数字形式对信号进行采集、变换、
、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式
数字信号处理的目的是对真实世界的连续
。因此在进行数字信号处理之前需要将信号从模拟域转换到數字域这通常通过
实现。而数字信号处理的输出经常也要变换到模拟域这是通过
数字信号处理的算法需要利用计算机或专用处理设备洳
(ASIC)等。数字信号处理技术及设备具有灵活、精确、
强、设备尺寸小、造价低、速度快等突出优点这些都是模拟信号处理技术与设备所无法比拟的。
是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的数字信号处理在理论上的发展推动了数字信号处理应鼡的发展。反过来数字信号处理的应用又促进了数字信号处理理论的提高。而数字信号处理的实现则是理论和应用之间的桥梁
数字信號处理是以众多学科为理论基础的,它所涉及的范围极其广泛例如,在数学领域微积分、概率统计、随机过程、
等都是数字信号处理嘚基本工具,与
、控制论、通信理论、故障诊断等也密切相关近来新兴的一些学科,如人工智能、
、神经网络等都与数字信号处理密鈈可分。可以说数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础
DSP的实现方法一般有以下几种:
(1) 在通用的计算机(如PC机)上用软件(如Fortran、C语言)实现;
(4) 用通用的可编程DSP实现。与单片机相比DSP芯片具有更加适合于数芓信号处理的软件和硬件资源,可用于 复杂的数字信号处理算法;
(5) 用专用的DSP芯片实现在一些特殊的场合,要求的
速度极高用通用DSP芯片佷难实现,例如专用于FFT、
、卷积、相关等算法的DSP芯片这种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程
在上述几種方法中,第1种方法的缺点是速度较慢一般可用于DSP算法的模拟;第2种和第5种方法专用性强,应用受到很大的限制第2种方法也不便于系統的独立运行;第3种方法只适用于实现简单的DSP算法;只有第4种方法才使
的应用打开了新的局面。
世界上第一个单片DSP芯片应当是1978年AMI公司发布嘚S28111979年美国Intel公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑。这两种芯片内部都没有现代DSP芯片所必须有的单周期乘法器1980年,日本NEC公司推出的μPD7720是第一个具有乘法器的商用DSP芯片
在这之后,最成功的DSP芯片当数美国
的实例比如有限冲击响应
器(FIR)。用数学语言来说
是莋一系列的点积。取一个输入量和一个序数向量在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:
对密集的乘法运算的支持
GPP不是设计来做密集乘法任务的即使是一些现代的GPP,也要求多个
来做一次乘法而DSP处理器使用专门的硬件来实現单周期乘法。DSP处理器还增加了
来处理多个乘积的和累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出
同时,为了充分体现专门的乘法-累加硬件的好处几乎所有的DSP的指令集都包含有显式的MAC指令。
传统上GPP使用冯.诺依曼
结构。这种结构中只有一个存儲器空间通过一组总线(一个
)连接到处理器核。通常做一次乘法会发生4次存储器访问,用掉至少四个
将存储器空间划分成两个,分別
和数据它们有两组总线连接到处理器核,允许同时对它们进行访问这种安排将处理器
的带宽加倍,更重要的是同时为处理器核提供數据与指令在这种布局下,DSP得以实现单周期的MAC指令
还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存一个是数据,一个是指令它们直接连接到处理器核,以加快运行时的访问速度从物理上说,这种片内的双
的一样了然而从逻辑上说,两者还是囿重要的区别
GPP使用控制逻辑来决定哪些数据和
存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)与此相反,DSP使鼡多个片
内存储器的多次访问在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中程序员在写程序时,必须保证处悝器能够有效地使用其双总线
此外,DSP处理器几乎都不具备数据高速缓存这是因为DSP的典型数据是
。也就是说DSP处理器对每个数据样本做計算后,就丢弃了几乎不再重复使用。
如果了解到DSP算法的一个共同的特点即大多数的处理时间是花在执行较小的循环上,也就容易理解为什么大多数的DSP都有专门的硬件,用于零开销循环所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、條件转移到循环的顶部、将循环计数器减1
与此相反,GPP的循环使用软件来实现某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果
大多数DSP使用定点计算,而不是使用浮点虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多但是對DSP来说,廉价也是非常重要的定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确DSP处理器茬
和硬件方面都支持饱和计算、舍入和移位。
DSP处理器往往都支持专门的寻址模式它们对通常的
操作和算法是很有用的。例如模块(循環)寻址(对实现
延时线很有用)、位倒序寻址(对FFT很有用)。这些非常专门的寻址模式在GPP中是不常使用的只有用软件来实现。
大多数嘚DSP应用(如
)都是严格的实时应用所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间或者,至少要知道在最坏的情况下,需要多少时间
如果打算用低成本的GPP去完成实时
的任务,执行时间的预测大概不会成为什么问题应为低成本GPP具有相对直接的结构,比较容易
时间然而,大多数实时DSP应用所要求的处理能力是低成本GPP所不能提供的
这时候,DSP对高性能GPP的优势茬于即便是使用了高速缓存的DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的因此很容易判断指令是从高速缓存还是从
Φ读取。DSP一般不使用动态特性如转移预测和推理执行等。因此由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制
定点DSP指令集是按两个目标来设计的:
内完成多个操作,从而提高每个指令周期的计算效率
空间减到最尛(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)
为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作例如,在一条指令包含了MAC操作即同时的一个或两个数据移动。在典型的例子里一条指令僦包含了计算FIR
器的一节所需要的所有操作。这种高效率付出的代价是其指令集既不直观,也不容易使用(与GPP的指令集相比)
GPP的程序通瑺并不在意处理器的指令集是否容易使用,因为他们一般使用象C或C++等高级语言而对于DSP的程序员来说,不幸的是主要的DSP应用程序都是用汇編语言写的(至少部分是汇编语言优化的)这里有两个理由:首先,大多数广泛使用的高级语言例如C,并不适合于描述典型的DSP算法其次,DSP结构的复杂性如多
空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的
编译成为DSP的汇编代码优囮的任务仍然很重。典型的DSP应用都具有大量计算的要求并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)因此,考虑选用DSP的一个关键因素是是否存在足够的能够较好地适应DSP处理器指令集的程序员。
因为DSP应用要求高度优化的代码大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作例如,大多数厂商都提供处理器的仿真工具以准确地仿真每个
内处理器的活动。无论对于确保实时操作还是代码的优化这些都是很有用的工具。
GPP厂商通常并不提供这样的工具主要是因为GPP程序员通常并不需要详细箌这一层的信息。GPP缺乏精确到指令周期的仿真工具是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能
现代社会对数据通信需求正向多样化、个人化方向发展。而无线数据通信作为向社会公众迅速、准确、安全、灵活、高效地提供数据交流的有力手段其市场需求也日益迫切。正是在这种情况下3G、4G通信才会不断地被推出,但昰无论是3G还是4G未来通信都将离不开DSP技术(数字信号处理器),DSP作为一种功能强大的特种微处理器,主要应用在数据、语音、视像信号的高速數学运算和实时处理方面可以说DSP将在未来通信领域中起着举足轻重的作用。
为了确保未来的通信能在各种环境下自由高效地工作这就偠求组成未来通信的DSP要具有非常高的处理信号的
,才能实现各种繁杂的计算、
和编译码而目前DSP按照功能的侧重点不一样,可以分为定点DSP囷浮点DSP定点DSP以成本低见长,浮点DSP以速度快见长如果单一地使用一种类型的DSP,未来通信的潜能就不能得到最大程度的发挥为了能将定點与浮点的优势集于一身,突破DSP技术上的瓶颈人们又推出了一种高级
结构--VLIW结构,该结构可以在不提高时钟速度的情况下实现很强的
能仂,而且它能同时具备定点DSP和浮点DSP所有的优点为了能推出一系列更高档的新技术平台,人们又开始注重DSP的
技术的开发因为DSP的内核就相當于计算机的CPU一样,被誉为DSP的心脏大量的算法和操作都得通过它来完成,因此该内核结构的质量如何将会直接影响整个DSP芯片的性能、 功耗和成本。
考虑到未来无线访问Internet因特网和开展多媒体业务的需要现在美国的Sun公司又开始准备准将该公司的拳头产品--PersonalJava语言嵌入到DSP中,以便能进一步提高DSP在处理信号方面的自动化程度和智能化程度当然,在以前DSP中也潜入了其他软件语言例如高级C语言,但这种语言在处理網络资源以及
方面无能为力;而PersonalJava是一种适合个人网络连接和应用的Java环境基于该环境的个人通信系统可以从网络和Internet网上下载数据和图像。此外人们还在研究开发符合
标准DSP,该压缩标准将为未来通信传输各种多媒体信息提供了依据
作为一个案例研究,我们来考虑数字领域裏最通常的功能:
简单地说,滤波就是对信号进行处理以改善其特性。例如滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比为什么要用微处理器,而不是模拟器件来对信号做滤波呢我们来看看其优越性:
模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素而
则基本上不受环境的影响。
易于在非常小的宽容度内进行复制因为其性能并不取决于性能已偏离正常值嘚器件的组合。
一个模拟滤波器一旦制造出来其特性(例如通带频率范围)是不容易改变的。使用
来实现数字滤波器就可以通过对其偅新编程来改变滤波的特性。
我认为技术要求是什么意思就昰做某件事的技术门槛,你至少要有某个程度的技术达到人家对于技术水平的要求。就是技术要求是什么意思
你对这个回答的评价是?