王金龙 沈良 任国春 蔡跃明 陈瑾 吴启晖编著
随着数字技术的迅速发展和市场需求的强劲推动,基于数字信号处理器(Digital Signal Processor,简称 DSP)的实时信号处理技术得到了越来越广泛的应用。本书在简要介绍数字信号处理理论与方法的基础上,以目前国内外使用广泛的 TI 公司 DSP 芯片为代表,讨论了无线通信中数字滤波、数字调制、信道编码、同步、均衡、分集接收等算法的设计、 DSP 实现以及工程实际中可能遇到的问题,同时给出了许多算法的 MATLAB 仿真程序和 DSP 汇编程序。最后,简要介绍了软件无线电的基本概念、发展概况和关键技术,并以一种实用的软件无线电台为例,分析了该电台基带处理的关键算法及 DSP 实现。
本书可作为电子学和通信类各专业本科高年级学生和研究生的教材或参考书,也可供相关专业的教师和工程技术人员阅读参考。
近年来,随着微电子技术、数字信号处理技术的飞速发展,数字信号处理器(Digital Signal Processor,简称 DSP)得到了日新月异的进步,在处理速度、运算精度、处理器结构、指令系统、指令流程等诸多方面都有了较大提高,并迅速在语音、雷达、声纳、地震、图像、通信系统、系统控制、生物医学工程、遥感遥测、地质勘测、航空航天、电力系统、故障检测、自动化仪表等众多领域获得了极其广泛的应用。当前, 以 DSP 芯片及外围设备为主,正在形成一个具有较大潜力的产业和市场。
数字化是当今无线通信系统的主流发展方向,而 DSP 的重要特点是其处理速度远远高于一般的微处理器,适用于实时数据处理。因此, DSP 在无线通信系统的实现中日趋重要,无论是基地台、终端设备,还是手机、背负式电台,都要依靠高性能的 DSP 来实现。DSP 技术已成为现代无线通信系统的核心技术之一。
伴随无线通信和数字信号处理技术的发展,国内外出版了大量有关无线通信或数字信号处理的著作和教材,但结合无线通信和数字信号处理器两方面的专著和教材还甚少,国内缺乏系统介绍数字信号处理方法与无线通信应用的书籍。本书拟在填补这一空白,为从事通信和数字信号处理应用的工程科研人员、高年级学生、研究生和教师提供一部富有使用和参考价值的教材和参考书。
本书各章在简明扼要介绍数字信号处理理论与方法的基础上,以目前国内外使用广泛 DSP TMS320C54x 为代表,讨论无线通信中的各种信号处理算法的实现及实践中可能遇到的问题。针对无线通信系统不同功能模块,重点介绍了数字滤波器、数字调制、信道编码、同步、均衡、分集接收等算法及 DSP 实现,同时给出了许多算法的 MATLAB 仿真程序;最后,简要介绍了软件无线电的基本概念、发展概况和关键技术,并以一种实用的软件无线电台为例,分析了该电台基带处理的关键算法及 DSP 实现。
本书由王金龙主编。全书共分 9 章,其中第 1 章由王金龙编写,第 2 章由沈良编写,第 3~6 章由任国春编写,第 7 章由陈瑾编写,第 8 章由蔡跃明编写,第 9 章由吴启晖编写,全书由王金龙统稿。在编写过程中,得到了人民邮电出版社的大力支持,我校研究生龚玉萍、高瞻、童晓兵、程云鹏、李悦、李琳和汤宏伟等做了许多工作。在此一并表示感谢。
由于编著者水平有限,错误和疏漏之处在所难免,敬请广大读者批评指正。
作者
2002 年 2 月于南京
1.1 概述
数字信号处理(Digital Signal Process,简称 DSP)是利用专用或通用数字信号处理芯片,通过数字方法实现信号处理。与模拟信号处理相比,数字信号处理具有灵活、精确、可靠性好、体积小、功耗低、易于大规模集成等优点。
数字信号处理的基础是算法和数字计算机或数字信号处理芯片。算法一旦建立,设计者就要寻找合适的计算机或数字信号处理芯片来最有效地实现它们,最开始的目标是在可以接受的时间内对算法做仿真,随后是将波形存储起来,然后再加以处理。随着计算机技术和数字信号处理技术与大规模集成电路技术的发展,这种仿真和脱机处理逐步演变成为实时信号处理。
实时信号处理是指系统必须在有限的时间内对外部输入信号完成指定的处理功能,即信号处理速度应大于信号更新速度,这主要取决于数字信号处理芯片的处理速度与功能,下面主要叙述 DSP 芯片的简单情况及其应用。
1.1.1 DSP 芯片及其特点
DSP 芯片,也称数字信号处理器(Digital Signal Process,也简称 DSP,后面大部分缩写均属此含义),是一种特别适合于进行数字信号处理的微处理器,它强调运算处理的实时性,因此 DSP 芯片除了具备普通微处理器所强调的高速运算和控制功能外,针对实时数字信号处理,在处理器结构、指令系统、数据流程上做了大的改动,其特点如下:
1. DSP 芯片普遍采用了数据总线和程序总线分离的哈佛结构及改进的哈佛结构,比传统处理器的冯 ·诺依曼结构有更高的指令执行速度;
2. DSP 芯片大多采用流水技术,即每条指令都有片内多个功能单元分别完成取指、译码、取数、执行等多个步骤, 从而在不提高时钟频率的条件下减少了每条指令的执行时间;
3. 片内有多条总线可以同时进行取指令和多个数据存取操作,并且有辅助寄存器用于寻址,它们可以在寻址访问前或访问后自动修改内容,以指向下一个要访问的地址。
4. DSP 芯片大多带有 DMA 通道控制器以及串行通信口等,配合片内总线结构,数据块传送速度大大提高。
5. 配有中断处理器和定时控制器,可以方便地构成一个小规模系统。
6. 具有软、硬件等待功能,能与各种存取速度的存储器接口。
7. 针对滤波、相关、矩阵运算等需要大量乘法累加运算的特点, DSP 芯片大都配有独立的乘法器和加法器,使得同一时钟周期内可以完成乘、累加两个运算。
8. 低功耗,一般为 0.5~4W,采用低功耗技术的 DSP 芯片只有 0. 1W,可用电池供电。正是 DSP 芯片的以上特点决定了其运算速度比通用微处理器(MPU)要高,例如 FIR
滤波器的实现,每输入一个数据,对应每阶滤波器系数需要一次乘、一次加、一次取指、两次取数,有时还需要专门的数据移位操作,DSP 芯片可以单周期完成乘加并行操作以及3~4 次数据存取操作,而普通 MPU 至少需要 4 个指令周期,因此,在相同的指令周期和片内指令缓存条件下,DSP 是 MPU 运算速度的 4 倍以上。
1.1.2 DSP 芯片种类
DSP 芯片的采用是为了达到实时信号的高速处理,为适应各种各样的实际应用,出现了多种类型、档次的 DSP 芯片。从用途上可以把 DSP 芯片分为通用DSP 芯片和专用 DSP芯片,通用 DSP 芯片一般指可以用指令编程的 DSP 芯片,而专用DSP 芯片只针对一种应用,只能通过加载数据、控制参数或在管脚上加控制信号来使其具有有限的可编程能力。按数据格式可以把 DSP 芯片分为定点 DSP 芯片和浮点 DSP 芯片,数据以定点格式工作的DSP 芯片称为定点 DSP 芯片,数据以浮点格式工作的 DSP 芯片称为浮点 DSP 芯片。评价专用 DSP 芯片性能的主要指标是它完成相应处理任务的速度以及字长,评价通用 DSP 芯片最常用的指标是 MIPS(每秒执行百万条指令)。对大多数定点 DSP 芯片来说,单周期内可以完成一次甚至两次运算。对浮点 DSP 芯片单周期可以完成 2 次甚至多次运算,通常衡量浮点 DSP 芯片的指标是 MFLOPS(每秒百万次浮点运算)。TI 公司的 TMS320C30 每指令周期可以执行乘法和加法各一次,因而其 MFLOPS 指标是其 MIPS 指标的两倍。AD公司的 ADSP21020 与 Motorola 公司的 DSP96002 在一个指令周期内可以完成乘、加、减各一次,因而其 MFLOPS 指标是其 MIPS 指标的三倍。DSP 芯片内除了运算单元外还有许多其它功能部件,MOPS(每秒百万次操作)就成了衡量 DSP 芯片片内功能强弱的又一指标。这一指标可以达到 MIPS 指标的 5~ 10 倍,但这一指标并不能与 DSP 芯片的实际处理速度等同,因此执行 FFT、FIR 滤波等算法的执行时间就成为一个比较客观的评价标准。一般情况所说的通用 DSP 芯片的性能指标往往只是在 DSP 芯片执行片内程序及读写片内存储器数据的条件下得来的,实际上如果将程序和数据放在片外存储器,DSP 芯片的处理速度要慢 2~3 倍,因此片内存储器的大小对 DSP 芯片性能影响较大。大容量片内存储器配置的 DSP 芯片对系统设计简化和性能提高非常有效。
通用 DSP 芯片的运算和处理是用软件实现的;而专用 DSP 芯片的运算是用硬件直接实现的,其内部结构规则简单,通常可以容纳很多相同的运算单元,如多个乘加器,因此专用 DSP 芯片在做指定运算时,速度远高于通用 DSP 芯片。其缺点是灵活性差,几乎都是定点型的,精度和动态范围有限,需要较多外围控制器件和严格的时钟同步信号,并且专用 DSP 芯片几乎不具备自适应处理能力。
1.1.3 DSP 芯片的应用
DSP 芯片的应用几乎已遍及电子与信息的每一个领域,常见的典型应用有:
1. 通用数字信号处理
数字滤波、卷积、相关、FFT、希尔伯特变换、自适应滤波、窗函数、谱分析等。
2. 语音识别与处理
语音识别、合成、矢量编码、语音鉴别、语音信箱等。
3. 图形/图像处理
二维、三维图形变换处理、模式识别、图像鉴别、图像增强、动画、电子地图、机器人视觉等。
4. 仪器
暂态分析、函数发生、波形产生、数据采集、石油/地质勘探、地震 预测与处理等。
5. 军事
雷达与声纳信号处理、导航、导弹制导、保密通信、全球定位、电子对抗、情报收集与处理等。
6. 计算机
阵列处理器、图形加速器、工作站、多媒体计算机等。
7. 家用电器
数字电视、高清晰度电视(HDTV)、高保真音响、玩具与游戏、数字电话等。
8. 医学工程
助听器、X-射线扫描、心电图/脑电图、病员监护、超声设备等。
9. 自动控制
磁盘/光盘伺服控制、机器人控制、发动机控制、引擎控制等。
10. 通信
纠错编译码、自适应均衡、回波抵消、同步、分集接收、数字调制解调、软件无线电、扩频通信等。
1.2 几种不同厂家的 DSP 芯片
面对 DSP 的巨大市场和广阔发展前景,世界上几个大的半导体公司都在 DSP 上开展竞争,如 AD 、AT&T 、Motorola 、NEC 、TI 等公司都在全力开发和生产 DSP 芯片。下面就简单介绍几种不同厂家的 DSP 芯片。
1.2.1 AD 公司
美国 AD 公司是有影响的通用DSP 生产厂家之一。AD 公司的 DSP 芯片产品推出时间较晚,而综合性能较高。AD 公司的定点 DSP 芯片为 ADSP21XX 系列,浮点产品为ADSP21020/ADSP2106X 系列,下面我们分别对其进行介绍。
一、ADSP21XX
ADSP21XX 为 AD 公司的定点 DSP 系列,其不同型号的存储器、外部接口各不相同。下面介绍 ADSP218X 的性能特点,以常用 40MHz 的 ADSP2183 为例,其主要性能为:
指令周期 25ns;
片内存储器分为两部分:程序 16K×24 bit,数据 16K× 16 bit,共计 80KB;
片内寻址能力 16K;
片内设备:2 个串口,一个定时器;
运算单元字宽,乘法器 16 bit×16 bit 输入,32 bit 结果,累加器(ACC)40 bit, ALU 16 bit;
寻址方式:循环,位反序;
DMA 2 个;
硬件堆栈 16 级,允许 7 级中断;
主机接口,13 个状态输入/输出管脚,EZ-ICE 仿真口(非 JTAG 标准);
外部中断 4 个;
封装 128QFP。
ADSP21XX 系列主要面向通信系统等对处理数据精度和动态范围要求适中、更强调产品低成本和低功耗的应用领域。
ADSP218X 系列定点DSP 相对于其它定点DSP 的突出优点是片内高速存储器容量大、寻址能力强、运算速度快, 对于需要较大存储器(40~80KB)的应用,ADSP218X 可以构成外围器件少的系统。
二、ADSP21020
ADSP21020 是 AD 公司推出的32 bit 浮点 DSP 芯片,主要性能如下:
指令周期 30ns(33MHz 主频);
相互独立两条总线,数据总线:32 bit 地址,40 bit 数据,程序总线:24 bit 地址, 48 bit 数据;
片内无存储器;
指令 Cache:32×48 bit;
存储空间:4G 数据空间,16M 程序空间,读写均为单周期;
IEEE 754 标准的 32 bit/40 bit 浮点格式;
32 bit/40 bit 的乘法器和 ALU ,32 bit 移位器,可以乘、加、减并行工作, 乘法器定点输入 32 bit,结果 80 bit;
32 个 40 bit 运算寄存器;
6 级可嵌套零开销循环;
延迟或条件跳转/调用/返回;
寻址:循环(8 个),位反序;
硬件堆栈 20 级可扩展;
1 个定时器;
JTAG 仿真接口;
软/硬件等待状态;
外部中断 4 个;
加载方式:8 bit PROM ,JTAG;
1024 点复数 FFT 0.64ms(基 2),0.58 ms(基 4);
浮点倒数 180ns;
浮点平方根倒数 270ns;
封装 223PGA ,223QFP。
三、ADSP2106X
AD 公司在 1995 年推出了并行浮点 DSP 芯片 ADSP21060,它在 ADSP21020 的处理器核上增加了片内 RAM 和链路口。它的突出特征表现为:大容量片内存储器,完全的片上总线控制逻辑可以将 6 片 DSP 直接相连,构成高效的共享存储器并行系统,在指令执行、跳转/调用、FFT 蝶形运算方面性能好。ADSP21060 的其主要性能为:
指令周期 25ns(40MHz 主频);
片内有 4 条 32/48 bit 总线,供程序、数据、I/O 、DMA 使用,片外一条 48 bit 总线;
片内 4M bit SRAM,可以灵活地配置成 16/32/48 bit 格式,用于数据/程序存储;
寻址 4G 空间,片外单周期读写;
指令 Cache 32×32 bit;
IEEE 标准的 32/40 bit 浮点格式;
乘法器 32/40 bit 浮点输入,40 bit 结果,或 32 bit 定点输入,80 bit 结果;
ALU 32/40 bit 浮点加减,32 bit 定点加减,允许同时求 2 个操作数的和/差;
32 bit 移位器;
单周期乘、加、减并行操作;
16 个 40 bit 运算寄存器;
6 级零开销块循环嵌套;
寻址:同时 8 个循环寻址,同时 2 个位反序寻址;
1 个定时器;
2 个串口;
软/硬件等待状态,1~7 周期软等待;
外部中断 3 个;
JTAG 仿真接口,允许多片 DSP 仿真;
外部标志管脚 4 个;
加载方式:8 bit EPROM/16 bit 主机/链路口/48 bit 总线;
1024 点复数 FFT 0.46ms;
浮点倒数 150ns;
浮点平方根倒数 225ns;
6 个 4 bit 链路口(各带 2 个控制线),每个带宽 40MB/s;
10 个 DMA 通道,2 对 DMA 请求/应答信号;
主机接口;
封装 240QFP。
AD 公司同类的其它浮点并行 DSP 芯片包括 ADSP21062/61/65,它们是 ADSP21060的简易低成本型,分别在片内存储容量以及链路口上作了简化和省略,ADSP21062/61/65的片内存储容量依次减为 2 M bit 、1 M bit 、0.5 M bit ,ADSP21061/65 省去了所有链路口。尽管如此, 所有 ADSP2106X 保留了组成共享存储系统的片内总线仲裁功能。由于ADSP2106X 采用了更先进的超级哈佛结构,因此也称为 SHARC 处理器。
1.2.2 AT&T 公司
AT&T 公司(现在的 Lucent 公司)是拥有高性能 DSP 芯片的另一家美国公司。其 DSP芯片包括定点和浮点两大类。定点 DSP 芯片中有代表性的主要包括 DSP16 系列,浮点 DSP芯片中比较有代表性的是 DSP32 系列。下面我们分别对其进行介绍。
一、DSP16 系列
AT&T 公司生产的定点 DSP 芯片 DSP16 系列已广泛应用于高速编解码器、数据中继、交换机、蜂窝电话等通信领域。此系统的基本型 DSP16A 主要性能为:
指令周期 25ns(40MHz 主频);
片内存储器 12K × 16 bit ROM ,2K × 16 bit 数据 RAM;
片外寻址空间 64K × 16 bit;
乘法器 16 bit 输入,结果 32 bit;
累加器 36 bit;
ALU 32 bit;
指令缓存 15 × 16 bit;
串口 1 个;
无 DMA;
循环寻址方式;
外部中断 1 个;
低功耗工作模式;
封装 84PLCC ,133PGA。
DSP16A 功能简单,而陆续推出的 DSP16XX 系列其它型号在不同方面的性能有很大提高。DSP16C 片内集成了 A/D、D/A、JTAG 测试口,DSP1610、DSP1616 有片内仿真口,而且 DSP1616 可工作于 3.3V,后来推出的 DSP16XXX 系列则具有双乘法器和 3 输入加法器。
二、DSP32C
DSP32C 是 AT&T 公司推出的浮点 DSP 系列芯片,它是目前最简单的 32 bit 浮点 DSP,其结构并非采用流行的哈佛总线结构,而采用改进的冯 ·诺依曼结构,其主要性能为:
指令周期 80 ns(50 MHz 主频,4 个时钟 1 个周期);
单条总线 4M 存储空间,可以用 8/16/32 bit 寻址;
片内存储器 3 × 512 × 32 bit;
非标准 32 bit 浮点格式;
一个串口,一个 8/16 bit 并口;
浮点乘法器:IEEE 浮点格式,输入 32 bit,结果 45 bit;
加法器 输入/输出 40 bit 浮点,或者 16/32 bit 定点输入;
4 个 40 bit 运算寄存器;
零开销循坏;
寻址位反序;
无硬件堆栈;
硬件等待状态;
外部中断 2 个;
DMA 通道 2 个,仅用于串口,不能与处理器核同时访问;
1024 点复数 FFT 1.9 ms;
浮点除法 660 ns。
AT&T 公司在 DSP32C 的基础上又推出了 DSP3210 等增强型,在性能上有所提高,如DSP3210 内部具有 2 个 1K 字的 RAM 块和 512 字的引导 ROM,外部寻址空间达 4G 字节,可以用软件编程产生等待状态,具有串行口、定时器、DMA 控制器等。
1.2.3 Motorola 公司
Motorola 公司是又一个有影响的 DSP 芯片产家。其 DSP 芯片主要可分为定点 DSP 和浮点 DSP 两类,其中定点 DSP 芯片以MC56000 系列为代表,浮点 DSP 以 MC96002 为代表。下面我们分别对其进行介绍。
一、DSP56000 系列
Motorola 公司的 DSP56K 系列定点 DSP 在功能上与 TI 、AD 公司的定点 DSP 相似,它的一个显著特点是数据字宽 24 bit,乘法器 48 bit,加法器 56 bit,因此能提供较大的动态范围和更高的处理精度。其名称 56K 与加法器具有 56 bit 有关,下面我们以 66 MHz 的DSP56002 为例,其主要性能为:
指令周期:30.3 ns(66MHz 主频,2 个时钟一个周期);
片内存储:512 × 24 bit 程序 RAM ,64 × 24 bit 引导 ROM;两个 256× 24 bit 数据 RAM;
两个 256 × 24 bit 数据 ROM,固化有正弦表、A 律和μ律压扩表;
片外寻址能力:3 个 64K× 24 bit 空间;
1 个串口,1 个 8 bit DMA 并口,1 个定时器;
乘法器输入 24 bit,结果 48 bit ,2 个 56 bit 加法器,56 bit ALU,具备多精度运算能力,完成 48 bit ×48 bit 96 bit 乘法仅需 6 个指令周期;
寻址方式有循环及位反序;
系统堆栈 15 级;
外部中断 3 个;
1024 点复数 FFT 时间 1.8 ms,硬件支持 FFT 浮点算法;
支持 32 路 TDMA 通信;
三种加载方式:外总线、主机接口、串口;
封装 132QFP;
DSP56002 指令周期为两个时钟周期,新推出的 DSP56301 在性能上有了很大提高,可在一个时钟内执行一条指令,各项主要性能提高如下:
指令周期 10ns(100MHz 主频),单周期内可同时执行 3 条指令和 6 个 DMA 通道操作;
片内存储 4K× 24 bit 程序 RAM,4K × 24 bit 数据 RAM,程序 RAM 中可将 1K × 24 bit 设置为指令缓存,另有 192 × 24 bit 引导 ROM,4K 数据 RAM 分成两个 2K 区;
片外存储 16M × 24 bit 的程序区,两个 16M × 24 bit 数据区;
通过软件可以设置成 16 bit 数据运算形式;
2 个 10Mb/s 的同步串口;
1 个可与 Codec 和 I/O 接口的 10Mb/s 串口;
3 个定时器;
6 个 DMA 通道;
片内集成 32 bit PCI 总线控制器,其传输速度可达 133Mb/s;
可以直接与 DRAM 接口,仅需缓冲器就可以连到 ISA 总线上;
具有 JTAG 测试口和 OnCE 口,OnCE 口用于仿真程序和支持开发系统的调试。此外,Motorola 公司为移动手机提供了低成本、低功耗(1.8V 工作电压)的 DSP56600
系列,其数据字宽减少为 16 bit,DSP56652 内部集成了一片 16 bit 的 DSP56600 和一个 32 bit 的 RISC 处理器,专门用于移动通信基带处理的 IS—136 标准的 TDMA 应用,完成信号收、发处理和频率合成, 指令执行速度 60MIPS(16.7 ns),运算单元包括了一个 16 bit × 16 bit 乘法器和 2 个 40 bit 累加器。DSP56652 是专用ROM 型的,相对应的 DSP56651 则是基于 RAM,用于程序设计阶段的编程调试。
DSP56800 系列则是更低成本、低功耗的 16 bit 定点 DSP ,结构功能上做了简化设计,可用于通信、电机控制领域。DSP56100 也是 16 bit 定点 DSP。
二、DSP96002
DSP96K 系列 DSP 是 Motorola 公司推出的高性能 32 bit 浮点 DSP 芯片。与 DSP56K系列一样,DSP96K 名称与其 96 bit 加法器有关,采用哈佛结构,其主要性能如下:
指令周期 50ns(40MHz 主频);
片内总线:3 个 32 bit 地址总线,5 个 32 bit 数据总线,片外两条总线;
片内存储器:1K×32 bit 程序 RAM ,2×512×32 bit 数据 RAM;
寻址空间 3×8×0.5G;
2 个主机接口;
IEEE 754 标准的 32 bit 浮点格式;
乘法器输入 32 bit 浮点,结果 44 bit ,或输入 32 bit 定点,输出 64 bit 结果;
加法器对 10 个 96 bit 寄存器或 30 个 32 bit 寄存器操作;
32 bit 移位器
零开销循环;
15 层堆栈;
软/硬件等待状态;
在线仿真口;
外部中断 3 个;
1024 点复数 FFT 1.047ms ,1024 点实数 FFT 0.65ms;
浮点除法 300ns;
功耗 2W;
封装:223PGA ,256QFP。
更多内容见附件
免责声明:
本页面/内容部分素材来源于互联网公 开 信 息,旨在传递更多信息,不代表本平台立场。
版权归原作者或机构所有,如涉及侵权,请通过平台联系我们,我们将在核实后第一时间处理。
本平台对转载内容的真实性、准确性不作任何保证,用户需自行判断并承担使用风险。