本节将介绍数字信号处理技术的发展、数字信号处理算法的分类和数字信号处理实现方法。
20世纪80年代,首次出现了专门用于数字信号处理的数字信号处理器(DSP)。随着半导体工艺的不断发展,DSP的性能也不断提高,但价格不断降低。DSP以其高可靠性、良好的可重复性以及可编程性(注:此处是指使用高级语言,如C语言,对DSP编程)已经在消费市场和工业市场中得到广泛使用。DSP发展的趋势是结构多样化、集成单片化以及用户化。此外,其开发工具的功能更加完善,评价体系也更全面、更专业。
近些年来,随着FPGA制造工艺的不断发展,它已经从传统的数字逻辑设计领域扩展到数字信号处理和嵌入式系统应用领域。这就使得数字信号处理技术向着多元化实现的方向发展。
注 :(1)图像处理单元(Graphic Processing Unit,GPU)也被用于实现数字信号处理,但它不在本书所涉及的范围内。众所周知,在目前情况下,与FPGA相比,GPU存在着功耗大、设计成本高以及设计实现较复杂等缺点。
(2)术语“DSP”既表示数字信号处理(技术),又表示数字信号处理器。
数字信号处理技术主要应用于以下几个方面。
1.数字音频
在20世纪80年代,DSP系统(如CD音频)对数字信号的处理能力要求并不高。数字信号处理主要用于实现从CD读取数据,然后通过DAC输出。目前,CD音频系统已经与音效系统、录制功用等结合在一起,但是对数字信号的处理能力要求仍然很低。
2.调制解调器
20世纪90年代,传真调制解调器开始被广泛应用;从1990年到2000年,调制解调器的数字传输速度从2400b/s提高到57200b/s。在调制解调器中,使用了最小均方误差(Least Mean Square,LMS)的DSP算法。通过该算法,使消除回声和数据均衡成为可能,在带宽受限的电话信道内使用多种信号传输方法,并通过使用DSP来修正有可能在通道内出现的任何失真,这样数据传输速度就可以接近理论传输值。
3.数字用户回路
在20世纪90年代的最后几年里,数字用户回路(Digital Subscriber Loop,DSL)技术的使用,使得通过传统的电话线就可以把上兆比特每秒的数据率带入千家万户。概括地说,DSL使用DSP技术和双绞线的高频特性。在提出高速数据通信的要求之前,大多数电话线的带宽被限制在300~3400Hz的范围内,从而限制了数据通信——这就是语音带宽调制解调器在基于现有几千赫电信带宽的基础上,有一个可计算的带宽限制原因。将DSL设备引入电话交换系统将铜导线结构带入了一个新的发展阶段。
4.移动多媒体应用
移动多媒体应用允许客户通过电话会议进行交流(音频和视频),用一个手持的通信器传输文件(电子邮件/传真)。音频/视频的编码/压缩算法以及DSP通信能力,则要求非常高水平的处理能力。第三代移动通信 (3G) 允许为手持无线设备(笔记本电脑和移动通信设备)提供高达2Mbps的数据传输速率。为了实现这种高速率,传输到基站数据和从基站得到的数据所要求的芯片速率为5Mbps。为了实现这种高速率的数据传输,使用一个叫作码分多址(Code Division Multiple Access,CDMA)的调制方案。对脉冲形成、信道均衡、回声控制和语音压缩等采用DSP策略,将要求采用高性能的DSP芯片,其性能需要达到每秒百万级的指令运算速度。
5.软件无线电的应用
理想的软件无线电(Software Radio,SR)接收机通过DSP直接从RF向下变频(典型值为吉赫级),如图2.1所示,并且最初的实现将工作在IF频率,即从吉赫级混降到兆赫级。
图2.1 软件无线电的结构
对于接收到的信号,在宽带 ADC 采样之后完成所有的下变频/解调(称为零中频/零拍接收机)。与第二代移动通信一样,所有的基带处理过程(回声对消、语音编码、均衡、解扩、信道编码)均在DSP芯片内完成。
对于第二代移动通信技术而言,一个理想的SR可以工作在800~900MHz的频谱范围内,并且可以通过简单修改DSP内的软件代码来适应AMP、GSM、DAMP、CT2等。
下一代通用移动通信系统(Universal Mobile Telecommunications System,UMTS)遵循相互协作的国际标准,将成为SR方案的受益者。目前,多频带无线电(特别在美国)已经覆盖900MHz的全球移动通信系统(Global System for Mobile communication,GSM)和1300MHz的数字增强无绳通信系统(Digital Enhanced Cordless Telecommunications,DECT),只不过它是用分立元件实现的,而不是用SR结构。
对于下一代5MHz带宽的CDMA而言,如果ADC使用4倍的带宽采样,则要求高于20MS/s(S/s:样值每秒)的采样频率和频宽范围高达2GHz的模拟前端,并要求至少18比特的分辨率。目前,满足这种要求的器件并不存在。DAC将要求输出20MS/s的采样值,其数据宽度达到18比特,并且将其输入到一个线性射频放大器中。
SR(包括算法工具箱)的观点是:对于手机或移动终端保存的每个标准,都有相应的软件支持。或者有一个包含不同算法的工具箱(QPSK、均衡器等),根据所使用的实际标准 (GSM、W-CDMA等),通过选择正确的参数来调用这些算法。
还有空中下载的概念,通过移动终端可以将所需的软件下载到移动终端的通用硬件平台上。然而,这仍然需要进一步研究和完善。
数字信号处理算法主要包含以下几个方面。
1.线性滤波
线性滤波主要用于从信号中去除高频背景噪声。该技术可用于任意一个应用,前提条件是两个信号可以通过它们所占用的频带加以区分。
2.信号变换
信号变换用于信号分析和信号检测等。通过将一个信号从一个域变换到另一个域,读者可以更加方便地观察和分析这个信号。例如,变换到s域(拉普拉斯域)可以允许更直接的数学操作,而变换到频域则可以更容易观察不同频率的信号分量。
3.非线性信号增强/滤波
通过中值滤波可去除脉冲噪声。在2D图像处理中,非线性滤波有着非常重要的应用。音频非线性滤波器用于处理脉冲噪声,因为该信号被一个脉冲干扰。由于脉冲信号基本上包含了所有的频率分量,因此不能使用频率或相位识别滤波器;但可以使用一个中值滤波器,把N个最近的采样排序,并将中间值选择出来。这样,如果N个样本的持续时间比冲激噪声的时间长一些,那么幅度非常大的脉冲就可能被过滤掉。
4.信号分析/解释/分类
信号分析/解释/分类用于心电图、语音识别和图像识别等。将一个已知的图案与输入信号进行比较,从而识别输入信号,并输出某些参数化的信息。
5.压缩/编码
压缩/编码用于高保真音频、移动通信、视频会议和ECG信号压缩等。压缩是目前音频和电信业务中的一个重要领域。在高保真音频市场,CD-ROM已经被通过因特网购买的压缩格式的音乐产品(如MP3)所取代。对于电信应用而言,将语音进行编码后占用尽可能少的带宽,同时又保持了原有的信号质量。对于每一个新型移动设备,更强的DSP处理能力在允许位速率减小的同时,仍然保持了很好的信号质量。例如,减小信号的带宽和存储需求。
6.记录/复原 ( 如CD 、 CD-R 、 硬盘记录等 )
该过程和压缩过程相反,其目的是提取并恢复原始的信息。
对平台的选择取决于下面的因素:①所要实现的功能;②处理性能的要求(速度、精度等);③可重复编程的能力;④生产成本;⑤可用的设计资源;⑥所需的设计时间等。
有许多因素决定了用于指定用途的平台种类。通常,在同一个系统设计中同时使用不同的平台,如DSP+FPGA的结构就是目前系统设计中经常使用的方法。每个平台实现不同的功能。设计人员需要决定在不同的平台之间如何划分功能。当需要选择一个实现平台时,一个主要的考虑因素是要实现哪一个功能,或者在速度、精度、功耗和实现成本等方面,哪一个平台更能满足设计要求。
目前,用于实现数字信号处理的方法有如下几种。
1.专用集成电路 ( Application Specific Circuit , ASIC )
ASIC为全定制数字(或者模数混合型)硬件,其优点主要有:①使用ASIC实现起来更加迅速、有效;②对于大批量生产,ASIC的成本相对较低。但ASIC也有下面的缺点:①ASIC流片时间长;②ASIC设计过程复杂且昂贵;③由于不具备可重复编程的能力,ASIC没有灵活性。
2.现场可编程门阵列 ( Field Programmable Gate Array , FPGA )
FPGA内提供了大量的可编程的逻辑资源、布线资源和I/O模块。近来,为了将FPGA应用于数字信号处理领域,在FPGA内也集成了大量专用的DSP切片(在Xilinx FPGA内称为DSP48x)。
3.数字信号处理器 ( Digital Signal Processor , DSP )
DSP芯片是专门用于数字信号处理的处理器芯片,典型的有TI公司和ADI公司的DSP芯片,两者在性能、功耗和成本等方面各有千秋。
下面以一个长度为N的数字FIR滤波器的实现为例,说明不同实现方法所能达到的处理性能。
(1)使用DSP。通过优化设计执行乘-累加(MAC)操作,N个MAC操作中的每一个操作均需要按顺序执行,因此可达到的最高执行速度大约为f clock /N,其中f clock 为DSP的最高时钟频率(假定可以在单处理器周期内执行1个MAC操作)。
(2)使用ASIC或FPGA,可以全并行地实现滤波器操作,其优势就是可以同时执行N个MAC操作。对于同样的f clock ,滤波器的实现速度可以快N倍。
(3)大多数DSP提供了32位精度的累加器来存储MAC操作的结果。而对于ASIC与FPGA而言,它们理论上可以实现任意精度的操作,普通滤波器的数据宽度一般要求在10~16比特的范围内,显然要达到更高的精度则需要消耗更多的逻辑资源。
(4)如果所实现的系统要求具备可重复编程的能力时(注:这里是指软件可重复编程和硬件可重复编程),就不能选择ASIC。当设计人员希望所设计的系统能够符合最新的标准,或者只是简单地更新设计时,可以通过修改运行在DSP上的程序和修改 FPGA芯片的内部实现结构来实现这个目的。