《毕业设计(论文)信号与系统中的典型问题的MATLAB分析.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)信号与系统中的典型问题的MATLAB分析.doc(25页珍藏版)》请在三一办公上搜索。
1、2011届学士学位论文 信号与系统中典型问题的MATLAB分析 系 别: 电子信息系 专 业: 电子信息科学与技术 学 号: 姓 名: 指 导 教 师: 指导教师职称: 教 授 2011年4月30日信号与系统中典型问题的MATLAB分析摘要 从信号与系统课程的特点出发,结合MATLAB软件优势,针对实例进行分析。主要从连续信号、离散信号两方面应用MATLAB软件进行仿真和分析。分别对连续信号和离散信号中线性时不变(LTI)系统信号分析,应用MATLAB软件进行仿真和分析。对连续时间信号和离散时间信号的线性时间不变(LTI)系统的变换域,卷积和采样定理进行了模拟。实例中运用了连续模块库、离散模块
2、库等。通过实例表明了MATLAB软件的便捷性,可以提高工作效率。实践证明,采用MATLAB软件进行辅助分析可以我们对知识点的理解更深入更透彻。关键词 MATLAB仿真;时域分析;频域分析;卷积;序列卷和;冲激响应;阶跃响应;The Applied Research of Signal ProcessingBased on MATLABAbstract we give an overview of the examples from the characteristics of signal and system course, combining with MATLAB software ad
3、vantages. The main idea is that MATLAB simulation and analysis software were applied in the continuous-time signals and discrete-time signals. In continuous-time signals and discrete-time signals the response signal of linear time invariant (LTI) system and its analysis of the transform domain and c
4、onvolution and Sampling theorem were simulated. The examples used the continuous and discrete blocks library and communication toolbox, etc. Some examples show that processing signals can bring us great convenience and high efficiency. Practice has proved, using MATLAB software were aided analysis o
5、n knowledge points we can understand deeper and more thoroughly. Key-words MATLAB; the Time-domain Analysis;Frequency domain analysis;convolution ;Sequence convolution ;Impulse response ;Order step-response 目 录1引言12 MATLAB软件介绍23 MATLAB对连续时间信号的分析33.1 MATLAB仿真线性时不变(LTI)系统响应的信号表示33.2 MATLAB对连续信号变换域的分析4
6、3.3 连续时间信号的卷积计算及MATLAB的实现53.4 连续时间系统抽样定理的验证63.5连续时间系统频域特性84 MATLAB对离散时间信号的分析104.1 离散系统的单位样值响应114.2 离散系统的变换域分析124.3 离散时间信号的卷积计算13结论15参考文献16致 谢17附录一18附录二19附录三211 引言随着软件的发展,为仿真实验提供了另一思路,MATLAB软件具有强大的数值计算和矩阵处理功能。针对不同的问题设计了不同的工具箱,编程语言简单方便,无需花太多的时间去学习编程。同时,它还有友好的图形界面,对需要绘图的任务只需要简单的两句程序就可完成。因此,广泛用于工程计算、图像处
7、理、系统仿真等领域,也培养了学生主动获取知识和独立解决问题的能力,使学习由抽象的纯理论演变成理论与应用紧密结合方式,MATLAB软件的这种优势也为其今后的发展打下了坚实的基础。信号与系统是通信和电子信号类专业的核心基础课,其中的概念和分析方发广泛应用于通信、自动控制、信号与信息处理、电路与系统等领域。我们现在从来两各个大方向去分析信号与系统中的电信问题,即连续时间系统和离散时间系统。从卷积,变换域切入,在单独分析连续时间系统的响应及离散时间响应。从多个层次去分析和对比,并用MATLAB经行仿真。2 MATLAB软件介绍MATLAB是国际公认的优秀科技应用软件,是计算机辅助分析与设计、算法研究和
8、应用开发的基础工具和首选平台,是目前科学研究领域最流行的应用软件,其特点1概括为:(1) 高效的数字计算方法及符号计算功能,使用户从繁杂的数学运算分析中解脱出来。(2) 完备的图形处理功能,实现计算结果和编程的可视化。(3) 友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和掌握。(4) 功能丰富的应用工具箱,为用户提供了大量方便而实用的处理工具。(5) Simulink动态建模与仿真系统,丰富而功能强大的器件库,提供了实时方便的仿真手段。MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文Matrix Laborutor
9、y(矩阵实验室)的缩写。是现今国际公认的最优秀的科技应用软件,它具有强大的数值计算和工程运算功能、符号计算功能和科学数据可视化能力。广泛应用于数值计算、图形分析、过程控制、系统识别、实时控制和动态仿真等领域。成为大学生、硕士生和博士生必须掌握的基本技能。同时,MATLAB也被研究单位和工业部门广泛应用,使科学研究和解决各种具体问题的效率大大提高。MATLAB集成环境主要包括五个部分:MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和数学建模、小波分析、MATLAB API(App lication Program Interface)。MATLAB语言是以数组为基本数据
10、单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利用SIMULINK对系统进行仿真与分析2,在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。3 MATLAB对连续时间信号的分析3.1 MATLAB仿真线性时不变(LTI)系统响应的信号表示在线性时不变(LTI)系统中,由一个微分方程求解的系统冲击响应和阶跃响应是个一个经常碰到的一个问题,而时域解法和变换域解法有时显
11、得过于麻烦,现在用MATLAB实现解法。 在使用MATLAB前介绍几种在此类仿真中常用的函数3:(1) impulse(sys,t)求解系统冲激响应 (2) step(sys,t)求解阶跃响应在该调用格式中sys描述系统的微分方程系统模型。t则表示输入信号的行向量,即输入信号时间范围的向量。 典型问题如下:已知系统的输入输出微分方程y(t)+5y(t)+6y(t)=+2f(t),求解系统冲激响应h(t)和阶跃响应g(t)。MATLAB程序如下:a=1,4,3;b=1,2;subplot(2,1,1),impulse(b,a),xlabel(time(sec),ylabel(h(t);subpl
12、ot(2,1,2),step(b,a),xlabel(time(sec),ylabel(g(t);其仿真波形如图1所示。图1 单位冲激响应、单位阶跃响应通过例子说明了可以利用impulse(sys,t)求解系统冲激响应,step(sys,t) 求解阶跃响应。为微分方程的求解提供了更广阔的计算方法。3.2 MATLAB对连续信号的变换域的分析 除了时域分析方法外,还有变换域分析的方法。连续时间信号与系统的变换域分析方法主要有傅立叶变换与拉普拉斯变换。采用变换域的分析方法较之经典的时间域方法有许多突出的优点4。下面从频域进行分析。 典型问题如下:设周期矩形脉冲信号x(t)的脉冲宽度为,脉冲幅度为A
13、,周期为T,画出该信号的频谱图。根据傅立叶级数理论可知,周期矩形脉冲信号的傅立叶系数为:MATLAB程序如下:n=-30:30;A=1;tao=1;T=8;W=2*pi/T;X=n*tao/T;Fn=A*tao*sinc(X)/T;stem(n*W,Fn),grid onxlabel(w/(rad/s),ylabel(幅度)其仿真波形如图2所示:图2 周期矩形脉冲x(t)的频谱可以看出MATLAB实验提供了大量的实例,可以从中学习到信号与系统的一些基本原理与实际应用。在实验中我们可以观察信号与系统的相应变化。在实验过程中,会有感性的认识和直观的验证,可以加深对“信号与系统”原理的理解。3.3
14、连续时间信号的卷积计算及MATLAB的实现 在信号与系统分析中,卷积不仅仅是作为一种数学运算方式,它还反映了求解系统响应的物理过程,因而,卷积也是一种极为重要的系统分析工具。卷积的定义:设有两个函数和,积分称为的和卷积积分,简记卷积,记为或 5。 典型问题如下:有两个门函数x(t)=u(t)-u(t-1)和h(t)=u(t-1)-u(t-3),求函数x(t)和h(t)的卷积。 注:u(t)等为阶跃函数MATLAB程序见附录一,其仿真波形如图3所示:图3 两个连续信号的卷积 如试验结果所示,两个门函数卷积结果是两个门函数想x(t)和h(t-)相乘以后的波形与横轴的两波形公共时域内构成的面积,但这
15、里的t是可以变的。3.4 连续时间系统抽样定理的验证随着计算机技术的飞速发展、专用数字信号处理器件与算法的不断出现,不仅传统上以连续时间信号处理技术为原理的设备或系统逐渐被以离散时间信号处理技术为原理的设备或系统取代,而且还可以利用离散时间信号处理技术实现原来连续时间系统不可能实现的功能。 实际应用中虽然有很多信号本身就具有时间离散性而成为离散时间信号,但大多数情况遇到的还是连续时间信号。因此,为充分利用数字信号处理技术的优势,首先要将连续时间信号转换成离散时间信号。经过离散时间处理后,再把需要的输出转换为连续时间信号。这种信号的处理方式所面临的问题是,连续时间信号被转换成离散时间信号后,它是
16、否保留了原信号的全部信息,对离散时间间隔有什么要求?在时域,将连续时间信号转换为离散时间信号的过程称为“时域抽样”。根据傅里叶变换的对偶性,在频域将连续频谱转换为离散频谱的过程则称为“频域抽样”。先介绍时域抽样定理: 一个最高频率为(角频率为)的限带信号f(t)可以用均匀等间隔的抽样信号fs(t)= f()的样点值是唯一确定。其中允许的最大抽样间隔称为奈奎斯特(Nyquist)间隔;允许的最小抽样频率称为奈奎斯特(Nyquist)频率;该定理还表明在满足条件下所得到的抽样点的值f()包含了原信号f(t)的全部信息,因此对f()的传输可代替对f(t)的传输。 典型问题如下:现有上限频率为=50H
17、z和=60Hz的两个时限信号f(t)=A,然后分别采用频率为=100Hz的抽样频率。然后通过MATLAB验证抽样定理的正确性,通过波形的是否出现混频失真来验证抽样定理5。MATLAB程序见附录二,其仿真波形如图4所示:其中f(t)为时限信号f(t)=A。 图4 抽样定理的验证图4(a)显示了上限频率为=50Hz的时限信号f(t)=A,被频率为=100Hz的抽样频率的过程。图4(a)显示了上限频率为=60Hz的时限信号f(t)=A,被频率为=100Hz的抽样频率的过程。如图4(a),图4(b)图形所示时限信号f(t)的频谱,经过抽统一抽样频率抽样后,得到了不同的抽样信号。显然,当=2=100Hz
18、时不会出现混频失真,当=120Hz时将会出现混频失真。验证了抽样定理的正确。3.5连续时间系统频域特性对于稳定的线性系统,当输入信号为正弦信号时,系统的稳态输出仍为同频率的正弦信号,只是幅值和相位发生了改变,如图5(a)所示,称这种过程为系统的频率响应。 图5(a) 称为系统的幅频特性,它是频率 的函数; 称为系统的相频特性,它是频率 的函数;称为系统的频率特性。典型问题如下:低通滤波器的频率响应为,画该系统频域特性和相频特性。MATLAB程序如下:b=1;a=1,3,2;w=-15:0.05:15;H=freqs(b,a,w);mag=abs(H);phase=angle(H);subplo
19、t(2,1,1),plot(w,mag);set(gca,xtick,-15,-10,-5,0,5,10,15);axis(-15,15,-0.02,0.52);xlabel(omega(rad/s);ylabel(|H(j/omega)|);gridsubplot(2,1,2),plot(w,phase);set(gca,xtick,-15,-10,-5,0,5,10,15);set(gca,ytick,-4,-2,0,2,4);axis(-15,15,-4,4);xlabel(omega(rad/s);ylabel(phi(omega);grid其仿真波形如图5(b)所示:图5(b) 连续
20、时间系统频域特性和相频特性 4 MATLAB对离散时间信号的分析4.1 离散系统的单位样值响应如果系统的输入为单位序列信号(k),初始状态y(-1)、y(-2)、y(-k)均为零,其响应称为单位样值响应,常用h(k)表示。研究单位样值响应的意义在于单位样值信号是一种基本信号,系统在任一信号激励下的零状态响应能够用单位样值响应求解。此外,单位样值响应还可用于研究系统的性状。当描述系统的差分方程右端只有d(k)项时,由于d(k)在k=0处值为1,在k1处值均为零,可采用递推方法求出h(0),当k1时,差分方程右端变为零,则可按求解零输入响应的方法求出h(k)。在使用MATLAB前介绍几种在此类仿真
21、中常用的函数6:(1) impz(sys,k)求解系统单位样值响应 (2) stepz(sys,k)求解系统的单位阶跃响应在该调用格式中sys描述系统的差分方程系统模型。k则表示输入信号的行向量,即输入信号时间范围的向量。典型问题如下: 已知描述某离散系统的差分方程为640y(k+7)+1440y(k+6)+1552y(k+5)+1140y(k+4)+728y(k+3)+287y(k+2)+51y(k+1)+4.5y(k)=2f(k+2)+2f(k)试求系统的单位样值响应。MATLAB程序如下:a=640,1440,1552,1140,728,287,51,4.5;b=2,0,2;h=impz
22、(b,a);stem(h,filled)title(单位样值响应h(k)其仿真波形如图6所示:图6 单位样值响应h(k)4.2 离散系统的变换域分析典型问题如下: 求矩形脉冲序列f(k)=频谱图,用MATLAB进行求解。解 MATLAB程序如下:a=0,0,1,-1,b=1,0,0,0,0,-1%绘f(k)n=-3:3f=Heaviside(n+3)-Heaviside(n-3)subplot(2,1,1),stem(n,f,filled),gridtitle(f(k)的图形)%绘F()b=1,0,0,0,0,-1;a=0,0,1,-1;w=linspace(-2*pi,2*pi,512);H
23、=freqz(b,a,w);subplot(2,1,2),plot(w/pi,H),gridtitle(f(k)的频谱图)其仿真波形如图7所示: 图7 矩形序列的频域分析4.3 离散时间信号的卷积计算卷积运算广泛用于通讯、电子、自动化等领域的线性系统的仿真、分析及数字信号处理等方面。在Matlab中可以使用线性卷积、圆周卷积和快速傅里叶运算实现离散卷积。线性卷积是工程应用的基础,但圆周卷积和快速傅里叶运算实现线性离散卷积具有速度快等优势,圆周卷积采用循环移位,在Matlab中没有专用函数,需要根据圆周卷积的运算过程编制程序代码;快速傅里叶运算(FFT)是DSP的核心算法。在序列比较长时FFT是
24、一种最合适的方法,运算速度快、程序简单,序列越长其优势越明显7 。离散时间信号的卷积计算是有一定的繁琐性的,但利用MATLAB语句及仿真图形可以很好的解决计算过程。离散时间系统的任意激励信号x(n)可以表示为单位样值加权和的形式 设系统对单位样值(n)的响应为h(n),有时不变特性可知,对于(n-m)的延时响应就是h(n-m);再由线性系统的均匀性可知,对于x(m)(n-m)序列的响应就是x(m)h(n-m),最后根据叠加性得到系统对于序列总的响应为 此式称为“卷积和”8。利用MATLAB可以快速求出两个离散序列的卷积和。典型问题如下: 一般序列f1(n)=1,2,1,矩形序列f2(n)=u(
25、n+2)-u(n-2),求函数f1和f2的卷积。注:u(k)等为单位阶跃序列。MATLAB的代码见附录三。其仿真波形如图8所示:图8 一般序列的卷积和 通过上述例子可以看出,利用MATLAB的编程语言及库函数很好的解决了信号与系统中序列卷积的计算问题,比用普通的方法简单快捷,并通过实验仿真图形显示出结果更加直观有利于理解,这样学生就能把精力集中在对理论知识的理解上了,不必一味的忙于计算。结 论本论文利用MATLAB系统仿真软件对信号与系统中的一些典型问题进行了分析研究。由于MATLAB仿真软件是一个可视化应用软件,因此在处理典型问题时就会得心应手。MATLAB仿真软件在信号波形、系统仿真9、优
26、化技术、数字信号处理、时间序列分析10、动态系统仿真等方面的应用也在本文中深刻的体现出来了。MATLAB仿真软件的运用使繁琐的问题变得轻而易举,并且形象而直观。这对我们学习信号与系统的基础理论及其应用其到了重要作用,同时也在学习过程中掌握了计算机辅助分析问题和解决问题的方法,尤其是一些较为抽象的理论或设计应用。这一切都归功于MATLAB仿真软件强大的集成环境(主要包括五个部分:MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和MATLAB API (App lication Program Interface))。MATLAB语言是以数组为基本数据单位,包括控制流程语句
27、、函数、数据结构、输人输出及面向对象等特点的高级语言。从而把实际问题转化为应用程序简单而且方便。 参考文献1 陈怀琛Matlab及在电子信息课程中的应用M北京:电子工业出版,20032 王正林,王胜开,陈国顺Matlab/Simulink与控制系统仿真M北京:电子工业出版社,20053 张小虹信号与系统M西安:西安电子科技出版社,20044 郑君里,应启珩,杨为理.信号与系统(第二版)M.北京:高等教育出版社,20005 杨晓菲,何 丰.信号与系统M.北京:科学出版社,20086 谷源涛,应启珩,郑君里.信号与系统Matlab综合实验M.北京:高等教育出版社,20087刘卫国.MATLAB程序
28、设计与应用(第二版)M.北京:高等教育出版社,20068 丁玉美,高西全.数字信号处理M.西安:安电子科技大学出版社,20009 青松,程岱松,武建华数字通信的SystemView仿真与分析M北京:北京航空航天大学出版社,200110 程佩青. 数字信号处理教程(第二版)M. 北京:清华大学出版社,2002致 谢 在论文即将完成之际,我的心情无法平静,从开始进入选择课题到论文的顺利完成,我的工作的完成包含着许多老师、同学和朋友的帮助。在这里,请曾经帮助过我的老师、同学和朋友接受我最诚挚的谢意!记得从论文的开始阶段,我就得到了我的指导老师-*教授的精心指导。杨老师治学的严谨,学识的广博,为我营造
29、了一种良好的精神氛围。众人周知:“授人以鱼不如授人以渔”,经常和老师在一起,我不仅接受了全新的思想观念,领会他的基本的思考方式,掌握了通用的研究方法,而且还明白了许多待人接物与为人处世的道理。我无法用准确生动的语言来淋漓尽致地描述自己的真实感受,只好将它深深地埋在心底,化作一道虔诚的祝福:愿老师合家欢乐,工作顺利。对于淮北师范大学信息学院我的师长和同学给予的指导和帮助,在此表示衷心的感谢!在他们的关心帮助下,我很顺利完成了毕业论文,同时感谢07级电科班我的同学们,感谢他们大学四年来在学习和生活上给予我的帮助和支持。最后,再次对关心、帮助我的老师和同学表示衷心地感谢。附录一 连续时间信号的卷积的
30、MATLAB的程序如下:p=0.01;t1=0:p:1;f1=ones(size(t1);t2=1:p:3;f2=ones(size(t2);f=conv(f1,f2); %计算序列x与h的卷积和ff=f*p;t0=t1(1)+t2(1); %计算序列f非零样值的起点位置t3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度t=t0:p:(t3*p+t0); %确定卷积和f非零样值的时间向量subplot(2,2,1)plot(t1,f1) %在子图1绘x(t)时域波形图title(x(t)xlabel(t1)ylabel(x(t)subplot(2,2,2)p
31、lot(t2,f2) %在子图2绘h(t)时波形图title(h(t)xlabel(t2)ylabel(h(t)subplot(2,2,3)plot(t,f); %画卷积y(t)的时域波形h=get(gca,position); %获取坐标轴的未知属性h(3)=2.5*h(3);set(gca,position,h) %将第三个子图的横坐标范围扩为原来的2.5倍title(y(t)=x(t)*h(t)xlabel(t)ylabel(y(t)附录二连续时间系统抽样定理的验证的MATLAB的程序如下: %时域取样t=-0.05:0.001:0.05;fc=100;f1=fc/2*sinc(fc*t
32、/4).*sinc(fc*t/4);subplot(3,3,1),plot(t,f1),axis(-0.05,0.05,-0.1,60),title(时限信号f(t)的时域图形), %f(t)波形k=-0.05:0.005:0.5;Sk=(k)=-0.05;fs=fc/2*sinc(fc*k/4).*sinc(fc*k/4);subplot(3,3,4),stem(k,Sk,.),axis(-0.05,0.05,-0,1.1),title(S(t)抽样脉冲信号的时域图形), %S(t)波形subplot(3,3,7),stem(k,fs,.),hold on,plot(t,f1,:),axis
33、(-0.05,0.05,-0.1,60),title(fs(t)为抽样信号的时域图形), %fs(t)波形 %频域卷积Ts=1000;f0=0-1.5;ft=20;df=0.001;f2=0;f3=1;f=f0:df:ft;sf=length(f);S1=zeros(1,sf); for f1=-1:1:2; n1=floor(f1-f0)/df); S1(n1)=1/df;endF1=tripuls(f,0.8,0.00125);F2=tripuls(f,1.2,0.00125);Fs1=conv(F1,S1)/Ts;Fs2=conv(F2,S1)/Ts;n=length(Fs1);ff1=
34、(0:n-1)/Ts-3;ff2=(0:n-1)/Ts-2;ff3=(0:n-1)/Ts-1;subplot(3,3,2),plot(f,F1);axis(-1.5,1.5,-0.1,1.1),grid, %F1(f)图像title(a)F1(f)图像)subplot(3,3,5),plot(f,S1);axis(-1.5,1.5,-0.1,1.1),grid, %S1(f)图像title(S(t)抽样脉冲信号)subplot(3,3,8),plot(ff1,Fs1);axis(-1.5,1.5,-0.1,1.1),grid, %Fs1(f)图像title(Fs1(f)图像)subplot(3
35、,3,3),plot(f,F2);axis(-1.5,1.5,-0.1,1.1),grid, %F2(f)图像title(b)F2(f)图像)subplot(3,3,6),plot(f,S1);axis(-1.5,1.5,-0.1,1.1),grid, %S(f)图像title(S(t)抽样脉冲信号)subplot(3,3,9),plot(ff1,Fs2);axis(-1.5,1.5,-0.1,1.1),grid, %Fs2(f)图像title(Fs2(f)图像)附录三离散时间信号的卷积计算的MATLAB的程序如下:f1=1,2,1;f2=ones(1,5);k1=-1 0 1;k2=-2:2
36、;f=conv(f1,f2) %计算序列f1与f2的卷积和fk0=k1(1)+k2(1); %计算序列f非零样值的起点位置k3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度k=k0:k0+k3 %确定卷积和f非零样值得序号向量subplot(3,3,1)stem(k1,f1) %在子图1绘制序列f1(k)时域波形图 title(f1(n)xlabel(n)ylabel(f1(n)subplot(3,3,4)stem(k2,f2) %在子图2绘制序列f2(k)时域波形图 title(f2(n)xlabel(n)ylabel(f2(n)subplot(3,3,7)stem(k,f) %在子图3绘制序列f(k)时域波形图 title(f1(n)与f2(n)的卷积和f(n) xlabel(n) ylabel(f(n) h=get(gca,position); h(3)=2.5*h(3); set(gca,position,h) % 将第三个子图的横坐标范围扩为原来的2.5倍