电子科技大学光电信息学院姜哲方波的合成与分解【设计要求】(1)熟悉连续周期信号的傅立叶级数定义。(2)连续周期方波信号的建模。(3)利用MATLAB工具对方波分解出来的信号进行合成。【设计工具】MATLAB【设计原理】1、傅立叶级数分析的原理:任何周期信号都可以用一组三角函数{sin(nω0t),cos(nω0t)}的组合表示:000()[cos()sin()]jntnnnnxtaeantjnt这表明傅立叶级数可以表示为连续时间的周期信号,也即是连续时间周期信号可以分解为无数多个复指数谐波分量。在这里na为傅立叶级数的系数,02T称为基波频率。2、建立方波信号的模型:思考:如何建立连续周期方波信号?①预置一个周期内的方波信号:-A(-T/2t0)一个完整周期内的信号表达式:0()xt=A(0tT/2)②对方波信号以周期T进行平移:0()()nxtxtnT通过以上的两个步骤我们可以建立一个连续周期方波信号,为降低方波信号分解与合成的复杂程度,可以预置方波信号为奇谐信号,此连续时间周期方波信号如下:0(),(0,2)xsigntt0()(2),(,)nxtxtnt3、方波信号分解:根据傅立叶级数分析,其三角函数展开式为:000411()(sinsin3sin5...)35Axtttt0141sin()iAntnn=1,3,5,7,9……由以上可知道,周期方波信号可以分解为一系列的正弦波信号:4A/π*(sinω0t)、4A/π*(sin(3ω0t)/3)、4A/π*(sin(5ω0t)/5)、4A/π*(sin(7ω0t)/7)、4A/π*(sin(9ω0t)/9)……其中ω0为周期方波信号的基波频率,A为周期方波信号的幅值,此方波信号可以分解为各奇次谐波。思考:奇谐信号如何分解为各奇次正弦波?4、方波信号合成:对连续周期方波信号各谐波分量(基波分量、三次波分量、五次波分量……)分别进行求和运算,步骤如下:①考查一个完整周期(0~2π)这段时间内的信号,画出结果,并显示。②画出基波分量1f,并显示,观察1f与原周期方波信号的误差大小。③将三次谐波3()ft加到第二步之上,画出结果,并显示,观察1y与原周期方波信号的误差大小。113()()()ytftft④将五次谐波5()ft加到第三步之上,画出结果,并显示,观察2y与原周期方波信号的误差大小。2135()()()()ytftftft⑤将七次谐波7()ft与九次谐波9()ft加到第四步之上,画出结果,并显示,观察3y与原周期方波信号的误差大小。313579()()()()()()ytftftftftft思考:当n,对各奇次谐波进行合成,会得到什么样的图形?【思考题】在求解傅立叶级数中,实偶信号对应什么样的信号?实奇信号对应什么样的信号?奇谐信号对应什么样的信号?【MATLAB参考命令】绘图命令:plot、subplot等符号函数:sign(t)等一、方波的定义:方波是一种非正弦曲线的波形,通常会于电子和讯号处理时出现。理想方波只有“高”和“低”这两个值。电流的波形为矩形的电流即为方波电流。不论时间轴上下是不是对称的,只要是矩形就可叫方波。方波的性质:例,方波的图像:二、对于方波的数学分析:f(t)h-h-TT0tf(t)th-h-T0图1方波图2三角波任何具有周期为T的波函数f(t)都可以表示为三角函数所构成的级数之和,即:000()[cos()sin()]jntnnnnxtaeantjnt或(其中:T为周期,为角频率。02T称为基波频率;第一项20a为直流分量,na为傅立叶级数的系数,称为基波频率)对于上图图1所示方波,我们可以得到他的时域特性函数:)02()20()(tTTthhtf,(周期为T)【此方波为奇函数,它没有常数项。数学上可以证明此方波可表示为:)7sin715sin513sin31(sin4)(tttthtf】化简后可得:1])12sin[()121(4ntnnh三、方波信号的合成:对连续周期方波信号各谐波分量(基波分量、三次波分量、五次波分量……)分别进行求和运算,步骤如下:①考查一个完整周期内的信号,画出结果,并显示。运用MATLAB7.0编辑程序:程序如下:function[A_sym,B_sym]=signalssymstnkx;T=5;tao=0.2*T;a=0.5;ifnargin4;Nf=6;endifnargin5;Nn=32;endfunctionx=uestcx(t)h=1;x1=sym('Heaviside(t+0.5)')*h;x=x1-sym('Heaviside(t-0.5)')*h;10)sincos(21)(nnntnbtnaatffunctiony=uestce(t)a=0.5;T=5;h=1;tao=0.2*T;t=-8*a:0.01:T-a;e1=1/2+1/2*sign(t+tao/2);e2=1/2+1/2*sign(t-tao/2);y=h.*(e1-e2);x=uestcx(t);A0=2*int(x,t,-a,T-a)/T;As=int(2*x*cos(2*pi*n*t/T)/T,t,-a,T-a);Bs=int(2*x*sin(2*pi*n*t/T)/T,t,-a,T-a);A_sym(1)=double(vpa(A0,Nn));fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));endifnargout==0c=A_sym;disp(c)d=B_sym;disp(d)t=-8*a:0.01:T-a;subplot221y=uestce(t);plot(t,y,'r:')title('一个完整周期内的信号')end运行程序后,可以得到结果如下图:在T=1s,A=1情况下,一个完整周期内的信号如上图。②画出基波分量1f,并显示,观察1f与原周期方波信号的误差大小。运用MATLAB7.0编辑程序:程序代码如下:function[A_sym,B_sym]=signalssymstnkx;T=5;tao=0.2*T;a=0.5;ifnargin4;Nf=6;endifnargin5;Nn=32;endx=uestcx(t);A0=2*int(x,t,-a,T-a)/T;As=int(2*x*cos(2*pi*n*t/T)/T,t,-a,T-a);Bs=int(2*x*sin(2*pi*n*t/T)/T,t,-a,T-a);A_sym(1)=double(vpa(A0,Nn));fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));endifnargout==0c=A_sym;disp(c)d=B_sym;disp(d)t=-8*a:0.01:T-a;f=square(2*pi*t,50);f1=4*sin(2*t*pi)/pi;subplot221plot(t,f1)title('基波')axis([-4,4.5,-0.1,1.1])subplot222y=uestce(t);plot(t,y,'r:')title('原周期信号')axis([-4,4.5,-0.1,1.1])subplot223plot(t,f1),holdony=uestce(t);plot(t,y,'r:')title('周期信号与基波的比较')endfunctionx=uestcx(t)h=1;x1=sym('Heaviside(t+0.5)')*h;x=x1-sym('Heaviside(t-0.5)')*h;functiony=uestce(t)a=0.5;T=5;h=1;tao=0.2*T;t=-8*a:0.01:T-a;e1=1/2+1/2*sign(t+tao/2);e2=1/2+1/2*sign(t-tao/2);y=h.*(e1-e2);运行程序后得到如下所示结果:**发现基波信号与原周期信号并不能很好的吻合,两者误差较大。③将三次谐波3()ft加到第二步之上,画出结果,并显示,观察1y与原周期方波信号的误差大小。113()()()ytftft运用MATLAB7.0编辑程序:程序代码如下:function[A_sym,B_sym]=signalssymstnkx;T=5;tao=0.2*T;a=0.5;ifnargin4;Nf=6;endifnargin5;Nn=32;endx=uestcx(t);A0=2*int(x,t,-a,T-a)/T;As=int(2*x*cos(2*pi*n*t/T)/T,t,-a,T-a);Bs=int(2*x*sin(2*pi*n*t/T)/T,t,-a,T-a);A_sym(1)=double(vpa(A0,Nn));fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));endifnargout==0c=A_sym;disp(c)d=B_sym;disp(d)t=-8*a:0.01:T-a;f=square(2*pi*t,50);f1=4*sin(2*t*pi)/pi;f2=4*sin(6*t*pi)/(pi*3);f3=f1+f2;subplot221plot(t,f1),holdony=uestce(t);plot(t,y,'r:')title('原周期信号与基波信号')axis([-4,4.5,-0.1,1.1])subplot222plot(t,f3),holdony=uestce(t);plot(t,y,'r:')title('原周期信号与基波信号+三次谐波信号')endfunctionx=uestcx(t)h=1;x1=sym('Heaviside(t+0.5)')*h;x=x1-sym('Heaviside(t-0.5)')*h;functiony=uestce(t)a=0.5;T=5;h=1;tao=0.2*T;t=-8*a:0.01:T-a;e1=1/2+1/2*sign(t+tao/2);e2=1/2+1/2*sign(t-tao/2);y=h.*(e1-e2);运行程序后得到如下结果:④将五次谐波5()ft加到第三步之上,画出结果,并显示,观察2y与原周期方波信号的误差大小。2135()()()()ytftftft运用MATLAB7.0编译程序,程序代码如下:function[A_sym,B_sym]=signalssymstnkx;T=5;tao=0.2*T;a=0.5;ifnargin4;Nf=6;endifnargin5;Nn=32;endx=uestcx(t);A0=2*int(x,t,-a,T-a)/T;As=int(2*x*cos(2*pi*n*t/T)/T,t,-a,T-a);Bs=int(2*x*sin(2*pi*n*t/T)/T,t,-a,T-a);A_sym(1)=double(vpa(A0,Nn));fork=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));endifnargout==0c=A_sym;disp(c)d=B_sym;disp(d)t=-8*a:0.01:T-a;f=square(2*pi*t,50);f1=4*sin(2*t*pi)/pi;f2=