吉布斯现象的说明对于存在跳跃间断点的周期信号,用傅里叶级数来还原信号时,级数不能一致收敛于原信号,只能是能量意义上的均方收敛。还原的信号在间断点的两边存在着起伏,即使选取更多的项数来逼近,只会使起伏震荡变密(向间断点处压缩),但是离间断点最近的那个肩峰总是存在大约9%的超调。选取下图1所示的矩形()ft波为例:图1其周期T=2秒,计算其傅里叶级数:0122a,2sin()2annn,0nb即有12sin()12()*cos()2nnftntn编写matlab程序用左边的级数来逼近()ft如下:t=-1:0.00001:1;m=length(t);f=zeros(1,m);y=f+0.5;%对级数求和forn=1:100f=((2*sin(n*pi/2))/(n*pi))*cos(n*pi*t);y=y+f;end%做出逼近的曲线plot(t,y)holdon;%画基准线z=ones(1,m);plot(t,z);%调整坐标轴的显示axis([-1,1,-0.1,1.2]);holdon;%画最大超调量值线u=1.09*ones(1,m);plot(t,u);改变选取的项数,得到如下的图。图2图3由图2和图3可以看到,用5000项来逼近时,波纹明显变密。图4图4是使用其前50000傅里叶项级数来逼近的局部放大图(调整t的点数和axis的范围即可),可以看到虽然使用的项数增大了很多,但是9%的峰肩仍然不变。对于连续信号,就不存在这个问题,其傅里叶级数能在处处一致收敛于原信号。在所取的项数不是很大时,就可以用傅里叶级数得到很好的逼近效果。例如对于一个峰峰值为2,周期为2的奇三角信号,将其展开为傅里叶级数:218sin()2()*sin()()nnftntn编写matlab仿真程序如下:t=-1:0.001:1;m=length(t);y=zeros(1,m);f=y;forn=1:100f=((8*sin(n*pi/2))/(n*pi)^2)*sin(n*pi*t);y=y+f;endplot(t,y)holdon;z=ones(1,m);u=-1*ones(1,m);plot(t,z);plot(t,u);axis([-1,1,-1.1,1.1]);改变选取的项数,得到仿真图如下:图5前15项的合成图6前50项的合成图7前100项的合成可以看到,随着项数的增加,三角波的傅里叶级数和越来越接近原信号了,在项数为100时已经基本看不出和原信号的差别。