一、实验目的:
1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法。 2、观察由矩形窗函数截断产生的Gibbs现象,了解其特点、产生的原因及消除的方法。
3、掌握周期函数的傅里叶级数计算方法和编程技术。 二、实验原理:
(一)傅里叶级数(FS)展开
周期为T1连续时间周期信号,若满足狄利克莱条件,就可以展开成FS。其中三角形式的傅里叶级数为:
x(t)a02[ak1kcosk1tbksink1t] a02[ak1kcos2T1ktbksin2T1kt]
(1)
其中1a0,ak,和bk2T1,称为信号的基本频率(Fundamental frequency),
分别是信号x(t)的直流分量、余弦分量幅度和正弦分量幅度。
其中:
ak2T1t0T1t0x(t)cosk1tdt bk2T1t0T1t0x(t)sink1tdt (2)
连续时间周期信号x(t)的幅度频谱与相位频谱分别为
Akakbk22 karctanbkak (3)
其中k与频率的关系为k1,因此上式给出了信号基波与各次谐波幅度随频率变化的规律。
三角形式的傅里叶级数表明,一个周期信号x(t) 如果满足狄里克莱条件,那么,它就可以被看作是由很多不同频率的正弦信号所组成,其中每一个不同频率的正弦信号称为正弦谐波分量,其幅度为Ak。反过来理解三角傅里叶级数:用无穷多个正弦谐波分量可以合成一个任意的非正弦周期信号。
(二)吉布斯(Gibbs)现象
当利用(1)式对一个周期函数作实际展开运算时,对k的求和过程不可能进行到无穷,只能到某一有限值K,即相当于在频域用一个矩形窗函数WK(k)与FS的求和式相乘,得到一个频域有限长序列X(k)WK(k),因此实际FS展开式为
x(t)a02[ak1Kk1kcosk1tbksink1t]WK(k) cosk1tbksink1t]
a0 2[ak (4)
K越大,所选项数越多,有限项级数合成的结果越逼近原信号x(t)。截断引起信号失真,这是由于高频部分信号的损失。这就导致在构成有跃变的连续时间周期函数时,在跃变点的附近存在一个幅度大约为9%的过冲,且所选谐波次数越多,过冲点越向不连续点靠近。这种现象称为Gibbs现象,或称为震铃(ringing)效应。
若在计算机上编程对周期函数x(t)进行FS展开,必须对函数x(t)作等间距抽样。若抽样周期为Ts,且令T1NTs,则为
x(nTs)x(t)tnTsk1k2NTs,(1)式离散化
a02[akcosk12Nnkbksin2Nnk]
(5)
时间抽样后,(4)式离散化为
x(n)a02Kk1[akcos2Nnkbksin2Nnk] (6)
将上式与(4)式比较可见,实际的FS展开式x(n)与x(nTs)之间的误差为
(n,K)kK[akcos2Nnkbksin2Nnk] (7)
上式表明,实际展开后的误差是时间n(t = nTs)和截断频率K(cK1)的函数。
图3-1给出了一个方波信号展开成有限长FS后,在跃变点的附近产生的Gibbs现象,而且不连续的跃变点也扩展成了有一定上升时间的连续函数。
图3-1 方波展开成有限长FS后,在跃变点的附近产生Gibbs现象
为了消除这种频域截断形成的Gibbs现象,通常不采用矩形窗作截断处理,而是采用汉宁(Hanning)窗、海明(Hamming)窗或三角窗等进行加权计算。
1、以0点为中心的Hanning窗(也称为升余弦窗)定义为
2k1) kK/2(1cosw(k)2 K0 otherwise (8)
2、以0点为中心的Hamming窗定义为
2k kK/20.540.46cosw(k) K0 otherwise (9)
3、以0点为中心的三角窗(Bartlett窗)定义为
2k kK/21w(k) K0 otherwise (10)
图3-2中列出了矩形窗、三角窗、Hanning窗和Hamming窗的图像,可以比较它们的差异和类同之处。
w(k) w(k) 1 1
-K/2 0 K/2 -K/2 0 K/2
(a) 矩形窗 (b) 三角窗
w(k) w(k) 1 1
-K/2 0 K/2 -K/2 0 K/2 (c) Hanning窗 (d) Hamming窗
图 3-2 几种加权窗函数的比较
例如图3-1中的方波信号展开式用Hanning窗加权截断后,图像如图3-3所示,显然Gibbs现象已经基本消除。
图 3-3 用Hanning窗加权后方波FS的跃变点附近的Gibbs现象的消除
采用频域Hanning窗加权或Hamming窗加权的方法进行截断,与矩形截断相比,可以减弱或消除Gibbs现象,但不会减小由于频域截断产生的误差,反而因加权导致所截取区域内频谱发生变化,增大了误差。
三、实验内容:
1、将如图3-4所示的奇谐周期方波信号展开成Fourier级数并分别采用频域矩形窗和Hanning窗加权,绘制两种窗函数加权后的方波合成图像。该方波信号的周期为T1=1,振动幅度为A=1。抽样周期选为Ts0.004。
提示:由于该信号是奇谐对称周期函数,展开式中将只有正弦函数的奇次谐波,即
x(n)T1Tskk1,3,5,bsin2kNnWK(k)
其中N,系数bk由(2)式得
bk4T1T1/2x(t)sin2kT1tdt40k k1,3,5,
采用Hanning窗加权,则展开式变为
x(t) 1 -2 -1 0 1 2 t 图 3-4 奇谐方波
Kx(n)k04(2k1)[0.50.5cos2(2k1)K]sin2(2k1)Nn
程序编写如下: K=100 T=1
Ts=0.004 N=T./Ts t=-1:0.02:1 n=t./Ts x1=0 x2=0 x3=0
for k=1:1:K
x1=4./(pi.*(2.*k-1)).*sin(2.*pi.*(2.*k-1).*n./N)+x1
x2=4./(pi.*(2.*k-1)).*sin(2.*pi.*(2.*k-1).*n./N).*(0.5+0.5.*cos((4.*k+2).*pi./K))+x2
x3=4./(pi.*(2.*k-1)).*sin(2.*pi.*(2.*k-1).*n./N).*(ut(n+K/2)-ut(n-K/2))+x3 end subplot(131) plot(n,x1)
title('傅里叶级数') axis([-300,300,-1.2,1.2]) subplot(132) plot(n,x2)
title('Hanning 窗加权') axis([-300,300,-1.2,1.2]) subplot(133) plot(n,x3) title('矩形框加权') axis([-150,150,-1.2,1.2])
function x=ut(t) x=(t>0);
运行截图如下:
2、将图3-5中的锯齿波展开为Fourier级数,按(2)式求出Fourier级数的系数,并在频域分别采用矩形窗、Hanning窗和三角窗加权,观察其Gibbs效应及其消除情况。
x(t) 1 -3 -2 -1 0 1 2 3 t 图 3-5 锯齿波
程序编写如下:
t=-3:0.1:3 %调用内部函数画锯齿波 y=sawtooth(2.*pi.*t) subplot(231) plot(t,y)
title('锯齿波原函数') axis([-3,3,-1,1])
K=100 %以下是傅立叶级数和各种加权情况 x1=0 x2=0 x3=0 x4=0 t=-5:0.1:5 for k=1:1:K
x1=-sin(2.*pi.*k.*t)./(pi.*k)+x1
x2=-sin(2.*pi.*k.*t).*(0.5+0.5.*cos(2.*pi.*k./K))./(pi.*k)+x2 x3=-sin(2.*pi.*k.*t).*(0.54+0.46.*cos(2.*pi.*k./K))./(pi.*k)+x3 x4=-sin(2.*pi.*k.*t).*(1-2.*k./K)./(pi.*k)+x4
end subplot(232) plot (t,x1) title('傅立叶级数') axis([-5,5,-0.5,0.5]) subplot(233) plot(t,x2) title('矩形窗加权') axis([-5,5,-0.5,0.5]) subplot(234) plot(t,x3)
title('Hanning窗加权') axis([-5,5,-0.5,0.5]) subplot(235) plot(t,x4) title('三角窗加权') axis([-5,5,-0.5,0.5])
程序运行结果如下:
因篇幅问题不能全部显示,请点此查看更多更全内容