方波的傅立叶级数合成与分解 信号与系统

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

电子科技大学 光电信息学院 姜哲

方波的合成与分解 【设计要求】

(1) 熟悉连续周期信号的傅立叶级数定义。 (2) 连续周期方波信号的建模。

(3) 利用MATLAB 工具对方波分解出来的信号进行合成。 【设计工具】MATLAB 【设计原理】

1、 傅立叶级数分析的原理:

任何周期信号都可以用一组三角函数{sin(n ω0t),cos(n ω0t)}的组合表示:

00

()[cos()sin()]jn t

n

n

n n x t a e

a n t j n t ωωω+∞

+∞

=-∞

=-∞

=

=

+∑∑

这表明傅立叶级数可以表示为连续时间的周期信号,也即是连续时间周期信号可以分解为无数多个复指数谐波分量。在这里n a 为傅立叶级数的系数,

02T

π

ω=

称为基波频率。 2、 建立方波信号的模型:

思考:如何建立连续周期方波信号? ①预置一个周期内的方波信号:

-A

(-T/2

A (0

②对方波信号以周期T 进行平移:

()()n x t x t nT ∞

=-∞

=

-∑

通过以上的两个步骤我们可以建立一个连续周期方波信号,为降低方波信号分解与合成的复杂程度,可以预置方波信号为奇谐信号,此连续时间周期方波信号如下:

0(),(0,2)x sign t t ππ=-∈

()(2),(,)n x t x t n t π∞

=-∞

=

-∈-∞+∞∑

3、 方波信号分解:

根据傅立叶级数分析,其三角函数展开式为:

000411

()(sin sin 3sin 5...)35

A

x t t t t ωωωπ=

+++

0141

sin()i A

n t n

ωπ∞

==

∑ n=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()f t 加到第二步之上,画出结果,并显示,观察1y 与原周期方波信号的误差大小。

113()()()y t f t f t =+

④将五次谐波5()f t 加到第三步之上,画出结果,并显示,观察2y 与原周期方波信号的误差大小。

2135()()()()y t f t f t f t =++

⑤将七次谐波7()f t 与九次谐波9()f t 加到第四步之上,画出结果,并显示,观察3y 与原周期方波信号的误差大小。

313579()()()()()()y t f t f t f t f t f t =++++

思考:当n →∞,对各奇次谐波进行合成,会得到什么样的图形? 【思考题】

在求解傅立叶级数中,实偶信号对应什么样的信号?实奇信号对应什么样的信号?奇谐信号对应什么样的信号?

【MATLAB参考命令】

绘图命令:plot、subplot等

符号函数:sign(t)等

一、方波的定义:

方波是一种非正弦曲线的波形,通常会于电子和讯号处理时出现。理想方波只有“高”和“低”这两个值。电流的波形为矩形的电流即为方波电流。不

二、对于方波的数学分析:

f(t)f(t)

任何具有周期为T 的波函数f(t)都可以表示为三角函数所构成的级数之和,即:

00

()[cos()sin()]jn t

n

n

n n x t a e

a n t j n t ωωω+∞

+∞

=-∞

=-∞

=

=

+∑∑

(其中:T 为周期,ω为角频率。02T

π

ω=称为基波频率;第一项2

a 为直流分量,n a 为傅立叶级数的系数,称为基波频率) 对于上图图1所示方波,我们可以得到他的时域特性函数:

????

?<≤-

<≤-=)02()2

0()(t T

T

t h h t f , (周期为T )

对连续周期方波信号各谐波分量(基波分量、三次波分量、五次波分量……)

分别进行求和运算,步骤如下:

①考查一个完整周期内的信号,画出结果,并显示。 运用MATLAB 7.0编辑程序:

程序如下:

function [A_sym,B_sym] = signals syms t n k x;

T = 5;tao = 0.2*T;a = 0.5; if nargin<4;Nf = 6;end if nargin<5;Nn = 32;end

function x = uestcx(t) h = 1;

x1 = sym('Heaviside(t+0.5)')*h; x = x1-sym('Heaviside(t-0.5)')*h;

∑∞

=++=10)

sin cos (21

)(n n n t n b t n a a t f ωω

function y = 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));

for k=1:Nf

A_sym(k+1) = double(vpa(subs(As,n,k),Nn));

B_sym(k+1) = double(vpa(subs(Bs,n,k),Nn)); end

if nargout ==0

c=A_sym;disp(c)

d=B_sym;disp(d)

t = -8*a:0.01:T-a;

subplot 221

y = uestce(t);

plot(t,y,'r:')

title('一个完整周期内的信号')

end

运行程序后,可以得到结果如下图:

在T=1s ,A=1情况下,一个完整周期内的信号如上图。

②画出基波分量1f ,并显示,观察1f 与原周期方波信号的误差大小。 运用MATLAB 7.0编辑程序:

程序代码如下:

function [A_sym,B_sym] = signals syms t n k x;

T = 5;tao = 0.2*T;a = 0.5; if nargin<4;Nf = 6;end if nargin<5;Nn = 32;end

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)); for k=1:Nf

A_sym(k+1) = double(vpa(subs(As,n,k),Nn)); B_sym(k+1) = double(vpa(subs(Bs,n,k),Nn)); end

if nargout ==0

c=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;

subplot 221

plot(t,f1)

title('基波')

axis([-4,4.5,-0.1,1.1])

subplot 222

y = uestce(t);

plot(t,y,'r:')

title('原周期信号')

axis([-4,4.5,-0.1,1.1])

subplot 223

plot(t,f1),hold on

y = uestce(t);

plot(t,y,'r:')

title('周期信号与基波的比较')

end

function x = uestcx(t)

h = 1;

x1 = sym('Heaviside(t+0.5)')*h;

x = x1-sym('Heaviside(t-0.5)')*h;

function y = 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()f t 加到第二步之上,画出结果,并显示,观察1y 与原周期方波信号的误差大小。

113()()()y t f t f t =+

运用MATLAB 7.0编辑程序:

程序代码如下:

function [A_sym,B_sym] = signals syms t n k x;

T = 5;tao = 0.2*T;a = 0.5; if nargin<4;Nf = 6;end if nargin<5;Nn = 32;end

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)); for k=1:Nf

A_sym(k+1) = double(vpa(subs(As,n,k),Nn)); B_sym(k+1) = double(vpa(subs(Bs,n,k),Nn)); end

if nargout ==0

c=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; subplot 221

plot(t,f1),hold on y = uestce(t); plot(t,y,'r:')

title('原周期信号与基波信号') axis([-4,4.5,-0.1,1.1]) subplot 222

plot(t,f3),hold on y = uestce(t); plot(t,y,'r:')

title('原周期信号与基波信号+三次谐波信号')

end

function x = uestcx(t) h = 1;

x1 = sym('Heaviside(t+0.5)')*h; x = x1-sym('Heaviside(t-0.5)')*h;

function y = 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()f t 加到第三步之上,画出结果,并显示,观察2y 与原周期方波信号的误差大小。

2135()()()()y t f t f t f t =++

运用MATLAB7.0编译程序, 程序代码如下:

function [A_sym,B_sym] = signals syms t n k x;

T = 5;tao = 0.2*T;a = 0.5; if nargin<4;Nf = 6;end if nargin<5;Nn = 32;end

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));

for k=1:Nf

A_sym(k+1) = double(vpa(subs(As,n,k),Nn));

B_sym(k+1) = double(vpa(subs(Bs,n,k),Nn));

end

if nargout ==0

c=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=4*sin(10*t*pi)/(pi*5);

f4=4*sin(14*t*pi)/(pi*7);

f5=4*sin(18*t*pi)/(pi*9)

f6 = f1+f2;

subplot 221

plot(t,f1),hold on

y = uestce(t);

plot(t,y,'r:')

title('原周期信号与基波信号')

axis([-4,4.5,-0.1,1.1])

subplot 222

plot(t,f6),hold on

y = uestce(t);

plot(t,y,'r:')

title('原周期信号与基波信号+三次谐波信号')

axis([-4,4.5,-0.1,1.1])

subplot 223

plot(t,f7),hold on

y = uestce(t);

plot(t,y,'r:')

title('原周期信号与基波信号+三次谐波信号+五次谐波信号') end

function x = uestcx(t)

h = 1;

x1 = sym('Heaviside(t+0.5)')*h;

x = x1-sym('Heaviside(t-0.5)')*h;

function y = 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);

运行程序后得到如下的图像:

****可以发现在谐波信号加入后图像得到了更好的拟合

⑤将七次谐波7()f t 与九次谐波9()f t 加到第四步之上,画出结果,并显示, 观察3y 与原周期方波信号的误差大小。

313579()()()()()()y t f t f t f t f t f t =++++

运用MATLAB7.0编译程序, 程序代码如下:

function [A_sym,B_sym] = signals syms t n k x;

T = 5;tao = 0.2*T;a = 0.5; if nargin<4;Nf = 6;end if nargin<5;Nn = 32;end

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)); for k=1:Nf

A_sym(k+1) = double(vpa(subs(As,n,k),Nn)); B_sym(k+1) = double(vpa(subs(Bs,n,k),Nn)); end

if nargout ==0

c=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=4*sin(10*t*pi)/(pi*5);

f4=4*sin(14*t*pi)/(pi*7);

f5=4*sin(18*t*pi)/(pi*9)

f6 = f1+f2;

f7 = f6+f3;

f8 = f7+f4+f5;

subplot 221

plot(t,f1),hold on

y = uestce(t);

plot(t,y,'r:')

title('原周期信号与基波信号')

axis([-4,4.5,-0.1,1.1])

subplot 222

plot(t,f6),hold on

y = uestce(t);

plot(t,y,'r:')

title('原周期信号与基波信号+三次谐波信号')

axis([-4,4.5,-0.1,1.1])

subplot 223

plot(t,f7),hold on

y = uestce(t);

plot(t,y,'r:')

title('原周期信号与基波信号+三次谐波信号+五次谐波信号') axis([-4,4.5,-0.1,1.1])

subplot 224

plot(t,f8),hold on

y = uestce(t);

plot(t,y,'r:')

title('原周期信号与基波信号+三,五,七,九次谐波信号') end

function x = uestcx(t)

h = 1;

x1 = sym('Heaviside(t+0.5)')*h;

x = x1-sym('Heaviside(t-0.5)')*h;

function y = 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);

运行上述程序后,可以得到图像:

==》 综上所述,

在经过4次谐波分量信号的添加后,可以明显观察到,模拟的信号,在更多谐波分量信号的添加后,拟合原信号的误差越小。在间断点附近,随着所含有的谐波次数的增加,合成波形的波身越陡峭,波峰越靠近间断点,但尖峰幅度并未明显减小。在傅立叶级数的项数取得很大时,间断点出尖峰下的面积非常小以趋近于零。

思考题:

思考1:奇谐信号如何分解为各奇次正弦波?

若周期信号 波形沿时间轴平移半个周期后与原波形相对于时间轴像对称,即满足 f(t)=-f(t+T/2)

则 称为奇谐函数或半波对称函数。这类函数的傅里叶级数展开式中只含有正弦和余弦项的奇次谐波分量。

实验课程设计中,所采用的方波信号即为奇谐函数,将奇谐函数

按傅里叶级数展开,展开成三角函数展开式。 例如方波信号,根据傅立叶级数分析,其三角函数展开式为: (展开成只含sin 函数的式子)000411

()(sin sin 3sin 5 (35)

x t t t t ωωωπ=

+++

1

41

sin()i A

n t n ωπ∞

==

n=1,3,5,7,9……

这样就可以展开成各奇次的正弦波。

思考题2:在求解傅立叶级数中,实偶信号对应什么样的信号?实奇信号对

应什么样的信号?奇谐信号对应什么样的信号?

实偶信号=======→ak为实且偶

实奇信号=======→ak纯虚且为奇

奇谐信号=======→只含sin或cos的谐波信号

相关文档
最新文档