基于方波信号的分解与合成

更新时间:2023-04-18 12:13:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

湖南文理学院

系统建模与设计报告

专业班级:电信10101班

学生姓名:吕勇军、杨锐

学生学号:201011020219、201011020127

指导教师:龚伟

设计时间: 2012-12-20

- 1 -

基于matlab 的信号分解与合成

一、课程设计目的

1、学习MATLAB 软件的使用.

2、使学生掌握利用工具软件来实现信号系统基本概念、基本原理的方法。

二、基本要求

① 掌握数字信号处理的基本概念、基本理论和基本方法;

② 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法;

③ 学会用 MATLAB 对信号进行分析和处理;

④ 信号的各参数需由键盘输入,输入不同参数即可得不同的x(t) 和x(n);

⑤ 撰写课程设计论文,用数字信号处理基本理论分析结果。

三、设计方法与步骤

1、信号分解为正交函数

设有n 个函数123(),(),(

),,()n t t t t ???? 在区间12(,)t t 构成一个正交函数空间。将任一函数()f t 用这n 个正交函数的线性组合来近似,可表示为

11221()()()()()n

n n j j j f t C t C t C t C t ????=≈+++=∑ (1-1)

这里的问题是:如何选择j C 才能得到最佳近似。显然,应选取个系数j C 使实际函数与近似函数之间误差在区间内为最小。这里“误差最小”不是平均误差最小,因为在平均误差最小甚至等于零的情况下,也可能有较大的正误差和负误差在平均过程中相互抵消,以致不能正确反映两函数的近似程度。通常选择误差均方值(或称为方均值)最小,这时,可以认为已经得到了最好的近似。误差的均方值也称为均方误差,用符号2ε表示

212

21211()()n t j j t j f t C t dt t t ε?=??=-??-??∑? (1-2)

- 2 - 在1,2,,,,j i n = 中,为球的使均方误差最小的第i 个系数

i C ,必须使

2

0i

C ε?=? 即

2121()()0n t j j t j i f t C t dt C ?=?????

??-=???????????

∑? (1-3)

展开上式的被积函数,注意到有序号不同的正交函数相乘的各项,其积分均为零,而且所有不包含i C 的各项对i C 求导也等于零。这样,式(1-3)中只有两项

不为零,它可以写为

{}

21222()()()0t i i i i t i C f t t C t dt C ???

??-+=???? 交换微分与积分次序,得

22

1122()()2()0t t i i i t t f t t dt C t dt ??-+=?? 于是可求得

2212

112()()1()()()t i t t i i t t i i t f t t dt

C f t t dt K t dt ???==??? (1-4)

式中

2

12()t i i t K t dt ?=? (1-5) 这就是满足最小均方误差的条件下,式(1-1)中各系数i C 的表达式。此时,()f t 能获得最佳近似。

当按式(1-4)选取系数i C 时,将i C 代入到式(1-2),可以得到最佳近似条件下的均方误差为

222211112

2222111212111()()[()()2()()]n n n t t t t j j j j j j t t t t j j j f t C t dt f t dt c t dt c f t t dt t t t t ε???===??=-=+-??--??∑∑∑???? 考虑到2

12()t j j t t dt K ?=?,211()()t j j t j C f t t dt K ?=?,得

- 3 - 22112

22222111212111[()2][()]n n n t t j j j j j j t t j j j f t dt C K C K f t dt C K t t t t ε====+-=---∑∑∑?? (1-6) 利用上式可直接求得在给定项数n 的条件下的最小均方误差。

有均方误差的定义式(1-4)可见,由于函数平方后再积分,因而2ε不可能为负,即恒有2ε≥0。由式(1-5)可见,在用正交函数去近似(或逼近)()f t 时,所取的项数越多,即n 愈大,则均方误差愈小。当n →∞时,20ε=。由式(1-6)可得,如20ε=,则有

2

1221()n

t j j t j f t dt C K ==∑? (1-7) 式(1-7)称为帕斯瓦尔(Parseval )方程。

如果信号()f t 是电压或电流,那么,式(1-7)等号左端就是在12(,)t t 区间信号的能量,等号右边是在12(,)t t 区间信号各正交分量的能量之和。式(1-7)表明:在区间12(,)t t 信号所含能量恒等于此信号在完备函数集中各正交分量能量的总和。与此相反,如果信号在正交函数中的各正交分量能量的总和小于信号本身的能量,这时式(1-7)不成立,该正交函数集不完备。

这样,当n →∞时,均方误差20ε=,式(1-1)可写成

1()()j j j f t C t ?∞

==∑ (1-8)

即函数()f t 在区间12(,)t t 可分解为无穷多项正交函数之和。

2、周期信号的信号分解与合成

2.1周期连续信号的特点

周期连续信号()f t 有如下特点:

(1)满足1()()f t mT f t +=,m 是整数,1T 是周期。从波形上看,有一个时间跨

度为1T 的基本波形,其余的是该基本波形经平移1T 的整数倍后的重新拷贝。

- 4 - (2)()f t 在一个周期1T 内的积分,其值与积分的起点和终点无关,即有

101

1

01

22()()()t T t T T T f t dt f t dt f t dt +-==??? (3)将周期信号展开成傅里叶级数具有的以下显著优点是:

①三角函数和指数函数是自然界中最常见、最基本的函数。

②三角函数和复指数函数是间谐函数,用它们表示时间信号,就自然地建立了时间和频率这两个基本物理量之间的关系。

③间谐信号较其他信号更容易产生和处理。

④三角函数(或指数函数)信号通过线性时不变系统后,仍为三角函数(或指数函数),其重复频率不变,只是幅度和相位有变化。线性时不变系统对三角函数(或指数函数)信号的响应可以很方便地求的。

⑤很多系统(例如滤波器、信息传输等)的特性主要是由其频域特性来描述的,因此常常更需要知道的并不是这些系统的冲激响应,而是其冲激响应所对应的频率特性。

⑥时域中的卷积运算在频域会转化为乘积运算,从而找到了计算卷积的一种新方法,这可使时域中难以实现的卷积运算求解便于实现。 周期信号()f t 当满足狄里赫利(Dirichlet )条件时可以展开成傅里叶级数。傅里叶级数分三角形式和指数形式两种。狄里赫利条件如下:

(1)在一个周期内,()f t 是绝对可积,即1

()T f t dt <∞?。 (2)在一个周期内,()f t 的最大值和最小值的数目是有限个。

(3)在一个周期内,()f t 只有有限个间断点,而且在这些间断点上,函数值必须是有限个。

2.2 周期为T 的信号()f t 的三角形式的傅里叶级数表示的一般形式

设有周期信号()f t ,它的周期为T ,角频率22f T

πωπ==

,则()f t 的三角傅里叶级数表示的一般形式为

01212()cos cos cos cos2,f t a a wt a wt b wt b wt t =+++???+++???-∞<<∞ (2-1)

- 5 - 其中2T

πω=

可以写成更紧凑的和式为: 00111()cos sin (cos sin )n n n n n n n f t a a nwt b nwt a a nwt b nwt ∞∞∞

====++=++∑∑∑

式(2-1)中的系数n a 、n b 称为傅里叶系数,n a 为()f t 在函数cos nwt 中的分量(相对大小);n b 为()f t 在函数sin nwt 中的分量,它可由式(1-4)求得。为简便,式(1-4)的积分区间00(,)t t T +取为(,)22

T T -或(0,)T 。考虑到正、余弦函数的正交条件,由式(1-4),可得傅立叶系数

002()cos t T n t a f t nwtdt T +=? 00

2()s i n t T n t b f t nwtdt T +=? (2-2) 周期信号也可分解为一系列余弦信号,即:

1122()c o s ()c o s (2)f t c c t c t ω?ω?=+++++ 01

c o s ()

n n n c c n t ω?∞

==++∑ (2-3) 其中

n c =式(2-3)表明,任何满足狄里赫利条件的周期函数都可以分解为直流和许多余弦(或正弦)分量。其中第一项0c 是常数项,它是周期信号中所包含的直流

分量;式中第二项11cos()c t ω?+称为基波或一次谐波,它的角频率和原周期信号相同,1c 是基波振幅,1?是基波初相角;式中第三项22cos(2)c t ω?+称为二次谐波,它的频率是基波频率的二倍,2c 是二次谐波的振幅,2?是其初相角。以此

类推,还有四三次、四次、 谐波。一般而言,01cos()n n n c c n t ω?∞

=++∑称为n 次

谐波,n c 是n 次谐波的振幅,n ?是其初相角。式(2-3)表明,周期信号可以分解为各次谐波分量。

式(2-2)表示周期信号可以分解成直流分量0a 和各次谐波分量cos()sin()n n a n t b n t ωω+的叠加,用直流分量和各次谐波分量代替原来的周期信

- 6 - 号,原则上应该是无穷多项的叠加,实际应用中只取其中的前n 项,产生的误差函数用e n (t )来表示

01()()((cos sin ))N

n n n n e t f t a a nwt b nwt ==-++∑ (2-4)

另外一个衡量误差大小的函数为方均误差【10】:

220

1()()T N n n E e t e t dt T ==? (2-5)

3、 MATLAB 的仿真实现

MATLAB 是目前世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB 是Matrix Laboratory 的缩写,是一个包含众多工程计算和仿真的庞大系统。

MATLAB 是一个交互式开发系统,其基本数据要素是矩阵。语法规则简单,适应于专业科技人员的思维方式和书写习惯;它用解释方式工作,编写程序和运行同步,键入程序立即得出结果,因此人机交互更加简洁和智能化;而且MATLAB 可适用于多种平台,随着计算机软、硬件的更新而及时升级,shide 编程和调试效率大大提高

3.1基于MATLAB 方波信号的分解与合成

现以周期为T 、幅值为1的方波信号为例

1

图1 周期为T 的方波图

- 7 - 由式(2-2)可得 22

2()cos()T

T n a f t n t dt T -=Ω? 020

222(1)cos()(1)cos()T

T n t dt n t dt T T -=-Ω+Ω?? [][]020

22121s i n ()s i n ()T T n t n t T n T n -=?-Ω+?ΩΩΩ 考虑到2T

πΩ=,可得 0n a =

020

222(1)sin()sin()T

T n b n t dt n t dt T T -=-Ω+Ω?? []0

2022121cos()cos()T T

n t n t T n T n -=?Ω+?-ΩΩΩ

[]0,2,4,6,21c o s ()4,1,3,5,

n n n n n πππ=??=-=?=?? 将它们代入(2-1)式,可得图1所示的方波信号的傅立叶级数展开式为

4111()s i n ()s i n (3)s i n (5)s i n (),1,3,5,35f t t t t n t n n π??=Ω+Ω+Ω++Ω+=???? 它只含一、三、五、 奇次谐波分量。

周期为T=1的()f t 可分解为

4111()sin(2)sin(6)sin(10)sin(2),1,3,5,35f t t t t n t n n πππππ??=+++++=???? ○

2 方波信号的分解仿真 由周期T=1为例:

图2为周期为T=1的方波信号,经傅立叶级数分解以后而得到的基波到七次谐波的仿真图,左上角为基波图,它是一个非常正规的正弦波,幅值在1到

1.5之间,要高于原方波的幅值。而且它的角频率与原方波信号相同。右上角为

- 8 -

三次谐波图,其也是正弦波,明显,其幅值降到了0.5以下,但是三次谐波的频率是基波的1.5倍。其它图形依次为五次谐波,七次谐波。

图2 周期为T=1方波信号的分解图

3 方波信号的合成仿真 图3为方波信号分解以后取有限次谐波的合成波形。左上方图是单独的基波,是正弦波,波身较为平滑,波峰和波谷尖锐。右上方是基波和三次谐波叠加而成的波,大体仍是正弦的形式,但是波身已经比单独的基波较为陡峭,波峰和波谷出现波动,已经趋向方波,有了方波的雏形。以下依次叠加起五次谐波,七次谐波的波形。

图3 周期为T=1方波信号的合成图

图4 偶次谐波与奇次谐波的对比

由图4可以看出,由于原方波信号经傅立叶级数分解后,偶次谐波不存在,所以在图中只能观察到奇次谐波。

○4方波信号的频谱图

图5 方波信号的频谱图

图5为周期信号的频谱图,在频谱图中,ω=1时,信号的幅值在1.2到1.4

之间,ω=2时,信号的幅值为0,ω=3时,幅值在0.2到0.4之间,ω=4、5、

6、7、 时,幅值有起伏,但总体趋势是呈下降趋势。

- 9 -

○5方波信号的误差分析

方波信号的误差分析

表3-1 方波信号前七项合成的误差分析

图6 方波的误差分析图

由图6和表3-1知道,在信号合成时,其叠加的谐波次数越多,将产生的误差值将越小,说明,合成波形越加的向原三角波形靠近。

- 10 -

- 11 - 3.2结论

一、由图5可见,周期信号的频谱图有以下特点:

二、(1)离散性。频谱图中的变量为1n ωω=,由于n 只能是整数(单边频谱中

是正整数),因而谱线是离散的而非连续的,谱线的间隔是1ω,所以周期信号的

频谱是离散频谱。

(2)谐波性。由于n 只取整数,因而谱线在频谱轴上的位置是基频1ω的整数倍。

(3)收敛性。幅度谱中各谱线的高度尽管不一定岁随谐波次数的增高作单调的减小,中间有可能有起伏,但总的趋势是随n 的增高而减小的,当n 为∞时,高度趋于零。

二、由图2可以得出,任何周期信号都可以由一系列的正弦(或余弦)波组成,随着谐波次数的增大,谐波的幅值越来越小,频率越来越大。

三、由图3可以得到,合成波形所包含的谐波分量越多时,除间断点附近外,它越接近与原波形信号。在间断点附近,随着所含有的谐波次数的增加,合成波形的波身越陡峭,波峰越靠近间断点,但尖峰幅度并未明显减小。在傅立叶级数的项数取得很大时,间断点出尖峰下的面积非常小以趋近于零,因而在均方的意义上合成波形同原波形的真值之间没有区别。

附录:(程序)

方波的分解:

t=-3*pi:pi/100000:3*pi;

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

subplot(221),plot(t,f1);

hold on

plot(t,f,'r--');

grid on;

axis([-2 2 -1.5 1.5]);

subplot(222),plot(t,f2);

hold on

plot(t,f,'r--');

grid on;

axis([-2 2 -1.5 1.5]);

subplot(223),plot(t,f3);

hold on

plot(t,f,'r--');

grid on;

axis([-2 2 -1.5 1.5]);

subplot(224),plot(t,f4);

hold on

plot(t,f,'r--');

grid on;

axis([-2 2 -1.5 1.5]);

方波信号的合成:

t=-3*pi:pi/100000:3*pi;

f1=4*sin(2*t*pi)/pi;

f2=4*sin(2*t*pi)/pi+4*sin(6*t*pi)/(pi*3);

f3=4*sin(2*t*pi)/pi+4*sin(6*t*pi)/(pi*3)+4*sin(10*t*pi)/(pi*5);

f4=4*sin(2*t*pi)/pi+4*sin(6*t*pi)/(pi*3)+4*sin(10*t*pi)/(pi*5)+4*sin(14*t*pi)/(pi*7);

subplot(221),plot(t,f1);

hold on

plot(t,f,'r--');

axis([-2 2 -1.5 1.5]);

grid on;

subplot(222),plot(t,f2);

hold on

plot(t,f,'r--');

axis([-2 2 -1.5 1.5]);

grid on;

subplot(223),plot(t,f3);

hold on

plot(t,f,'r--');

axis([-2 2 -1.5 1.5]);

grid on;

subplot(224),plot(t,f4);

hold on

plot(t,f,'r--');

axis([-2 2 -1.5 1.5]);

grid on;

方波信号的奇偶次谐波的对比:

t=-3*pi:pi/100000:3*pi;

f1=4*sin(2*t*pi)/pi+4*sin(6*t*pi)/(pi*3)+4*sin(10*t*pi)/(pi*5)+4*sin(14*t*pi)/(pi*7);

subplot(211),plot(t,f1);

axis([-2 2 -1.5 1.5]);

grid on;

t=-3*pi:pi/100:3*pi;

f2=0;

subplot(212),plot(t,f2);

误差分析:

e1=f-f1;

e2=f-f2;

e3=f-f3;

e4=f-f4;

subplot(221),plot(t,e1);

axis([-2 2 -1.5 1.5]);

grid on;

subplot(222),plot(t,e2);

- 12 -

axis([-2 2 -1.5 1.5]);

grid on;

subplot(223),plot(t,e3);

axis([-2 2 -1.5 1.5]);

grid on;

subplot(224),plot(t,e4);

axis([-2 2 -1.5 1.5]);

grid on;

方波信号的频谱图:

N=7;

n=1:N;

for i=1:2:N

C(i)=4/(pi*(2*i-1)) ;

end;

stem(n,C) ;

四、总结与体会

首先。这次系统建模能够得以顺利完成,并非我一人之功劳,是指导老师和帮助过我的同学对我的教诲、帮助和鼓励的结果。我要在这里对他们表示深深的谢意!通过这次课程设计,让我对MATLAB这个软件有了很丰富的了解,掌握了MATLAB一些基本的功能和技巧,并且能在设计时充分利用。这对我以后的学习有很大的帮助,尤其作为电子专业的我更加需要掌握这个软件。MATLAB 的功能很强大,在这次实习中感受到了它对信号的处理功能极其强大,而且直观的图示和简单方便的操作更让人易懂。但我知道这只是冰山一角,需要学习的东西还很多,所以以后还会努力学习MATLAB的知识,为日后的职业生涯打好基础。

五、参考文献

[1]曹弋.MATLAB教程及实训[M].北京:机械工业出版社,2008:2~64.

[2]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) [M].北京:人民邮电出版社,2010:243~246

[3]胡晓冬,董辰辉.MATLAB从入门到精通[M].北京:人民邮电出版社,2010:78~242

[4]吴大正.信号与线性系统分析(第四版)[M].北京:高等教育出版社,2005: 421~478

[5](美)齐默(Rodger E.Ziemer)著;肖志涛等译.信号与系统——连续与离散(第四版)[M].北京:电子工业出版社,2005:95~96

- 13 -

本文来源:https://www.bwwdw.com/article/sneq.html

Top