matlab数字信号处理实验指导 下载本文

绪论

绪 论

随着电子技术迅速地向数字化发展,《数字信号处理》越来越成为广大理工科,特别是IT领域的学生和技术人员的必修内容。

数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。数字信号处理的理论和技术一出现就受到人们的极大关注,发展非常迅速。而且随着各种电子技术及计算机技术的飞速发展,数字信号处理的理论和技术还在不断丰富和完善,新的理论和技术层出不穷。目前数字信号处理已广泛地应用在语音、雷达、声纳、地震、图象、通信、控制、生物医学、遥感遥测、地质勘探、航空航天、故障检测、自动化仪表等领域。

数字信号处理是一门理论和实践、原理和应用结合紧密的课程,由于信号处理涉及大量的运算,可以说离开了计算机及相应的软件,就不可能解决任何稍微复杂的实际应用问题。Matlab是1984年美国Math Works公司的产品,MATLAB语言具备高效、可视化及推理能力强等特点,它的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础,是目前工程界流行最广的科学计算语言。早在20世纪90年代中期,MATLAB就己成为国际公认的信号处理的标准软件和开发平台。从1996年后,美国新出版的信号处理教材就没有一本是不用MATLAB的。

本实验指导书结合数字信号处理的基本理论和基本内容,用科学计算语言MATLAB实现数字信号处理的方法和实践, 通过实验用所学理论来分析解释程序的运行结果,进一步验证、理解和巩固学到的理论知识,从而达到掌握数字信号处理的基本原理和方法的目的。

1

实验一 常见离散信号的MATLAB产生和图形显示

实验一 常见离散信号的MATLAB产生和图形显示

一、实验目的

1. 学会用MATLAB在时域中产生一些基本的离散时间信号。 2. 了解信号的各种运算。

二、实验原理

(一)、序列的产生

由于MATLAB数值计算的特点,用它来分析离散时间信号与系统是很方便的。离散信号是数字信号处理的最基础的内容,由于内存有限,MATLAB无法表示无限序列。在MATLAB中,可以用一个列向量来表示一个有限长度的序列,但是这种表示方法没有包含采样位置的信息,要完全表示x(n),要用x 和n 两个向量,例如

x(n)={2,1,0,2,3,-1,2,3} ↑ 在MATLAB中表示为

n=[-4,-3,-2,-1,0,1,2,3]; x=[2,1,0,2,3,-1,2,3];

当序列从n=0开始,则不需要采样位置信息,这时可以只用x 来表示

1. 单位抽样序列

?(n)??

?1?0n?0 n?0在MATLAB中可以利用zeros()函数实现。

x?zeros(1,N);

x(1)?1;如果?(n)在时间轴上延迟了k个单位,得到?(n?k)即:

?(n?k)??

?1?0n?kn?0

2.单位阶跃序列

2

实验一 常见离散信号的MATLAB产生和图形显示

n?0?1 u(n)?

n?0?0在MATLAB中可以利用ones()函数实现。

x?ones(1,N)

3.正弦序列

x(n)?Asin(2?fn/Fs??)

在MATLAB中

n?0:N?1

x?A*sin(2*pi*f*n/Fs?fai)4.复正弦序列

x(n)?ej?n

在MATLAB中

n?0:N?1

x?exp(j*w*n)5.指数序列

x(n)?an

在MATLAB中

n?0:N?1

x?a.^n(二)、简单运算 1.信号加

x(n)?x1(n)?x2(n) 在MATLAB中

x=x1+x2

注意:x1和x2应该具有相同的长度,位置对应,才能相加。否则,需要先通过Zeros函数左右补零后再相加。

2.信号延迟

3

实验一 常见离散信号的MATLAB产生和图形显示

给定离散信号x(n),若信号y(n)为 y(n)= x(n-k)

那么y(n)就是信号x(n)在时间轴上右移k个采样周期后得到的新的序列。 在MATLAB中

y(n)= x(n-k) 3.信号乘

x(n)?x1(n)?x2(n)

在MATLAB中

x?x1.?x2

这是信号的点乘运算,所以同样需要信号加需要的x1和x2二者的长度要相等这一前提条件。

4.信号变化幅度

y(n)= k×x(n) 在MATLAB中

y?k?x

5.信号翻转

y(n)= x(-n)

在MATLAB中

y=fliplr(x)

三、实验内容与步骤

1. 产生一个单位样本序列x1(n),起点为ns= -10, 终点为nf=20, 在n0=0时有一单位脉冲并显示它。修改程序,以产生带有延时11个样本的延迟单位样本序列x2(n)= x1(n-11),并显示它。

2.已知 c= -(1/12)+(pi/6)*i;产生一个复数值的指数序列x2(n)=2*exp(c*n),起点为ns= 0, 终点为nf=40;并显示它。

3.产生一个正弦序列x3(n) =1.5*cos(2*pi*f*n); 起点为ns= 0, 终点为nf=40;并显示它。

4.复杂信号的产生:复杂的信号可以通过在简单信号上执行基本的运算来产生 试产生一个振幅调制信号

y(n)?(1?m?cos(2?fLn))?cos(2?fHn)?(1?0.4?cos(2??0.01n))?cos(2??0.1n)

4