您好,欢迎访问三七文档
课程设计报告课程设计题目:离散时间系统分析学号:201420130327学生姓名:刘新强专业:通信工程班级:1421302指导教师:涂其远2015年12月15日目录第0章:Matlab简介第1章:离散时间系统的设计1.课程设计的目的与要求2.课题内容分析3.实验原理4.具体设计方案第2章:离散时间系统的仿真1.画出零极点图,判断系统的稳定性2.求出单位样值响应,并画出图形3.求出系统的幅频响应和相频响应,并画出图形第3章:总结第0章:Matlab简介MATLAB[1]是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2)具有完备的图形处理功能,实现计算结果和编程的可视化;3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。5)简单易用,Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。第1章:离散时间系统的设计一、课程设计的目的与要求1.教学目的通过本课程设计巩固并扩展信号与系统课程的基本概念、基本理论、分析方法和实现方法,培养学生正确的设计思想,理论联系实际的科学态度,严肃认真、实事求是的科学态度和勇于探索的创新精神。培养学生综合运用所学信号与系统及数字信号处理的知识,分析和解决工程技术问题的能力增强软件编程实现能力和解决实际问题的能力。2.教学要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:通过课程设计,提高学生综合运用所学知识来解决实际问题、查阅文献资料、及进行科学实验或技术设计的能力,为毕业设计(论文)打基础。每个学生在课程设计选题中选做一个专题,学会用MATLAB语言编写信号与系统及数字信号处理的仿真程序;认真分析每个题目的具体要求;上机前初步编好程序,上机时认真调试程序;课程设计结束时提交符合格式要求的课程设计报告。二、课题内容分析本次试验要求有以下三个方面:1、自行设计某离散时间系统函数,至少是二阶的系统,画出零极点图,判断系统的稳定性。2、求出单位样值响应,并画出图形。3、求出系统的幅频响应和相频响应,并画出图形。在此次课程设计中,多次要运用到MATLAB软件解方程以及绘制图形,所以在进行设计之前需要充分掌握用该软件解方程和绘制图形的能力。三、实验原理系统函数H(z)的零、极点的分布完全决定了系统的特性,根据系统函数可求得零、极点。因此,系统函数的零极点分布对我们进行离散系统特性的分析具有非常重要的意义。通过对系统函数零极点的分析,我们可以分析离散系统以下几个方面的特性:(1)离散系统的稳定性(2)求得单位样值响应(3)离散系统的频率特性(幅频响应和相频响应)一、要通过系统函数零极点来分析系统特性,首先就要求出系统函数的零极点,然后绘制零极点图。MATLAB为我们快速、高效地分析离散系统特性提供了强有力的工具下面就介绍如何利用MATLAB实现这一过程。设离散系统的系统函数为:H(z)=(b1*z^2+b2*z+b3)/(a1*z^2+a2*z+a3)系统函数的零点和极点可以用MATLAB的tf2zp()函数来实现,调用函数tf2zp()的命令格式为H(z)=(b1*z^2+b2*z+b3)/(a1*z^2+a2*z+a3)b=[b1b2b3];%分子系数,按降幂排列a=[a1a2a3];%分母系数,按降幂排列[z,p,k]=tf2zp(b,a);%z为零点,p为极点,k为该除式系数Matlab中提供了画零极点的函数zplane(),调用格式为:zplane(z,p);%作零极点图根据零极点图来判断该系统的稳定性,当极点全部落在单位圆内可知,系统稳定;极点刚好在单位圆上,临界稳定;落在圆外,系统不稳定。二、单位样值响应函数impz()能绘出向量a和b定义的离散系统在指定时间范围内单位响应的时域波形,并能求出系统单位响应在指定时间范围内的数值解。调用格式为:impz(b,a,n)该调用格式将绘出由向量a和b定义的离散系统在0-n(n必须为整数)离散时间范围内单位响应的时域波形。对上例,若运行如下命令impz(b,a,60),则绘出系统在0-60取样点范围内单位响应的离散时间波形。三、用MATLAB实现离散系统的频率特性分析离散系统的幅频特性曲线和相频特性曲线直观地反映了系统对不同频率的输入序列的处理情况。因此,我们只要知道离散系统的频率响应H(e^j*w)便可分析离散系统的整个频率特性,通过系统函数H(z)的分析得到系统的频率响应H(e^j*w)。设某离散系统的系统函数为H(z),则该系统的频率响应为H(ej*w)=|H(ej*w)|*ej*φ(w)=H(z)|z=j*wMATLAB为用户提供了专门用于求离散系统频率响应的函数freqz(),调用此函数格式:[H,wl=freqz(b,a,N)该调用格式将计算离散系统在ake(k)范围内N个频率等分点的频率响应H(ej*w)的值。因此,我们可以先调用freqz()函数计算出离散系统频率响应的值,然后再利用MATLAB的abs()和angle()函数及plot命令,即可绘制出系统在0-π或0-2π范围内的幅频特性和相频特性曲线。四、具体设计方案(一)利用MATLAB绘制离散系统零极点图设离散系统的系统函数为:H(z)=(b1*z^2+b2*z+b3)/(a1*z^2+a2*z+a3)Matlab代码:H(z)=(b1*z^2+b2*z+b3)/(a1*z^2+a2*z+a3)b=[b1,b2,b3,…];%分子系数,按降幂排列a=[a1,a2,a3,…];%分母系数,按降幂排列[z,p,k]=tf2zp(b,a);%z为零点,p为极点,k为该除式系数zplane(z,p);%作零极点图(二)求出单位样值响应,并画出图形接着上面的代码写:…h=impz(b,a,N);%求出单位样值响应stem(h);%画出图形(三)求出系统的幅频响应和相频响应,并画出图形接着上面的代码写:…figure;[H,w]=freqz(b,a);%求频谱hx=angle(H);%相位谱hf=abs(H);%幅度谱subplot(2,1,1)plot(w,abs(H));xlabel('w');ylabel('|H(e^jw)|')title('幅频响应')subplot(2,1,2);plot(angle(H));%相位谱title('相频响应');xlabel('w');ylabel('hx(w)');第2章:离散时间系统的仿真设离散系统的系统函数为:H(z)=(5*z^2+4*z+3)/(3*z^2+2*z+1)一、画出零极点图,判断系统的稳定性b=[543];%分子系数,按降幂排列a=[321];%分母系数,按降幂排列[z,p,k]=tf2zp(b,a);%求零点极点z为零点p为极点k为该除式系数zplane(b,a);%画零极点图title('零极点图');xlabel('Rez');ylabel('jImz');绘出图形如下:从图中可以看出零极点都落在单位圆内,故该系统是稳定的。二、求出单位样值响应,并画出图形接着上面的代码写:…figure;h=impz(b,a,0:20);%求单位样值响应stem(h);%画出单位样值响应title('单位样值响应');xlabel('n');ylabel('h(n)');绘出图形如下:h(n)在n趋近于无穷时为零,也即h(n)单调递减。也验证了H(z)为稳定的系统函数。三、求出系统的幅频响应和相频响应,并画出图形接着上面的代码写:…figure;[H,w]=freqz(b,a);%求频谱hx=angle(H);%相位谱hf=abs(H);%幅度谱subplot(2,1,1)plot(w,abs(H));xlabel('w');ylabel('|H(e^jw)|')title('幅频响应')subplot(2,1,2);plot(angle(H));%相位谱title('相频响应');xlabel('w');ylabel('hx(w)');绘出图形如下:总结在为期一周的信号与系统课程设计中,我学到很多有用的知识,也积累了不少宝贵的经验。首先,通过网络和老师发的电子稿《matlab指导书》,我慢慢的了解MATLAB,刚开始时几乎什么都不懂。然后开始根据老师发的《课程设计指导书》和老师的指点以及通过查阅一些图书资料和网上资料,慢慢的开始进行编写代码,碰到不懂的地方,我先通过查找资料自己先理解一下,实在搞不懂就请教老师,老师也很耐心的讲解,也跟同学们讨论,这样一步一步的解决各种问题,最后圆满的完成了本次课程设计。在此次课程设计过程中,老师以及同学们的帮助有很大作用,当然也离不开网络的作用,互联网可以很好的查找资料。在此次实验过程中,感觉到了matlab功能的强大,编写这软件的人真的很厉害。如今各行各业几乎都可以用到,非常有利于计算。在这次课程设计后,知道了理论与实际相结合才可以解决问题,照搬课本上的,有时并行不通。也许在这个过程中会遇到很多困难,但困难并不可怕,可怕的是没有勇气去解决。总之,我在本次课程设计中学到了很多关于MATLAB的知识,掌握这种工程性软件非常有必要。附程序:b=input('分母系数;b=[b1,b2,b3,...]=');a=input('分子系数;a=[a1,a2,a3,...]=');[z,p,k]=tf2zp(b,a);%求零点、极点zplane(b,a);%画零极点图title('零极点图');xlabel('Rez');ylabel('jImz');figure;h=impz(b,a,0:20);%求单位样值响应画出单位样值响应stem(h);title('单位样值响应');xlabel('n');ylabel('h(n)');figure;[H,w]=freqz(b,a);%求频谱hx=angle(H);%相位谱hf=abs(H);%幅度谱subplot(2,1,1)plot(w,abs(
本文标题:离散时间系统分析
链接地址:https://www.777doc.com/doc-3735170 .html