您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > Matlab入门篇——吉布斯(Gibbs)现象
吉布斯现象Matlab入门系列——学习目标掌握利用MATLAB语言编写计算CTFT的仿真程序,通过对仿真程序的控制实现对吉布斯现象的观察,并验证CTFT的若干重要性质Matlab仿真原理吉布斯现象Gibbsphenomenon将具有不连续点的周期函数进行傅立叶级数展开后,选取有限项进行合成。当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。这种现象称为吉布斯现象。Matlab仿真原理建立自定义函数M文件fuliye.m:1、在MATLAB的指定目录下新建一个M文件2、把MATLAB的路径选择到该M文件所在的文件夹,文件名改成“fuliye.m”3、在M文件中创建一个自定义函数,函数名为“fuliye”。在本次仿真中用于实现方波的傅里叶变换(matlab要求函数名与函数M文件的文件名一致)Matlab仿真原理functiony=fuliye(t,n)(函数名为fuliye,t和n是形式参数,t是时间,n是k的最大值)y=0;fork=-n:-1(k取-n到-1的谐波叠加)y=y+exp(1i*pi*k*t/2)*(sin(pi/2*k)/(k*pi));(信号的傅里叶展式)endy=y+1;(k=0时的傅里叶系数是1)fork=1:n(k取1到n的谐波叠加)y=y+exp(1i*pi*k*t/2)*(sin(pi/2*k)/(k*pi));endy=2*y-1;Matlab仿真原理建立自定义命令M文件gibbs.m:1、在MATLAB的指定目录下新建一个M文件2、把MATLAB的路径选择到该M文件所在的文件夹,文件名改成“gibbs.m”3、在M文件中设计一个程序,在程序中通过对自定义函数fuliye的调用实现连续时间傅里叶变换(CTFT)Matlab仿真原理x=-2.5:0.001:2.5;(创建自变量矩阵)n=input(‘pleaseentern:’);(通过键盘读取n值,确定最高次谐波的次数即k的最大值)y1=fuliye(x,n);(调用函数“fuliye()”)T=-2.5:0.001:2.5;y=square((pi/2)*T+(pi/2))+1;(生成方波信号,方波周期为4s,峰峰值为2v)plot(T,y,x,y1,‘linewidth’,1.2),title(‘Gibbs现象’),xlabel(时间t‘),ylabel(信号幅值u(v)’);(生成傅里叶级数和方波的图像)axis([-2.52.5-13]);(设置X轴,Y轴的取值范围)gridon;(打开网格)Matlab仿真原理方波生成函数square():一般形式为“y=A*square(B*t+C)”,其中A是方波信号的幅值,B是方波的角频率,C是方波的初相Matlab仿真原理吉布斯现象(k=10)Matlab仿真原理吉布斯现象(k=20)Matlab仿真原理吉布斯现象(k=30)Matlab仿真原理吉布斯现象(k=70)放大前放大后Matlab仿真原理吉布斯现象(k=150)放大前放大后Matlab仿真原理吉布斯现象(k=300)放大前放大后END
本文标题:Matlab入门篇——吉布斯(Gibbs)现象
链接地址:https://www.777doc.com/doc-5741951 .html