您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 非周期信号(方波-锯齿波-三角波)的合成分解以及频谱分析的MATLAB实现
连续周期信号的傅立叶级数分析及其MATLAB实现I连续周期信号的傅立叶级数分析及其MATLAB实现摘要现在,MATLAB已经发展成为适合多学科的大型软件,在世界各高校,MALAB已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数字信号处理、动态系统仿真等高级课程的基本应用工具。本次课程设计则在深入研究连续时间信号傅里叶级数分析理论知识的基础上,利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,通过MATLAB编程进行图形功能仿真,从而实现连续时间周期信号频域分析的仿真波形,包括以下内容:用MATLAB实现周期信号的傅里叶级数分解与综合的波形;用MATLAB实现周期信号的单边频谱及双边频谱的波形与分析;用MATLAB实现典型周期信号的频谱的波形。关键词:MATLAB;图形处理;傅里叶级数;周期信号;频谱连续周期信号的傅立叶级数分析及其MATLAB实现目录摘要...................................................I1MATLAB.................................................11.1简介..............................................11.2主要功能..........................................11.3特点.............................................22连续周期信号的傅立叶级数.............................32.1连续时间周期信号的分解............................31.1.1三角形式的傅里叶级数............................32.1.2指数形式的傅里叶级数............................42.1.3狄里赫里条件....................................43连续周期信号的傅里叶级数分解与合成的MATLAB实现3.1方波..............................................53.2锯齿波............................................63.3三角波............................................83.4吉布斯现象.......................................114连续周期信号的频谱分析的MATLAB实现...................13参考文献................................................17附录..................................................18连续周期信号的傅立叶级数分析及其MATLAB实现11MATLAB1.1简介MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB是一种科学计算软件,主要适用于矩阵计算及控制和信息处理领域的分析设计。它使用方便,输入简捷,运算效率高,内容丰富,并且很容易由用户自行扩展。Matlab当前已成为美国和其他发达国家在大学教学和科学研究中最常用而必不可少的工具MATLAB需要较多的高等数学的知识,要随着年级的增加,随着matlab在专业技术上应用才能逐渐深入掌握MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。1.2主要功能1.数值分析2.数值和符号计算3.工程与科学绘图4.控制系统的设计与仿真5.数字图像处理6.数字信号处理7.通讯系统设计与仿真8.财务与金融工程连续周期信号的傅立叶级数分析及其MATLAB实现21.3特点语言简洁,编程效率高因为MATLAB定义了专门用于矩阵运算的运算符,使得矩阵运算很简单。对于这些运算,几条语句即可代替数十条甚至上百条C语言及Fortran语言的功能。交互性能好,使用方便在MATLAB的命令窗口中,输入一条命令,立即就能看到该命令的执行结果,体现了良好的交互性。交互方式减少了编程和调试程序的工作量,给使用者带来了极大的方便。因为不像使用C语言和Fortran语言那样,首先编写源程序,然后对其进行编译、连接、待形成可执行文件后,方可运行程序,得出结果。强大的绘图功能,便于数据可视化MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控制等等。学科众多,领域广泛的应用工具箱其工具箱分为两大类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等,用户可以直接利用这些工具箱进行相关领域的科学研究。开放性好,易于扩充除内部函数外,MATLAB的其他文件都是公开的、可读可改的源文件,体现了MATLAB的开放性特点。用户可修改源文件和加入自己的文件,甚至可以构造自己的工具箱连续周期信号的傅立叶级数分析及其MATLAB实现32连续周期信号的傅立叶级数频域分析法即傅里叶分析法,它是变换域分析法的基石。其中,傅里叶级数是变换域分析法的理论基础,傅里叶变换作为频域分析法的重要数学工具,具有明确的物理意义,在不同的领域得到广泛的应用。2.1连续时间周期信号的分解以高等数学的知识,任何周期为T的周期函数,在满足狄里赫利条件时,则该周期信号可以展开成傅里叶级数。傅里叶级数有三角形式和指数形式两种。1.1.1三角形式的傅里叶级数)12(3,2,1)sin()cos(2)sin()sin()cos()cos()cos(2)(110213210bntntnttttttfnnnnbaabaaaa式中系数na、nb称为傅里叶系数,可由下式求得222222012cos2sinTTTTTTnnaftdtTaftntdtTbftntdtT20)(/atf22其中,为基波频率,n为n次谐波频率。如果将21式中同频率的正弦和余弦分量合并,则三角形式的傅里叶级数可表示为:01tcos2nnnAfAnt1,2,3,n23上式中0022,1,2,arctannnnnnnAaAabnab24T2连续周期信号的傅立叶级数分析及其MATLAB实现400cos,1,2,sinnnnnnnaAaAnbA(2-5)其中na和nA可以看出,傅里叶系数na和nb都是n或n的函数,是n或n的偶函数,即有nana;而nb和n是n或n的奇函数,即有nbnb。2.1.2指数形式的傅里叶级数根据欧拉公式:][21)cos()()(nntnjtnjneetn并考虑和奇偶性可将改写为指数形式的傅里叶级数:,0,1,2,3,jntnnftFen)62(即周期信号可分解为一系列不同频率的虚指数信号之和,式中nF称为傅里叶复系数,可由下式求得:221TTjntnFftedtT272.1.3狄里赫里条件1.在一个周期内只有有限个间断点;2.在一个周期内有有限个极值点;3.在一个周期内函数绝对可积,即(2-8)一般周期信号都满足这些条25dttfTtt.)(100连续周期信号的傅立叶级数分析及其MATLAB实现53连续周期信号的傅里叶级数分解与合成的MATLAB实现3.1方波周期方波的傅里叶级数展开式:(3-1)由式(3-1)可知,周期锯齿波信号,可分解为一个常分量和多个成谐波关系的正弦波信号,或者说,可用一个常分量和多个成谐波关系的正弦波信号叠加逼近.MATLAB实现程序:n=7;T0=2;A=2;T1=2;tn_i=1;fortn=0:0.01:T1*T0if(rem(tn,T0)=T0/2)y_t(tn_i)=A;elseif(T0/2=rem(tn,T0)=T0)y_t(tn_i)=-A;end;t_t(tn_i)=tn;tn_i=tn_i+1;end;t=0:0.01:T1*T0;x=0;pi=3.1415926;w0=2*pi/T0;fori=1:nfw(i)=(2*i-1)*w0;a(i)=4*A/(pi*(2*i-1));y(i,:)=a(i)*sin(fw(i)*t);x=x+y(i,:);end;subplot(3,1,1);连续周期信号的傅立叶级数分析及其MATLAB实现6plot(t_t,[y_t;x]);axis([04-33]);title('方波、方波合成图')subplot(3,1,2);plot(t,[x;y]);title('0-n次谐波及合成图')subplot(3,1,3);stem(fw,a);title('方波幅频谱图')生成图形:图3-13.2锯齿波周期锯齿波的傅立叶级数展开式:wtwtwtAAtu3sin312sin21(sin2)()(3-2)MATLAB实现程序:n=7;00.511.522.533.54-202方波、方波合成图00.511.522.533.54-5050-n次谐波及合成图051015202530354045024方波幅频谱图连续周期信号的傅立叶级数分析及其MATLAB实现7T0=2;A=2;T1=2;tn_i=1;fortn=0:0.01:T1*T0y_t(tn_i)=A*rem(tn,T0)/T0;t_t(tn_i)=tn;tn_i=tn_i+1;end;t=0:0.01:T1*T0;x=A/2;pi=3.1415926;w0=2*pi/T0;fori=1:nfw(i)=i*w0;a(i)=-A/(pi*i);y(i,:)=a(i)*sin(fw(i)*t);x=x+y(i,:);end;subplot(1,3,1);plot(t_t,[y_t;x]);title('锯齿波、锯齿波合成图')subplot(1,3,2);plot(t,[x;y]);title('0-n次谐波及合成图')subplot(1,3,3);stem(fw,a);title('锯齿波频谱图')生成图形:连续周期信号的傅立叶级数分析及其MATLAB实现8024-0.500.511.522.5锯齿波、锯齿波合成图024-1-0.500.511.522.50-n次谐波及合成图02040-0.7-0.6-0.5-0.4-0.3-0.2-0.10锯齿波频谱图图3-23.3三角波周期三角波的傅立叶级数展开式:(3-3)MATLAB实现程序:n=7;T0=2;A=2;T1=2;tn_i=1;fortn=0:0.01:T1*T0if(rem(tn,T0)=T0/4)y_t(tn_i)=4*A*r
本文标题:非周期信号(方波-锯齿波-三角波)的合成分解以及频谱分析的MATLAB实现
链接地址:https://www.777doc.com/doc-5930771 .html