搜索
您的当前位置:首页正文

数字信号处理MATLAB实验报告

来源:爱够旅游网
 实 验 报 告

课程名称: 数字信号处理实验 专业班级: 姓 名: 学 号:

实验名称 数字信号处理 实验地点 实验成绩 一、实验目的及任务  学会运用MATLAB表示的常用离散时间信号;  学会运用MATLAB实现离散时间信号的基本运算。 实验时间 二、实验内容与步骤 一、离散时间信号在MATLAB中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用x(n)来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB中一般用stem函数。stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill”“filled”、,或者参数“.”。由于MATLAB中矩阵元素的个数有限,所以MATLAB只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列(n),也称为单位冲激序列,定义为 (n)10(n0) (12-1) (n0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n必须为整数或整数向量。 2. 单位阶跃序列 单位阶跃序列u(n)定义为 1u(n)0function y=uDT(n) (n0) (12-2) (n0)在MATLAB中,冲激序列可以通过编写uDT.m文件来实现,即 y=n>=0; %当参数为非负时输出1 调用该函数时n也同样必须为整数或整数向量。 3. 矩形序列 矩形序列RN(n)定义为 1RN(n)0(0nN1) (12-3) (n0,nN)矩形序列有一个重要的参数,就是序列宽度N。RN(n)与u(n)之间的关系为 RN(n)u(n)u(nN) 因此,用MATLAB表示矩形序列可利用上面所讲的uDT函数。 4. 单边指数序列 单边指数序列定义为 x(n)anu(n) (12-4) 5. 正弦序列 正弦序列定义为 x(n)sin(n0) (12-5) 其中,0是正弦序列的数字域频率;为初相。与连续的正弦信号不同,正弦序列的自变量n必须为整数。可以证明,只有当20为有理数时,正弦序列具有周期性。 图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)即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列。 二、离散时间信号的基本运算 对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。

实验步骤:

试用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n=0:20;

a1=1/2;a2=2;a3=-1/2;a4=-2;

x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n; subplot(2,2,1)

stem(n,x1,'fill'),grid on

xlabel('n'),title('x(n)=(1/2)^n') subplot(2,2,2)

stem(n,x2,'fill'),grid on xlabel('n'),title('x(n)=2^n') subplot(223)

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

xlabel('n'),title('x(n)=(-1/2)^n') subplot(224)

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

xlabel('n'),title('x(n)=(-2)^n')

nn

(5)xn2n1un1 n=1:20; a=2;

x=a1.^(n-1);

stem(n,x1,'fill'),grid on

xlabel('n'),title('x(n)=(2)^(n-1)')

1 (6)xn2n1un

n=0:20 a=1/2;

x=a2.^(n-1);

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

xlabel('n'),title('x(n)=(1/2)^(n-1)')

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

(1)xnsinn 5n=0:30;

x=sin(pi/5*n);

stem(n,x,'fill'),xlabel('n'),grid on title('x(n)=sin(pi/5*n)') axis([0,30,-2,2]);

(2)xncos(n) 105n=0:30;

x=sin(pi/10*n-pi/5);

stem(n,x,'fill'),xlabel('n'),grid on title('x(n)=sin(pi/5*n-pi/5)') axis([0,30,-2,2]);

n5(3)xnsin

56n=0:30;

x=(5/6).^n.*sin(pi/5*n);

stem(n,x,'fill'),xlabel('n'),grid on title('x(n)=5/6).^n.*sin(pi/5*n)') axis([0,30,-2,2]);

n

n3(4)xnsin

52n=0:30;

x=(3/2).^n.*sin(pi/5*n);

stem(n,x,'fill'),xlabel('n'),grid on title('x(n)=5/6).^n.*sin(pi/5*n)') axis([0,30,-100,100]);

n

实验心得:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top