实验一离散时间信号的表示及运算.docx
《实验一离散时间信号的表示及运算.docx》由会员分享,可在线阅读,更多相关《实验一离散时间信号的表示及运算.docx(8页珍藏版)》请在冰豆网上搜索。
实验一离散时间信号的表示及运算
实验一离散时间信号的表示及运算
一、实验目的:
学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离散时间信号的基本运算。
二、实验仪器:
电脑一台,MATLAB6.5或更高级版本软件一套。
三、实验内容:
(一)离散时间信号在MATLAB中的表示
离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB中一般用stem函数。
stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill”、“filled”,或者参数“.”。
由于MATLAB中矩阵元素的个数有限,所以MATLAB只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1.单位取样序列
单位取样序列,也称为单位冲激序列,定义为
(1-1)
要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。
在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即
functiony=impDT(n)
y=(n==0);%当参数为0时冲激为1,否则为0
调用该函数时n必须为整数或整数向量。
【实例1-1】利用MATLAB的impDT函数绘出单位冲激序列的波形图。
解:
MATLAB源程序为
>>n=-3:
3;
>>x=impDT(n);
>>stem(n,x,'fill'),xlabel('n'),gridon
>>title('单位冲激序列')
>>axis([-33-0.11.1])
图1-1单位冲激序列
程序运行结果如图11-1所示。
2.单位阶跃序列
单位阶跃序列定义为
(1-2)
在MATLAB中,冲激序列可以通过编写uDT.m文件来实现,即
functiony=uDT(n)
y=n>=0;%当参数为非负时输出1
调用该函数时n也同样必须为整数或整数向量。
【实例1-2】利用MATLAB的uDT函数绘出单位阶跃序列的波形图。
解:
MATLAB源程序为
>>n=-3:
5;
>>x=uDT(n);
>>stem(n,x,'fill'),xlabel('n'),gridon
>>title('单位阶跃序列')
>>axis([-35-0.11.1])
图1-2单位阶跃序列
程序运行结果如图11-2所示。
3.矩形序列
矩形序列定义为
(1-3)
矩形序列有一个重要的参数,就是序列宽度N。
与之间的关系为
因此,用MATLAB表示矩形序列可利用上面所讲的uDT函数。
【实例1-3】利用MATLAB命令绘出矩形序列的波形图。
解:
MATLAB源程序为
>>n=-3:
8;
>>x=uDT(n)-uDT(n-5);
>>stem(n,x,'fill'),xlabel('n'),gridon
>>title('矩形序列')
>>axis([-38-0.11.1])
程序运行结果如图1-3所示。
4.单边指数序列
单边指数序列定义为
(1-4)
【实例1-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}')
>>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所示。
从图可知,当时,单边指数序列发散;当时,该序列收敛。
当时,该序列均取正值;当时,序列在正负摆动。
5.正弦序列
正弦序列定义为
(1-5)
其中,是正弦序列的数字域频率;为初相。
与连续的正弦信号不同,正弦序列的自变量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]);
程序运行结果如图1-5所示。
6.复指数序列
复指数序列定义为
(1-6)
当时,得到虚指数序列,式中是正弦序列的数字域频率。
由欧拉公式知,复指数序列可进一步表示为
(1-7)
与连续复指数信号一样,我们将复指数序列实部和虚部的波形分开讨论,得出如下结论:
(1)当时,复指数序列的实部和虚部分别是按指数规律增长的正弦振荡序列;
(2)当时,复指数序列的实部和虚部分别是按指数规律衰减的正弦振荡序列;
(3)当时,复指数序列即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列。
【实例1-6】用MATLAB命令画出复指数序列的实部、虚部、模及相角随时间变化的曲线,并观察其时域特性。
解:
MATLAB源程序为
>>n=0:
30;
>>A=2;a=-1/10;b=pi/6;
>>x=A*exp((a+i*b)*n);
>>subplot(2,2,1)
>>stem(n,real(x),'fill'),gridon
>>title('实部'),axis([0,30,-2,2]),xlabel('n')
>>subplot(2,2,2)
>>stem(n,imag(x),'fill'),gridon
>>title('虚部'),axis([0,30,-2,2]),xlabel('n')
>>subplot(2,2,3)
>>stem(n,abs(x),'fill'),gridon
>>title('模'),axis([0,30,0,2]),xlabel('n')
>>subplot(2,2,4)
>>stem(n,angle(x),'fill'),gridon
>>title('相角'),axis([0,30,-4,4]),xlabel('n')
程序运行后,产生如图1-6所示的波形。
(二)离散时间信号的基本运算
对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。
两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。
【实例1-7】用MATLAB命令画出下列离散时间信号的波形图。
(1);
(2)
(3);(4)
解:
设,,MATLAB源程序为
>>a=0.8;N=8;n=-12:
12;
>>x=a.^n.*(uDT(n)-uDT(n-N));
>>n1=n;n2=n1-3;n3=n1+2;n4=-n1;
>>subplot(411)
>>stem(n1,x,'fill'),gridon
>>title('x1(n)'),axis([-151501])
>>subplot(412)
>>stem(n2,x,'fill'),gridon
>>title('x2(n)'),axis([-151501])
>>subplot(413)
>>stem(n3,x,'fill'),gridon
>>title('x3(n)'),axis([-151501])
>>subplot(414)
>>stem(n4,x,'fill'),gridon
>>title('x4(n)'),axis([-151501])
其波形如图1-7所示。
(三)编程练习
1.试用MATLAB命令分别绘出下列各序列的波形图。
(1)
(2)
(3)(4)
(5)(6)
2.试用MATLAB分别绘出下列各序列的波形图。
(1)
(2)
(3)(4)
(注:
文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)