文档库 最新最全的文档下载
当前位置:文档库 › 数字信号处理二

数字信号处理二

数字信号处理二
数字信号处理二

第2章DSP芯片的基本结构和特征

2.1 引言

可编程DSP芯片是一种具有特殊结构的微处理器,为了达到快速进行数字信号处理的目的,DSP芯片一般都具有程序和数据分开的总线结构、流水线操作功能、单周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集。本章将首先介绍DSP芯片的基本结构,然后介绍TI 公司的各种DSP芯片的特征,最后简要介绍其他公司的DSP芯片的特点。

2.2 DSP芯片的基本结构

为了快速地实现数字信号处理运算,DSP芯片一般都采用特殊的软硬件结构。下面以TMS320系列为例介绍DSP芯片的基本结构。

TMS320系列DSP芯片的基本结构包括:(1)哈佛结构;(2)流水线操作;(3)专用的硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期。

这些特点使得TMS320系列DSP芯片可以实现快速的DSP运算,并使大部分运算(例如乘法)能够在一个指令周期内完成。由于TMS320系列DSP芯片是软件可编程器件,因此具有通用微处理器具有的方便灵活的特点。下面分别介绍这些特点是如何在TMS320系列DSP芯片中应用并使得芯片的功能得到加强的。

2.2.1 哈佛结构

哈佛结构是不同于传统的冯·诺曼(Von Neuman)结构的并行体系结构,其主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线两条总线,从而使数据的吞吐率提高了一倍。而冯·诺曼结构则是将指令、数据、地址存储在同一存储器中,统一编址,依靠指令计数器提供的地址来区分是指令、数据还是地址。取指令和取数据都访问同一存储器,数据吞吐率低。

在哈佛结构中,由于程序和数据存储器在两个分开的空间中,因此取指和执行能完全重叠运行。为了进一步提高运行速度和灵活性,TMS320系列DSP芯片在基本哈佛结构的基础上作了改进,一是允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了芯片的灵活性;二是指令存储在高速缓冲器(Cache)中,当执行此指令时,不需要再从存储器中读取指令,节约了一个指令周期的时间。如TMS320C30具有64个字的Cache。

2.2.2 流水线

与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。TMS320系列处理器的流水线深度从2~6级不等。第一代TMS320处理器采用二级流

水线,第二代采用三级流水线,而第三代则采用四级流水线。也就是说,处理器可以并行处理2~6条指令,每条指令处于流水线上的不同阶段。图2.1所示为一个三级流水线操作的例子。

图2.1 三级流水线操作

在三级流水线操作中,取指、译码和执行操作可以独立地处理,这可使指令执行能完全重叠。在每个指令周期内,三个不同的指令处于激活状态,每个指令处于不同的阶段。例如,在第N个指令取指时,前一个指令即第N-1个指令正在译码,而第N-2个指令则正在执行。一般来说,流水线对用户是透明的。

2.2.3 专用的硬件乘法器

在一般形式的FIR滤波器中,乘法是DSP的重要组成部分。对每个滤波器抽头,必须做一次乘法和一次加法。乘法速度越快,DSP处理器的性能就越高。在通用的微处理器中,乘法指令是由一系列加法来实现的,故需许多个指令周期来完成。相比而言,DSP芯片的特征就是有一个专用的硬件乘法器。在TMS320系列中,由于具有专用的硬件乘法器,乘法可在一个指令周期内完成。从最早的TMS32010实现FIR的每个抽头算法可以看出,滤波器每个抽头需要一条乘法指令MPY:

LT ;装乘数到T寄存器

DMOV ;在存储器中移动数据以实现延迟

MPY ;相乘

APAC ;将乘法结果加到ACC中

其他三条指令用来将乘数装入到乘法器电路(LT),移动数据(DMOV)以及将乘法结果(存在乘积寄存器P中)加到ACC中(APAC)。因此,若采用256抽头的FIR滤波器,这四条指令必须重复执行256次,且256次乘法必须在一个抽样间隔内完成。在典型的通用微处理器中,每个抽头需要30 ~ 40个指令周期,而TMS32010只需4条指令。如果采用特殊的DSP 指令或采用TMS320C54X等新一代的DSP芯片,可进一步降低FIR抽头的计算时间。

2.2.4 特殊的DSP指令

DSP芯片的另一个特征是采用特殊的指令。2.2.3节中介绍的DMOV就是一个特殊的DSP 指令,它完成数据移位功能。在数字信号处理中,延迟操作非常重要,这个延迟就是由DMOV 来实现的。TMS32010中的另一个特殊指令是LTD,它在一个指令周期内完成LT、DMOV和APAC三条指令。LTD和MPY指令可以将FIR滤波器抽头计算从4条指令降为2条指令。在

第二代处理器中,如TMS320C25,增加了2条更特殊的指令,即RPT和MACD指令,采用这2条特殊指令,可以进一步将每个抽头的运算指令数从2条降为1条:

RPTK 255 ;重复执行下条指令256次

MACD ;LT, DMOV, MPY 及APAC

2.2.5 快速的指令周期

哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令再加上集成电路的优化设计,可使DSP芯片的指令周期在200ns 以下。TMS320系列处理器的指令周期已经从第一代的200ns 降低至现在的20ns 以下。快速的指令周期使得DSP芯片能够实时实现许多DSP应用。

2.3 TI定点DSP芯片

自1982年TI推出第一个定点DSP芯片TMS32010以来,TI的定点DSP芯片已经经历了TMS320C1X、TMS320C2X/C2XX、TMS320C5X 、TMS320C54X、TMS320C62X等几代产品,产品的性能价格比不断提高,应用越来越广泛。下面分别介绍这些芯片的主要特征。

2.3.1 TMS320C1X

2.3.1.1 基本特点

第一代TMS320系列DSP芯片包括:TMS32010、TMS32011、TMS320C10、TMS320C15/E15和TMS320C17/E17。其中,TMS32010和TMS32011采用2.4μm的NMOS 工艺,而其他几种则采用1.8μm CMOS工艺。这些芯片的典型工作频率为20MHz。TMS320第一代DSP芯片的主要特点如下:

?指令周期:160ns/200ns/280ns

?片内RAM:144字/256字(TMS320C15/E15/C17/E17)

?片内ROM:1.5K字/4K字(TMS320C15/C17)

?4K字片内程序EPROM(TMS320E15/E17)

?4K字外部全速存储器扩展

?并行乘法器:乘积为32位

?桶形移位器:将数据从存储器移到ALU

?并行移位器

?允许文本交换的4×12位堆栈

?两个间接寻址的辅助寄存器

?双通道串行口(TMS32011,TMS320C17/E17)

?片内压扩硬件(TMS32011,TMS320C17/E17)

?协处理器接口(TMS320C17/E17)

?器件封装:40脚双列直插(DIP)/44脚塑封(PLCC)

2.3.1.2 TMS320C10

TMS320 DSP芯片的第一代产品是基于TMS32010和它的CMOS版本TMS320C10的结构。TMS32010于1982年推出,是第一个能够达到 5 个MIPS的微处理器。

TMS32010采用改进的哈佛结构,即程序和数据空间相互独立。程序存储器可在片内(1.5K 字)或片外(4K字)。片内数据RAM为144字。有四个基本的算术单元:算术逻辑单元(ALU)、累加器(ACC)、乘法器和移位器。

(1) ALU:32位数据操作的通用算术逻辑单元。ALU可进行加、减和逻辑运算;

(2) ACC:累加器存储ALU的输出,也是ALU的一个输入。它采用32位字长操作,分高16位和低16位两部分。处理器提供高16位和低16位的专门指令:SACH(高16位)和SACL (低16位);

(3) 乘法器:16×16位并行乘法器由三个单元组成:T寄存器、P寄存器和乘法器阵列。T 寄存器存储被乘数,P寄存器存储32位乘积。为了使用乘法器,被乘数首先必须从数据RAM 中装入到T寄存器,可用LT、LT A和LTD指令。然后执行MPY(乘)或MPYK(乘立即数)指令。乘和累加器操作可用LT A、LTD和MPY、MPYK指令在两个指令周期内完成;

(4) 移位器:有两个移位器可用于数据移位。一个是桶形移位器,另一个是并行移位器。桶形移位器又称定标移位器。当数据存储器的数据送入累加器或与累加器中的数据进行运算时,先通过这个移位器进行0~16位左移,然后再进行运算。并行移位器即输出移位器,其作用是将累加器中的数据左移0、1或4位后再送入数据存储器中,以实现小数运算或小数乘积的调整。

在TMS32010/C10基础上又派生了多个处理器,它们可提供不同的处理器速度、存储器扩展和各种I/O集成。

2.3.1.3 TMS320C1X的其他芯片

1.TMS320C15/E15

TMS320C15/E15与TMS32010的代码和管脚全兼容,提供256字的片内RAM和4K字的片内ROM(C15)或EPROM(E15)。TMS320C15的指令周期有200ns和160ns(TMS320C15-25)两种。

2.TMS320C17/E17

TMS320C17/E17是一个专用的微处理器。它有4K字的片内程序ROM(C17)或EPROM (E17),一个全双工串行通信的双通道串行口,片内硬件压扩器( 律/A律),一个用于串行通信的串行口定时器,及一个协处理器接口。协处理器接口可以在处理器和4/8/16位微处理器之间提供直接接口。TMS320C17/E17与TMS32010目标代码兼容,且可用相同的开发工具。该处理器是基于TMS320C10的CPU内核,外加片内的外设存储器和I/O模块。TMS320C17/E17可认为是半定制的DSP芯片。表2.1 是TMS320第一代产品的比较表。

表2.1 TMS320第一代处理器

2.3.2 TMS320C2X

第二代TMS320 DSP芯片包括TMS32020、TMS320C25/E25、TMS320C26及TMS320C28。在这些芯片中,TMS32020是一个过渡的产品,其指令周期为200ns,与TMS32010相当,而其硬件结构则与TMS320C25一致。在第二代DSP芯片中,TMS320C25是一个典型的代表,其他芯片都是由TMS320C25派生出来的。其中TMS320E25将内部4K字的ROM改为EPROM;TMS320C26去掉了内部的4K字ROM,而将片内RAM增加到1.5K字;TMS320C28则将内部ROM增加到8K字。由于TMS320C25的典型性,下面就讨论TMS320C25的基本特征和结构。

2.3.2.1 TMS320C25的基本特征

?指令周期:TMS320C25:100ns,TMS320C25-33:120ns,TMS320C25-50:80ns

?片内掩膜ROM:4K 字

?片内RAM:544字,分B0、B1和B2三块

?程序和数据空间均为64K字

?具有8级硬件堆栈、8个辅助寄存器

?具有全静态双缓冲串行口,可与许多串行器件直接接口

?与低速片外存储器通信的等待状态插入

?采用HOLD操作的DMA

?F FT变换用的比特反转寻址

?扩展精度算术和自适应滤波支持

?从外部存储器全速执行的MAC/MACD指令

?具有在多处理器之间进行同步的能力,支持多处理器共享存储器

?1.8μm CMOS工艺,68脚PGA或PLCC封装

2.3.2.2 TMS320C25的结构

TMS320C25是第二代TMS320中与TMS32020管脚全兼容的CMOS版本,但指令执行速度是TMS32020的2倍,且增加了硬件和软件资源。指令集是TMS32010和TMS32020的超集,在源代码级与它们兼容。此外,在代码级与TMS32020兼容,因此,TMS32020的程序可不用修改直接在TMS320C25上运行。

100ns的指令周期可提供较强的运算能力。由于大部分指令在一个指令周期内执行,处理器在1秒内可执行1000万条指令(10MIPS)。运算能力的增加主要得益于乘累加指令(MAC)和带数据移位的乘累加指令(MACD)、具有专用算术单元的8个辅助寄存器、适合于自适应滤波和扩展精度运算的指令集支持、比特反转寻址、快速的I/O支持等。

指令集中提供在两个存储空间中进行数据移动的指令。在外部,程序和数据存储空间在同一总线上复用,从而使得在尽量减少芯片引脚的情况下最大程度地扩大两个空间的地址范围。在内部,TMS320C25结构通过保持程序和数据总线结构分离以使指令全速执行来获得最大的处理能力。

芯片内部的程序执行采用三级流水线形式。流水线对用户来说是透明的。但是,在某些情况下流水线可能被打断(如跳转指令),在这种情况下,指令执行时间要考虑流水线必须清空和重新填充。两块大的片内RAM在系统设计时提供了很大的灵活性,其中一块既可配置为程序存储器也可配置为数据存储器。片外64K字的数据空间可直接寻址,从而使DSP算法实现更为方便。片内4K字的掩膜ROM可用来降低系统成本,若程序不超过4K字,可使TMS320C25不用扩展片外程序存储器。剩下的64K字程序空间在片外,大量的程序可在片外存储器中全速运行。程序也可从片外慢速EPROM中装入到片内高速RAM中全速运行。此外,还有硬件定时器、串行口和数据块搬移功能。

下面介绍TMS320C25的存储器分配、中央算术逻辑单元(CALU)、硬件乘法器、控制操作、串行口和I/O接口。

1.存储器分配

TMS320C25具有4K字的片内程序ROM和544字的片内RAM。RAM分为三块:B0、B1、B2。其中,B0块(256字)既可配置为数据存储器(用CNFD指令),也可配置为程序存储器(用CNFP指令)。其余288字(B1和B2块)只能是数据存储器。544字的片内RAM可使C25能处理512字的数据阵列,如可进行256点复数FFT运算,且尚有32字用作中间结果的暂存。TMS320C25提供片外可直接寻址的程序和数据空间各64K字。

寄存器组包含8个辅助寄存器(AR0~AR7),它们可用作数据存储器的间接寻址和暂存,从而增加芯片的灵活性和效率。这些寄存器既可用指令直接寻址,也可用3比特的辅助寄存器指针(ARP)间接寻址。辅助寄存器和ARP既可从数据存储器装数,也可装入立即数。寄存器的内容也可存入数据存储器中。辅助寄存器组与辅助寄存器算术单元(ARAU)相连接,用ARAU 访问信息表无需CALU参与地址操作,这样可让CALU进行其他操作。

2.中央算术逻辑单元

CALU包含一个16位的定标移位器(Scaling),一个16×16位的并行乘法器,一个32位的累加器和一个32位的算术逻辑单元(ALU)。移位器根据指令要求提供0到16位的数据左移。累加器和乘法器输出端的移位器适合于数值的归一化、比特提取、扩展精度算术和溢出保护。

典型的ALU指令实现包含以下三步:

(1) 数据在数据总线上从RAM中获取;

(2) 数据移交给完成算术运算的定标移位器和ALU;

(3) 结果送回累加器。

32位累加器可分为2个16位以进行数据存储:SACH(高16位)和ACCL(低16位)。累加器有一个进位位可方便加法和减法的多精度运算。

3.硬件乘法器

TMS320C25具有一个16×16位的硬件乘法器,它能在一个指令周期内计算一个32位乘积。有两个寄存器与乘法器相关:①16位暂存寄存器TR,用于保存乘法器的一个操作数;②32位乘积寄存器PR,用于保存乘积。

乘积寄存器的输出可左移1位或4位,这对于实现小数算术运算或调整小数乘积很有用。PR的输出也可右移6位,这样可连续执行128次乘/加而无溢出。无符号乘(MPYU)指令可方便扩展精度乘法。

4.I/O接口

I/O空间由16个输入口和16个输出口组成。这些口可提供全16位并行I/O接口。输入(IN)和输出(OUT)操作典型的是2个周期,但若用重复指令,可变成单周期指令。I/O器件映射到I/O地址空间,其方式与存储器映射方式相同。与不同速度的存储器或I/O器件接口采用READY 线完成。

TMS320C25也支持外部程序/数据存储器的DMA,其他处理器通过置HOLD\ 为低后可完全控制TMS320C25的外部存储器,使C25将其地址、数据和控制线呈高阻状态。外部处理器和C25的通信可通过中断来完成。TMS320C25芯片提供两种DMA方式,一种是加上HOLD 后停止执行;另一种是C25继续执行,但执行是在片内ROM和RAM中进行,这可大大提高性能。

2.3.2.3 TMS320C25的软件

TMS320C25的指令总共有133条,其中97条是单周期指令。在另外36条指令中,21条包括跳转、调用、返回等,这些指令需重新装入程序计数器,使执行流水线中断。另外7条指令是双字和长立即数指令。剩下的8条指令(IN,OUT,BLKD,BLKP,TBLR,TBLW,MAC,MACD)支持I/O操作、存储器之间的数据交换或提供处理器内部额外的并行操作,而且这8条指令与重复计数器配合使用时可成为单周期指令。这主要利用了处理器的并行机制,使得复杂的计算可用很少的几条指令来完成。

由于大多数指令用单16位字编码,故可在一个周期内完成。存储器寻址方式有三种:直接寻址、间接寻址和立即数寻址。直接寻址和间接寻址都用来访问数据存储器,立即数寻址利用由程序计数器确定的存储器内容。

使用直接寻址方式时,指令字的7位和9位数据存储器页指针(DP)构成16位的数据存储器地址。其中,每页长128字,共有512页,故可寻址64K的数据空间。间接寻址借助于8个

辅助寄存器(AR0~AR7)。表2.2 列出了7种间接寻址方式。其中的比特反转寻址可大大提高FFT 运算的I/O效率。其中,OP表示某种运算,NARP表示新的ARP。

表2.2 TMS320C25的寻址方式

2.3.3 TMS320C5X

TMS320C5X是TI公司的第五代产品,是继TMS320C1X和TMS320C2X之后的第三代定点DSP处理器。它的核心中央处理器(CPU)以TMS320C25的核心CPU为基础,增强型结构大幅度地提高了整体性能。TMS320C5X工作速度是TMS320C25的2倍以上,对于TMS320C1X 和TMS320C2X具有源代码向上兼容特性。这种兼容性保留了过去开发的软件,便于系统升级到更高性能的DSP系统。TMS320C5X系列有TMS320C50/C51/C52/C53等多种产品,它们的主要区别是片内RAM、ROM等资源的多少,如TMS320C50内部具有10K字RAM和2K字ROM,其中2K字ROM已经固化了引导程序;TMS320C51内部具有2K字RAM和8K字ROM;TMS320C52内部具有1K字RAM和4K字ROM,减少了一个串行口;TMS320C53内部则有4K字RAM和16K字ROM。芯片的其他性能则是完全相同的。下面以TMS320C50为例介绍TMS320C5X DSP 芯片。

2.3.3.1 TMS320C50的基本特征

TMS320C50的主要特点包括:

?25/35/50ns的指令周期(20 ~ 40 MIPS)

?224K×16位最大可寻址外部存储空间(64K程序、64K数据、64K I/O、32K全局)?算术逻辑单元(ALU),32位累加器(ACC)以及32位加法器的缓冲器(ACCB)

?并行逻辑单元(PLU)

?结果具有32位的16×16位并行乘法器

?单周期乘累加指令

?具有一个专用算术单元的8个辅助寄存器,可用于间接寻址

?8级硬件堆栈

?0~16位数据左移和右移

?两个间接寻址的循环缓冲器,用于循环寻址

?程序代码的单指令重复和程序块重复

?全双工同步串行口,用于完成TMS320C5X与其他串行器件之间的直接通信

?时分多址访问(TDM )串行口

?内部定时器,可用软件控制

?64K 并行I/O 口,其中16个有存储器映像

?可软件编程的等待状态发生器

?扩展保持操作,用于并发外部DMA

?四级流水线操作,用于延迟跳转、调用、返回指令

?比特反转寻址方式,用于FFT运算

?JT AG扫描仿真接口(IEEE标准,P1149.1)

1.核心CPU

TMS320C5X CPU的增强功能在提高性能和通用性的同时,保持了对TMS320C1X和TMS320C2X源代码的兼容性。硬件的改进包括:一个32位累加器缓冲器,附加定标能力,利用附加硬件功能的新指令。新的控制功能包括:独立的并行逻辑单元(PLU)和一组文本交换寄存器。数据管理方面的改进包括:采用新的块搬移指令和存储器映像寄存器指令。TMS320C50有28个存储器映像寄存器和16个存储器映像的I/O口。

2.片内ROM

TMS320C50拥有2K×16位掩蔽ROM,内部固化了引导程序。该存储器把程序从外部ROM/EPROM、串行口或并行I/O口引导至运行速度较快的SRAM中。这块引导ROM可通过PMST状态寄存器中的MP/MC\ 位从程序存储空间去除。如果该ROM未选,则TMS320C50由片外存储器启动执行。

3.片内数据RAM

TMS320C50具有1056字的片内RAM,这块RAM 可在每个机器周期内访问两次(双寻址RAM),只要两次访问不是“写”操作。这块存储空间主要用于存储数据,但是如果需要也可用于存储程序和数据。其配置有两种方式:所有的1056字都作为数据存储区,或者将其中的544字作为数据存储器,512字作为程序存储区。可通过状态寄存器ST1中的CNF位选择设置。

4.片内程序/数据RAM

TMS320C50还具有9K字的片内RAM。这一存储区可以由软件设置映射到程序或数据存储空间。程序从片外存储器引导后,可装入到该存储区全速运行。

5.片内存储器安全

TMS320C50可以通过可屏蔽选择来保护片内存储器的内容。当相关比特置位时,外部无法访问片内存储空间。

6.有地址映射的软件等待状态发生器

软件等待状态逻辑不需要任何外部硬件就可以实现TMS320C50与速度较慢的片外存储器和I/O设备接口。该电路系统拥有16个等待状态发生器,其中可由用户编程操作的有0,1,2,3和7状态。

7.并行I/O口

TMS320C50共有64K I/O口,其中的16个可映射在数据存储空间。这些口可由IN或OUT 指令寻址。具有存储器映像的I/O口可按存储器的读写方式访问。I/O口的访问由IS\线选通。增加简单的片外地址译码电路,就可实现TMS320C50的I/O口与外部I/O设备的简单连接。

8.串行I/O口

TMS320C50有两个高速串行口。串行口最快可按1/4机器周期(CLKOUT1)操作。一个是同步全双工串行口,发送和接收都有缓冲,分别由可屏蔽外部中断信号控制,数据可按照8或16位方式传输;另一个串行口为全双工串口,可设置为同步方式,也可设置为时分多址(TDM)方式,TDM串行口一般用于多处理机系统。

9.16位硬件定时器

16位硬件定时器可由软件进行控制,通过设置相应的状态位,定时器可工作在停止、重启动、复位或不工作等状态。

10.用户可屏蔽中断

TMS320C50有4个外部中断线。片内的中断锁存电路可实现异步中断操作。此外,还有5个内部中断:1个定时器中断和4个串行口中断。

11.JT AG扫描逻辑

JT AG扫描逻辑电路用于仿真和测试,采用JT AG可实现在线仿真。

2.3.3.2 TMS320C50的结构

TMS320C50采用了与TMS320C25类似的哈佛型总线结构,通过两个独立的数据总线和程序总线,最大限度地提高运算速度。指令支持在两个存储区之间的数据传输。

TMS320C50使用32位的ALU和累加器以实现2的补码运算。ALU是一个通用的算术单元,它所使用的运算数据(16位)来自数据RAM或来自立即数指令,也可以是乘积寄存器中32位的乘积结果。除此之外,ALU还可以执行位操作。累加器保存ALU的输出,也为ALU提供下一个输入。字长为32位的累加器分为高字节和低字节。指令提供对低字节和高字节的单独存储。32位的累加器缓冲器用于临时快速地存储累加器的内容。

除了ALU之外,并行逻辑单元(PLU)可以在不影响累加器内容的情况下对数据进行逻辑操作。PLU提供了高速控制器需要的位处理能力,并简化了控制和状态寄存器需要的置位、清零和测试操作。

乘法器以单指令周期完成16×16位的乘法,结果为32位。乘法器由三部分组成,分别是乘法器阵列、PREG(乘积寄存器)、TREG0(临时寄存器)。16位的TREG0存储乘数,PREG 保存32位的乘积结果。乘法器中的数值来自数据存储器,当使用MAC/MACD/MADS/MADD 指令时来自程序存储器,或者来自乘立即数指令(MPY #)。片内快速乘法器对执行诸如卷积、相关和滤波等基本的DSP操作十分有效。

TMS320C50的定标移位器有一个16位的输入来自数据总线,32位的输出连接到ALU。定标移位器依照指令的编程使输入数据产生0到16位的左移。移位量取决于指令或移位计数寄存器(TREG1)中的定义值。输出的最低有效位(LSB)补零,最高有效位补0或符号扩展(取决于状态寄存器ST1的符号扩展模式位SXM)。附加的移位能力使处理器能执行数值定标、二进制位提取、符号扩展运算和溢出防止等功能。

8级硬件堆栈用于在中断及子程序调用时保存程序计数器的内容。中断发生时,重要寄存器(ACC、ACCB、ARCR、INDX、PMST、PREG、ST0、ST1和TREG)压入堆栈,中断返回时弹出,实现了无开销的中断文本切换。

2.3.4 TMS320C2XX

TMS320C2XX是继TMS320C2X和TMS320C5X之后出现的一种低价格、高性能定点DSP 芯片,主要包括TMS320C20X、TMS320C24X两个子系列。TMS320C2XX系列DSP芯片具有如下特点:

(1) 处理能力强。指令周期最短为25ns,运算能力达40MIPS;

(2) 片内具有较大的闪烁存储器。TMS320C2XX是最早使用闪烁存储器的DSP芯片。闪烁存储器具有比ROM灵活、比RAM便宜的特点。TMS320F206和TMS320F207片内具有32K 字的闪烁存储器和4.5K字的RAM。利用闪烁存储器存储程序,不仅降低了成本,减小了体积,同时系统升级也比较方便;

(3) 功耗低。TMS320C2XX系列DSP芯片在5V工作时每个MIPS消耗1.9mA,在3.3V工作时每个MIPS消耗1.1mA。使用DSP核的省电模式可进一步降低功耗;

(4) 资源配置灵活。现有10多种具有不同资源配置的芯片。表2.3是TMS320C2XX系列DSP芯片比较表。

此外,TMS320C24X系列芯片为数字控制系统的应用做了优化设计。

表2.3 TMS320C2XX系列芯片的资源配置

2.3.5 TMS320C54X

TMS320C54X是为实现低功耗、高性能而专门设计的定点DSP芯片,其主要应用是无线通信系统等。该芯片的内部结构与TMS320C5X不同,因而指令系统与TMS320C5X和TMS320C2X 等是互不兼容的。

TMS320C54X的主要特点包括:

(1) 运算速度快。指令周期为25/20/15/12.5/10ns,运算能力为40/50/66/80/100 MIPS;

(2) 优化的CPU结构。内部有1个40位的算术逻辑单元,2个40位的累加器,2个40位加法器,1个17×17的乘法器和1个40位的桶形移位器。有4条内部总线和2个地址产生器。此外,内部还集成了维特比加速器,用于提高维特比编译码的速度。先进的DSP结构可高效地

实现无线通信系统中的各种功能,如用TMS320C54X实现全速率的GSM 需12.7 MIPS,实现半速率GSM 需26.2 MIPS,而实现全速率GSM 语音编码器仅需2.3 MIPS,实现IS-54/136 VSELP语音编码仅需12.8 MIPS;

(3) 低功耗方式。TMS320C54X可以在3.3V或2.7V电压下工作,三个低功耗方式(IDLE1、IDLE2和IDLE3)可以节省DSP的功耗,TMS320C54X特别适合于无线移动设备。用TMS320C54X实现IS54/136 VSELP语音编码仅需31.1mW,实现GSM 语音编码器仅需5.6mW;

(4) 智能外设。除了标准的串行口和时分复用(TDM)串行口外,TMS320C54X还提供了自动缓冲串行口BSP(auto-Buffered Serial Port)和与外部处理器通信的HPI(Host Port Interface)接口。BSP可提供2K字数据缓冲的读写能力,从而降低处理器的额外开销,指令周期为20ns时,BSP的最大数据吞吐量为50M bit/s,即使在IDLE方式下,BSP也可以全速工作。HPI可以与外部标准的微处理器直接接口。

表2.4是TMS320C54X系列部分DSP芯片比较表。

表2.4 TMS320C54X的资源配置

2.3.6 TMS320C62X

这是TI公司于1997年开发的一种新型定点DSP芯片。该芯片的内部结构与以前的DSP芯片不同,内部集成了多个功能单元,可同时执行8条指令,运算能力达1600MIPS。其主要特点有:

(1) 运行速度快。指令周期为5ns,运算能力为1600MIPS;

(2) 内部结构不同于一般DSP芯片。内部同时集成了2个乘法器和6个算术运算单元,且它们之间是高度正交的,使得在一个指令周期内最大能支持8条32bit的指令;

(3) 指令集不同。为充分发挥其内部集成的各执行单元的独立运行能力,TI公司使用了VelociTT 超长指令字(VLIW)结构。它在一条指令中组合了几个执行单元,结合其独特的内

部结构,可在一个时钟周期内并行执行几个指令;

(4) 大容量的片内存储器和大范围的寻址能力。片内集成了512K字程序存储器和512K字数据存储器,并拥有32bit的外部存储器界面;

(5) 智能外设。内部集成了4个DMA接口,2个多通道缓存串口,2个32bit 计时器;

(6) 低廉的使用成本。在一个无线基站的应用中,每片TMS320C62X能同时完成30路的语音编解码,每路成本为3美元,而以前的DSP系列最大只能完成5路,每路的成本为7美元。

这种芯片适合于无线基站、无线PDA、组合Modem、GPS导航等需要大运算能力的应用场合。

2.4 TI浮点DSP芯片

2.4.1 TMS320C3X

TMS320C3X是TI的第三代产品,也是第一代浮点DSP芯片。TMS320C3X中目前具有TMS320C30、TMS320C31和TMS320C32三种。TMS320C31是TMS320C30的简化和改进型,它在TMS320C30的基础上去掉了一般用户不常用的一些资源,降低了成本,是一个性能价格比较高的浮点处理器,在国内已得到了较广泛的应用。TMS320C32是TMS320C31的进一步简化和改进。表2.5示出了三种芯片的比较。

表2.5 三种TMS320C3X芯片的比较

TMS320C30的指令周期为50/60/74ns,TMS320C31的指令周期为33/40/50/60/74ns,

TMS320C32的指令周期则为33/40/50ns。

2.4.1.1 TMS320C3X的硬件资源

TMS320C30的硬件资源相当丰富。其内部包含了2K×32位的快速RAM块。分开的程序总线、数据总线和DMA总线使得取指、读写数据和DMA操作可并行进行,如CPU可以在一个周期内完成下列操作: 在一个RAM块中存取两个数据值,进行一次外部取指,DMA装入到另一个RAM块。64×32位的指令Cache用来存储经常使用的代码块,这可大大减少片外访问的次数,从而提高程序运行速度。由于主总线的地址总线是24位,因此TMS320C30可以访问多达16M的32位字的存储器空间,程序、数据和I/O空间都包含在TMS320C30这个16M字的空间中。

TMS320C30有一个40/32位的浮点/整数乘法器,这个乘法器可以在单周期内完成24位整数和32位浮点值的乘法,为了达到更高的性能,可以采用并行指令在单周期内完成一次乘法和ALU操作。当乘法器进行浮点乘法时,输入是32位单精度浮点值,而输出则是40位的扩展精度浮点数。整数乘法时,输入是24位,而输出则是32位。

TMS320C30的整数/浮点算术逻辑运算单元ALU可以进行单周期的32位整数、32位逻辑数和40位的浮点数操作,ALU的运算结果是32位整数或40位浮点数。内部的桶形移位器可以在单周期内进行高达32位的左移或右移。内部总线CPU1/CPU2和REG1/REG2可从存储器中取两个操作数和从寄存器取两个操作数,这就使得对四个操作数进行乘和加/减可以在单周期内完成。

TMS320C30内有两个辅助寄存器算术单元(ARAU0和ARAU1),它们可以在单周期内产生两个地址。ARAU 的操作是和乘法器及ALU的操作并行进行的。ARAU支持多种寻址方式。

TMS320C30提供28个寄存器,这些寄存器可以由乘法器和ALU操作,可以用作通用的寄存器。但是,它们也有一些特殊的功能,如8个扩展精度的寄存器(R0~R7)可当累加器使用,特别适合用于存放扩展精度的浮点结果。8个辅助寄存器(AR0~AR7)支持一系列间接寻址方式,并且可以用作通用的32位整数和逻辑寄存器。其他寄存器提供一些系统功能,如寻址、堆栈管理、处理器状态、中断和块重复等。

TMS320C30的外设是通过存储器映射的寄存器对外设总线进行控制的,外设总线由32位数据总线和24位地址总线组成,允许与外设直接通信。TMS320C30的外设包括两个可支持8/16/24/32位数据交换的串行口和两个32位定时器。串行口的时钟可以由内部产生也可由外部提供,串行口的引脚可以配置为通用的I/O引脚,特殊的握手方式可保证TMS320C30与串行口的同步。定时器是通用的32位定时器或事件计数器,具有两种信号方式,可由内部或外部提供时钟,每个定时器对应有一个I/O引脚,可作为定时器的输入时钟或输出时钟,也可配置为通用的I/O引脚。

片内的DMA功能使得CPU与I/O操作可同时进行。DMA控制器可以在存储器的任何地址进行读写操作而不干扰CPU的操作,因此TMS320C30可与外部的慢速存储器或外设接口而不降低CPU的吞吐量。

两个通用的外部引脚(XF0,XF1)可由软件设置为输入或输出,这两个引脚也用作TMS320C30的互锁操作,用于多处理器之间的通信。

除了主总线之外,TMS320C30还有一条扩展总线。扩展总线的数据线为24位,地址线为

13位,其操作可与主总线操作同时进行,也可独立于主总线。与主总线相比,扩展总线上的I/O 口的读写周期为2个H1周期,即是主总线的2倍。扩展总线通常用于I/O操作,如A/D、D/A 等。

TMS320C30内部有4K字的ROM,在微计算机方式下,程序由内部开始运行。

TMS320C31是TMS320C30的简化和改进型,它去掉了扩展总线、一个串行口和内部的4K 字ROM,增加了程序的引导功能。当MCBL/MP\引脚为高电平时,工作于微计算机自引导方式,在这种方式下,TMS320C31可从三个特定的地址装入程序(BOOT1,BOOT2,BOOT3),也可从串行口装入程序。与EPROM接口时,用户可用软件设定等待周期个数,当然也可用硬件来产生等待周期,可设定是按字节(8位)、半字(16位)或字(32位)装入,应用灵活。从串行口装入时,采用固定的32位突发方式。装入方式设置是通过复位之后设置四个外部中断之一来实现。

TMS320C32是TMS320C31的简化和改进型。简化主要是将内部的RAM由2K字减少为512字,以降低成本。改进之处包括:外部存储器宽度可变,中断矢量表可重定位,外部中断可由软件选择是电平触发还是边沿触发,DMA控制器增加了一个通道,此外,还增加了两种节电运行方式。

TMS320C3X均提供HOLD功能和JT AG仿真功能。

2.4.1.2 TMS320C3X的软件资源

1.丰富的指令系统

TMS320C3X的汇编语言指令集特别适合于数字信号处理。所有指令占一个机器字长,大部分指令是单周器的。指令集共有113条指令,可以分为六类: 数据传送类、二操作数算术/逻辑类、三操作数算术/逻辑类、程序控制类、互锁操作类及并行操作类。12条数据传送指令可从存储器中读一个字装入寄存器,将一个字从寄存器中存入存储器中及进行堆栈操作。二操作数指令有35条,提供整数、浮点、逻辑运算及多精度算术操作。17条三操作数指令可以在一个指令周期内完成具有三个操作数的运算,其中两个是源操作数,另一个是目的操作数。程序控制指令共16条,它们影响程序的流向,其中有块重复指令RPTB和单指令重复指令RPTS。除了有标准跳转指令外,还有延迟跳转指令,有些指令具有条件运算功能。5条互锁操作指令主要用来进行多处理器之间的通信。剩下的28条指令都是并行操作指令,每条并行指令由两条指令用符号“||”连接,并行操作指令可使“||”前后的两条指令并行完成。需要注意的是,并不是任意两条指令都可构成并行指令。

2.灵活的程序控制

TMS320C3X提供相当灵活的程序流控制。软件的程序控制包括重复、跳转、调用、陷阱及返回等。

TMS320C3X重复方式可以实现无开销循环。块重复指令RPTB可以使一块代码重复执行指定的次数,而单指令重复指令RPTS使一条指令重复执行指定的次数,由于RPTS取指次数只有一次,因此减少了总线冲突的机会。这里需要特别注意的是,RPTS指令禁止中断,而RPTB 无此禁忌。因此在需要中断的场合,建议采用RPTB指令代替RPTS指令。

TMS320C3X提供两种类型的跳转:标准跳转和延迟跳转。标准跳转首先将流水线清空然后执行跳转,这可保证程序计数器的正确管理,但却使跳转指令需4个周期才能执行完毕。延迟

跳转则相反,它并不将流水线清空,而是保证在程序跳转之前执行它下面的3条指令,这样使得跳转指令本身仅需1个指令周期。当然有些指令(如CALL、RPTB等)不能出现在延迟跳转指令下面的3条指令。延迟跳转指令在它下面3条指令完成前禁止中断。

互锁操作可用来实现多个TMS320C3X之间的通信。通过采用外部信号(XF0,XF1),互锁操作指令提供强有力的同步机制,可用来实现忙等待循环、两个TMS320C3X之间的同步(无需额外的硬件支撑)和多个计数器控制等。

3.流水线操作

流水线操作是TMS320C3X具有高性能的特性之一。5个功能单元控制TMS320C3X的操作:取指(F)、译码(D)、读操作数(R)、执行(E)和DMA。流水线操作就是一个基本指令的取指、译码、读操作数和执行的并行操作。流水线的结构如图2.2所示。

周期 F D R E

m-3 W

m-2 X W

m-1 Y X W

m Z Y X W ←完全重叠

m+1 Z Y X

m+2 Z Y

m+3 Z

注:W、X、Y、Z代表指令;F、D、R、E分别代表取指、译码、读操作数和执行。

图2.2 TMS320C3X的流水线结构

图中在m周期,流水线完全重叠,4个单元的操作同时进行。5个功能单元的优先级从高到低依次是E、R、D、F、DMA。当一条指令的处理已经准备好到流水线的下一级,但那一级还没有准备好接收新的输入时,就出现所谓的流水线冲突。在这种情况下,低优先级的单元处于等待状态直到高优先级的单元完成它的当前操作。尽管DMA的优先级最低,但由于DMA控制器具有自己的数据和地址总线,因此,通过合适的数据结构,DMA与CPU的冲突可以减少甚至消除。

流水线冲突可以分为下列三大类:跳转冲突、寄存器冲突和存储器冲突。这三类冲突都可以采取相应的一些手段予以解决,如由于标准跳转引起的跳转冲突可以采用延迟跳转的方法来克服。

4.寻址方式多样

TMS320C3X支持5类寻址方式,在这些类中又可采用6种寻址类型。5类寻址方式是:①通用寻址方式;②三操作数寻址方式;③并行寻址方式;④长立即数寻址方式;⑤条件跳转寻址方式。6种寻址类型是:①寄存器寻址;②直接寻址;③间接寻址;④短立即数寻址;⑤长立即数寻址;⑥相对寻址。此外,TMS320C30还有两种数字信号处理中非常有用的寻址方式,一种是圆周寻址方式,主要用于卷积和相关等运算中存储器循环缓冲;另一种寻址方式是比特反转寻址,主要用于FFT运算。

2.4.2 TMS320C4X

TMS320C4X系列浮点处理器是专门为实现并行处理和满足其他一些实时应用的需求而设计的。其主要性能包括275 MOPS的惊人速度和320Mbyte/s的吞吐量。

2.4.2.1 TMS320C40的主要特征

(1) 具有6个用于处理器间高速通信的通信口。每个口的最大数据吞吐量可达20Mbyte/s的异步传输速率。处理器之间可直接对通,应用方便、灵活;

(2) 6个DMA通道实现了I/O操作与CPU操作的并行化。每个DMA通道都具备自初始化的能力,无需CPU来完成初始化的工作,从而最大限度地保证了CPU的性能,数据可以在处理器内存映像的任意范围内传递,具有高度的灵活性;

(3) CPU的处理能力达275 MOPS,数据吞吐量为320Mbyte/s。由于高度的并行化,TMS320C40 的CPU在每个周期内可以完成11次操作。指令周期的时间为40ns和50ns。40/32位的单周期浮点/整数乘法为大运算量的算法提供了高性能。单周期IEEE浮点格式转换为IEEE 兼容的处理器提供了一个有效的界面。硬件支持除法和平方根倒数运算。具有字节和半字长控制的能力,以实现快速数据压缩和解压。源代码与TMS320C3X兼容,可移植性好。支持线性、循环和比特反转的寻址方式。单周期跳转、调用和返回,以实现快速程序控制。0~31bit的单周期桶形循环左右移位;

(4) 两条分开的外部数据、地址总线支持共享存储器系统和高速数据速率、单周期传输。端口数据传输速率高达100Mbyte/s。16G字连续的程序/数据/外设地址空间为系统设计带来最大的灵活性。状态管脚标明存储器访问类型,以在共享存储器系统中实现快速、智能化的总线仲裁。分离的地址、数据和控制使能管脚可实现高速总线仲裁。4组存储器控制信号支持硬件上不同速率的存储器,使用者可以灵活有效地利用各种高、低速率存储器;

(5) 片内分析模块支持高效的并行处理调试。为程序、数据和DMA访问提供了分离的断点比较器,为快速调试和开发提供了片内硬中断的能力。为硬件追踪设置了非连续栈,可方便快速地调试、开发。具有事件计数器。为标准系统连接留有JT AG界面;

(6) 片内程序高速缓冲存储器(Cache)和双向存取/单周期RAM提高了存储器访问的性能。片内存储器包括:128字的指令高速缓冲存储器;2K字的单周期双向存取程序/数据RAM;ROM 中的引导程序支持从8/16/32位中的任一种存储器通过任一通信端口装入程序;

(7) 分开的内部程序、数据和DMA总线使程序和数据的I/O操作高度并行化,最大限度地保证了CPU的性能。

2.4.2.2 TMS320C40的结构

TMS320C40的高性能是通过其高精度、宽动态范围的浮点处理单元,大容量的片内存储器,高度的并行化,以及6个DMA协处理器通道体现出来的。

1.CPU

TMS320C40有一个基于寄存器的CPU,其组成部分如下:

(1) 浮点/整数乘法器

通过高度的并行化措施,TMS320C40可以在一个40ns的指令周期内对32位的整型数或40位的浮点数完成一次乘法操作。若输入为40位的浮点数,则输出也是40位的浮点数;若输入为32位的整型数,则乘积为64位,输出既可以是32个高有效位,也可以是32个低有效位。

(2) 算术逻辑单元(ALU)

ALU对32位的整型数、32位的逻辑数、40位的浮点数执行单周期操作,包括单周期的整型和浮点转换。桶形移位寄存器用来完成单周期的32位左右移位。

内部总线CPU1/CPU2和REG1/REG2分别连接存储器和内部寄存器,这样就允许在单周期内对4个整型或浮点数并行进行加/减和乘法运算。

(3) 辅助寄存器运算单元(ARAU)

2个辅助寄存器运算单元(ARAU0和ARAU1)可在单周期内产生2个地址。ARAU与乘法器及ALU并行操作。它们支持带有偏移的寻址、变址寄存器(IR0和IR1)寻址、循环寻址和比特反转寻址。

(4) CPU主寄存器组

TMS320C40具有32个主寄存器,其中包括12个40位的扩展精度寄存器(R0~R11),8个32位的辅助寄存器(AR0~AR7),1个32位的数据页指针(DP),32位变址寄存器(IR0和IR1),32位块长寄存器(BK),32位的系统栈指针(SP),状态寄存器(ST),DMA中断允许寄存器(DIE),CPU内部中断允许寄存器(IIE),I/O标志寄存器,32位的重复计数器(RC)及32位的重复起始地址寄存器(RS)和重复终止地址寄存器(RE)。程序计数器(PC)是一个32位寄存器,装有下一条要提取指令的地址。虽然PC不是CPU寄存器组的成员,但用修改程序流的指令可对它进行修改。

(5) CPU扩展寄存器组

扩展寄存器组包括2个特殊的指针寄存器:IVTP指向中断矢量表,TVTP指向陷阱矢量表。

2.存储器组织

TMS320C40总的存储器空间可达4G×32位字。程序存储器(片内RAM或ROM和外部存储器)、定时器、通信口和DMA通道等都包含在这一空间内。这样就使得系数、表、程序代码或数据既可存储在RAM中,亦可存储在ROM中,从而使存储器的利用率达到最高,存储器空间可按要求分配地址。

通过控制一个外部管脚(ROMEN),存储器起始的1M字节的地址空间(0000 0000h到000F FFFFh)既可以映射到局部地址总线的一部分,也可以在使用装入程序时指向片内ROM。

(1) RAM、ROM和高速缓冲存储器

TMS320C40的片内包含2个4K字节(1K×32位)的RAM区。片内ROM区保留用作引导程序区。每一个RAM和ROM区都支持单周期内两次存取。分开的程序总线、数据总线和DMA总线,使得指令的读取、数据的读写及DMA操作可以并行进行。例如,在一个周期内CPU可在一个RAM块上存取2个数据,执行一次外部指令的读取,同时DMA可对另一个RAM 块作直接存储器存取。

一个128×32位的指令高速缓冲存储器用来存储经常重复的代码段,从而大大地减少了必要的片外存取次数。这样就使代码能存储在较慢的、价格较低的片外存储器。外部总线还可被释放,以供DMA、外部存储器操作或系统中的其他设备使用。

(2) 内部总线操作

TMS320C40的高性能在很大程度上归功于其内部总线结构及由之带来的并行性。分开的程序总线、数据总线和DMA总线使指令的读取、数据的存取和DMA操作可以并行进行。这些总线连结C40支持的所有物理空间。

程序计数器(PC)与32位的程序地址总线相连,指令寄存器(IR)与32位的程序数据总线相连,在每一个机器周期内可以读取一个指令字。

32位的数据地址总线和32位的数据总线在每一个机器周期中支持两次数据的存储器操作。数据总线通过CPU1和CPU2总线传送数据到CPU。CPU1和CPU2总线在每一机器周期可传送2个数据存储器操作数到乘法器、ALU及寄存器组。在CPU内部还有2条寄存器总线REG1和REG2,它们在每一机器周期内,可从寄存器组传送2个数据到乘法器。

DMA控制器由32位地址总线和32位数据总线支持。这些总线使DMA能与数据及程序总线并行地执行存储器操作。

(3) 外部总线操作

TMS320C40具有2个外部接口:全局总线和局部总线。它们都包含1个32位的数据总线、1个31位的地址总线和2组控制信号。这些总线都可用来对外部程序/数据存储器或I/O进行寻址。这些总线还有一个外部RDY信号,用于等待状态的产生。可在软件控制下插入附加的等待状态。

(4) 外设

TMS320C40的外设是通过存储器映射寄存器,由一专用的外设总线控制。这一外设总线可以直接与外部设备进行通信。TMS320C40的外设包括2个定时器和2个串行口。

(5) 直接存储器访问(DMA)

6个通道的片内DMA控制器可以读写存储器中的任意单元,而不必涉及CPU的操作。因此TMS320C40可以与相对较慢的外部存储器和外设接口而不降低CPU的处理能力。DMA控制器有自己的地址发生器、源地址和目的地址寄存器及传输计数器。专用的DMA地址和数据总线使CPU与DMA控制器之间的冲突降到了最低的程度。一个DMA操作包括对存储器做一块或单个字的存取操作。DMA协处理器的一个关键特性就是它的每一个通道在进行一次数据传输之前都有自动重新初始化的功能。

总而言之,由于有一个功能强大的CPU、大规模的存储器以及有足够宽的总线来支持其速度,TMS320C40是一个功能强大的DSP芯片。

3.CPU寄存器、存储器和高速缓冲存储器

CPU主寄存器组包括32个寄存器,用来存放乘法器和ALU的操作数。这个寄存器组包括辅助寄存器、扩展精度寄存器和变址寄存器等。这些寄存器支持寻址、浮点/整型操作、栈操作、处理器状态记录、块重复、分支跳转和中断等功能。

CPU扩展寄存器组包括中断矢量表指针(IVTP)和陷阱矢量表(TVTP)。

TMS320C40能够访问的最大存储器范围为4G个32位字(16G字节)的程序、数据和I/O 空间。2个片内RAM块均为1K×32位。片内ROM块包含有自引导程序,每块都支持单周期内2次访问操作。

1个128×32位的指令高速缓存可以装入指令代码中重复率高的部分。高速缓存大大减少了片外操作的次数,这样就允许将指令代码存放在片外的低速、廉价的存储器中而又不降低系统的性能。同时由于高速缓存减少了总线上程序指令的读取次数,使得在同一物理空间内进行的数据存取速度大大加快。CPU状态寄存器中的3个比特控制着高速缓冲存储器的清除、允许和冻结。

(1) CPU寄存器

TMS320C40提供了32个CPU主寄存器(不包括程序计数器PC)和2个扩展寄存器。

主寄存器都可以用作32位的通用寄存器,存放乘法器及ALU的操作数。除此之外,还有一些更适合于这些寄存器的特殊功能。例如12个扩展精度特别适用于存放扩展精度的浮点运算结果;8个辅助寄存器支持各种间接寻址方式;其余寄存器提供寻址、堆栈管理、处理器状态、中断和块重复等系统功能。

(2) 存储器分配

TMS320C40总的存储器空间为4G字。有两种地址编排方式,其区别仅在前1M字之内,由外部引脚ROMEN的值控制:ROMEN=1时,0000 0000h~0000 0FFFh为一个可访问的片内ROM区(保留用作引导程序),0000 01FFh~000F FFFFh保留;ROMEN=0时,片内ROM不在C40的存储器空间中,0000 0000h~000F FFFFh被映射到局部总线上。

(3) 指令高速缓冲存储器(Cache)

128×32位的指令高速缓存不但减少了片外取指的次数,同时也将外部总线从程序取指中解脱出来,从而可以被DMA或其他系统部件所采用。

Cache能以完全自动的方式工作而无需用户的干预。它使用的是LRU(Least recently used,最近最少使用)算法。

4.数据格式与浮点操作

在TMS320C40的体系结构中,数据有3种基本类型:整型、无符号整型和浮点型。TMS320C40对有符号和无符号整型支持短格式和单精度格式,而对于浮点数则支持短格式、单精度和扩展精度3种格式。

浮点操作具有迅速、简单、正确和精度高的特点。特别是TMS320C40可以以整型运算的速度来执行浮点操作,同时还可以避免整型运算中的溢出等问题。

5.寻址

TMS320C40有以下5种寻址类型:

(1) 寄存器寻址:在一个CPU的寄存器中包含有操作数;

(2) 直接寻址:数据地址由数据页指针(DP)的16个低有效位和指令字中的16个低有效比特组成;

(3) 间接寻址:间接寻址是通过一个辅助寄存器和变址寄存器的内容来操作在存储器中的地址。地址运算是由辅助寄存器运算单元来完成的,并且是无符号的。(辅助寄存器和变址寄存器的所有32位都在间接寻址中用到);

(4) 立即寻址:操作数是指令字中的16个低有效位构成的1个16位的立即数;

(5) PC相对寻址:PC相对寻址用于分支转移。它用指令字中的16或24个低有效比特来替换程序计数器(PC)的当前值。

TMS320C40的寻址方式包括:通用寻址方式、三操作数寻址方式、并行寻址方式、条件转移寻址方式、圆周寻址方式和比特反转寻址方式。

2.4.3 TMS320C67X

这是TI公司继定点DSP芯片TMS320C62X系列后开发的一种新型浮点DSP芯片。该芯片的内部结构在TMS320C62X的基础上加以改进,内部同样集成了多个功能单元,可同时执行8条指令,其运算能力可达1G FLOPS。除了具有TMS320C62X系列的特点外,其主要特点还有:

数字信号处理答案第二章

第二章 2.1 判断下列序列是否是周期序列。若是,请确定它的最小周期。 (1)x(n)=Acos(6 85ππ+n ) (2)x(n)=)8( π-n e j (3)x(n)=Asin(3 43π π+n ) 解 (1)对照正弦型序列的一般公式x(n)=Acos(?ω+n ),得出=ω85π。因此5 16 2=ωπ是有理数,所以是周期序列。最小周期等于N= )5(165 16 取k k =。 (2)对照复指数序列的一般公式x(n)=exp[ωσj +]n,得出81=ω。因此πωπ162=是无理数,所以不是周期序列。 (3)对照正弦型序列的一般公式x(n)=Acos(?ω+n ),又x(n)=Asin(343ππ+n )=Acos(-2π3 43π π-n )=Acos(6143-n π),得出=ω43π。因此3 8 2=ωπ是有理数,所以是周期序列。最小周期等于 N= )3(83 8 取k k = 2.2在图2.2中,x(n)和h(n)分别是线性非移变系统的输入和单位取样响应。计算并列的x(n)和h(n)的线性卷积以得到系统的输出y(n),并画出y(n)的图形。 (a) 1 11 1 (b) (c) 11 1 11 0 0 -1-1 -1 -1 -1 -1 -1 -1 2 2 2 22 2 3 3 3 3 34 44 … … …n n n n n n x(n)x(n) x(n) h(n)h(n) h(n)2 1 u(n) u(n) u(n)a n ===2 2

解利用线性卷积公式 y(n)=∑∞ -∞ =- k k n h k x) ( ) ( 按照折叠、移位、相乘、相加、的作图方法,计算y(n)的每一个取样值。 (a) y(0)=x(O)h(0)=1 y(l)=x(O)h(1)+x(1)h(O)=3 y(n)=x(O)h(n)+x(1)h(n-1)+x(2)h(n-2)=4,n≥2 (b) x(n)=2δ(n)-δ(n-1) h(n)=-δ(n)+2δ(n-1)+ δ(n-2) y(n)=-2δ(n)+5δ(n-1)= δ(n-3) (c) y(n)= ∑∞ -∞ =-- k k n k n u k u a) ( ) (=∑∞ -∞ = - k k n a= a a n - -+ 1 11 u(n) 2.3 计算线性线性卷积 (1) y(n)=u(n)*u(n) (2) y(n)=λn u(n)*u(n) 解:(1) y(n)= ∑ ∞ -∞ = - k k n u k u) ( ) ( =∑ ∞ = - ) ( ) ( k k n u k u=(n+1),n≥0 即y(n)=(n+1)u(n) (2) y(n)=∑∞ -∞ = - k k k n u k u) ( ) ( λ

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理教案

数字信号处理教案 余月华

课程特点: 本课程是为电子、通信专业三年级学生开设的一门课程,它是在学生学完了信号与系统的课程后,进一步为学习专业知识打基础的课程。本课程将通过讲课、练习使学生掌握数字信号处理的基本理论和方法。课程内容包括:离散时间信号与系统;离散变换及其快速算法;数字滤波器结构;数字滤波器设计;数字信号处理系统的实现等。 本课程逻辑性很强, 很细致, 很深刻;先难后易, 前三章有一定的难度, 倘能努力学懂前三章(或前三章的0080), 后面的学习就会容易一些;只要在课堂上专心听讲, 一般是可以听得懂的, 但即便能听懂, 习题还是难以顺利完成。这是因为数字信号分析技巧性很强, 只了解基本的理论和方法, 不辅以相应的技巧, 是很难顺利应用理论和方法的。论证训练是信号分析课基本的,也是重要的内容之一, 也是最难的内容之一。 因此, 理解证明的思维方式, 学习基本的证明方法, 掌握叙述和书写证明的一般语言和格式, 是信号分析教学贯穿始终的一项任务。 鉴于此, 建议的学习方法是: 预习, 课堂上认真听讲, 必须记笔记, 但要注意以听为主, 力争在课堂上能听懂七、八成。 课后不要急于完成作业, 先认真整理笔记, 补充课堂讲授中太简或跳过的推导, 阅读教科书, 学习证明或推导的叙述和书写。基本掌握了课堂教学内容后, 再去做作业。在学习中, 要养成多想问题的习惯。 课堂讲授方法: 1. 关于教材: 《数字信号处理》 作者 丁玉美 高西全 西安电子科技大学出版社 2. 内容多, 课时紧: 大学课堂教学与中学不同的是每次课介绍的内容很多, 因此, 内容重复的次数少, 讲课只注重思想性与基本思路, 具体内容或推导特别是同类型或较简的推理论证及推导计算, 可能讲得很简, 留给课后的学习任务一般很重。. 3. 讲解的重点: 概念的意义与理解, 理论的体系, 定理的意义、条件、结论、定理证明的分析与思路, 具有代表性的证明方法, 解题的方法与技巧,某些精细概念之间的本质差别. 在教学中, 可能会写出某些定理证明, 以后一般不会做特别具体的证明叙述. 4. 要求、辅导及考试: a. 学习方法: 适应大学的学习方法, 尽快进入角色。 课堂上以听为主, 但要做课堂笔记,课后一定要认真复习消化, 补充笔记,一般课堂教学与课外复习的时间比例应为1 : 3 。 b. 作业: 大体上每两周收一次作业, 一次收清。每次重点检查作业总数的三分之一。 作业的收交和完成情况有一个较详细的登记, 缺交作业将直接影响学期总评成绩。 c. 辅导: 大体两周一次。 d. 考试: 只以最基本的内容进行考试, 大体上考课堂教学和所布置作业的内容。 课程的基本内容与要求 第一章. 时域离散信号与时域离散系统 1. 熟悉6种常用序列及序列运算规则; 2. 掌握序列周期性的定义及判断序列周期性的方法; 3. 掌握离散系统的定义及描述方法(时域描述和频域描述); 4. 掌握LSI 系统的线性移不变和时域因果稳定性的判定; 第二章 时域离散信号与系统的傅立叶变换分析方法

数字信号处理实验

实验一 离散傅里叶变换(DFT )对确定信号进行谱分析 一.实验目的 1.加深对DFT 算法原理和基本性质的理解。 2.熟悉DFT 算法和原理的编程方法。 3.学习用DFT 对信号进行谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确利用。 二.实验原理 一个连续信号)(t x a 的频谱可以用其傅里叶变换表示,即 dt e t x j X t j a a Ω-∞ ∞ -? = Ω)()( 若对)(t x a 进行理想采样可得采样序列 )(|)()(nT x t x n x a nT t a === 对)(n x 进行DTFT ,可得其频谱为: ∑∞ -∞ =-= n n j j e n x e X ωω )()( 其中数字频率ω与模拟频率Ω的关系为: s f T Ω = Ω=ω )(n x 的DFT 为∑∞ -∞ =-= n nk N j e n x k X π 2)()( 若)(t x a 是限带信号,且在满足采样定理的条件下,)(ω j e X 是)(Ωj X a 的周期延拓, )(k X 是)(ωj e X 在单位圆上的等间隔采样值,即k N j e X k X πωω2| )()(= =。 为在计算机上分析计算方便,常用)(k X 来近似)(ω j e X ,这样对于长度为N 的有限 长序列(无限长序列也可用有限长序列来逼近),便可通过DFT 求其离散频谱。 三.实验内容 1.用DFT 对下列序列进行谱分析。 (1))()04.0sin(3)(100n R n n x π=

1 (2)]0,0,0,0,0,0,0,0,1,1,1,1[)(=n x 2.为了说明高密度频谱和高分辨率频谱之间的区别,考察序列 )52.0cos()48.0cos()(n n n x ππ+= (1)当0≤n ≤10时,确定并画出x(n)的离散傅里叶变换。 (2)当0≤n ≤100时,确定并画出x(n)的离散傅里叶变换。 四.实验结果 1. (1) (2)

数字信号处理实验二

实验报告(本科) 学号 2015141443002 姓名柏冲 专业通信工程 日期 2017/12/4 实验题目时域采样和频域采样 一、实验目的

时域采样理论与频域采样理论是数字信号处理中重要的理论。要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使得采样后的信号不丢失信息;要求掌握频率采样会引起时域周期化的概念,以及频域采样定理及其对频域采样点数选择的指导作用。 二、实验过程 附:源程序 (1)时域采样 Tp=64/1000; %观察时间Tp=64毫秒 %产生M长采样序列x(n) Fs=1000; T=1/Fs; M=Tp*Fs; n=0:M-1; A=444.128; a=pi*50*2^0.5; omega=pi*50*2^0.5; xnt=A*exp(-a*n*T).*sin(omega*n*T); Xk=T*fft(xnt,M); %M点FFT[(xnt)] subplot(3,2,1); stem(xnt,'.'); %调用编绘图函数stem绘制序列图 box on;title('(a) Fs=1000Hz'); k=0:M-1;fk=k/Tp; subplot(3,2,2);stem(fk,abs(Xk),'.');title('(a) T*FT[xa(nT)],Fs=1000Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))]); % Fs=300Hz和 Fs=200Hz的程序与上面Fs=1000Hz完全相同。 Tp=64/1000; %观察时间Tp=64毫秒 %产生M长采样序列x(n) Fs=300; T=1/Fs; M=Tp*Fs; n=0:M-1; A=444.128; a=pi*50*2^0.5; omega=pi*50*2^0.5; xnt=A*exp(-a*n*T).*sin(omega*n*T); M1=fix(M); Xk=T*fft(xnt,M1); %M点FFT[(xnt)] subplot(3,2,3); stem(xnt,'.'); %调用自编绘图函数stem绘制序列图 box on;title('(b) Fs=300Hz'); k=0:M-1;fk=k/Tp; subplot(3,2,4);stem(fk,abs(Xk),'.');title('(b) T*FT[xa(nT)],Fs=300Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))]); Tp=64/1000; %观察时间Tp=64毫秒 %产生M长采样序列x(n) Fs=200; T=1/Fs; M=Tp*Fs; n=0:M-1; A=444.128; a=pi*50*2^0.5; omega=pi*50*2^0.5; xnt=A*exp(-a*n*T).*sin(omega*n*T); M2=fix(M);

数字信号处理教案

数字信号处理教案

课程特点: 本课程是为电子、通信专业三年级学生开设的一门课程,它是在学生学完了信号与系统的课程后,进一步为学习专业知识打基础的课程。本课程将通过讲课、练习使学生掌握数字信号处理的基本理论和方法。课程内容包括:离散时间信号与系统;离散变换及其快速算法;数字滤波器结构;数字滤波器设计;数字信号处理系统的实现等。 本课程逻辑性很强, 很细致, 很深刻;先难后易, 前三章有一定的难度, 倘能努力学懂前三章(或前三章的0080), 后面的学习就会容易一些;只要在课堂上专心听讲, 一般是可以听得懂的, 但即便能听懂, 习题还是难以顺利完成。这是因为数字信号分析技巧性很强, 只了解基本的理论和方法, 不辅以相应的技巧, 是很难顺利应用理论和方法的。论证训练是信号分析课基本的,也是重要的内容之一, 也是最难的内容之一。 因此, 理解证明的思维方式, 学习基本的证明方法, 掌握叙述和书写证明的一般语言和格式, 是信号分析教学贯穿始终的一项任务。 鉴于此, 建议的学习方法是: 预习, 课堂上认真听讲, 必须记笔记, 但要注意以听为主, 力争在课堂上能听懂七、八成。 课后不要急于完成作业, 先认真整理笔记, 补充课堂讲授中太简或跳过的推导, 阅读教科书, 学习证明或推导的叙述和书写。基本掌握了课堂教学内容后, 再去做作业。在学习中, 要养成多想问题的习惯。 课堂讲授方法: 1. 关于教材: 《数字信号处理》 作者 丁玉美 高西全 西安电子科技大学出版社 2. 内容多, 课时紧: 大学课堂教学与中学不同的是每次课介绍的内容很多, 因此, 内容重复的次数少, 讲课只注重思想性与基本思路, 具体内容或推导特别是同类型或较简的推理论证及推导计算, 可能讲得很简, 留给课后的学习任务一般很重。. 3. 讲解的重点: 概念的意义与理解, 理论的体系, 定理的意义、条件、结论、定理证明的分析与思路, 具有代表性的证明方法, 解题的方法与技巧,某些精细概念之间的本质差别. 在教学中, 可能会写出某些定理证明, 以后一般不会做特别具体的证明叙述. 4. 要求、辅导及考试: a. 学习方法: 适应大学的学习方法, 尽快进入角色。 课堂上以听为主, 但要做课堂笔记,课后一定要认真复习消化, 补充笔记,一般课堂教学与课外复习的时间比例应为1 : 3 。 b. 作业: 大体上每两周收一次作业, 一次收清。每次重点检查作业总数的三分之一。 作业的收交和完成情况有一个较详细的登记, 缺交作业将直接影响学期总评成绩。 c. 辅导: 大体两周一次。 d. 考试: 只以最基本的内容进行考试, 大体上考课堂教学和所布置作业的内容。 课程的基本内容与要求 第一章. 时域离散信号与时域离散系统 1. 熟悉6种常用序列及序列运算规则; 2. 掌握序列周期性的定义及判断序列周期性的方法; 3. 掌握离散系统的定义及描述方法(时域描述和频域描述); 4. 掌握LSI 系统的线性移不变和时域因果稳定性的判定; 第二章 时域离散信号与系统的傅立叶变换分析方法

数字信号处理第二章上机题作业

数字信号处理作业实验题报告 第一章16.(1) 实验目的: 求解差分方程所描述的系统的单位脉冲响应和单位阶跃响应。 实验要求: 运用matlab求出y(n)=0.6y(n-1)-0.08y(n-2)+x(n)的单位脉冲响应和单位阶跃响应的示意图。 源程序: B1=1;A1=[1, -0.6, 0.08]; ys=2; %设差分方程 xn=[1, zeros(1, 20)]; %xn=单位脉冲序列,长度N=31 xi=filtic(B1, A1, ys); hn1=filter(B1, A1, xn, xi); %求系统输出信号hn1 n=0:length(hn1)-1; subplot(2, 1, 1);stem(n, hn1, '.') title('单位脉冲响应'); xlabel('n');ylabel('h(n)') xn=ones(1, 20); sn1=filter(B1, A1, xn, xi); %求系统输出信号sn1 n=0:length(sn1)-1; Subplot(2, 1, 2); stem(n, sn1, '.') title('单位阶跃响应'); xlabel('n'); ylabel('s(n)')

运行结果: 实验分析: 单位脉冲响应逐渐趋于0,阶跃响应保持不变,由此可见,是个稳定系统。

第二章31题 实验目的: 用matlab判断系统是否稳定。 实验要求: 用matlab画出系统的极,零点分布图,输入单位阶跃序列u(n)检查系统是否稳定。 源程序: A=[2, -2.98, 0.17, 2.3418, -1.5147]; B=[0, 0, 1, 5, -50]; subplot(2,1,1); zplane(B,A); %求H(z)的极点 p=roots(A); %求H(z)的模 pm=abs(p); if max(pm)<1 disp('系统因果稳定'), else,disp('系统因果不稳定'),end un=ones(1,800); sn=filter(B, A, un); n=0:length(sn)-1; subplot(2, 1, 2);plot(n, sn) xlabel('n');ylabel('s(n)')

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

《数字信号处理》课程教学大纲

《数字信号处理》课程教学大纲 (10级) 编号:40023600 英文名称:Digital Signal Processing 适用专业:通信工程;电子信息工程 责任教学单位:电子工程系通信工程教研室 总学时:56 学分:3.5 考核形式:考试 课程类别:专业基础课 修读方式:必修 教学目的:数字信号处理是通信工程、电子信息工程专业的一门专业基础课,通过本课程的学习使学生建立数字信号处理的基本概念、掌握数字信号处理的基本理论、基本分析方法和数字滤波器的基本设计方法,具有初步的算法分析和运用MATLAB编程的能力,了解数字信号处理的新方法和新技术。为学习后续专业课程和从事数字信号处理方面的研究工作打下基础。 主要教学内容及要求: 1.绪论 了解数字信号处理的特点,应用领域,发展概况和发展局势。 2.时域离散信号和时域离散系统 了解连续信号、时域离散信号和数字信号的定义和相互关系;掌握序列的表示、典型序列、序列的基本运算;掌握时域离散系统及其性质,掌握时域离散系统的时域分析,掌握采样定理、连续信号与离散信号的频谱关系。 3.时域离散信号和系统的频域分析 掌握序列的傅里叶变换(FT)及其性质;掌握序列的Z变换(ZT) 、Z变换的主要性质;掌握离散系统的频域分析;了解梳状滤波器,最小相位系统。 4.离散傅里叶变换(DFT) 掌握离散傅里叶变换(DFT)的定义,掌握DFT、ZT、FT、DFS之间的关系;掌握DFT的性质;掌握频域采样;掌握DFT的应用、用DFT计算线性卷积、用DFT分析信号频谱。 5.快速傅里叶变换(FFT) 熟悉DFT的计算问题及改进途经;掌握DIT-FFT算法及其编程思想;掌握IDFT的高效算法。 6.数字滤波网络 了解滤波器结构的基本概念与分类;掌握IIR-DF网络结构(直接型,级联型,并联型);掌握FIR-DF网络结构(直接型,线性相位型,级联型,频率采样型,快速卷积型)。 7.无限冲激响应(IIR)数字滤波器设计 熟悉滤波的概念、滤波器的分类及模拟和数字滤波器的技术指标;熟悉模拟滤波器的设计;掌握用冲激响应不变法设计IIR数字滤波器;掌握用双线性变换法设计IIR数字滤波器。 8.有限冲激响应(FIR)数字滤波器设计 熟悉线性相位FIR数字滤波器的特点;掌握FIR数字滤波器的窗函数设计法;掌握FIR数字滤波器的频率抽样设计法;了解FIR数字滤波器的切比雪夫最佳一致逼近设计法。 本课程与其他课程的联系与分工:先修课程:信号与系统,复变函数与积分变换,数字电路;后续课程有:DSP原理及应用,语音信号处理,数字图像处理等。

数字信号处理_吴镇扬_第二版_第三章习题答案

∞ ∑ 3.3 x %1(n) = x (n + 8r) 说明x%1(n)的周期是8 r=?∞ 2π ? j π kn N ?1 7 7 ? j kn = e ∴X% 1(k) = x %1(n)W Nkn = e ∑ ∑ ∑ 8 4 n=0 n=0 n=0 ? j π 0×n 7 X 1(0) = e ∑ 4 = 3 n=0 ? j π n 7 X 1(1) = e ∑ 4 = (1+ 2 / 2) (1? j ) n=0 ? j π 2n ? j π 3n 7 X 1(2) = e 7 = ? j ;X 1(3) = e ∑ ∑ 4 4 = (1? 2 / 2) (1+ j ) n=0 n=0 ? j π 4n ? j π 5n 7 X 1(4) = e 7 =1;X 1(5) = e ∑ ∑ 4 4 =(1? 2 / 2) (1? j ) = (1+ 2 / 2) (1+ j ) n=0 n=0 ? j π 6n ? j π 7n 7 X 1(6) = e 7 = j ;X 1(7) = e ∑ ∑ 4 4 n=0 n=0

3.6 解:(1)x(n) =δ(n ) N ?1 根据定义有:X(k) = x (n)W = δ(n )W Nkn =1 N ?1 ∑ ∑ kn N n=0 n=0 (2)x (n) =δ(n ?n 0),0 < n 0 < N N ?1 X (k ) = x (n)W = δ (n ? n 0)W N kn =W N kn N ?1 ∑ ∑ kn 0< n 0 < N 0 N n=0 n=0 (3)x (n) = a n 0 < n < N ?1 1?(a W N k )N 1?a N 1?(a W N k ) 1?aW N k N ?1 X (k ) = x (n)W N kn = ∑ = n=0

数字信号处理实验三

实验三:离散LSI 系统的频域分析 一、实验内容 2、求以下各序列的z 变换: 12030() ()sin() ()sin()n an x n na x n n x n e n ωω-=== 程序清单如下: syms w0 n z a; x1=n*a^n;X1=ztrans(x1) x2=sin(w0*n);X2=ztrans(x2) x3= exp(-a*n)*sin(w0*n);X3=ztrans(x3) 程序运行结果如下: X1 =z/(a*(z/a - 1)^2) X2 =(z*sin(w0))/(z^2 - 2*cos(w0)*z + 1) X3 =(z*exp(a)*sin(w0))/(exp(2*a)*z^2 - 2*exp(a)*cos(w0)*z + 1) 3、求下列函数的逆z 变换 0 312342 1 1() () () ()() 1j z z z z X z X z X z X z z a z a z e z ω---= = = = ---- 程序清单如下: syms w0 n z a; X1=z/(z-a);x1=iztrans(X1) X2= z/(a-z)^2;x2=iztrans(X2) X3=z/ z-exp(j*w0);x3=iztrans(X3) X4=(1-z^-3)/(1-z^-1);x4=iztrans(X4) 程序运行结果如下: x1 =a^n x2 =n*a^n/a 课程名称 数字信号 实验成绩 指导教师 实 验 报 告 院系 信息工程学院 班级 学号 姓名 日期

x3 =charfcn[0](n)-iztrans(exp(i*w0),w0,n) x4 =charfcn[2](n)+charfcn[1](n)+charfcn[0](n) 4、求一下系统函数所描述的离散系统的零极点分布图,并判断系统的稳定性 (1) (0.3)()(1)(1) z z H z z j z j -= +-++ z1=[0,0.3]';p1=[-1+j,-1-j]';k=1; [b1,a1]=zp2tf(z1,p1,k); subplot(1,2,1);zplane(z1,p1); title('极点在单位圆外); subplot(1,2,2);impz(b1,a1,20); 由图可见:当极点位于单位圆内,系统的单位序列响应随着频率的增大而收敛;当极点位于单位圆上,系统的单位序列响应为等幅振荡;当极点位于单位圆外,系统的单位序列响应随着频率的增大而发散。由此可知系统为不稳定系统。 -1 -0.5 00.51 -2 -1.5-1-0.500.511.5 2Real Part I m a g i n a r y P a r t 极点在单位圆外 n (samples) A m p l i t u d e Impulse Response

数字信号处理实验报告一

武汉工程大学 数字信号处理实验报告 姓名:周权 学号:1204140228 班级:通信工程02

一、实验设备 计算机,MATLAB语言环境。 二、实验基础理论 1.序列的相关概念 2.常见序列 3.序列的基本运算 4.离散傅里叶变换的相关概念 5.Z变换的相关概念 三、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 四实验目的 认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分

实验一离散时间信号(序列)的产生 代码一 单位样值 x=2; y=1; stem(x,y); title('单位样值 ') 单位阶跃序列 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0]; stem(n,x); xlabel('n'); ylabel('x{n}'); title('单位阶跃序列');

实指数序列 n=[0:10]; x=(0.5).^n; stem(n,x); xlabel('n'); ylabel('x{n}'); title('实指数序列');

正弦序列 n=[-100:100]; x=2*sin(0.05*pi*n); stem(n,x); xlabel('n'); ylabel('x{n}'); title('正弦序列');

随机序列 n=[1:10]; x=rand(1,10); subplot(221); stem(n,x); xlabel('n'); ylabel('x{n}'); title('随机序列');

数字信号处理实验4

数字信号处理实验四 第一题结果: (1)没有增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 %H(3,13) = 0.75;H(5,11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线

(2)增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 H(3) = 0.75;H(13) = 0.75;H(5) = 0.25;H(11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

数字信号处理GUI

西安工业大学北方信息工程学院毕业设计(论文)开题报告 题目:数字信号处理实验教学平台设计 系别光电信息系 专业光电信息工程 班级 B100106 姓名彭牡丹 学号 B10010638 导师稀华 2013年11月20日

1 毕业设计(论文)综述 1.1 题目背景和意义 自 20 世纪 60 年代以来,随着计算机和信息学科的飞速发展,数字信号处理技术应运而生并迅速发展,目前已经形成为一门独立且成熟重要的新兴学科。如今已广泛地应用于通信、语音、图像、遥感、雷达、航空航天、自动控制和生物医学[1]等多个领域。特别在教学方面,此课程已普遍成为大学本科电子通信专业必修的主干课和重要的专业基础课,已成为信息化建设不可缺少的环节。 “数字信号处理”课程主要包括离散时间信号及系统、离散傅立叶变换DFT、快速傅立叶变换FFT、数字滤波器设计及实现和数字信号系统的应用等内容,如何帮助学生理解与掌握课程中的基本概念、分析方法以及综合应用能力,是教学所要解决的关键问题,但是该课程理论性强,公式繁琐,需要实验辅助学生理解。因此研究数字信号处理虚拟实验技术能够有效地弥补数字信号处理理论教学的不足,所以本课题需要借助一些软件平台来完成数字信号处理课程中重要的实验内容的仿真分析。 1.2 国内外相关研究状况 对于教学平台设计,现在教学方面有很多研究方法,不同的的科研目标用的是不同的软件平台,国内外也提出了多种研究方法。 例如,在做交互式教学实验平台设计时,周强、张兰、张春明[2]等人运用的是Tornado 软件。此设计以 Tornado 专业课程为例,提出教学网络化的预期目标,结合课程内容的实践性特点,依据分层教学的指导理念,以先进的网站开发技术(Dreamweaver、B/S、ASP 等)为支撑手段,对面向 Tornado 的交互式教学实验平台进行设计与实现。通过小范围测试,基本实现了教师发布教学信息、上机实验、问题互助解答、学生在线自测、师生交互平台等教学功能,并在此基础上凸显出对学生进行分级以提供个性化教学的特色。在研究网络的教学实验平台设计,赵迎新、徐平平、夏桂斌[3]等人用的是无线传感器网络的研究方法。此设计研究并开发了一种应用MSP430微控制器芯片和CC2420无线收发模块架构的无线传感器网络的教学实验平台,设计并实现了系统的总体架构、硬件电路、软件接口与数据汇聚模式,根据实践教学要求,设计了基于该平台系统的基本实验要求与操作步骤,给出了对不同层次实践教学的目标要求,最后给出教学实践效果的评价。还有谢延红[4]提出的开放式 Linux 实验教学平台设计与实现。此研究针对 Linux 实验教学中存在的实验环境不够灵活、实验学习时间受限和无法实时沟通的问题,此研究提出了“个网络平台,条技术路线,

数字信号处理 答案 第二章(精编文档).doc

【最新整理,下载后即可编辑】 第二章 2.1 判断下列序列是否是周期序列。若是,请确定它的最小周期。 (1)x(n)=Acos(6 85ππ+n ) (2)x(n)=)8( π-n e j (3)x(n)=Asin(3 43π π+ n ) 解 (1)对照正弦型序列的一般公式x(n)=Acos(?ω+n ),得出= ω8 5π 。因此 5 16 2= ωπ 是有理数,所以是周期序列。最小周期等于N= )5(165 16 取k k =。 (2)对照复指数序列的一般公式 x(n)=exp[ωσj +]n,得出8 1 =ω。因此 πω π 162=是无理数,所以不是周期序列。 (3)对照正弦型序列的一般公式x(n)=Acos(?ω+n ),又x(n)=Asin(3 43ππ+n ) =Acos( -2π343ππ-n )=Acos(6143-n π),得出= ω43π。因此3 8 2=ωπ是有理数,所以是周期序列。最小周期等于N=)3(83 8 取k k = 2.2在图2.2中,x(n)和h(n)分别是线性非移变系统的输入和单位取样响应。计算并列的x(n)和h(n)的线性卷积以得到系统的输出y(n),并画出y(n)的图形。

(a) 1 11 1 (b) (c) 11 1 11 0 0 -1 -1 -1 -1 -1 -1 -1 2 2 2 22 2 3 3 3 34 44 … … …n n n n n n x(n)x(n) x(n) h(n)h(n) h(n)2 1 u(n) u(n) u(n)a n ===2 2 解 利用线性卷积公式 y(n)=∑∞ -∞=-k k n h k x )()( 按照折叠、移位、相乘、相加、的作图方法,计算y(n)的每一个取样值。 (a) y(0)=x(O)h(0)=1 y(l)=x(O)h(1)+x(1)h(O)=3 y(n)=x(O)h(n)+x(1)h(n-1)+x(2)h(n-2)=4,n ≥2 (b) x(n)=2δ(n)-δ(n-1) h(n)=-δ(n)+2δ(n-1)+ δ(n-2) y(n)=-2δ(n)+5δ(n-1)= δ(n-3) (c) y(n)= ∑∞ -∞=--k k n k n u k u a )()(= ∑∞ -∞ =-k k n a = a a n --+111u(n)

《数字信号处理》课程教学大纲

《数字信号处理》课程教学大纲 课程编号: 11322617,11222617,11522617 课程名称:数字信号处理 英文名称:Digital Signal Processing 课程类型: 专业核心课程 总学时:56 讲课学时:48 实验学时:8 学分:3 适用对象: 通信工程专业、电子信息科学与技术专业 先修课程:信号与系统、Matlab语言及应用、复变函数与积分变换 执笔人:王树华审定人:孙长勇 一、课程性质、目的和任务 《数字信号处理》是通信工程、电子信息科学与技术专业以及电子信息工程专业的必修课之一,它是在学生学完了信号与系统的课程后,进一步学习其它专业选修课的专业平台课程。本课程将通过讲课、练习、实验使学生掌握数字信号处理的基本理论和方法。为以后进一步学习和研究奠定良好的基础。 二、课程教学和教改基本要求 数字信号处理是用数字或符号的序列来表示信号,通过数字计算机去处理这些序列,提取其中的有用信息。例如,对信号的滤波,增强信号的有用分量,削弱无用分量;或是估计信号的某些特征参数等。总之,凡是用数字方式对信号进行滤波、变换、增强、压缩、估计和识别等都是数字信号处理的研究对象。 本课程介绍了数字信号处理的基本概念、基本分析方法和处理技术。主要讨论离散时间信号和系统的基础理论、离散傅立叶变换DFT理论及其快速算法FFT、IIR和FIR数字滤波器的设计以及有限字长效应。通过本课程的学习使学生掌握利用DFT理论进行信号谱分析,以及数字滤波器的设计原理和实现方法,为学生进一步学习有关信息、通信等方面的课程打下良好的理论基础。 本课程将通过讲课、练习、实验使学生掌握数字信号处理的基本理论和方法。为以后进一步学习和研究奠定良好的基础,应当达到以下目标: 1、使学生建立数字信号处理系统的基本概念,了解数字信号处理的基本手段以及数字信号处理所能够解决的问题。 2、掌握数字信号处理的基本原理,基本概念,具有初步的算法分析和运用MATLAB编程的能力。 3、掌握数字信号处理的基本分析方法和研究方法,使学生在科学实验能力、计算能力和抽象思维能力得到严格训练,培养学生独立分析问题与解决问题的能力,提高科学素质,为后续课程及从事信息处理等方面有关的研究工作打下基础。 4、本课程的基本要求是使学生能利用抽样定理,傅立叶变换原理进行频谱分析和设计简单的数字滤波器。 三、课程各章重点与难点、教学要求与教学内容

数字信号处理实验八

实验报告 实验名称:FIR数字滤波器设计及应用 课程名称____数字信号处理________ 院系部:电气与电子工程专业班级:信息1002 学生姓名:王萌学号: 11012000219同组人:实验台号: 指导教师:范杰清成绩: 实验日期: 华北电力大学

一、实验目的 加深理解 FIR 数字滤波器的时域特性和频域特性,掌握FIR 数字 滤波器的设计原理与设计方法,以及FIR 数字滤波器的应用。 二、 实验原理 FIR 数字滤波器可以设计成具有线性相位,在数据通信、图像处理、 语音信号处理等实际应用领域得到广泛应用。 M 阶FIR 数字滤波器的系统函数为: FIR 数字滤波器的单位脉冲响应h [k ]是长度为M +1的有限长因果序列。当满足对称条件时,该FIR 数字滤波器具有线性相位。FIR 数字滤波器设计方法主要有窗口法、频率取样法及优化设计法。 MATLAB 中提供的常用FIR 数字滤波器设计函数有: fir1 窗函数法设计FIR 数字滤波器(低通、高通、带通、 带阻、多频带滤波器) fir2 频率取样法设计FIR 数字滤波器:任意频率响应 firls FIR 数字滤波器设计:指定频率响应 firrcos 升余弦型 FIR 数字滤波器设计 intfilt 内插FIR 数字滤波器设计 kaiserord 凯塞(Kaiser)窗函数设计法的阶数估计 firpm Parks-McClellan 算法实现FIR 数字滤波器优化设计 firpmord Parks-McClellan 数字滤波器的阶数选择 cremez 复系数非线性相位FIR 等波纹滤波器设计 1、 窗口法设计FIR 数字滤波器 fir1函数可以很容易地实现FIR 数字滤波器窗口法设计。 可设计低通、高通、带通、带阻滤波器、多频带滤波器。 k M k z k h z H -=∑=][)(0

相关文档
相关文档 最新文档