离散时间信号的表示及运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 离散时间信号的表示及运算
一、实验目的
学会运用MATLAB 表示的常用离散时间信号;学会运用MATLAB 实现离散时间信号的基本运算。
二、实验原理
(一) 离散时间信号在MATLAB 中的表示
离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用)(n x 来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB 中一般用stem 函数。
stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB 中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
(二) 离散时间信号的基本运算
对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。
两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB 的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。
三、实验内容(包括代码与产生的图形)
1. 试用MATLAB 命令分别绘出下列各序列的波形图。
(1)()()n u n x n
⎪⎭
⎫
⎝⎛=21 (2)()()n u n x n 2=
(3)()()n u n x n
⎪⎭
⎫
⎝⎛-=21 (4)()()()n u n x n 2-=
(5)()()121
-=-n u n x n (6)()()n u n x n 1
21-⎪
⎭
⎫
⎝⎛=
(1)、(2) n=-3:8; a=1/2;
x=a.^n.*uDT(n); subplot(221);
stem(n,x,'fill','r'),xlabel('n'),grid on title('(1)x(n)=(1/2)^{n}*U(n)') axis([-3 8 -0.1 1.1]) n1=-3:8; b=2;
x=b.^n1.*uDT(n1); subplot(222);
stem(n1,x,'fill','r'),xlabel('n'),grid on title('(2)x(n)=(2)^{n}*U(n)') axis([-3 4.5 -1.5 18])
分析:(1)该信号为指数衰减序列与阶跃序的乘积,当n<0时,U(n)=0,所以该
信号为零;当n=0时,U(n)=1,n
⎪⎭
⎫
⎝⎛21=1,该信号为1;当n>0,U(n)=1,该信号呈现
指数衰减趋势。
分析:(2)该信号与(1)信号不同之处在于此信号指数部分为增序列,故而当n≧0时,信号呈现指数增加的趋势。
(3)、(4)
n=-3:8;
a=-1/2;
x=a.^n.*uDT(n);
subplot(221);
stem(n,x,'fill','r'),xlabel('n'),grid on
title('(3)x(n)=(-1/2)^{n}*U(n)')
axis([-3 6 -1.5 1.5])
n1=-3:8;
b=-2;
x=b.^n1.*uDT(n1);
subplot(222);
stem(n1,x,'fill','r'),xlabel('n'),grid on
title('(4)x(n)=(-2)^{n}*U(n)')
axis([-3 4.5 -15 20])
分析:(3)该信号与(1)信号不同之处在于指数部分的底数为-1/2,故此信号在n≧0时,信号呈现指数衰减并且n为偶数时在正半轴指数衰减,n为奇数时在负半轴指数衰减。
分析:(4)该信号与(3)信号不同之处在于指数部分的底数为-2,故当n≧0时,
信号为指数增长并且n为偶数时在正半轴指数增长,n为奇数时在负半轴指数增长。
(5)、(6)
n=-1:8;
a=2;
x=a.^(n-1).*uDT(n-1);
subplot(221);
stem(n,x,'fill','r'),xlabel('n'),grid on
title('(5)x(n)=(2)^{n-1}*U(n-1)')
axis([-1 5.5 -1.5 17])
n1=-3:8;
b=1/2;
x=b.^(n1-1).*uDT(n1);
subplot(222);
stem(n1,x,'fill','r'),xlabel('n'),grid on
title('(6)x(n)=(1/2)^{n-1}*U(n)')
axis([-3 4.5 -0.2 2.5])
分析:(5)该信号为指数信号与阶跃信号的乘积,当n≧1时,U(n-1)=1,故在n ≧1时,该信号为指数增长的趋势。
分析:(6)该信号也是由指数序列与阶跃序列构成,当n<0时信号为零,当n≧0时,该信号指数衰减。
2. 试用MATLAB分别绘出下列各序列的波形图。
(1)()5sin
πn n x = (2)())5
10cos(ππ-=n n x (3)()5sin 65πn n x n
⎪⎭⎫ ⎝⎛= (4)()5sin 23πn n x n
⎪⎭
⎫
⎝⎛=
(1)、(2)
n=0:25; x=sin(pi/5*n); subplot(221);
stem(n,x,'fill','r'),xlabel('n'),grid on title('(1)X(n)=sin(pi/5*n)') axis([0,16,-1.5,1.5]); n1=0:50;
x=cos(pi/10*n1-pi/5); subplot(222);
stem(n1,x,'fill','r'),xlabel('n'),grid on title('(2)X(n)=cos(pi/10*n-pi/5)') axis([0,28,-1.2,1.2]);
分析:(1)该信号为正弦序列,故波形成正弦形式,在区间[-1,1]上波动。
分析:(2)该信号为余弦序列,故波形成余弦形式,在区间[-1,1]上波动。
(3)、(4)
n=0:25; a=5/6;
x=a.^n.*sin(pi/5*n); subplot(221);
stem(n,x,'fill','r'),xlabel('n'),grid on title('(3)X(n)=5/6^{n}*sin(pi/5*n)') axis([0,15,-1,1]); n1=0:50; b=3/2;
x=b.^n1.*sin(pi/5*n1); subplot(222);
stem(n1,x,'fill','r'),xlabel('n'),grid on title('(4)X(n)=3/2^{n}*sin(pi/5*n)') axis([0,17,-1000,500]);
分析:(3)该信号为一个指数衰减序列乘一个正弦序列,因为正弦序列在固定区间[-1,1]上波动,所以总体上信号呈现正弦衰减的趋势。
分析:(4)该信号为一个指数增长序列与一个正弦序列相乘,故信号呈现正弦增长的趋势。
四、总结
根据实验内容和分析讨论,写出自己认为重要的几点结论。
在Matlab 中没有单位取样序列和单位阶跃序列的库函数,在进行该函数的相关运算时要建立文件名为impDT.m 和uDT.m 的函数进行调用。
)(n R N 与)(n u 之间的关系为)()()(N n u n u n R N --=。
在对相关信号仿真前,首先要观察函数自变量和函数值的取值范围,以便
在编写代码时更好的书写变量的取值,更好的反应函数的特性。