连续时间信号傅里叶级数分析MATLAB课程设计_第1页
连续时间信号傅里叶级数分析MATLAB课程设计_第2页
连续时间信号傅里叶级数分析MATLAB课程设计_第3页
连续时间信号傅里叶级数分析MATLAB课程设计_第4页
连续时间信号傅里叶级数分析MATLAB课程设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、Matlab应用实践课程设计 PAGE 54 绪论本次课程是通过MATLAB软件来实现数字信号系统里的相关图像和相关仿真的软件。近年来,MATLAB以其强大的矩阵计算和图像视化功能逐渐为国人所知。MATLAB是mathworks公司的软件产品,MATLAB已经成为一个系列产品:MATLAB主包各种工具(toolbox)。功能丰富的工具箱大致分为两类:功能型工具箱和领域型工具箱。功能型工具箱主要用来扩充MATLAB的符号计算功能图形建模仿真功能文字处理功能以及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的,如控制工具(control toolbox)信号处理工具箱(signal

2、 processing toolbox)等。MATLAB (MATrix LABoratory)具有用法简易、可灵活运用、程式结构强又兼具延展性3。 以下为其几个特色: 功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问 题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。 先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程 性图文并茂的文章。 高阶但简单的程式环境 - 做为一种直译式的程式语言,MATLAB容许使用者在短时间

3、内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建 功能。 开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。 丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提 供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行 )、影像处理、统计分析、讯号处理、神经网路、模拟分析、

4、控制系统、即时控制、系统确认、强建控 制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析4。1 MATLAB简介 1.1 MATLAB语言功能MATLAB功能丰富,可扩展性强。MATLAB软件包括基本部分和专业扩展两大部分的功能。基本部分包括:矩阵的运算和各种变换;代数和超越方程的求解;数据处理和傅立叶变换;数值部分等等,可以充分满足大学理工科本科的计算需要。扩展部分称为工具箱。它实际上是用MATLAB的基本语句辩称的各种子程序集,用于解决某一方面的专门问题,或实现某一类的新算法。MATLAB 具有以下基本功能(1)数值计算功能;(2)符号计算功能;(3)图形处理及可视化功能;(3)

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

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

7、计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能,而学科性工具箱是专业性比较强的,如control, toolbox, signl ,proceessing ,toolbox,commumnication toolbox 等4。2 傅里叶级数基本原理概要2.1 周期信号的傅里叶分解 设有连续时间周期信号,它的周期为T,角频率,且满足狄里赫利条件,则该周期信号可以展开成傅里叶级数,即可表示为一系列不同频率的正弦或复指数信号之和。傅里叶级数有三角形式和指数形式两种。 1. 三角形式的傅里叶级数2: 式中系数,称为傅里叶系数,可由下式求得: 2. 指数形式的傅里叶级数2: 式中系数称为

8、傅里叶复系数,可由下式求得: 周期信号频谱具有三个特点1:(1) 离散性,即谱线是离散的;(2) 谐波性,即谱线只出现在基波频率的整数倍上;(3) 收敛性,即谐波的幅度随谐波次数的增高而减小。 周期信号的傅里叶分解用Matlab进行计算时,本质上是对信号进行数值积分运算。在Matlab中有多种进行数值积分运算的方法,我们采用quadl函数,它有两种其调用形式。 (1) yquadl(func, a, b)。 其中func是一个字符串,表示被积函数的.m文件名(函数名);a、b分别表示定积分的下限和上限。 (2) yquadl(myfun, a, b)。其中“”符号表示取函数的句柄,myfun表

9、示所定义函数的文件名。6 2.3 三角形式和指数形式傅里叶级数及各系数间的关系 傅里叶级数的指数形式和三角形式是等价的,其系数可互相转换。表2-1综合了三角形式和指数形式傅里叶级数及其系数,以及各系数间的关系。表2-1 周期函数展开为傅里叶级数形式指数形式三角函数形式展开式傅里叶系数系数间的关系 2.2周期信号的频谱 周期信号经过傅里叶分解可表示为一系列正弦或复指数信号之和。为了直观地表示出信号所含各分量的振幅,以频率(或角频率)为横坐标,以各谐波的振幅或虚指数函数的幅度为纵坐标,可画出幅度频率关系图,称为幅度频谱或幅度谱。类似地,可画出各谐波初相角与频率的关系图,称为相位频谱或相位谱2。3

10、用MATLAB实现周期信号的傅立叶级数分解与综合 下面以矩形信号为例介绍用MATLAB来实现周期信号的傅立叶技术的分解与综合。3.1 合成波形与原波形之间的关系 本文使用的连续周期矩形信号是一个周期为4,占空比为50%,幅值为1的矩形波信号,从上面的分析可以得知,这个矩形波信号可以分解成傅立叶级数也是就无数个不同频率的三角波的叠加,用MATLAB软件可以很容易的画出不同个数谐波叠加形成的合成波的形状(源代码见附录),以便将它们与原信号做比较,给理论分析以正确的实验基础。 下图为分别用1到10次谐波叠加形成的合成波与原信号的比较,可以很快地看出,当叠加的谐波数越多是,与原信号的差别就越小,这样就

11、直接证明了傅立叶级数理论的正确性。图3-1 不同次数的谐波的合成波与原信号的比较3.2 吉布斯现象 分析傅立叶级数的公式 满足狄里赫利条件的周期函数表示成的傅立叶级数都收敛。狄里赫利条件如下:在任何周期内,x(t)必须绝对可积;在任一有限区间中,x(t)只能取有限个最大值或最小值;在任何有限区间上,x(t)只能有有限个第一类间断点。 所谓的吉布斯现象就是:在x(t)的不可导点上,如果我们只取x(t)等式右边的无穷级数中的有限项作和X(t),那么X(t)在这些点上会有起伏1。具体现象如下图所示,以下分别为谐波次数为N=50,N=100,N=500合成波的情况。图3.2 谐波次数为N=50合成波图

12、3.3 谐波次数为N=100合成波图3.4 谐波次数为N=500合成波 从上面的图像中可以看出,当N=500的时候,合成波与原来的方波拟合得非常好,但是在不可导的点上,即为x=-1.5,x=-0.5,x=0.5,x=1.5这样的点的时候,合成波会有较大的波动,这就是非常明显的吉布斯现象。4 用MATLAB实现周期信号的单边频谱及双边频谱。 用周期矩形波信号为例其中周期T=5,脉冲宽度 =1。在下图中,为一个脉冲的宽度,T为脉冲的周期,它们是方波信号的两个非常重要的参数,它们的大小关系将直接影响方波信号的形状和性质。 以下皆以方波为例来介绍方波各种参数对其频谱的影响以及单边频谱和双边频谱的关系,

13、方波示意图如下:图4.1 周期矩形脉冲信号4.1 单边,双边(幅度,相位)频谱及其关系4.1.1单边,双边(幅度,相位) 如前所述,周期信号可以分解成一系列正弦(余弦)信号或虚指数信号之和,即 其中, 或 幅度和相位 为了直观地表示出信号所含各分量的振幅或,随频率的变化情况,通常以角频率为横坐标,以各次谐波的振幅或虚指数函数的幅度为纵坐标,画出如图4.2和4.3所示的各谐波的振幅或与角频率的关系图,称为周期信号的幅度(振幅)频谱,简称幅度谱。图中每条竖线代表该频率分量的幅度,称为谱线。各谱线顶点连线的曲线(如图中原点所示)称为频谱包络线,它反映了各谐波分量幅度随频率变化的情况。图4.2中幅度谱

14、为单边幅度谱(用绘制的频谱)。图4.3中幅度谱为双边幅度谱(用绘制的频谱)。 类似地,也可画出各谐波初相角与角频率的关系图,如图4.1和4.2中各谐波初相角与角频率的关系图,称为相位频谱,简称相位谱。图4.2中相位谱为单边相位谱。图4.3中相位谱为双边相位谱。如果为实数,那么可用的正负来表示为0或也可把幅度谱和相位谱画在一张图上。 由图可见,周期信号的谱线只出现在频率为等原周期信号频率的整数倍的离散频率上,即周期信号的频谱是离散谱。下面的分析中用的方波的参数为:T=10。图4.2 周期信号的幅度谱和相位谱(单边)图4.3周期T=5,脉宽tao=1 的矩形脉冲及单边频谱图4.1.2 单边,双边频

15、谱关系 单边频谱和双边频谱的区别就是求值的范围不同,单边频谱求的是频率大于0的情况,而双边频谱求的是所有频率的情况,即包括频率小于0的情况,这个区别在上面的两张图中可以非常明显地看出来。4.2以单边幅度频谱为例,研究脉冲宽度与频谱的关系首先令方波首期T=10。改变脉冲宽度,就是在图4-1中T值不变的情况下,改变的值的大小,同时必须小于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,来研究方波周期对其频谱

16、的影响。图4-7 a=-4,b=4即T=8时的情况图4-8 a=-5,b=5即T=10时的情况图4-9 a=-6,b=6即T=12时的情况 通过观察以上三个图像中第一个零点的位置,不难看出:当方波的周期越大,频谱就越密集,周期越小,频谱就越稀疏,其实这点也不难理解。因为值不变,改变T值就等于改变了T=中比例系数的大小。由于周期脉冲信号的时域宽度不变,这时频谱包络线的零点所在位置不变,而当周期增长时,相邻谱线的间隔减少,频谱变密。如果周期无限增长(这时就成为非周期信号),那么,相邻谱线的间隔将趋近于零,周期信号的离散频谱就过渡到非周期信号的连续频谱。随着周期的增长,各谐波分量的幅度也相应减少。脉

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

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

19、置,width是该位置的横坐标和周期的比值.因而,当width=0.5 时产生标准的对称三角波,当width时(可缺省)产生锯齿波。编写CTFSsjbshbd.m函数文件,源程序文件见附录程序。调用函数CTFSsjbshbd.m,即可绘出方波脉冲的双边频谱如图5.7,5.8所示,其中周期T和width可变,修改程序即可得到单边频谱如图5.9,5.10所示。图5.7 周期T=5,width=0.5的三角脉冲双边频谱图5.8 周期T=10,width=1的三角脉冲双边频谱图5.5 周期三角波双边幅度频谱图5.9 周期T=5,width=0.5的三角脉冲单边频谱图5.10 周期T=10,width=

20、1的三角脉冲单边频谱6 小结即心得体会通过这次课程设计让我对MATLAB的强大功能有更深的了解和熟悉。大二上下学期和大三下学期我们做过MATLAB的实验。通过以前的一点点基础,我到图书馆里借了六本与MATLAB有关的书。通过在寝室里看书,我对MATLAB有了更近一步的了解和熟悉。 然后对老师给的题目进行分析。连续时间信号傅里叶级数分析及MATLAB实现。课题要求:深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。课题内容:一、用MATLAB实现周期信号的傅里叶级数分解与综合。以周期矩形波信号为

21、例,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形波形之间的关系及吉布斯现象。二、用MATLAB实现周期信号的单边频谱及双边频谱。以周期矩形波形信号为例:1、绘出单边(幅度,相位)频谱。2、绘出双边(幅度,相位)频谱。3、比较1和2之间的关系。4、以单边幅度频谱为例,研究脉冲宽度与频谱的关系。5、以单边幅度频谱为例,研究脉冲周期与频谱的关系。三、用MATLAB实现典型周期信号的频谱。1、周期方波脉冲信号的单、双边幅度频谱(T、占空比,二个参数可变)。2、周期三角脉冲信号的单、双边幅度频谱(T、width,二个参数可变)。参考相关的书籍写出相应的公式和相关的程序,并且初步分析其正确性。 接

22、下来我用以前安装的MATLAB7.0,输入相关的程序,并且运行它,检查它的正确性,并且修正。在程序的调试过程中遇到很多的问题。有的程序我根本就不知道它错在哪里,也不知道怎么去改正。只有不断的翻书,不断的修改程序,不断的调试。最终总算勉强的完成了老师给我的任务。 在写相关源程序的时候,我还收索了大量的网站,在网上收索了很多关于MATLAB的资料。在这个过程中我发现网上有很多有用的知识。以后应该多注意,充分合理的利用网络,通过网络来学习东西。 这次课程设计业使我明白了在知识的领域里我还有很多很多的不足,并且再一次的深深的体会到理论和实践之间还有很到的差别。在以后的学习中应该多多的注意实践知识的训练

23、和积累。在以后的学习生活中要不断的开拓自己的动手能力,不断的训练自己的动手能力。这次课程设计让我深深的明白了自己以后该做什么,该怎么去做。 这次课程设计课程设计业让我复习了数字信号系统处理里的相关知识。通过这次试验我复习了连续时间信号傅里叶级数,以及单边频谱,双边频谱,典型周期信号的单边,双边频谱分析。通过这次课程设计我还对mathtype数学公式编辑器有了一定的了解,并且会用它编辑公式。对word也有了进一步的掌握。致 谢 首先感谢学校的老师为我们精心的安排这次课程设计,让我们有机会进行实践锻炼。对所学的知识得到巩固和加强,同时也让我们对MATLAB有了进一步的了解和锻炼。然后还要感谢我们的

24、梁老师平时对我们的耐心教导。同时也感谢在这次实践活动中帮助过我的同学。 参考文献: 1刘泉,阙大顺,郭志强.数字信号处理原理与实现Z. 北京:电子工业出版社,2009年 2刘泉,江雪梅.信号与系统.北京:高等教育出版社,2006年2月 3施阳,李俊. MATLAB语言工具箱-ToolBox实用指南. 西安:西北工业大学出版社,1999年4月 4贺兴华,周媛媛,王继阳,周晖.MATLAB7.x图像处理. 北京:人民邮电出版社,2006年11月 5梁虹. 信号与系统分析及MATLAB实现Z. 北京:电子工业出版社,2002年 6 罗建军. MATLAB教程Z. 北京:电子工业出版社,2005年附录

25、:源程序一:周期信号的傅里叶级数分解与综合的源程序如下:T=4;tao=2;w=2*pi/T;a0=quadl(singrect,-2,2)/T; % 计算a0 N=10; an=zeros(1,N); bn=zeros(1,N);for k=1:Nan(k)=quadl(rectcos, -2, 2, , , k, w)*2/T;% 计算an. quadl中的, 表示以默认精度进行数值积分% rectcos函数中的后两个参数;bn(k)=quadl(rectsin, -2, 2, , , k, w)*2/T; %计算bn;end;n=1:1:N;figure(1);subplot(1,2,1

26、);plot(n, an, -o);grid on;subplot(1,2,2);plot(n, bn, -o);grid on;t=-6:0.01:6;x=pulstran(t,-8:4:8,rectpuls,2); 生成周期矩形脉冲信号 figure(2);subplot(6,2,1);plot(t, x);axis(-8,8,-1,2); grid on;% 有限项级数逼近 A0=a0;AN=sqrt(an.2+bn.2);fiN=-atan(bn./an);subplot(6,2,2); plot(t,A0/2); grid on; %直流项 wave=a0/2;for k=1:10w

27、ave=wave+an(k)*cos(k*w*t+fiN(k);subplot(6,2,k+2);plot(t,wave);grid on;end程序中“singrect”、“rectcos”和“rectsin”分别为所预先定义的函数文件。其中singrect.m文件为: function y=singrect(t);y=(abs(t)=1); % 定义单个矩形脉冲函数 rectcos.m文件为: function y=rectcos(t, n, w);y=(abs(t)=1). *cos(n*w*t); % 定义了矩形脉冲与余弦函数的乘积 rectsin.m文件为: function y=r

28、ectsin(t,n,w);y=(abs(t)=1).*sin(n*w*t); % 定义了矩形脉冲与正弦函数的乘积 源程序二:吉布斯现象源程序:t=-2:0.001:2;N=input(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(pleas Input 所需展开的最

29、高谐波次数: Nf=);endT=input(pleas Input 信号的周期=);if nargin-1/2&x1/2)+1/2.*(x=-1/2);out(1)=1/T0.*quad(xsqual,a,b,tol);xfun=(x,k,T)xsqual(x).*exp(-j*2*pi*x*k/T);for i=1:n out(i+1)=1/T0.*quad(xfun,a,b,tol,i,T0);endout1=out(n+1:-1:2);out1=conj(out1),out;angout=angle(out1);absout=abs(out1);n1=-n:n;subplot(2,1,

30、1)stem(n1(n+1:2*n+1),absout(n+1:2*n+1);subplot(2,1,2)stem(n1(n+1:2*n+1),angout(n+1:2*n+1);源程序五:周期方波脉冲频谱双边频谱分析源程序function A_sym,B_sym=CTFS3syms t n k yT=10;if nargin4;Nf=input(pleas Input 所需展开的最高谐波次数: );endif 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=

31、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=fliplr(S3) S5=S2-i*S4; S6=fliplr(S5); N=Nf*2

32、*pi/T; k2=-N:2*pi/T:N; S7=S6,S5(2:end); subplot(2,1,1) x=squ_timefun T=10;t=-2*T:0.01:2*T; plot(t,x) title(T=10,占空比为80%的周期方波脉冲) axis(-20,20,-1,1.2) line(-20,20,0,0) subplot(2,1,2) stem(k2,abs(S7); title(连续时间函数周期方波脉冲的双边幅度谱) axis(-40,40,0,0.6)endfunction y=time_fun_s(t)syms a a1T=10;a=T/2;y1=sym(Heavi

33、side(t)*2-sym(Heaviside(t-a1);y=y1-sym(Heaviside(t+a1);y=subs(y,a1,a);y=simple(y);function x=squ_timefunT=10;t=-2*T:0.01:2*T;duty=80;x=square(t,duty);源程序六:周期方波脉冲单边频谱分析源程序function A_sym,B_sym=CTFS31syms t n k yT=10;if nargin4;Nf=input(pleas Input 所需展开的最高谐波次数: );endif nargin5;Nn=32;endy=time_fun_s(t);

34、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)

35、S3(1,k+1)=0 S4=fliplr(S3) S5=S2-i*S4; N=Nf*2*pi/T; k2=0:2*pi/T:N; subplot(2,1,1) x=squ_timefun T=10;t=-2*T:0.01:2*T; plot(t,x) title(T=10,占空比为80%的周期方波脉冲) axis(-20,20,-1,1.2) line(-20,20,0,0) subplot(2,1,2) stem(k2,abs(S5); title(周期方波脉冲的单边幅度谱) axis(0,40,0,0.6)end源程序七:周期三角脉冲双边频谱分析源程序function A_sym,B_s

36、ym=CTFS4syms t n k yT=10;if nargin4;Nf=input(pleas Input 所需展开的最高谐波次数: );endif 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(v

37、pa(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); subplot(2,1,1) x=sjb_timefun T=10;t=-2*T:0.01:2*T; plot(t,x) title(T=10,脉宽为1的周期三角波脉冲) axis

38、(-20,20,-1,1.2) line(-20,20,0,0) subplot(2,1,2) stem(k2,abs(S7); title(连续时间函数周期三角脉冲的双边幅度谱) axis(-40,40,0,0.6)endfunction y=time_fun_s(t)syms a a1T=10;a=T/2;y1=sym(Heaviside(t+a1)*(2*t/a1+1)+sym(Heaviside(t-a1)*(2*t/a1-1);y=y1-sym(Heaviside(t)*(4*t/a1);y=subs(y,a1,a);y=simple(y);function x=sjb_timefu

39、nT=10;t=-2*T:0.01:2*T;x=sawtooth(t-2*T/3,1);源程序八:周期三角脉冲单边频谱分析源程序function A_sym,B_sym=CTFSsjbshbdsyms t n k yT=10;if nargin4;Nf=input(pleas Input : );endif nargin 1-binocdf(100,162,0.5)ans = 0.0010433相关函数 HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binofit.html

40、 binofit | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binoinv.html binoinv | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binopdf.html binopdf | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/hel

41、p.jar%21/binornd.html binornd | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binostat.html binostat | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/cdf.html cdf附:二项式分布(binomial distribution )定义二项分布的概率密度函数为where k is the num

42、ber of successes in n trials of a Bernoulli process with probability of success p.The binomial distribution is discrete, defined for integers k = 0, 1, 2, . n, where it is nonzero.背景The binomial distribution models the total number of successes in repeated trials from an infinite population under th

43、e following conditions:Only two outcomes are possible on each of ntrials.The probability of success for each trial is constant.All trials are independent of each other.The binomial distribution is a generalization of the HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.ja

44、r%21/brn2ivz-2.html Bernoulli distribution; it generalizes to the HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/brn2ivz-84.html multinomial distribution.参数Suppose you are collecting data from a widget manufacturing process, and you record the number of widgets w

45、ithin specification in each batch of100. You might be interested in the probability that an individual widget is within specification. Parameter estimation is the process of determining the parameter, p, of the binomial distribution that fits this data best in some sense.One popular criterion of goo

46、dness is to maximize the likelihood function. The likelihood has the same form as the binomial pdf above. But for the pdf, the parameters (nandp) are known constants and the variable isx. The likelihood function reverses the roles of the variables. Here, the sample values (the xs) are already observ

47、ed. So they are the fixed constants. The variables are the unknown parameters. MLE involves calculating the value of p that give the highest likelihood given the particular set of data.The function HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binofit.html binof

48、it returns the MLEs and confidence intervals for the parameters of the binomial distribution. Here is an example using random numbers from the binomial distribution with n=100 and p=0.9. r = binornd(100,0.9)r = 85 phat, pci = binofit(r,100)phat = 0.85pci = 0.76469 0.91355The MLE for parameterp is0.8

49、800, compared to the true value of0.9. The 95% confidence interval forp goes from 0.7998 to0.9364, which includes the true value. In this made-up example you know the true value ofp. In experimentation you do not.示例The following commands generate a plot of the binomial pdf for n = 10 and p = 1/2.x =

50、 0:10;y = binopdf(x,10,0.5);plot(x,y,+) 相关内容 HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/bqt29ct.html l bqt290a-1 Discrete Distributions附:二项式分布(网上)定义若某事件概率为p,现重复试验n次,该事件发生k次的概率为:P=C(k,n)pk(1-p)(n-k)C(k,n)表示组合数,即从n个事物中拿出k个的方法数。二项分布的概念考虑只有两种可能结果的随机试验,当成功的概率()是恒定

51、的,且各次试验相互独立,这种试验在统计学上称为贝努里试验(Bernoullitrial)。如果进行n次贝努里试验,取得成功次数为X(X=0,1,n)的概率可用下面的二项分布概率公式来描述:P=C(X,n) X(1-)(n-X)式中的n为独立的贝努里试验次数,为成功的概率,(1-)为失败的 HYPERLINK /doc/5399415.html t _blank 概率,X为在n次贝努里试验中出现成功的次数,C(X,n)表示在n次试验中出现X的各种组合情况,在此称为二项系数(binomialcoefficient)。内容简介二项分布,伯努里分布:进行一系列试验,如果1. 在每次试验中只有两种可能的

52、结果,而且是互相对立的;2. 每次实验是独立的,与其它各次试验结果无关;3. 结果事件发生的 HYPERLINK /doc/5399415.html t _blank 概率在整个系列试验中保持不变,则这一系列试验称为伯努力试验。在这试验中,事件发生的次数为一 HYPERLINK /doc/2273201.html t _blank 随机事件,它服从二次分布。二项分布可以用于可靠性试验。可靠性试验常常是投入n个相同的式样进行试验T小时,而只允许k个式样失败,应用二项分布可以得到通过试验的概率。一个事件必然出现,就说它100%要出现。100%=1,所以100%出现的含义就是出现的概率P=1。即必然

53、事件的出现概率为1。若掷一枚硬币,正面向上的结果的概率为0.5。反面向上的结果的概率也是0.5。则出现正面向上事件或者反面向上事件的概率就是0.5+0.5=1,即二者必居其一。若掷两次硬币,由独立事件的概率乘法定理那么两次都是正面(反面)向上的概率是0.50.5=0.25。另外第一个是正第二个是反的出现概率也是0.50.5=0.25。同理第一个反第二个正的出现概率也是0.50.5=0.25。于是一正一反的概率是前面两个情况的和,即0.25+0.25=20.25=0.5。它们的合计值仍然是1。binopdf二项分布的概率密度函数语法格式Y = binopdf(X,N,P)函数功能Y = bino

54、pdf(X,N,P) 计算X中每个X(i)的概率密度函数,其中,N中对应的N(i)为试验数,P中对应的P(i)为每次试验成功的概率。Y, N, 和 P 的大小类型相同,可以是向量、矩阵或多维数组。输入的标量将扩展成一个数组,使其大小类型与其它输入相一致。N中的值必须是正整数,0 P 1 。对于给出的x和两个参数n和p,二项分布概率密度函数为其中 q = 1 p。 y为n次独立试验中成功x次的概率,其中,每次试验成功的概率为p。指示器函数 I(0,1,.,n)(x) 确保x 取值为 0, 1, ., n。 示例一个质量检查技术员一天能测试200块电路板。假设有 2% 的电路板有缺陷,该技术员在一

55、天的测试中没有发现有缺陷的电路板的概率是多少?binopdf(0,200,0.02)ans =0.0176质量检查技术员一天中最大可能检测出有缺陷的电路板是多少块?defects=0:200;y = binopdf(defects,200,.02);x,i=max(y);defects(i) ans =4相关函数 HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binocdf.html binocdf | HYPERLINK jar:file:/D:/Program%20Files/MAT

56、LAB/help/toolbox/stats/help.jar%21/binofit.html binofit | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binoinv.html binoinv | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binornd.html binornd | HYPERLINK jar:file:/D:/Program%20Files/MAT

57、LAB/help/toolbox/stats/help.jar%21/binostat.html binostat | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/pdf.html pdfdlmread将以ASCII码分隔的数值数据文件读入到矩阵中语法格式M = dlmread(filename)M = dlmread(filename, delimiter)M = dlmread(filename, delimiter, R, C)M = dlmread(filename, deli

58、miter, range)函数功能M = dlmread(filename)读取有分隔符的ASCII数值数据文件filename,并把数据给到矩阵M中。文件名(filename)以字符串形式用单引号括起来。 dlmread 从文件的格式中推断分隔符。M = dlmread(filename, delimiter)指定分隔符delimiter。使用 t 代表制表符 tab 作为分隔。M = dlmread(filename, delimiter, R, C)R和C指定了数据读取数据,其左上角的值位于文件中的第R行,第C列。R和C从0开始,所以R=0, C=0 指向文件中的第一个值。M = dlm

59、read(filename, delimiter, range)读取由range = R1 C1 R2 C2指定的区域块, (R1,C1)是左上角,(R2,C2)是右下角。也可以使用电子表格表示法来指定,如range = A1.B7。备注All data in the input file must be numeric. dlmread does not read files that contain nonnumeric data, even if the specified rows and columns contain only numeric data.若没有指定分隔符,当从文件格

60、式中推断分隔符时,连续的空格符当作一个分隔符对待。若指定了分隔符,则重复的分隔符将分别作为单独的分隔符对待。If you want to specify an R, C, or range input, but not a delimiter, set the delimiter argument to the empty string, (two consecutive single quotes with no spaces in between, ). For example,M = dlmread(myfile.dat, , 5, 2)In this case, dlmread tre

温馨提示

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

评论

0/150

提交评论