数字信号处理实验(1-4)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《数字信号处理》实验报告学院:___________________专业:__________________班级:___________________学号:___________________姓名:___________________湖南工业大学理学院2014年12月7日实验一离散时间信号的表示及运算1.1实验目的学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离散时间信号的基本运算。1.2实验原理及实例分析1.2.1离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(nx来表示,自变量必须是整数。离散时间信号的波形绘制在MATLAB中一般用stem函数。stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill”、“filled”,或者参数“.”。由于MATLAB中矩阵元素的个数有限,所以MATLAB只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。例1.单位取样序列单位取样序列)(n,也称为单位冲激序列,定义为)0()0(01)(nnn要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即functiony=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'),gridonaxis([-33-0.11.1])title('单位阶跃序列')其波形如下图1.2.2离散时间信号的基本运算对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。例2用MATLAB命令画出下列离散时间信号的波形图。(1)Nnunuanxn1;(2)312nxnx解:设8.0a,8N,MATLAB源程序为a=0.8;N=8;n=-12:12;x=a.^n.*(uDT(n)-uDT(n-N));n1=n;n2=n1-3;subplot(121)stem(n1,x,'fill'),gridontitle('x1(n)'),axis([-151501])subplot(122)stem(n2,x,'fill'),gridontitle('x2(n)'),axis([-151501]其波形如下图图2-2单位阶跃序列1.3编程练习1.试用MATLAB命令分别绘出下列各序列的波形图。(1)nunxn21(2)nunxn2(3)nunxn21(4)nunxn2(5)121nunxn(6)nunxn121解:附:n=0:10;a1=1/2;a2=-1/2;a3=2;a4=-2;a5=2;a6=1/2;x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n;x5=a5.^(n-1).*uDT(n-1);x6=a6.^(n-1);subplot(231)stem(n,x1,'fill'),gridonxlabel('n'),title('x(n)=1/2^{n}')subplot(232)stem(n,x2,'fill'),gridonxlabel('n'),title('x(n)=(-1/2)^{n}')subplot(233)stem(n,x3,'fill'),gridonxlabel('n'),title('x(n)=2^{n}')subplot(234)stem(n,x4,'fill'),gridonxlabel('n'),title('x(n)=(-2)^{n}')subplot(235)stem(n,x5,'fill'),gridonxlabel('n'),title('x(n)=2^{n-1}*u(n-1)')subplot(236)stem(n,x6,'fill'),gridonxlabel('n'),title('x(n)=(1/2)^{n-1}')2.试用MATLAB分别绘出下列各序列的波形图。(1)5sinnnx(2))510cos(nnx(3)5sin65nnxn(4)5sin23nnxn解:附:n=0:25;n1=0:39;x1=sin(pi/5*n);x2=cos(pi/10*n1-pi/5);x3=(5/6).^n.*sin(pi/5*n);x4=(3/2).^n.*sin(pi/5*n);subplot(221)stem(n,x1,'fill'),xlabel('n'),gridontitle('正弦序列')axis([0,25,-1.5,1.5]);subplot(222)stem(n1,x2,'fill'),,xlabel('n'),gridontitle('正弦序列')axis([0,40,-1.5,1.5]);subplot(223)stem(n,x3,'fill'),xlabel('n'),gridontitle('正弦序列')axis([0,25,-1.5,1.5]);subplot(224)stem(n,x4,'fill'),,xlabel('n'),gridontitle('正弦序列')axis([0,25,-5000,12000]);实验二:离散时间LTI系统的时域分析2.1实验目的学会运用MATLAB求解离散时间系统的零状态响应;学会运用MATLAB求解离散时间系统的单位取样响应;学会运用MATLAB求解离散时间系统的卷积和。2.2实验原理及实例分析2.2.1离散时间系统的响应离散时间LTI系统可用线性常系数差分方程来描述,即MjjNiijnxbinya00)()((2-1)其中,ia(0i,1,…,N)和jb(0j,1,…,M)为实常数。MATLAB中函数filter可对式(13-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。函数filter的语句格式为y=filter(b,a,x)其中,x为输入的离散序列;y为输出的离散序列;y的长度与x的长度一样;b与a分别为差分方程右端与左端的系数向量。【实例2-1】已知某LTI系统的差分方程为)1(2)()2(2)1(4)(3nxnxnynyny试用MATLAB命令绘出当激励信号为)()2/1()(nunxn时,该系统的零状态响应。解:MATLAB源程序为a=[3-42];b=[12];n=0:30;x=(1/2).^n;y=filter(b,a,x);stem(n,y,'fill'),gridonxlabel('n'),title('系统响应y(n)')程序运行结果如图2-1所示。2.2.2离散时间系统的单位取样响应系统的单位取样响应定义为系统在)(n激励下系统的零状态响应,用)(nh表示。MATLAB求解单位取样响应可利用函数filter,并将激励设为前面所定义的impDT函数。例如,求解实例2-1中系统的单位取样响应时,MATLAB源程序为(程序运行结果如图2-2所示。)a=[3-42];b=[12];n=0:30;x=impDT(n);h=filter(b,a,x);stem(n,h,'fill'),gridonxlabel('n'),title('系统单位取样响应h(n)')图2-1实例2-1系统的零状态响应图2-2实例2-1的系统单位取样响应2.3编程练习1.试用MATLAB命令求解以下离散时间系统的单位取样响应。(1))1()()2()1(4)(3nxnxnynyny(2))()2(10)1(6)(25nxnynyny解:附:a1=[341];a2=[5/2610];b1=[11];b2=1;n=0:20;subplot(211)impz(b1,a1,n),gridontitle('系统(1)单位取样响应h(n)')subplot(212)impz(b2,a2,n),gridontitle('系统(2)单位取样响应h(n)')2.已知某系统的单位取样响应为10)87(nununhn,试用MATLAB求当激励信号为)5()()(nununx时,系统的零状态响应。解:附:nx=-1:6;nh=-2:12;x=uDT(nx)-uDT(nx-5);h=(7/8).^nh.*(uDT(nh)-uDT(nh-10));y=conv(x,h);ny1=nx(1)+nh(1);ny=ny1+(0:(length(nx)+length(nh)-2));subplot(311)stem(nx,x,'fill'),gridonxlabel('n'),title('x(n)')axis([-41603])subplot(312)stem(nh,h','fill'),gridonxlabel('n'),title('h(n)')axis([-41603])subplot(313)stem(ny,y,'fill'),gridonxlabel('n'),title('y(n)=x(n)*h(n)')axis([-41605]实验三z变换及离散时间LTI系统的z域分析3.1实验目的学会运用MATLAB求离散时间信号的z变换和z反变换;学会运用MATLAB分析离散时间系统的系统函数的零极点;学会运用MATLAB分析系统函数的零极点分布与其时域特性的关系;学会运用MATLAB进行离散时间系统的频率特性分析。3.2实验原理及实例分析3.2.1z正反变换序列nx的z变换定义为nnznxnxzXZ其中,符号Z表示取z变换,z是复变量。相应地,单边z变换定义为0nnznxnxzXZMATLAB符号数学工具箱提供了计算离散时间信号单边z变换的函数ztrans和z反变换函数iztrans,其语句格式分别为Z=ztrans(x)x=iztrans(z)上式中的x和Z分别为时域表达式和z域表达式的符号表示,可通过sym函数来定义。实例1:试用ztrans函数求下列函数的z变换。(1))()cos()(nunanxn;解:(1)z变换MATLAB源程序为x=sym('a^n*cos(pi*n)');Z=ztrans(x);simplify(Z)ans=z/(z+a)实例2:试用iztrans函数求65198)(2zzzzx的z反变换。解:(1)z反变换MATLAB源程序为Z=sym('(8*z-19)/(z^2-5*z+6)');x=iztrans(Z);simplify(x)ans=-19/6*charfcn[0](n)+5*3^(n-1)+3*2^(n-1)其中,charfcn[0](n)是)(n函数在MATLAB符号工具箱中的表示,反变换后的函数形式为)()2335()(619)(11nunnxnn3.2.2系统函数的零极点分析离散时间系统的系统函数定义为系统零状态响应的z变换与激励的z变换之比,即)()()(zXzYzH如果系统函数)(zH的有理函数

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功