连续时间信号傅里叶级数分析及matlab实现_第1页
连续时间信号傅里叶级数分析及matlab实现_第2页
连续时间信号傅里叶级数分析及matlab实现_第3页
连续时间信号傅里叶级数分析及matlab实现_第4页
连续时间信号傅里叶级数分析及matlab实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、4.撰写MATLAB 应用实践课程设计说明书。时间安排:时间安排:学习 MATLAB 语言的概况 第 1 天学习 MATLAB 语言的基本知识 第 2、3 天学习 MATLAB 语言的应用环境,调试命令,绘图能力 第 4、5 天课程设计 第 6-9 天答辩 第 10 天指导教师签名:指导教师签名: 年年 月月 日日系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日Matlab 应用实践课程设计目目 录录摘要.IABSTRACT.II绪论 .11 MATLAB 简介.21.1 MATLAB 语言功能.21.2 MATLAB 语言特点.22 连续时间周期信号的傅里叶级数 .32

3、.1 连续时间周期信号的分解 .32.1.1 三角形式的傅里叶级数 .32.1.2 指数形式的傅里叶级数 .42.2 连续时间周期信号的傅里叶综合 .42.3 吉布斯现象.63 连续时间周期信号的频谱分析 .73.1 单边与双边频谱关系.73.2 以单边幅度频谱为例,研究脉冲宽度与频谱的关系.83.3 以单边幅度频谱为例,研究脉冲周期与频谱的关系.94 典型周期脉冲的频谱 .114.1 周期方波脉冲频谱的 MATLAB 实现 .114.1.1 周期方波脉冲双边频谱的 MATLAB 实现.124.1.2 周期方波脉冲单边频谱的 MATLAB 实现.134.2 周期三角波脉冲频谱的 MATLAB

4、实现.154.2.1 周期三角波双边频谱的 MATLAB 实现.164.2.2 周期三角波单边频谱的 MATLAB 实现.175 小结即心得体会 .19致谢 .20参考文献 .21附录 .22Matlab 应用实践课程设计I摘要MATLAB 目前已发展成为由 MATLAB 语言、MATLAB 工作环境、MATLAB 图形处理系统、MATLAB 数学函数库和 MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。本次课程设计则在深入研究连续时间信号傅里叶级数分析理论知识的基础上,利用 MATLAB 强大的图形处理功能、符号运算功能以及数值计算功能,通过 M

5、ATLAB 编程进行图形功能仿真,从而实现连续时间周期信号频域分析的仿真波形,包括以下内容:用 MATLAB 实现周期信号的傅里叶级数分解与综合的波形;用 MATLAB 实现周期信号的单边频谱及双边频谱的波形与分析;用MATLAB 实现典型周期信号的频谱的波形。关键词:MATLAB;图形处理;傅里叶级数;周期信号;频谱绪论在科学技术飞速发展的今天,计算机正逐步将科技人员从繁重的计算工作中解脱出来。在进行科学研究与工程应用中,往往需要大量的科学计算,一些科技人员曾经尝试使用传统的高级语言Basic、Fortran 及C 语言编写程序,以减轻工作量。但编制程序需要掌握高级语言的语法,还要对各种算法

6、进行了解,这对大多数科技人员来说是不大现实的,而且也是没有没有必要的。MATLAB 正是在这一应用要求背景下产生的数学类科技应用软件。它具有的顶尖的数值计算功能、强大的图形可视化功能及简洁易学的“科学便捷式”工作环境和编程语言,从根本上满足了科技人员对工程数学计算的要求,并将科技人员从繁重的数学运算中解放出来,因而越来越受到广大科技工作者的普遍欢迎1。MATLAB 是matrix 和laboratory 前三个字母的缩写,意思是“矩阵实验室”,是MathWorks 公司推出的数学类科技应用软件。其Dos 版本(MATLAB 1.0)发行于1984 年,现已推出了Windows 版本(MATLA

7、B 5.3)。经过十多年的不断发展与完善,MATLAB 已发展成为由MATLAB 语言、MATLAB 工作环境、MATLAB 图形处理系统、MATLAB 数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。MATLAB 由“主包”和三十多个扩展功能和应用学科性的工具箱(Toolboxs)组成。Matlab 应用实践课程设计II目前,MATLAB已经成为国际上最流行的电子仿真计算机辅助设计的软件工具,现在的MATLAB已经不仅仅是一个“矩阵实验室(Matrix Laboratory)”,它已经成为一种实用的、全新的计算机高级语言。正是由于 M

8、ATLAB 在数值计算及符号计算等方面的强大功能,使MATLAB一路领先,成为数学类科技应用软件中的佼佼者。目前,MATLAB 已成为国际上公认的最优秀的科技应用软件。MATLAB 的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。1 MATLAB简介1.1 MATLAB 语言功能MATLAB是一个高精度的科学计算语言,它将计算、可视化编程结合在一个容易使用的环境中,在这个环境中,用户可以把提出的问题和解决问题的办法用熟悉的数学符号表示出来,它的典型使用包括:(1)数学和计算;(2)运算法则;(3)建模、仿真;(4)数

9、值分析、研究和可视化;(5)科学的工程图形;(6)应用程序开发,包括创建图形用户接口。1.2 MATLAB 语言特点MATLAB 是一个交互式系统,他的基本数据单元是数组,这个数组不要求固定的大小,因此可以让用户解决许多技术上的问题,特别是那些包含矩阵和矢量运算的问题。MATLAB的指令表达与数学、工程中常用的习惯形式相似,与C、Fortran、等高级语言相比,它的语法规则更简单、表达更符合工程习惯,正因为如此,人们用MATLAB语言编写程序就犹如在便笺上书写公式和求解,因而MATLAB被称为“便笺式”的科学工程语Matlab 应用实践课程设计III言。MATLAB的最重要特征使他拥有解决特定

10、应用问题的程序组,也就是TOOLBOX(工具箱),如信号处理工具箱,控制系统工具箱、神经网络工具箱、模糊逻辑工具箱、通信工具箱和数据采集工具箱等许多专用工具箱,对大多数用户来说,要想灵活、高效地运用这些工具箱,通常都需要学习相应的专业知识。此外,开放性也许是MATLA最重要和最受欢迎的特点之一。除内部函数外,所有的MATLAB主要文件和各工具箱文件都是可读的、可改的源文件,因为工具箱实际上是有一组复杂的MATLAB函数(M文件)组成,它扩展了MATLAB的功能,用以解决待定的问题,因此用户可以通过对源文件进行修改和加入自己编写的文件去构建新的专用工具箱。2 连续时间周期信号的傅里叶级数 频域分

11、析法即傅里叶分析法,它是变换域分析法的基石。其中,傅里叶级数是变换域分析法的理论基础,傅里叶变换作为频域分析法的重要数学工具,具有明确的物理意义,在不同的领域得到广泛的应用2.1 连续时间周期信号的分解以高等数学的知识,任何周期为T的周期函数,在满足狄里赫利条件时,则该周)(tf期信号可以展开成傅里叶级数。傅里叶级数有三角形式和指数形式两种2。2.1.1 三角形式的傅里叶级数三角形式的傅里叶级数为:) 12(3 , 2 , 1)sin()cos(2)sin()sin()cos()cos()cos(2)(110213210bntntnttttttfnnnnbaabaaaa式中系数、称为傅里叶系数

12、,可由下式求得。nanbMatlab 应用实践课程设计IV 222222012cos2sinTTTTTTnnaf t dtTaf tn t dtTbf tn t dtT22其中,T2为基波频率,n为n次谐波频率。如果将式中同频率的正弦和余弦2 1分量合并,则三角形式的傅里叶级数可表示为: 01tcos2nnnAfAn t 1,2,3,n 23上式中 0022,1,2,arctannnnnnnAaAabnab 2400cos,1,2,sinnnnnnnaAaAnbA 可以看出,傅里叶系数和都是或的函数,其中和是或的偶nanbnnnanAnn函数,即有;而和是或的奇函数,即有。nananbnnnn

13、bnb2.1.2 指数形式的傅里叶级数根据欧拉公式:21)cos()()(nntnjtnjneetn 25并考虑和奇偶性可将改写为指数形式的傅里叶级数:nAn23 )62( ,0, 1, 2, 3,jn tnnf tF en 即周期信号可分解为一系列不同频率的虚指数信号之和,式中称为傅里叶复系数,nF可由下式求得:Matlab 应用实践课程设计V 221TTjn tnFf t edtT272.2 连续时间周期信号的傅里叶综合任何满足狄里赫里条件的周期信号,可以表示成式或的和式形式,2 126或式常称为连续周期信号的傅里叶级数综合公式。2 126一般来说,傅里叶级数系数有无限个非零值,即任何具有

14、有限个间断点的周期信号都一定有一个无限项非零系数的傅里叶级数表示。但对数值计算来说,这是无法实现的。在实际的应用中,但我们可以用有限项的傅里叶级数求和来逼近。为了比较有限项谐波的逼近情况,本次课设编写了程序来绘制波形以给读者一个直观的感受。调用xiebo.m函数文件,即可绘出周期矩形波信号各次谐波的合成波形。如图2.1所示。-505-0.200.20.40.6三 三-505-0.500.51三 三 +2三 三 三-505-0.500.511.5三 三 +2三 三 三 +3三 三 三-505-0.500.511.5三 三 +2三 三 三 +3三 三 三 +6三 三 三图2.1 周期矩形脉冲信号的

15、合成由图2.1可见,当它所包含的谐波分量越多时,合成波形愈接近于原来的矩形波脉冲(。由图2.1还可以看到,合成波形所包含的谐波分量愈多时,除间断点附近外,它越接Matlab 应用实践课程设计VI近于原矩形波脉冲。在间断点附近,随着所含谐波次数的增加,合成波形的尖峰愈接近间断点,但尖峰幅度并未明显减少。可以证明,即使合成波形所含谐波次数时,在n 间断点处仍有约9%的偏差,这种现象称为吉布斯(Gibbs)现象。在傅里叶级数的项数取得很大时,间断点处尖峰下的面积非常小以致趋近于零,因而在均方的意义上合成波形同原波形的真值之间没有区别4。2.3 吉布斯现象 上一节中我们提到了吉布斯现象,本节我们将作重

16、点来讨论。我们知道满足狄里赫利条件的周期函数表示成的傅立叶级数都收敛。狄里赫利条件如下:1. 在任何周期内,x(t)必须绝对可积;2. 在任一有限区间中,x(t)只能取有限个最大值或最小值;3. 在任何有限区间上,x(t)只能有有限个第一类间断点。 所谓的吉布斯现象就是:在 x(t)的不可导点上,如果我们只取 x(t)等式右边的无穷级数中的有限项作和 X(t),那么 X(t)在这些点上会有起伏1。具体现象如下图所示,以下分别为谐波次数为 N=50,N=100,N=500 合成波的情况。-2-1.5-1-0.500.511.5200.51三 三 三 三 N=50三 三 三 三 三 三-2-1.5

17、-1-0.500.511.5200.51三 三 三 三 N=100三 三 三 三 三 三-2-1.5-1-0.500.511.5200.51三 三 三 三 N=500三 三 三 三 三 三Matlab 应用实践课程设计VII图 2.2 不同时 N 值时的合成波 从上面的图像中可以看出,当 N=500 的时候,合成波与原来的方波拟合得非常好,但是在不可导的点上,即为 x=-1.5,x=-0.5,x=0.5,x=1.5 这样的点的时候,合成波会有较大的波动,这就是非常明显的吉布斯现象。3 连续时间周期信号的频谱分析3.1 单边与双边频谱关系如前所述,周期信号可以分解成一系列正弦(余弦)信号或虚指数

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

19、系图,称为相位频谱,简称相位谱。图3.1中相位谱为单边相位谱。图3.2n中相位谱为双边相位谱。如果为实数,那么可用的正负来表示为0或也可把幅度nFnFn谱和相位谱画在一张图上。由图可见,周期信号的谱线只出现在频率为等原周期信号频率的整数倍的0,2 ,.离散频率上,即周期信号的频谱是离散谱。Matlab 应用实践课程设计VIII-20-15-10-50510152000.5105010015000.050.1050100150-505图3.1 周期信号的单边幅度谱和相位谱-20-15-10-50510152000.51-150-100-5005010015000.050.1-150-100-50

20、050100150-4-2024图3.2 周期信号的双边幅度谱和相位谱由此可见周期信号频谱具有三个特点:(1)离散性,即谱线是离散的;(2)谐波性,即谱线只出现在基波频率的整数倍上;Matlab 应用实践课程设计IX(3)收敛性,即谐波的幅度随谐波次数的增高而减小3。单边频谱和双边频谱的区别就是求值的范围不同,单边频谱求的是频率大于 0 的情况,而双边频谱求的是所有频率的情况,即包括频率小于 0 的情况,这个区别在上面的两张图中可以非常明显地看出来。3.2 以单边幅度频谱为例,研究脉冲宽度与频谱的关系 首先令方波首期 T=5。改变脉冲宽度,就是在图 3.3 中 T 值不变的情况下,改变的 值的

21、大小,同时 必须小于 T。在 MATLAB 软件里可以比较方便地改变这个值。xsqual=(x)1/2.*(x=-1/2)+1.*(x-1/2&x-1/2&x1/2)+1/2.*(x=-1/2)固定为 1/2,然后分别将 a,b 值变为:a=-4,b=4 和 a=-6,b=6,来研究方波周期对其频谱的影响。图 3.4 不同 T 值的频谱Matlab 应用实践课程设计XI 通过观察以上三个图像中第一个零点的位置,不难看出:当方波的周期越大,频谱就越密集,周期越小,频谱就越稀疏,其实这点也不难理解。因为值不变,改变T值就等于改变了T=中比例系数的大小。由于周期脉冲信号的时域宽度不变

22、,这时频谱包络线的零点所在位置不变,而当周期增长时,相邻谱线的间隔减少,频谱变密。如果周期无限增长(这时就成为非周期信号),那么,相邻谱线的间隔将趋近于零,周期信号的离散频谱就过渡到非周期信号的连续频谱。随着周期的增长,各谐波分量的幅度也相应减少。脉冲周期T 愈大,谱线间隔愈小,频谱越稠密;反之,则越稀疏。4 典型周期脉冲的频谱4.1 周期方波脉冲频谱的 MATLAB 实现周期方波脉冲信号如图4.1所示,其幅度为1,脉冲宽度占空比:duty=0.5,周期T=5。-10-8-6-4-20246810-1-0.8-0.6-0.4-0.200.20.40.60.81三 三 三 三 三 三图4.1 周

23、期方波脉冲编写fangbo.m函数文件,源程序文件见附录程序四。调用函数fangbo.m,即可绘出方波脉冲的双边频谱,其中周期T和占空比duty可变,修改程序即可得到单边频谱。将在下一小节中给出不同参数时的频谱图。Matlab 应用实践课程设计XII4.1.1 周期方波脉冲双边频谱的 MATLAB 实现-10-8-6-4-20246810-1-0.500.51T=10三 三 三 三 三 50%三 三 三 三 三 三 三-20-15-10-50510152000.20.4三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.2 周期方波脉冲的双边频谱aMatlab 应用实践

24、课程设计XIII-10-8-6-4-20246810-1-0.500.51T=10三 三 三 三 三 75%三 三 三 三 三 三 三-20-15-10-50510152000.20.4三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.3 周期方波脉冲的双边频谱b-10-8-6-4-20246810-1-0.500.51T=5三 三 三 三 三 50%三 三 三 三 三 三 三-20-15-10-50510152000.20.4三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.4 周期方波脉冲的双边频谱c由上面三个图可以看出,当T一定时占空比

25、越大频谱主瓣的宽度越大,当占空比一定时周期越小频谱的主瓣宽度越大。周期方波信号频谱与周期矩形脉冲信号具有相同的规律,这里不再赘述。Matlab 应用实践课程设计XIV4.1.2 周期方波脉冲单边频谱的 MATLAB 实现-10-8-6-4-20246810-1-0.500.51T=10三 三 三 三 三 50%三 三 三 三 三 三 三0246810121416182000.20.4三 三 三 三 三 三 三 三 三 三 三 三图4.5 周期方波脉冲的单边频谱a-10-8-6-4-20246810-1-0.500.51T=10三 三 三 三 三 75%三 三 三 三 三 三 三02468101

26、21416182000.20.4三 三 三 三 三 三 三 三 三 三 三 三图4.6 周期方波脉冲的单边频谱bMatlab 应用实践课程设计XV-10-8-6-4-20246810-1-0.500.51T=5三 三 三 三 三 50%三 三 三 三 三 三 三-20-15-10-50510152000.20.4三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.7 周期方波脉冲的单边频谱c单边频谱就是双边频谱正半轴部分,其具有的规律也与双边频谱相同。4.2 周期三角波脉冲频谱的 MATLAB 实现周期三角波脉冲如图4.8所示,周期T=5,其幅度为1。Matlab 应用

27、实践课程设计XVI-20-15-10-505101520-1-0.8-0.6-0.4-0.200.20.40.60.81三 三 三 三 三图4.8 周期三角波脉冲MATLAB 内置有产生三角波的函数sawtooth(t),其调用格式为:x= sawtooth(t,width);根据width值的不同产生不同形状的三角波,参数width 是01 之间的标量,指定在一个周期之间最大值的位置,width是该位置的横坐标和周期的比值.因而,当width=0.5 时产生标准的对称三角波,当width不等于0.5时(可缺省)产生锯齿波。在附录的源程序五中,只需要给出不同的T值和width值,就会得到三角波

28、的不同的双边和单边频谱图。Matlab 应用实践课程设计XVII4.2.1 周期三角波双边频谱的 MATLAB 实现-30-20-100102030-1-0.500.51T=5三 三 三 三 0.5三 三 三 三 三 三 三 三-20-15-10-50510152000.10.2三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.9 周期三角波脉冲的双边频谱a-20-15-10-505101520-1-0.500.51T=10三 三 三 三 0.5三 三 三 三 三 三 三 三-20-15-10-50510152000.10.2三 三 三 三 三 三 三 三 三 三 三

29、 三 三 三 三 三 三 三图4.10 周期三角波脉冲的双边频谱bMatlab 应用实践课程设计XVIII-20-15-10-505101520-1-0.500.51T=10三 三 三 三 1三 三 三 三 三 三 三 三-20-15-10-50510152000.20.4三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.11 周期三角波脉冲的双边频谱c由上面三个图可以看出,当三角波为脉宽width=0.5的对称三角波时频谱图在0点的幅值为零。主瓣宽度与周期和脉冲宽度的关系与方波时的规律基本一致,这里不再赘述。4.2.2 周期三角波单边频谱的 MATLAB 实现-30

30、-20-100102030-1-0.500.51T=10,三 三 三 0.5三 三 三 三 三 三 三 三0246810121416182000.10.2三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.12 周期三角波脉冲的单边频谱aMatlab 应用实践课程设计XIX-30-20-100102030-1-0.500.51T=5,三 三 三 0.5三 三 三 三 三 三 三 三0246810121416182000.10.2三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.13 周期三角波脉冲的单边频谱b-20-15-10-50510152

31、0-1-0.500.51T=10三 三 三 三 1三 三 三 三 三 三 三 三0246810121416182000.20.4三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三 三图4.14 周期三角波脉冲的单边频谱cMatlab 应用实践课程设计XX5 小结即心得体会本次课程设计至此已经接近尾声,一周的时间虽然很短暂,但在这一个星期的设计过程中收获颇多。设计的核心内容就是利用 MATLAB 强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。整个设计过程中首先对所学的信号与系统与数字信号处理有了更深的了解,比如傅立叶级数、信号频谱等;其

32、次,实现过程是通过 MATLAB 软件完成的,MATLAB 的图形功能强大,具有良好的人机界面,此次设计过程中熟练了 MATLAB 的编程,掌握了很多函数的作用及使用方法;最后,通过此次课程设计,我对设计所用到的软件 MATLAB 有了更加深刻地了解,MATLAB 不管在数值计算方面的功能很强大,而且其图形仿真功能更能满足各个领域的需要,因此我们以后更要经常运用 MATLAB 软件,使其成为自己不可或缺的工具。 在写相关源程序的时候,我还收索了大量的网站,在网上收索了很多关于 MATLAB 的资料。在这个过程中我发现网上有很多有用的知识。以后应该多注意,充分合理的利用网络,通过网络来学习东西。

33、在收集资料的阶段我复习了数字信号系统处理里的相关知识。对以前的理论知识有了更进一步的认识和理解。通过这次课程设计我还对 mathtype数学公式编辑器有了一定的了解,并且会用它编辑公式。对 word 也有了进一步的掌握。 虽然我顺利完成了课程设计的要求,但是我感觉到我对 MATLAB 的理解我掌握还停留在比较浅的层次。要想真正掌握它还需要继续努力学习它。 这次课程设计也使我明白了在知识的领域里我还有很多很多的不足,并且再一次的深深的体会到理论和实践之间还有很到的差别。在以后的学习中应该多多的注意实践知识的训练和积累。在以后的学习生活中要不断的开拓自己的动手能力,不断的训练自己的动手能力。这次课

34、程设计让我深深的明白了自己以后该做什么,该怎么去做。Matlab 应用实践课程设计XXI致谢感谢学校给我们这次MATLAB课程设计的机会,不仅让我们更加学会了MATLAB的强大图形处理方法,掌握了MATLAB的编程技术,而且也锻炼了我们的动手能力。通过这次课设让我明白了理论联系实践的重要性,书本上的理论知识学了不少,我们必须得应用到实践当中,做到学以致用,这样我们才能有不断的创新。这次课程设计也感谢指导老师在设计过程中的辅导以及同学们的帮助。没有他们的帮助我不会那么快克服那些困难,也不会这么快学到这么多的知识。Matlab 应用实践课程设计XXII Matlab 应用实践课程设计XXIII附录

35、注意:由于大部分程序都很相似,这里只给出五个主要的源程序。对于那些只需要该参数就可以实现的程序也给只出主要程序。源程序一:(连续周期信号的分解与综合谐波分析)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*pi*n*t/T)/T,t,-a,T-a); Bs=int(2*x*sin(2*pi*n*t/T)/T,

36、t,-a,T-a); A_sym(1)=vpa(A0,Nn); for k=1:Nf%Nf 为最高次谐波的次数 A_sym(k+1)=vpa(subs(As,n,k),Nn); B_sym(k+1)=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); f2=2*(0.1514.*cos(2*pi*2*t/5)+0.*sin(2*pi*2*t/5); f3=2*(0.

37、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 title(基波基波) subplot(2,2,2) plot(t,f6),hold on title(基波基波+2次次谐谐波波) subplot(2,2,3) plot(t,f7

38、),hold on title(基波基波+2次次谐谐波波+3次次谐谐波波)Matlab 应用实践课程设计XXIV subplot(2,2,4) plot(t,f8),hold on title(基波基波+2次次谐谐波波+3次次谐谐波波+6次次谐谐波波)endfunction y=time_fun_e%定义矩形脉冲函数(绘图用)a=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 x=time_fun_x(t)%定义矩形脉

39、冲函数(积分用)h=1;x1=sym(Heaviside(t+0.5)*h;x=x1-sym(Heaviside(t-0.5)*h;源程序二:(吉布斯效应)t=-2:0.001:2;N=input(N=);% N为输入要达到的最高次谐波的次数c0=0.5;fN=c0*ones(1,length(t);for n=1:2:NfN=fN+cos(pi*n*t)*sinc(n/2);endfigureplot(t,fN)axis(-2 2 -0.2 1.2)源程序三:(矩形脉冲的频谱分析)function A_sym,B_sym=CTFS2syms t n yif nargin3;Nf=input(

40、pleas Input 所需展开的最高谐波次数: Nf=);endT=input(pleas Input 信号的周期T=);if nargin5;Nn=32;endy=fun_in(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);Matlab 应用实践课程设计XXV B_sym(k+1)=double(

41、vpa(subs(Bs,n,k),Nn);endif nargout=0 S1=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=fun_mc subplot(3,1,2) stem(k2,abs(S7); axis(-150,150,0,0.12) subplot(3,1,3) stem(k2,ang

42、le(S7); axis(-150,150,-4,4)endfunction y=fun_in(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,a);y=simple(y);function x=fun_mcT=5;tao=T/5;n=4;t=-n*T:0.01:n*T;x=rectpuls(t,1);for i=1:n;x=x+rectpuls(t-i*

43、T,1)+rectpuls(t+i*T,1);endsubplot(3,1,1)plot(t,x)hold onaxis(-20,20,0,1.2)源程序四:(典型周期脉冲的频谱分析方波)function A_sym,B_sym=fangboMatlab 应用实践课程设计XXVIsyms t n k yT=10;if nargin4;Nf=input(pleas Input 所需展开的最高谐波次数Nf= );endif nargin5;Nn=32;endy=fangbo_1;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 S1=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=flipl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论