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

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

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

一、实验目的

1、了解信号分解与正交函数集;

2、了解三角函数的正交性;

3、了解基波与谐波的概念与关系;

二、实验原理

1、信号分解与正交函数集

信号通常以时间函数表示,所以信号的分量及其分解指的就是函数的分量及其分解。可利用与矢量分解相类比的方法来来研究如何将一信号分解为其分量。

与矢量用另一矢量上的分量表示原矢量类似。在一定的时间区间()12,t t 内,若用函数2()f t 中的122()c f t 来近似的表示原函数1()f t ,将存在一误差函数()t ε?,且有:

1122()()t f c f t ε?=- (1)

在矢量近似中最佳系数选择的依据,是使得误差矢量的长度的平方最小;而12c 的选择,则是要求使误差函数的方均值最小。误差函数的方均值为:

222121

()1()()t t t t t dt t εε??=-? (2) 此值最小时有:

2221212211

()()()t t c f t f t dt f t dt t t =?? (3) 系数12c 是在最小方均误差的意义上代表二函数1()f t 、2()f t 的相关联的程度的度量。当120c =时,由式(3)可知,此时有:

2121()()0t f t f t dt t =? (4)

如果满足这一条件,则称1()f t 与2()f t 在区间12(,)t t 内正交。此时1()f t 与2()f t 就构成一个正交函数集。1()f t 与2()f t 两函数正交时,1()f t 在2()f t 中的分量122()c f t 为零。

一个函数可以在另一个函数中具有分量,则和矢量的情况类似,可以将一代表信号的函数表示为该函数在一正交函数集中的分量的加权和。在区间12(,)t t 内互相正交的n 个函数123()()()()n g t g t g t g t 、、、...、组成一个n 维的正交信号空间。此函数集中的函数之间,在区间12(,)t t 内具有如下关系:

212()t

m m t g t dt k =? (5) 21()()0t l m t g t g t dt l m =≠? (6) 其中m k 为一常数。若1m k =,则上述函数集就称为是归一化正交的。任意一个代表信号的的函数()f t ,在区间12(,)t t 内,可以用组成信号空间的n 个正交函数的线性组合来近似的表示为:

1122()()()...()...()r r n n f t c g t c g t c g t c g t ≈++++ (7)

若要使近似值的方均误差最小,则()f t 在函数()r g t 中的分量系数为:

2222111

()()()1()()r r r r r t t t c f t g t dt g t dt k f t g t dt t t t ==??? (8) 若用一正交函数集中的分量和各次谐波分量之和,那么该矢量集必须是一完备的正交矢量集。与此相似,用一正交函数集中的分量去代表任意一个函数,该函数集也必须是一完备的正交函数集。完备的正交函数集往往都是由无穷多的函数组成。任意一信号表示为正交函数集中的分量之和时,所取分量函数的项数越多精确度越高,即方均误差最小。当所取项数无限增大时,方均误差趋于零,这是的正交函数集也成为完备的。对于一个在区间12(,)t t 内的完备正交函数集中的所有函数,不可能找到另外一个异于零的函数能在同一区间内和它们相正交。反之,若存在正交函数集以外的函数,与正交函数集中的所有函数正交,则该正交函数集必不是完备的。

信号在正交函数集中的分解是多样。在矢量分解中,坐标轴经过变换,可以有不同的选取方法;同样,表示信号的正交函数集也可以经过变换而有不同选取方法。如同坐标变换不影响矢量本身一样,正交函数集的变换也不影响所表示的函数本身。故可以用一个正交函数集变换到另一个正交函数集去表示一个函数。在各种正交函数集中,傅里叶级数是既方便又很有用的。除傅里叶级数外,其他

如沃尔什函数、勒让德函数、切比雪夫函数等。

2、三角函数的正交性

正弦函数与余弦函数满足如下关系:

11cos sin 0,t T m t n tdt m n t ωω+?=?为任意整数 (9)

1111cos cos sin sin 0t T t T m t n tdt m t n tdt m n t t ωωωω++?=?=≠?? (10)

221111cos sin 2t T t T n tdt n tdt T t t ωω++==?? (11)

这表示上述各余弦函数与正弦函数,在区间11(,)t t T +内,均相互正交。即{1、cos t ω、cos2t ω、cos3t ω、···、cos n t ω、···sin t ω、sin 2t ω、

sin3t ω、···、sin n t ω、···}(其中2T πω=为上述三角函数的公共周期)构成一组完备的正交函数集。故任意一个周期信号都可以展开成为正弦函数及余弦函数的无穷级数。

3、连续时间周期信号分解为三角函数之和

由前一部分可知,对于任意一个周期为T 的周期信号()f t ,都可以求出它在

上述三角函数集中各函数中的分量,从而可将()f t 在区间11t t T +(,)内表示为上

述三角函数集中各函数的加权和。即:

()01()2cos sin n f t a a n t b n t n n ωω∞∑==+

+ (12) 其中02a 实际就是()f t 在区间内的平均值,意即直流分量。设定其为

02a 是为了使得后面出计算0a 的公式与其他下标不等于零的n a 一致。由公式(8)、(9)、

(10)、(11)可知,各正弦函数余弦函数的分量系数为:

111111

2()cos cos 2()cos n t T t T t T a f t n tdt n tdt T f t n tdt t t t ωωω+++==??? (13) 2111111

()sin sin 2()sin n t T t T t T b f t n tdt n tdt T f t n tdt t t t ωωω+++==??? (14) 但是,要将周期信号分解为谐波分量,代表该周期信号的函数()f t 应当满足狄利克雷条件。即:

1)在一周期内,函数式绝对可积的,即21

|()|t T f t dt t +?应为有限值;

2)在一周期内,函数的极值数目有限;

3)在一周期内,函数()f t 或者为连续的,或者具有有限个这样的间断点,即当t 从较大的时间值和较小的时间值分别趋向于间断点时,函数具有两个不同的有限的极限值。

实际工程中的周期信号,大多都满足狄利克雷条件。周期性方波也满足上述条件,即方波可以展开为三角函数的加权和。

4、方波分解为多次正弦波之和的原理

由前一部分可知。代表周期性方波信号的函数()f t 满足狄利克雷条件,即方波可以表示为多次正弦波之和。如图1所示方波信号,其周期为2且正半周期负半周期是形状全同的矩形,在区间(0,2)内可用函数表示为:

图1 周期为2的方波信号

若将()f t 展开为三角傅里叶级数,即将()f t 分解为多次正弦波之和,则有式

(13)、式(14)可知,在区间(0,2)内,如图1 所示的周期为2的方波信号的0a ,

n a ,n b 的值分别为:

0a =202()02

f t dt =? n a =202()cos 02

f t n tdt ω=? n b =202()sin 02f t n tdt n ω=?当为偶数

202()sin 4/n 2n b f t n tdt n ωπ==?当为奇数

则在区间(0,2)内()f t 可表示为:

4111()(sin sin3sin5sin 7573f t t t t t πππππ=+++???)

(15) 即周期为2s 的方波信号中含有大量的正弦波,其频率分别为1/2,3/2,5/2,7/2···其中频率为1/2的正弦波称为基波,其他频率的正弦波称为谐波。即一周期性方波,可表示为基波与无穷多谐波之和。

实用中进行信号分析时,不可能取无穷多次谐波之和,而只能用有限项来近似表示。这样就无法避免有一误差()t ε,如果将基波加到n 次谐波之和后的函数表示为()n f t ,则有()f t =()n f t +()t ε,即()t ε=()f t -()t ε。

5、正弦波合成并与原始方波进行比较模型的建立

由原理部分可知,方波中含有无穷多次的正弦波,即方波可以分解为无穷多次正弦波之和。反过来可用无限多次正弦波相加可以合成方波,从而完成设计。但是在实际中不可能取无穷中多次的正弦波,取有限次正弦波合成,相较于原始方波信号,必然存在一定的误差。若用误差函数()t ε表示误差。若方波信号函数表示为()f t ,多次正弦波合成后函数表示为()n f t ,则误差函数()t ε=()f t -()n f t 。然后利用相关绘图函数画出()f t 、()n f t 、()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值

for num=1:N

fn=fn+4/(n*pi)*sin(n*t*pi);%加到n次谐波正弦波之和

n=n+2;

end

fm=y-fn;%误差函数

subplot(3,1,1)%在第一个子窗口中画出原始方波图像

plot(t,y,'k'),grid on

axis([0 6 -2 2])

xlabel('时间s');ylabel('振幅');title('方波')

subplot(3,1,2)%在第二个子窗口中画出加到n次谐波的正弦波合成图像plot(t,fn,'k'),grid on

xlabel('时间s ');ylabel('振幅');title('正弦波合成')

subplot(3,1,3)%在第三个子窗口中画出误差函数图像

plot(t,fm,'k'),

axis([0 6 -2 2])

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值

for k=1:N

x=x+(4/(n*pi))*sin(n*pi*t);

y(n, : )=x;

n=n+2;

end

plot(t,y(1:101,: )),grid on

axis([0 6 -2 2])

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

for k=1:2:200

x=x+sin(k*pi*t)/k; y((k+1)/2, : )=x;

end

halft=ceil(length(t)/2);

mesh(t(1:halft),[1:1000],y(: ,1:halft))

xlabel('时间s');ylabel('谐波次数');zlabel('振幅');title('谐波合成趋势三维图')

基本原理与上述二维图类似,通过建立全零矩阵,然后利用所建立的矩阵以及mesh函数画出三维图。为使图形更加美观,只画出了合成波形的半个周期,即区间(0,1)内的合成波波形。该程序中也通过输入N值控制级数的项数。并且在图形中利用y轴表示级数项数的增加,这样可以更直观看到合成波随级数项数的变化情况。

4、程序运行结果

1)正弦波合成趋势二维图程序运行结果如下:

图7 正弦波合成趋势二维图

其中,输入的N=100,由趋势图可以看出,随着级数项数的增加,合成波逐渐趋近于方波。方波跃变点处的起伏振荡也非常明显,且跃变点处的起伏振荡存在的时间随着级数所取项数的增加而减少的趋势也相当明显。

2)正弦波合成趋势三维图如下:

图8 正弦波合成趋势三维图

图中x轴表示时间,y轴表示级数

项数的变化。z轴表示合成波的幅度。由图上可以看出,随着谐波次数的增加,合成波波形逐渐趋近于方波。图形中在区间(0,1),合成波顶部随着级数项数的增加,渐趋于平坦,且方波跃变处的起伏振荡也较为明显。

相关文档
最新文档