实验一方波分解为多次正弦波之和的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验一方波分解为多次正弦波之和的设计一、实验目的1、了解信号分解与正交函数集;2、了解三角函数的正交性;3、了解基波与谐波的概念与关系;二、实验原理1、信号分解与正交函数集信号通常以时间函数表示,所以信号的分量及其分解指的就是函数的分量及其分解。可利用与矢量分解相类比的方法来来研究如何将一信号分解为其分量。与矢量用另一矢量上的分量表示原矢量类似。在一定的时间区间12,tt内,若用函数2()ft中的122()cft来近似的表示原函数1()ft,将存在一误差函数()t,且有:1122()()tfcft(1)在矢量近似中最佳系数选择的依据,是使得误差矢量的长度的平方最小;而12c的选择,则是要求使误差函数的方均值最小。误差函数的方均值为:222121()1()()tttttdtt(2)此值最小时有:2221212211()()()ttcftftdtftdttt(3)系数12c是在最小方均误差的意义上代表二函数1()ft、2()ft的相关联的程度的度量。当120c时,由式(3)可知,此时有:2121()()0tftftdtt(4)如果满足这一条件,则称1()ft与2()ft在区间12(,)tt内正交。此时1()ft与2()ft就构成一个正交函数集。1()ft与2()ft两函数正交时,1()ft在2()ft中的分量122()cft为零。一个函数可以在另一个函数中具有分量,则和矢量的情况类似,可以将一代表信号的函数表示为该函数在一正交函数集中的分量的加权和。在区间12(,)tt内互相正交的n个函数123()()()()ngtgtgtgt、、、...、组成一个n维的正交信号空间。此函数集中的函数之间,在区间12(,)tt内具有如下关系:212()tmmtgtdtk(5)21()()0tlmtgtgtdtlm(6)其中mk为一常数。若1mk,则上述函数集就称为是归一化正交的。任意一个代表信号的的函数()ft,在区间12(,)tt内,可以用组成信号空间的n个正交函数的线性组合来近似的表示为:1122()()()...()...()rrnnftcgtcgtcgtcgt(7)若要使近似值的方均误差最小,则()ft在函数()rgt中的分量系数为:2222111()()()1()()rrrrrtttcftgtdtgtdtkftgtdtttt(8)若用一正交函数集中的分量和各次谐波分量之和,那么该矢量集必须是一完备的正交矢量集。与此相似,用一正交函数集中的分量去代表任意一个函数,该函数集也必须是一完备的正交函数集。完备的正交函数集往往都是由无穷多的函数组成。任意一信号表示为正交函数集中的分量之和时,所取分量函数的项数越多精确度越高,即方均误差最小。当所取项数无限增大时,方均误差趋于零,这是的正交函数集也成为完备的。对于一个在区间12(,)tt内的完备正交函数集中的所有函数,不可能找到另外一个异于零的函数能在同一区间内和它们相正交。反之,若存在正交函数集以外的函数,与正交函数集中的所有函数正交,则该正交函数集必不是完备的。信号在正交函数集中的分解是多样。在矢量分解中,坐标轴经过变换,可以有不同的选取方法;同样,表示信号的正交函数集也可以经过变换而有不同选取方法。如同坐标变换不影响矢量本身一样,正交函数集的变换也不影响所表示的函数本身。故可以用一个正交函数集变换到另一个正交函数集去表示一个函数。在各种正交函数集中,傅里叶级数是既方便又很有用的。除傅里叶级数外,其他如沃尔什函数、勒让德函数、切比雪夫函数等。2、三角函数的正交性正弦函数与余弦函数满足如下关系:11cossin0,tTmtntdtmnt为任意整数(9)1111coscossinsin0tTtTmtntdtmtntdtmntt(10)221111cossin2tTtTntdtntdtTtt(11)这表示上述各余弦函数与正弦函数,在区间11(,)ttT内,均相互正交。即{1、cost、cos2t、cos3t、···、cosnt、···sint、sin2t、sin3t、···、sinnt、···}(其中2T为上述三角函数的公共周期)构成一组完备的正交函数集。故任意一个周期信号都可以展开成为正弦函数及余弦函数的无穷级数。3、连续时间周期信号分解为三角函数之和由前一部分可知,对于任意一个周期为T的周期信号()ft,都可以求出它在上述三角函数集中各函数中的分量,从而可将()ft在区间11ttT(,)内表示为上述三角函数集中各函数的加权和。即:01()2cossinnftaantbntnn(12)其中02a实际就是()ft在区间内的平均值,意即直流分量。设定其为02a是为了使得后面出计算0a的公式与其他下标不等于零的na一致。由公式(8)、(9)、(10)、(11)可知,各正弦函数余弦函数的分量系数为:1111112()coscos2()cosntTtTtTaftntdtntdtTftntdtttt(13)2111111()sinsin2()sinntTtTtTbftntdtntdtTftntdtttt(14)但是,要将周期信号分解为谐波分量,代表该周期信号的函数()ft应当满足狄利克雷条件。即:1)在一周期内,函数式绝对可积的,即21|()|tTftdtt应为有限值;2)在一周期内,函数的极值数目有限;3)在一周期内,函数()ft或者为连续的,或者具有有限个这样的间断点,即当t从较大的时间值和较小的时间值分别趋向于间断点时,函数具有两个不同的有限的极限值。实际工程中的周期信号,大多都满足狄利克雷条件。周期性方波也满足上述条件,即方波可以展开为三角函数的加权和。4、方波分解为多次正弦波之和的原理由前一部分可知。代表周期性方波信号的函数()ft满足狄利克雷条件,即方波可以表示为多次正弦波之和。如图1所示方波信号,其周期为2且正半周期负半周期是形状全同的矩形,在区间(0,2)内可用函数表示为:图1周期为2的方波信号若将()ft展开为三角傅里叶级数,即将()ft分解为多次正弦波之和,则有式(13)、式(14)可知,在区间(0,2)内,如图1所示的周期为2的方波信号的0a,na,nb的值分别为:0a=202()02ftdtna=202()cos02ftntdtnb=202()sin02ftntdtn当为偶数202()sin4/n2nbftntdtn当为奇数则在区间(0,2)内()ft可表示为:4111()(sinsin3sin5sin7573fttttt)(15)即周期为2s的方波信号中含有大量的正弦波,其频率分别为1/2,3/2,5/2,7/2···其中频率为1/2的正弦波称为基波,其他频率的正弦波称为谐波。即一周期性方波,可表示为基波与无穷多谐波之和。实用中进行信号分析时,不可能取无穷多次谐波之和,而只能用有限项来近似表示。这样就无法避免有一误差()t,如果将基波加到n次谐波之和后的函数表示为()nft,则有()ft=()nft+()t,即()t=()ft-()t。5、正弦波合成并与原始方波进行比较模型的建立由原理部分可知,方波中含有无穷多次的正弦波,即方波可以分解为无穷多次正弦波之和。反过来可用无限多次正弦波相加可以合成方波,从而完成设计。但是在实际中不可能取无穷中多次的正弦波,取有限次正弦波合成,相较于原始方波信号,必然存在一定的误差。若用误差函数()t表示误差。若方波信号函数表示为()ft,多次正弦波合成后函数表示为()nft,则误差函数()t=()ft-()nft。然后利用相关绘图函数画出()ft、()nft、()t即可。故设计建立的模型可表示如下:图2正弦波合成程序设计模型图示描述其中产生方波可以调用square函数。对于多次正弦波的合成可以使用一循环语句,通过使用input输入循环的最大值N,来控制合成的谐波的数量。然后标准方波多次正弦方波减合误差函数绘制方波画出误差画出合成通过subplot函数建立三个子窗口,运用plot函数在三个子窗口中分别画出原始方波、合成波以及误差函数的波形图即可。同时,利用subplot函数建立三个子窗口,将原始方波,合成波及误差函数画在同一窗口下,可以更加直观的比较合成波与原始方波及观察误差函数。三、实验内容1、正弦波合成并与原始方波比较的源程序代码正弦波合成并与原始方波进行比较的源程序代码如下:%多次正弦波合成并与原始方波比较的设计t=0:0.000111:6;n=1;fn=0;y=square(pi*t,50);%周期为2s的方波N=input('N=');%输入N值fornum=1:Nfn=fn+4/(n*pi)*sin(n*t*pi);%加到n次谐波正弦波之和n=n+2;endfm=y-fn;%误差函数subplot(3,1,1)%在第一个子窗口中画出原始方波图像plot(t,y,'k'),gridonaxis([06-22])xlabel('时间s');ylabel('振幅');title('方波')subplot(3,1,2)%在第二个子窗口中画出加到n次谐波的正弦波合成图像plot(t,fn,'k'),gridonxlabel('时间s');ylabel('振幅');title('正弦波合成')subplot(3,1,3)%在第三个子窗口中画出误差函数图像plot(t,fm,'k'),axis([06-22])xlabel('时间s');ylabel('振幅');title('误差函数')源程序中,通过输入的N值控制for循环的次数,从而控制合成的谐波次数n以及合成的谐波数量。通过改变输入的N可以改变合成波的谐波的最高次数即相加的谐波次数,从而改变合成波的波形。通过比较加到不同次数的合成波的波形及其相应的误差函数波形,可以知道正弦波合成随级数增大的趋势情况。2、程序运行结果1)N=3时,原始方波,合成波及误差函数图像如下:图3原始方波,加到五次谐波的合成波及相应误差函数图像2)N=10时,原始方波,合成波及误差函数图像如下:图4原始方波,加到19次谐波的合成波及相应误差函数图像3)N=100时,原始方波,合成波及误差函数图像如下:图5原始方波,加到199次谐波的合成波及相应误差函数图像由图上可以看出,当输入N=100时,合成波波形已经非常接近方波波形。除在方波跃变点附近合成波的波形与原始方波波形之间有较大误差之外,其他各处波形误差为零。4)N=10000时,原始方波,合成波及误差函数图像如下:图6原始方波,加到19999次谐波的合成波及相应误差函数图像分析随着N值得增大,正弦波合成方波的效果如何变化?分析问什么会出现这样的显现。3、正弦波合成趋势图源程序代码1)正弦波合成趋势图二维图源程序代码如下:%谐波合成趋势二维图t=0:0.0111:6;y=zeros(1000,max(size(t));%建立全零矩阵x=zeros(size(t));n=1;N=input('N=');%输入N值fork=1:Nx=x+(4/(n*pi))*sin(n*pi*t);y(n,:)=x;n=n+2;endplot(t,y(1:101,:)),gridonaxis([06-22])xlabel('时间s');ylabel('振幅');title('正弦波合成趋势二维图')该程序中,首先通过zeros函数建立相关全零矩阵并赋给x、y。然后利用for循环语句求出加到不同次数谐波的合成波。最后利用所建立的矩阵及plot函数画出合成波随级数增加合成波改变的二维趋势图。通过输入N值控制级数的项数。2)正弦波合成趋势图三维图源程序代码如下:%谐波合成趋势三维图t=0:0.0111:2;y=zeros(1000,max(size(t)));x=zeros(size(t));fork=1:2:

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功