
实验一基于Matlab的数字信号处理基本操作.docx
9页实验一基于Matlab的数字信号处理基本操作一、 实验目的:学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离 散时间信号的基本运算二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套三、 实验内容:(一) 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列离散序列 通常用x(n)來表示,自变量必须是整数离散时间信号的波形绘制在MATLAB中一•般用stem函数stem函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的如果要实心,需 使用参数旳1”、“tilled”,處参 数“.”山于MATLAB中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于尢限序列,也只能在一•定时间范围内表示 出來类似于连续时间信号,离散吋间信号也有一些典型的离散吋间信号1. 单位取样序列单-位収样序列5(〃),也称为单位冲激序列,定义为要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在〃=0处是取确定的值1在 MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即function y=impDT(n)y=(n==o); %当参数为0时冲激为I,否则为0调用该函数吋n必须为整数或整数向量。
实例1-1 ]利用MATLAB的impDT函数绘出单位冲激序列的波形图解:MATLAB源程序为n=-3:3;x=iinpDT(n);stem(n,x/fiirXxlabel(,nr),grid ontitle(*单位冲激序列)axis([-3 3 -0.1 1.1])单位冲激序列0.80.6程序运行结果如图1-1所示0.40.2• • • ICh J • • • • 1BI • I I I图1J单位冲激序列2. 单位阶跃序列单位阶跃序列u(n)定义为讪)(n > 0)(n< 0)在MATLAB中,冲激序列可以通过编写uDT.m文件来实现,即function y=uDT(n)y=n>=o; %当参数为非负时输出1调用该函数时n也同样必须为整数或整数向量实例1・2】利用MATLAB的uDT函数绘出单位阶跃序列的波形图 解:MATLAB源程序为n=-3:5;x=uDT(n);stcm(n,xjfiir),xlabcl(,n,),grid ontitlcC单位阶跃序列Jaxis([-3 5 -0」I.IJ)程序运行结果如图1・2所示单位阶跃序列n图2・2单位阶跃序列3. 矩形序列矩形序列Rn5)定义为(0 < /7 < TV -1)(/? <0,n> N)矩形序列有-•个重要的参数,就是序列宽度M心⑺)与讥“)之间的关系为Rn (n) = w(n) - u(n 一 N)因此,用MATLAB表示矩形序列可利用丄而所讲的uDT函数。
【实例1-3]利用MATLAB命令绘出矩形序列伦(“)的波形图解:MATLAB源程序为n=-3:8;x=uDT(n)-uDT(n-5);stem(n,x,fiirXxlabel(n),grKl on"tle(矩形序列)axis([-3 8 -0.1 1.1])程序运行结果如图1・3所示图1-3炬形序列4. 单边指数序列单边指数序列定义为【实例2-4]x(/z) = anu(n)试用MATLAB命令分别绘制单边指数序列兀2) = 1.250)、 x2 (n) = (― 1.2)5心)、x3(n) = (0.8)5心)、x4(n) = (—0.8)55)的波形图解:MATLAB源程序为n=0:10;a 1 = 1.2;a2=- l.2;a3=0.8;a4=-0. &x 1 =a LAn;x2=a2.An;x3=a3.An;x4=a4.An;subplot(22l)stem(n,x 1/fiirXgrid onx label(n),title(x(n)= 1.2A(n))subplot(222)stem(n,x2,fill),grid onxlabel(,n,),title(,x(n)=(-l .2)A{n))subplot(223)slem(n,x3/nil,)5grid onxlabel(n),title(x(n)=0.8A (n})subplot(224)stem(n,x4Jfiir),grid onxlabel(W),titleCx(n)=(・0・8)A{n})旳边指数序列宛的収值范围为n>0o程序运行结果如图1-4所示。
从图可知,当1卜1时,图1-4单边指数序列单边指数序列发散;当\a\
亠耳【实例1・6】用MATLAB命令画出复指数序列x(n) = 2e 10 6的实部、虚部、模及相角随时间变化的曲线,并观察英时域特性解:MATLAB源程序为n=0:30;A=2;a=-l/l 0;b=pi/6;x=A*exp((a+i*b)*n);subplot(2,2,l)stcm(n,rcal(x)/fill),grid ontitleC 实部),axis([0,30,・2,2]),xlabel(n)subplot(2,2,2)stem(n,imag(x),fill),grid ontitle(7^PrXaxis([030<2,2]) ,xlabel(W)subplot(2,2,3)stem(n,abs(x),fiirXgrid ontitlc(* 模),axis([0,30,0,2]),xlabcl(n) subplot(2,2,4)stem(n,angle(x)/fiir),grid ontitleC相角),axis([0,30,・4,4]) ,xlabel(n) 程序运行后,产生如图1-6所示的波形2 r♦买部1 f :.1严1 .•…丫 1 f f • • • •• • • 1・2 L0 5• • • •• • • •I I I \10 15 20 25 302f ••••1•• ] •••• • a t> ..J I r ••i••iTtk 1••••e•••••••••・••• U J - - - - - •n IB0 510 1S 20 26 30n图1-6复指数序列(二)离散时间信号的基本运算对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、 移位、反折等。
两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB 的点乘和点除、序列移位和反折來实现,与连续时间信号处理方法基本一样实例1-7] 用MATLAB命令画出下列离散时间信号的波形图1)兀](/?) = a1 [w(/i)- - N)];(4) x4(n) = X](— n)(3) x3(n) = A,(n -2);解:设d = 0.8, N=8, MATLAB源程序为a=0.8;N=8;n=-12:l2;x=a.An.*(uDT(n)-uDT(n-N));n l=n;n2=n 1-3;n3=n l+2;n4=-n 1;subplot(4l I)stcm(n 1 ,xjfiir),gr>d ontitle(\ 1 (n),),axis([-15 15 0 I])subplot(412)stem(n2,x/fiir)5grid ontitle(rx2(n),Xaxis([-15 15 0 1])subplot(413)stem(n3,x/fiir),grid on title(,x3(n),Xaxis([-15 15 0 I]) subplot(414)stem(n4,x/nHXgrid on tille(x4(n),),axis([-15 150 I J) 其波形如图1-7所示。
<3(n)*4(n)图1-7离散时间信号的基木运算及波形图(三)编程练习1.试用MATLAB命令分别绘岀下列各序列的波形图4) x(n) = (-2)" w(n)(6)2・ 试用MATLAB分别绘出下列备序列的波形图1x(n) = sin 二(2)4n) = cos(^-f)⑶ x(x) =.n7rsin——5(4) X(Z7)=12丿.H7Tsin——5。
