吉布斯现象的仿真说明

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%对级数求和 for n=1:100 f=((2*sin(n*pi/2))/(n*pi))*cos(n*pi*t); y=y+f; end %做出逼近的曲线 plot(t,y) hold on; %画基准线 z=ones(1,m); plot(t,z); %调整坐标轴的显示 axis([-1,1,-0.1,1.2]); hold on; %画最大超调量值线 u=1.09*ones(1,m); plot(t,u); 改变选取的项数,得到如下的图。
吉布斯现象的说明
对于存在跳跃间断点的周期信号, 用傅里叶级数来还原信号时, 级数不能一致收敛于原 信号,只能是能量意义上的均方收敛。还原的信号在间断点的两边存在着起伏,即使选取更 多的项数来逼近,只会使起伏震荡变密(向间断点处压缩) ,但是离间断点最近的那个肩峰 总是存在大约 9%的超调。 选取下图 1 所示的矩形 f (t ) 波为例:
图 5 前 15 项的合成
图 6 前 50 项的合成
图 7 前 100 项的合成 可以看到, 随着项数的增加, 三角波的傅里叶级数和越来越接近原信号了, 在项数为 100 时已经基本看不出和原信号的差别。
例如对于一个峰峰值为 2,周期为 2 的奇三角信号,将其展开为傅里叶级数:

f (t )
n 1
8sin(ห้องสมุดไป่ตู้
n ) 2 *sin(n t ) (n ) 2
编写 matlab 仿真程序如下: t=-1:0.001:1; m=length(t); y=zeros(1,m); f=y; for n=1:100 f=((8*sin(n*pi/2))/(n*pi)^2)*sin(n*pi*t); y=y+f; end plot(t,y) hold on; z=ones(1,m); u=-1*ones(1,m); plot(t,z); plot(t,u); axis([-1,1,-1.1,1.1]); 改变选取的项数,得到仿真图如下:
图 1 其周期 T=2 秒,计算其傅里叶级数:
n 2sin( ) a0 1 2 ,b 0 , an n 2 2 n
即有
1 f (t ) 2 n 1
2sin(
n
n ) 2 *cos(n t )
编写 matlab 程序用左边的级数来逼近 f (t ) 如下:
t=-1:0.00001:1; m=length(t); f=zeros(1,m); y=f+0.5;
图 2
图 3 由图 2 和图 3 可以看到,用 5000 项来逼近时,波纹明显变密。
图 4 图 4 是使用其前 50000 傅里叶项级数来逼近的局部放大图 (调整 t 的点数和 axis 的范围 即可) ,可以看到虽然使用的项数增大了很多,但是 9%的峰肩仍然不变。
对于连续信号,就不存在这个问题,其傅里叶级数能在处处一致收敛于原信号。在所取 的项数不是很大时,就可以用傅里叶级数得到很好的逼近效果。
相关文档
最新文档