实验二 离散时间信号的表示及运算

更新时间:2023-12-25 00:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二 离散时间信号的表示及运算

一、 实验目的:学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离

散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容:

(一) 离散时间信号在MATLAB中的表示

离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用x(n)来表示,自变量必须是整数。

离散时间信号的波形绘制在MATLAB中一般用stem函数。stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill”“filled”、,或者参数“.”。由于MATLAB中矩阵元素的个数有限,所以MATLAB只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。

1. 单位取样序列

单位取样序列?(n),也称为单位冲激序列,定义为

?1?(n)???0(n?0) (2-1)

(n?0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即

function y=impDT(n)

y=(n==0); %当参数为0时冲激为1,否则为0

调用该函数时n必须为整数或整数向量。

【实例2-1】 利用MATLAB的impDT函数绘出单位冲激序列的波形图。 解:MATLAB源程序为

>>n=-3:3; >>x=impDT(n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])

程序运行结果如图12-1所示。

图2-1 单位冲激序列

2. 单位阶跃序列

单位阶跃序列u(n)定义为

u(n)???1(n?0)?0(n?0) 在MATLAB中,冲激序列可以通过编写uDT.m文件来实现,即

function y=uDT(n)

y=n>=0; %当参数为非负时输出1

调用该函数时n也同样必须为整数或整数向量。

【实例2-2】 利用MATLAB的uDT函数绘出单位阶跃序列的波形图。解:MATLAB源程序为

>>n=-3:5; >>x=uDT(n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位阶跃序列') >>axis([-3 5 -0.1 1.1])

程序运行结果如图12-2所示。

图2-2 单位阶跃序列

2-2) (

3. 矩形序列

矩形序列RN(n)定义为

?1RN(n)???0(0?n?N?1) (2-3)

(n?0,n?N)矩形序列有一个重要的参数,就是序列宽度N。RN(n)与u(n)之间的关系为

RN(n)?u(n)?u(n?N)

因此,用MATLAB表示矩形序列可利用上面所讲的uDT函数。

【实例2-3】 利用MATLAB命令绘出矩形序列R5(n)的波形图。 解:MATLAB源程序为

>>n=-3:8;

>>x=uDT(n)-uDT(n-5);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('矩形序列') >>axis([-3 8 -0.1 1.1])

程序运行结果如图2-3所示。

图2-3 矩形序列

4. 单边指数序列

单边指数序列定义为

x(n)?anu(n) (2-4)

【实例2-4】 试用MATLAB命令分别绘制单边指数序列x1(n)?1.2u(n)、

nx2(n)?(?1.2)nu(n)、x3(n)?(0.8)nu(n)、x4(n)?(?0.8)nu(n)的波形图。

解: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'),grid on >>xlabel('n'),title('x(n)=1.2^{n}') >>subplot(222)

>>stem(n,x2,'fill'),grid on

>>xlabel('n'),title('x(n)=(-1.2)^{n}') >>subplot(223)

>>stem(n,x3,'fill'),grid on >>xlabel('n'),title('x(n)=0.8^{n}') >>subplot(224)

>>stem(n,x4,'fill'),grid on

>>xlabel('n'),title('x(n)=(-0.8)^{n}')

单边指数序列n的取值范围为n?0。程序运行结果如图2-4所示。从图可知,当|a|?1时,

图2-4 单边指数序列

单边指数序列发散;当|a|?1时,该序列收敛。当a?0时,该序列均取正值;当a?0时,序列在正负摆动。

5. 正弦序列

正弦序列定义为

x(n)?sin(n?0??) (2-5)

其中,?0是正弦序列的数字域频率;?为初相。与连续的正弦信号不同,正弦序列的自变

量n必须为整数。可以证明,只有当

2??0为有理数时,正弦序列具有周期性。

【实例2-5】 试用MATLAB命令绘制正弦序列x(n)?sin(解:MATLAB源程序为

>>n=0:39; >>x=sin(pi/6*n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('正弦序列') >>axis([0,40,-1.5,1.5]);

n?)的波形图。 6程序运行结果如图2-5所示。

图2-5 正弦序列

6. 复指数序列

复指数序列定义为

x(n)?e(a?j?0)n (2-6)

j?n当a?0时,得到虚指数序列x(n)?e0,式中?0是正弦序列的数字域频率。由欧拉公式

知,复指数序列可进一步表示为

x(n)?e(a?j?0)n?eanej?0n?ean[cos(n?0)?jsin(n?0)] (2-7)

与连续复指数信号一样,我们将复指数序列实部和虚部的波形分开讨论,得出如下结论:

(1)当a?0时,复指数序列x(n)的实部和虚部分别是按指数规律增长的正弦振荡序列;

(2)当a?0时,复指数序列x(n)的实部和虚部分别是按指数规律衰减的正弦振荡序列;

(3)当a?0时,复指数序列x(n)即为虚指数序列,其实部和虚部分别是等幅的正弦

振荡序列。

【实例2-6】 用MATLAB命令画出复指数序列x(n)?2e相角随时间变化的曲线,并观察其时域特性。

解: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'),grid on

>>title('实部'),axis([0,30,-2,2]),xlabel('n') >>subplot(2,2,2)

>>stem(n,imag(x),'fill'),grid on

>>title('虚部'),axis([0,30,-2,2]) ,xlabel('n') >>subplot(2,2,3)

>>stem(n,abs(x),'fill'),grid on >>title('模'),axis([0,30,0,2]) ,xlabel('n') >>subplot(2,2,4)

>>stem(n,angle(x),'fill'),grid on

>>title('相角'),axis([0,30,-4,4]) ,xlabel('n')

1?(??j)n106的实部、虚部、模及

程序运行后,产生如图2-6所示的波形。

(二) 离散时间信号的基本运算

图2-6 复指数序列

对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。

【实例2-7】 用MATLAB命令画出下列离散时间信号的波形图。

(1)x1?n??an?u?n??u?n?N??; (3)x3?n??x1?n?2?;

解:设a?0.8,N?8,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'),grid on >>title('x1(n)'),axis([-15 15 0 1]) >>subplot(412)

>>stem(n2,x,'fill'),grid on >>title('x2(n)'),axis([-15 15 0 1]) >>subplot(413)

>>stem(n3,x,'fill'),grid on >>title('x3(n)'),axis([-15 15 0 1]) >>subplot(414)

>>stem(n4,x,'fill'),grid on >>title('x4(n)'),axis([-15 15 0 1])

(2)x2?n??x1?n?3? (4)x4?n??x1??n?

其波形如图2-7所示。

图2-7 离散时间信号的基本运算及波形图

(三) 编程练习

1. 试用MATLAB命令分别绘出下列各序列的波形图。

?1?(1)x?n????u?n? (2)x?n??2nu?n?

?2??1?n(3)x?n?????u?n? (4)x?n????2?u?n?

?2?(5)x?n??2n?1nn?1?u?n?1? (6)x?n?????2?n?1u?n?

2. 试用MATLAB分别绘出下列各序列的波形图。

(1)x?n??sinn?n???) (2)x?n??cos(5105nnn?n??5??3?(3)x?n????sin (4)x?n????sin

55?6??2?

本文来源:https://www.bwwdw.com/article/tru5.html

Top