854611242matlab课程设计(含完整程序).doc

上传人:laozhun 文档编号:2385623 上传时间:2023-02-17 格式:DOC 页数:39 大小:978.50KB
返回 下载 相关 举报
854611242matlab课程设计(含完整程序).doc_第1页
第1页 / 共39页
854611242matlab课程设计(含完整程序).doc_第2页
第2页 / 共39页
854611242matlab课程设计(含完整程序).doc_第3页
第3页 / 共39页
854611242matlab课程设计(含完整程序).doc_第4页
第4页 / 共39页
854611242matlab课程设计(含完整程序).doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《854611242matlab课程设计(含完整程序).doc》由会员分享,可在线阅读,更多相关《854611242matlab课程设计(含完整程序).doc(39页珍藏版)》请在三一办公上搜索。

1、课程设计任务书学生姓名: 王伟 _ 专业班级: 电子科学与技术0703班 指导教师: 钟毅 _ 工作单位: 信息工程学院 题 目: 连续时间信号傅里叶级数分析及MATLAB实现 初始条件:MATLAB 6.5要求完成的主要任务: 深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。1.用MATLAB实现周期信号的傅里叶级数分解与综合。2.用MATLAB实现周期信号的单边频谱及双边频谱。3.用MATLAB实现典型周期信号的频谱。4.撰写MATLAB应用实践课程设计说明书。时间安排:学习MATLAB

2、语言的概况 第1天学习MATLAB语言的基本知识 第2、3天学习MATLAB语言的应用环境,调试命令,绘图能力 第4、5天课程设计 第6-9天答辩 第10天指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘要IABSTRACTII绪论11 MATLAB内容简介21.1 MATLAB语言功能21.2 MATLAB语言特点22 连续时间周期信号的傅里叶级数CTFS32.1 连续时间周期信号的分解32.1.1 三角形式的傅里叶级数32.1.2 指数形式的傅里叶级数42.2 连续时间周期信号的傅里叶综合43 连续时间周期信号的频谱分析64 周期信号的傅里叶级数分解与综合的仿真波形

3、84.1 实现流程84.2 MATLAB算法提示84.3 程序运行结果95连续时间周期信号的频谱分析的仿真波形105.1实现流程105.2 MATLAB算法提示115.3 程序运行结果及分析125.3.1 程序运行结果125.3.2脉冲宽度与频谱的关系135.3.3脉冲周期与频谱的关系156 典型周期脉冲的频谱186.1 周期方波脉冲频谱的MATLAB实现186.2 周期三角波脉冲频谱的MATLAB 实现20结束语23致谢24参考文献25附录26摘要MATLAB目前已发展成为由MATLAB 语言、MATLAB 工作环境、MATLAB 图形处理系统、MATLAB 数学函数库和MATLAB 应用程

4、序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。本次课程设计则在深入研究连续时间信号傅里叶级数分析理论知识的基础上,利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,通过MATLAB编程进行图形功能仿真,从而实现连续时间周期信号频域分析的仿真波形,包括以下内容:用MATLAB实现周期信号的傅里叶级数分解与综合的波形;用MATLAB实现周期信号的单边频谱及双边频谱的波形与分析;用MATLAB实现典型周期信号的频谱的波形。关键词:MATLAB;图形处理;傅里叶级数;周期信号;频谱AbstractMATLAB now evolved into MATLAB

5、language, MATLAB working environment, MATLAB graphics processing systems, MATLAB math library and the MATLAB application program interface has five major components of the set of numerical computation, graphics processing, program development as one powerful system. The curriculum design, in-depth s

6、tudy Fourier series analysis of continuous-time signal on the basis of theoretical knowledge, using MATLAB a powerful graphics processing capabilities, symbolic computing and numerical computing capabilities, through the functional simulation MATLAB graphical programming in order to achieve continuo

7、us time periodic signal frequency domain analysis of the simulation waveforms, including the following: realization of periodic signals using MATLAB Fourier series decomposition and integration of the waveform; periodic signals using MATLAB to achieve unilateral and bilateral spectrum waveform and s

8、pectrum analysis; using MATLAB to achieve a typical cycle of the signal wave spectrum.Keywords: MATLAB; graphics processing; Fourier series; periodic signal; Spectrum绪论在科学技术飞速发展的今天,计算机正扮演着愈来愈重要的角色。在进行科学研究与工程应用的过程中,科技人员往往会遇到大量繁重的数学运算和数值分析,传统的高级语言Basic、Fortran 及C 语言等虽然能在一定程度上减轻计算量,但它们均要求应用人员具有较强的编程能力和

9、对算法有深入的研究。另外,在运用这些高级语言进行计算结果的可视化分析及图形处理方面,对非计算机专业的普通用户来说,仍存在着一定的难度。MATLAB 正是在这一应用要求背景下产生的数学类科技应用软件。它具有的顶尖的数值计算功能、强大的图形可视化功能及简洁易学的“科学便捷式”工作环境和编程语言,从根本上满足了科技人员对工程数学计算的要求,并将科技人员从繁重的数学运算中解放出来,因而越来越受到广大科技工作者的普遍欢迎1。MATLAB 是matrix 和laboratory 前三个字母的缩写,意思是“矩阵实验室”,是MathWorks 公司推出的数学类科技应用软件。其Dos 版本(MATLAB 1.0

10、)发行于1984 年,现已推出了Windows 版本(MATLAB 5.3)。经过十多年的不断发展与完善,MATLAB 已发展成为由MATLAB 语言、MATLAB 工作环境、MATLAB 图形处理系统、MATLAB 数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。MATLAB 由“主包”和三十多个扩展功能和应用学科性的工具箱(Toolboxs)组成。MATLAB 语言是以矩阵计算为基础的程序设计语言,语法规则简单易学,用户不用花太多时间即可掌握其编程技巧。其指令格式与教科书中的数学表达式非常相近,用MATLAB 编写程序尤如在便笺上列

11、写公式和求解,因而被称为“便笺式”的编程语言。另外,MATLAB 还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB 函数直接求解,大大提高了编程效率,其程序编译和执行速度远远超过了传统的C 和Fortran 语言,因而用MATLAB 编写程序,往往可以达到事半功倍的效果。在图形处理方面,MATLAB 可以给数据以二维、三维乃至四维的直观表现,并在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使科技人员对大量原始数据的分析变得轻松和得心应手。正是由于 MATLAB 在数值计算及符号计算等方面的强大功能,使MATLAB一路领先,成为数学类科技应用软件中

12、的佼佼者。目前,MATLAB 已成为国际上公认的最优秀的科技应用软件。MATLAB 的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。1 MATLAB内容简介1.1 MATLAB语言功能MATLAB功能丰富,可扩展性强。MATLAB软件包括基本部分和专业扩展两大部分的功能。基本部分包括:矩阵的运算和各种变换;代数和超越方程的求解;数据处理和傅立叶变换;数值部分等等,可以充分满足大学理工科本科的计算需要。扩展部分称为工具箱。它实际上是用MATLAB的基本语句辩称的各种子程序集,用于解决某一方面的专门问题,或实现某一类的新

13、算法。MATLAB 具有以下基本功能:(1)数值计算功能;(2)符号计算功能;(3)图形处理及可视化功能;(3)可视化建模及动态仿真功能。1.2 MATLAB语言特点MATLAB 给用户带来的是最直观、最简洁的程序开发环境。它具有以下特点:(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB 程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。(2)运算符丰富。由于MATLAB 是用C 语言编写的,MATLAB 提供了和C语言几乎一样多的运算符,灵活使用MATLAB 的运算符将使程序变得极

14、为简短。(3)MATLAB 既具有结构化的控制语句(如for 循环,while 循环,break 语句和if 语句),又有面向对象编程的特性。(4)程序限制不严格,程序设计自由度大。例如,在MATLAB 里,用户无需对矩阵预定义就可使用。(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。(6)MATLAB 的图形功能强大。在FORTRAN 和C 语言里,绘图都很不容易,但在MATLAB 里,数据的可视化非常简单。MATLAB 还具有较强的编辑图形界面的能力。(7)功能强大的工具箱是MATLAB 的另一特色。MATLAB 包含两个部分:核心部分和各种可选的工具箱。

15、核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能,而学科性工具箱是专业性比较强的,如control,toolbox,signl proceessing, toolbox,commumnication toolbox 等。2 连续时间周期信号的傅里叶级数CTFS周期信号是定义在区间,按一定时间间隔(周期)不断重复的信号。它可表示为,式中为任意整数,为周期,周期的倒数称为该信号的频率2。2.1 连续时间周期信号的分解设有周期信号 ,它的周期为T ,角频率,且满足狄里赫里条件,

16、则该周期信号可以展开成傅里叶级数,即可表示为一系列不同频率的正弦或复指数信号之和。傅里叶级数有三角形式和指数形式两种2。2.1.1 三角形式的傅里叶级数三角形式的傅里叶级数为: 式中系数、称为傅里叶系数,可由下式求得。 如果将式中同频率的正弦和余弦分量合并,则三角形式的傅里叶级数可表示为: 上式中 由式可见;傅里叶系数和都是或的函数,其中是或的偶函数,即有;而是或的奇函数,即有。由式可见,是或的偶函数,即有;而是或的奇函数,即有。式表明,任何满足狄里赫里条件的周期信号可分解为一系列不同频率的余弦(或正弦)分量的叠加。其中第一项是常数项,它是周期信号中所包含的直流分量;第二项称为基波或一次谐波,

17、它的角频率与原周期信号相同,是基波振幅,是基波初相角;第三项称为二次谐波,它的频率是基波频率的二倍, 是二次谐波振幅,是其初相角;依此类推,还有三次、四次、 等谐波。一般而言,称为次谐波,是次谐波振幅,是其初相角。式表明,周期信号可以分解为各次谐波分量的叠加。2.1.2 指数形式的傅里叶级数指数形式的傅里叶级数表达式为: 即周期信号可分解为一系列不同频率的虚指数信号之和,式中称为傅里叶复系数,可由下式求得: 2.2 连续时间周期信号的傅里叶综合任何满足狄里赫里条件的周期信号,可以表示成式或的和式形式,或式常称为CTFS综合公式。一般来说,傅里叶级数系数有无限个非零值,即任何具有有限个间断点的周

18、期信号都一定有一个无限项非零系数的傅里叶级数表示。但对数值计算来说,这是无法实现的。在实际的应用中,但我们可以用有限项的傅里叶级数求和来逼近。即对有限项和 当值取得较大时,上式就是原周期信号的一个很好的近似。式常称作的截断傅里叶级数表示。MATLAB的符号积分函数可以帮助我们求出连续时间周期信号的截断傅里叶级数及傅里叶表示。求积指令的具体使用格式如下:给出符号表达式对指定变量的(不带积分常数的)不定积分。给出符号表达式对指定变量的定积分。3 连续时间周期信号的频谱分析如前所述,周期信号可以分解成一系列正弦(余弦)信号或虚指数信号之和,即 其中, 或 幅度和相位为了直观地表示出信号所含各分量的振

19、幅或,随频率的变化情况,通常以角频率为横坐标,以各次谐波的振幅或虚指数函数的幅度为纵坐标,画出如图3.1和3.2所示的各谐波的振幅或与角频率的关系图,称为周期信号的幅度(振幅)频谱,简称幅度谱。图中每条竖线代表该频率分量的幅度,称为谱线。各谱线顶点连线的曲线(如图中原点所示)称为频谱包络线,它反映了各谐波分量幅度随频率变化的情况。图3.1中幅度谱为单边幅度谱(用绘制的频谱)。图3.2中幅度谱为双边幅度谱(用绘制的频谱)。类似地,也可画出各谐波初相角与角频率的关系图,如图3.1和3.2中各谐波初相角与角频率的关系图,称为相位频谱,简称相位谱。图3.1中相位谱为单边相位谱。图3.2中相位谱为双边相

20、位谱。如果为实数,那么可用的正负来表示为0或也可把幅度谱和相位谱画在一张图上。由图可见,周期信号的谱线只出现在频率为等原周期信号频率的整数倍的离散频率上,即周期信号的频谱是离散谱。图3.1 周期信号的幅度谱和相位谱(单边)图3.2 周期信号的幅度谱和相位谱(双边)由此可见周期信号频谱具有三个特点:(1)离散性,即谱线是离散的;(2)谐波性,即谱线只出现在基波频率的整数倍上;(3)收敛性,即谐波的幅度随谐波次数的增高而减小3。MATLAB的符号积分函数、一维数组的寻访概念和可以帮助我们求出连续时间周期信号的频谱(傅里叶级数分析法)。4 周期信号的傅里叶级数分解与综合的仿真波形MATLAB强大的符

21、号运算功能为进行周期信号的分析提供了强有力的工具。以周期矩形脉冲信号为例,采用三角形式傅里叶级数分解与综合形式,利用MATLAB来实现周期信号的分解与综合过程。周期矩形脉冲信号如图4.1所示。其幅度为1,脉冲宽度为1,周期。用式求出傅里叶级数分解系数,运用MATLAB的符号运算功能,用式实现信号的综合,谐波的阶数Nf =6。图4.1 周期矩形脉冲信号4.1 实现流程利用MATLAB实现上述分析过程的流程如下:(1)编写子函数x=time_fun_x(t),用符号表达式表示出周期信号在第一个周期内的符号表达式,并赋值给返回符号变量x。(2)编写子函数 y=time_fun_e(t),求出该周期信

22、号在绘图区间内的信号样值,并赋值给返回变量y。(3)编写求解信号傅里叶系数及绘制合成波形图的通用函数CTFS1.m,该函数的流程如下: 调用函数time_fun_x(t),获取周期信号的符号表达式。 求出信号的傅里叶系数。 求出各次谐波。 绘制各次谐波叠加波形图。 调用函数time_fun_e(t),绘制原信号波形图。4.2 MATLAB算法提示(1) 采用符号积分4求内时间函数的三角级数展开系数:,即计算式。(2) 用循环语句求出三角级数展开系数,的数值:分别为,。(3) 用语句输出三角级数展开系数,。(4) 用傅里叶三角级数展开式合成(综合)连续时间信号。(5) 化简表达式,据函数的奇偶性

23、,可知,若为奇函数,则。若为偶函数,则,以此化简三角级数展开式。源程序见附录中程序一。4.3 程序运行结果调用CTFS1.m函数文件,即可绘出周期矩形波信号各次谐波的合成波形。指令如下:在MATLAB命令窗口键入CTFS1,并回车,即可绘出周期矩形波信号各次谐波的合成波形,如图4.2所示。图4.2 周期矩形脉冲信号的合成由图4.2可见,当它所包含的谐波分量越多时,合成波形愈接近于原来的矩形波脉冲(图中虚线)。由图4.2还可以看到,合成波形所包含的谐波分量愈多时,除间断点附近外,它越接近于原矩形波脉冲。在间断点附近,随着所含谐波次数的增加,合成波形的尖峰愈接近间断点,但尖峰幅度并未明显减少。可以

24、证明,即使合成波形所含谐波次数时,在间断点处仍有约9%的偏差,这种现象称为吉布斯(Gibbs)现象。在傅里叶级数的项数取得很大时,间断点处尖峰下的面积非常小以致趋近于零,因而在均方的意义上合成波形同原波形的真值之间没有区别4。5 连续时间周期信号的频谱分析的仿真波形由周期信号频谱分析只要求出了周期信号傅里叶级数(或)及,我们就可根据(或)及随频率的变化关系画出信号的振幅和相位频谱。以图5.1所示的周期矩形脉冲信号为例,利用MATLAB绘制周期信号的频谱图,并对周期信号的频谱特性进行分析。图5.1 周期矩形脉冲信号由于绘制频谱的前提是必须先求出周期信号的傅里叶系数,因此只需对求周期信号傅里叶级数

25、的函数CTFS1.m进行适当修改,即可编写出绘制周期信号频谱的通用函数。由于周期信号的频谱是离散的,故在绘制频谱时,采用stem命令而不是plot命令3。5.1实现流程采用三角形式傅里叶级数分解形式,用式求出傅里叶级数分解系数和,再用式求出傅里叶复指数系数,并画出的振幅和相位频谱。谐波的阶数Nf 可任意指定为60。利用MATLAB实现上述分析过程的流程如下:(1)编写子函数y=time_fun_s(t),用符号表达式表示出周期信号在第一个周期内的符号表达式,并赋值给返回符号变量y。(2)编写子函数x=time_fun_e,求出该周期信号在绘图区间内的信号样值,并赋值给返回变量x。(3)编写求解

26、信号傅里叶复指数系数及绘制频谱图的通用函数,该函数的流程如下: 调用函数time_fun_s(t),获取周期信号的符号表达式。 求出信号的三角级数形式的傅里叶级数展开系数和。 求出信号的复指数形式的傅里叶级数展开系数。 绘制的振幅频谱图和相位频谱图。 调用函数time_fun_e,绘制信号波形图。5.2 MATLAB算法提示(1)采用符号积分求内时间函数的三角级数展开系数:,。即计算式。(2)用循环语句求出三角级数展开系数,的数值:并赋值给变量,如图5.2所示。图5.2 三角级数展开系数,频谱(n=k+1:Nf)(3)从三角级数展开系数,得到复指数展开系数为了得到复指数展开系数必须先求出三角形

27、式的傅里叶级数展开系数和,如图5.2所示,再据式求出。但要注意、和的自变量取值情况,即:从上式的自变量取值情况及图5.2可见,三角级数展开系数,的变量的取值范围为,而指数形式展开系数的变量的取值范围为,为了从和得到,需要用到MATLAB的反折函数fliplr来实现频谱的反折。双边、单边(幅度,相位)频谱分析源程序见附录程序二。5.3 程序运行结果及分析5.3.1 程序运行结果调用CTFS2.m函数文件,即可绘出周期矩形波信号的频谱。指令如下:在MATLAB命令窗口键入CTFS2,并回车,命令窗口将出现:pleas Input 所需展开的最高谐波次数Nf=?,输入Nf=60 然后命令窗口将出现:

28、pleas Input 信号的周期T=?,输入周期T=5,然后命令窗口又出现:周期与脉冲宽度之比M=?,输入M =5,即可绘出周期矩形波信号的双边频谱,如图5.3所示。修改绘制周期矩形脉冲双边频谱的函数文件CTFS2.m,将其改为绘制周期矩形脉冲单边频谱的函数文件CTFS21.m,则可绘出单边频谱如图5.4所示。图5.3 周期T=5,脉宽tao=1 的矩形脉冲及双边频谱图图5.4 周期T=5,脉宽tao=1 的矩形脉冲及单边频谱图由图5.3和5.4可见,周期矩形脉冲的频谱具有一般周期信号频谱的共同特点,即它们的频谱都是离散的。仅含有的各分量,其相邻两谱线的间隔是,同时单边谱仅为双边谱的一半波形

29、。5.3.2脉冲宽度与频谱的关系重复调用周期矩形脉冲单边频谱的函数文件,当窗口出现输入信号谐波次数Nf,周期T,周期与脉冲宽度之比M时,分别将信号设置为表5-1所示三种情况,则可绘出表5-1所示各情况的信号波形及频谱图,如图5.5所示。表5-1 周期矩形脉冲脉宽取值参数表周期T555脉冲宽度tao被展开函数的时间区间的左端a=tao/20.6250.31250.15625a 周期T=5,脉冲宽度tao=T/4=1.25,a=tao/2=0.625 的矩形脉冲频谱b 周期T=5,脉冲宽度tao=T/8=0.625, a=tao/2=0.3125 的矩形脉冲频谱c 周期T=5,脉冲宽度tao=T/

30、16=0.3125, a=tao/2=0.15625 的矩形脉冲频谱图5.5 脉冲宽度与频谱的关系由图5.5可见,由于周期T相同,因而相邻谱线的间隔相同;脉冲宽度tao愈窄,其频谱包络线第一个零点的频率愈高,即信号带宽愈宽,频带内所含的分量愈多。可见,信号的频带宽度与脉冲宽度tao成反比2。5.3.3脉冲周期与频谱的关系重复调用绘制周期矩形脉冲单边频谱的函数文件,当窗口出现输入信号谐波次数Nf,周期T,周期与脉冲宽度之比M 时,分别将信号设置为表5-2所示各种情况(即信号时域宽度保持不变),则可绘出表5-2所示各情况下的信号波形及频谱图如图5.6所示。表5-2 周期矩形脉冲周期取值参数表脉冲宽

31、度tao111周期T被展开函数的时间区间的左端a=tao/20.50.50.5a 脉冲宽度tao=1,周期T=4*tao =4的矩形脉冲频谱b 脉冲宽度tao=1,周期T=8*tao =8 的矩形脉冲频谱c 脉冲宽度tao=1,周期T=16*tao =16 的矩形脉冲频谱图5.6 周期与频谱的关系由图5.6可见,由于周期脉冲信号的时域宽度不变,这时频谱包络线的零点所在位置不变,而当周期增长时,相邻谱线的间隔减少,频谱变密。如果周期无限增长(这时就成为非周期信号),那么,相邻谱线的间隔将趋近于零,周期信号的离散频谱就过渡到非周期信号的连续频谱。随着周期的增长,各谐波分量的幅度也相应减少。脉冲周期

32、T 愈长,谱线间隔愈小,频谱越稠密;反之,则越稀疏2。6 典型周期脉冲的频谱6.1 周期方波脉冲频谱的MATLAB实现周期方波脉冲信号如图6.1所示,其幅度为1,脉冲宽度占空比:duty=1/2,周期T=5。图6-1 周期方波脉冲编写CTFS3.m函数文件,源程序文件见附录程序三。调用函数CTFS3.m,即可绘出方波脉冲的双边频谱如图6.2所示,其中周期T和占空比duty可变,修改程序即可得到单边频谱如图6.3所示。a 周期为T=5,占空比duty=50的方波脉冲双边频谱b 周期为T=10,占空比duty=80的方波脉冲双边频谱图6.2 方波脉冲双边幅度谱a 周期为T=5,占空比duty=50

33、的方波脉冲单边频谱b 周期为T=10,占空比duty=80的方波脉冲单边频谱图6.3 方波脉冲单边幅度谱由图可以看出,周期方波信号频谱与周期矩形脉冲信号具有相同的规律,由于方波的周期与脉宽比,因此频谱的第一个过零点内只有两根谱线。6.2 周期三角波脉冲频谱的MATLAB 实现周期三角波脉冲如图6.4所示,周期T=5,其幅度为 1。图6.4 周期三角波脉冲MATLAB 内置有产生三角波的函数sawtooth(t),其调用格式为:x= sawtooth(t,width):根据width值的不同产生不同形状的三角波,参数width 是01 之间的标量,指定在一个周期之间最大值的位置,width是该位

34、置的横坐标和周期的比值.因而,当width=0.5 时产生标准的对称三角波,当width时(可缺省)产生锯齿波。编写CTFS4.m函数文件,源程序文件见附录程序四。调用函数CTFS4.m,即可绘出方波脉冲的双边频谱如图6.5所示,其中周期T和width可变,修改程序即可得到单边频谱如图6.6所示。a 周期T=5,width=0.5的三角脉冲双边频谱b 周期T=10,width=1的三角脉冲双边频谱图6.5 周期三角波双边幅度频谱a 周期T=5,width=0.5的三角脉冲单边频谱b 周期T=10,width=1的三角脉冲单边频谱图6.6周期三角波单边幅度频谱结束语本次课程设计至此已经接近尾声,

35、一周的时间虽然很短暂,但在这一个星期的设计过程中收获颇多。设计的核心内容就是利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。整个设计过程中首先对所学的信号与系统与数字信号处理有了更深的了解,比如傅立叶级数、信号频谱等;其次,实现过程是通过MATLAB软件完成的,MATLAB 的图形功能强大,具有良好的人机界面5,此次设计过程中熟练了MATLAB的编程,掌握了很多函数的作用及使用方法;最后,通过此次课程设计,我对设计所用到的软件MATLAB有了更加深刻地了解,MATLAB不管在数值计算方面的功能很强大,而且其图形仿真功能更能满足各个领域的

36、需要,因此我们以后更要经常运用MATLAB软件,使其成为自己不可或缺的工具。致谢感谢学校给我们这次MATLAB课程设计的机会,不仅让我们更加学会了MATLAB的强大图形处理方法,掌握了MATLAB的编程技术,而且也锻炼了我们的动手能力。通过这次课设让我明白了理论联系实践的重要性,书本上的理论知识学了不少,我们必须得应用到实践当中,做到学以致用,这样我们才能有不断的创新。这次课程设计也感谢指导老师在设计过程中的辅导以及同学们的帮助。参考文献1 陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用Z. 北京:电子工业出版社,20052 刘泉,江雪梅.信号与系统Z. 北京:高等教育出版社,2

37、0063 刘泉,阙大顺,郭志强.数字信号处理原理与实现Z. 北京:电子工业出版社,20094 梁虹. 信号与系统分析及MATLAB实现Z. 北京:电子工业出版社,20025 罗建军. MATLAB教程Z. 北京:电子工业出版社,2005附录源程序一周期信号的傅里叶级数分解与综合的源程序如下:functionA_sym,B_sym=CTFS1syms t n k xT=5;tao=0.2*T;a=0.5;if nargin4;Nf=6;endif nargin5;Nn=32;endx=time_fun_x(t); A0=2*int(x,t,-a,T-a)/T; As=int(2*x*cos(2*

38、pi*n*t/T)/T,t,-a,T-a); Bs=int(2*x*sin(2*pi*n*t/T)/T,t,-a,T-a); A_sym(1)=double(vpa(A0,Nn); for k=1:Nf A_sym(k+1)=double(vpa(subs(As,n,k),Nn); B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn);endif nargout=0 c=A_sym;disp(c) d=B_sym;disp(d) t=-8*a:0.01:T-a; f1=2*(0.2/2+0.1871.*cos(2*pi*1*t/5)+0.*sin(2*pi*1*t/5)

39、; f2=2*(0.1514.*cos(2*pi*2*t/5)+0.*sin(2*pi*2*t/5); f3=2*(0.1009.*cos(2*pi*3*t/5)+0.*sin(2*pi*3*t/5); f4=2*(0.0468.*cos(2*pi*4*t/5)+0.*sin(2*pi*4*t/5); f5=2*(-0.0312.*cos(2*pi*6*t/5)+0.*sin(2*pi*6*t/5); f6=f1+f2; f7=f6+f3; f8=f7+f4+f5; subplot(2,2,1) plot(t,f1),hold on y=time_fun_e plot(t,y,:) title

40、(周期矩形波的形成基波) subplot(2,2,2) plot(t,f6),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次谐波) subplot(2,2,3) plot(t,f7),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次谐波+3次谐波) subplot(2,2,4) plot(t,f8),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次谐波+3次谐波+6次谐波)endfunction x=time_fun_x(t)

41、h=1;x1=sym(Heaviside(t+0.5)*h;x=x1-sym(Heaviside(t-0.5)*h;function y=time_fun_ea=0.5;T=5;h=1;tao=0.2*T;t=-8*a:0.01:T-a;e1=1/2+1/2.*sign(t+tao/2);e2=1/2+1/2.*sign(t-tao/2);y=h.*(e1-e2); 源程序二双边、单边(幅度,相位)频谱分析源程序如下:双边频谱分析源程序:function A_sym,B_sym=CTFS2syms t n yif nargin3;Nf=input(pleas Input 所需展开的最高谐波次数

42、: Nf=);endT=input(pleas Input 信号的周期=);if nargin5;Nn=32;endy=time_fun_s(t);A0=2*int(y,t,0,T)/T;As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);A_sym(1)=double(vpa(A0,Nn);for k=1:Nf A_sym(k+1)=double(vpa(subs(As,n,k),Nn); B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn);endif nargout=0 S

43、1=fliplr(A_sym) S1(1,k+1)=A_sym(1) S2=fliplr(1/2*S1) S3=fliplr(1/2*B_sym) S3(1,k+1)=0 S4=fliplr(S3) S5=S2-i*S4; S6=fliplr(S5); N=Nf*2*pi/T; k2=-N:2*pi/T:N; S7=S6,S5(2:end); x=time_fun_e subplot(3,1,2) stem(k2,abs(S7); title(连续时间函数周期矩形脉冲的双边幅度谱) axis(-80,80,0,0.12) line(-80,80,0,0) line(0,0,0,0.12) subplot(3,1,3) stem(k2,angle(S7); title(连续时间函数周期矩形脉冲的双边相位谱) axis(-80,80,-4,4) line(-80,80,0,0) line(0,0,-4,4)endfunction y=time_fun_s(t)syms a a1T=input(pleas Input 信号的周期T=);M=input(周期与脉冲宽度之比M=);A=1;tao=T/M;a=tao/2;y1=sym(Heaviside(t+a1)*A;y=y1-sym(Heaviside(t-a1)*A;y=subs(y,a1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号