资源描述:
《实验一 基于matlab的数字信号处理基本操作new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一基于Matlab的数字信号处理基本操作一、实验目的:学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离散时间信号的基本运算。二、实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。三、实验内容:(一)离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用来表示,自变量必须是整数。离散时间信号的波形绘制在MATLAB中一般用stem函数。stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill”、“filled”
2、,或者参数“.”。由于MATLAB中矩阵元素的个数有限,所以MATLAB只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。1.单位取样序列单位取样序列,也称为单位冲激序列,定义为要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即functiony=impDT(n)y=(n==0);%当参数为0时冲激为1,否则为0调用该函数时n必须为整数或整数向量。【实例1-1】利用MATLAB的i
3、mpDT函数绘出单位冲激序列的波形图。解:MATLAB源程序为>>n=-3:3;>>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),gridon>>title('单位冲激序列')>>axis([-33-0.11.1])图1-1单位冲激序列程序运行结果如图1-1所示。1.单位阶跃序列单位阶跃序列定义为在MATLAB中,冲激序列可以通过编写uDT.m文件来实现,即functiony=uDT(n)y=n>=0;%当参数为非负时输出1调用该函数时n也同样必须为整数或整数向量。【实例1-2】利用MATLAB的uDT函数绘出单位阶跃序列的波形图。解:M
4、ATLAB源程序为>>n=-3:5;>>x=uDT(n);>>stem(n,x,'fill'),xlabel('n'),gridon>>title('单位阶跃序列')>>axis([-35-0.11.1])图2-2单位阶跃序列程序运行结果如图1-2所示。2.矩形序列矩形序列定义为1矩形序列有一个重要的参数,就是序列宽度N。与之间的关系为因此,用MATLAB表示矩形序列可利用上面所讲的uDT函数。【实例1-3】利用MATLAB命令绘出矩形序列的波形图。解:MATLAB源程序为>>n=-3:8;>>x=uDT(n)-uDT(n-5);>>stem(n,x,'fill'),xlab
5、el('n'),gridon>>title('矩形序列')>>axis([-38-0.11.1])程序运行结果如图1-3所示。图1-3矩形序列1.单边指数序列单边指数序列定义为【实例2-4】试用MATLAB命令分别绘制单边指数序列、、、的波形图。解:MATLAB源程序为>>n=0:10;>>a1=1.2;a2=-1.2;a3=0.8;a4=-0.8;>>x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n;>>subplot(221)>>stem(n,x1,'fill'),gridon>>xlabel('n'),title('x(n)=1.2^{n}')>>
6、subplot(222)>>stem(n,x2,'fill'),gridon>>xlabel('n'),title('x(n)=(-1.2)^{n}')>>subplot(223)>>stem(n,x3,'fill'),gridon>>xlabel('n'),title('x(n)=0.8^{n}')>>subplot(224)>>stem(n,x4,'fill'),gridon>>xlabel('n'),title('x(n)=(-0.8)^{n}')图1-4单边指数序列单边指数序列的取值范围为。程序运行结果如图1-4所示。从图可知,当时,单边指数序列发散;当时,该序列收敛
7、。当时,该序列均取正值;当时,序列在正负摆动。1.正弦序列正弦序列定义为其中,是正弦序列的数字域频率;为初相。与连续的正弦信号不同,正弦序列的自变量n必须为整数。可以证明,只有当为有理数时,正弦序列具有周期性。【实例1-5】试用MATLAB命令绘制正弦序列的波形图。解:MATLAB源程序为>>n=0:39;>>x=sin(pi/6*n);>>stem(n,x,'fill'),xlabel('n'),gridon>>title('正弦序列')>>axis([0,40,-1.5,1.5]);程序运行结果如图