《方波分解为多次正弦波之和》由会员分享,可在线阅读,更多相关《方波分解为多次正弦波之和(10页珍藏版)》请在金锄头文库上搜索。
1、目录1 技术要求12 基本原理13 建立模型描述24 模块功能分析或源程序代码25 调试过程及结论45.1调试过程45.2 结论56 心得体会77参考文献8方波分解为多次正弦波之和的设计1 技术要求已知某一周期性方波,用matlab仿真软件演示谐波合成情况,讨论参数对分解和合成波形的影响。2 基本原理根据三角傅里叶级数: t1t1+Tcos2ntdt=t1t1+Tsin2ntdt=T2 (1) t1t1+Tcosmtcosntdt=t1t1+Tsinmtsinntdt=0,mn (2) t1t1+Tsinmtcosntdt=0 m、n为任何整数 (3)对于任何一个周期为T的周期信号f(t),都
2、可以求出它在上述各函数中的分量,从而将此函数在区间(t1,t1+T)内表示为ft=a02+a1cost+a1cos2t+ancosnt+b1sint+b2sin2t+ +bnsinn+=a02+n=1ancosnt+bnsin(nt) (4)这就是函数f(t)在上述区间内的三角傅里叶级数表达式。方波函数表达式:ft=1 0tT/2 ft T/2tT (5)先把这个函数展开为三角级数,为此就要求出分量系数a和b。 a0=2T0Tf(t)dt=2T0T2dt-T2Tdt=0 (6) an=2T0Tf(t)cos(nt)dt=2T0T2cosntdt-T2Tcosnt=0 (7) bn=2T0Tf(
3、t)sin(nt)dt=2T0T2sinntdt-T2Tsinntdt=4n 当n为奇数0 当n为偶数 (8)因此,该非周期性方波在区间(0,T)内可以表示为 ft=4sint+13sin3t+15sin5t+ (9)3 建立模型描述分别作出各次谐波的波形根据公式(9)令=1利用Matlab画出方波波形与方波比较将各波形图叠加作图分别作出不同次谐波叠加后的波形得出结论:方波可以分解为多次正弦波之和4 模块功能分析或源程序代码figure(1)ts=0.0001;t=0:ts:4*pi;%t的取值范围为0到4*pi,间隔0.0001取一个点f=1/ts;N=length(t);y1=square
4、(0.32*pi*t);%产生一个方波plot(t,y1);title(产生一个方波);pausehold onfigure(2)subplot 321y2=4/pi*sin(t);%频率为1(f=1/2*pi)的正弦基波%plot(t,y2);title(正弦基波)subplot 322y3=4/pi*(sin(3*t)/3);%三次谐波plot(t,y3);title(三次谐波)subplot 323y4=4/pi*(sin(5*t)/5);%五次谐波plot(t,y4);title(五次谐波)subplot 324y5=4/pi*(sin(7*t)/7);%七次谐波plot(t,y5);
5、title(七次谐波)subplot 325y6=4/pi*(sin(9*t)/9);%九次谐波plot(t,y6);title(九次谐波);pausefigure(3)subplot 221y7=4/pi*(sin(t)+sin(3*t)/3);%将前两次谐波叠加plot(t,y7);title(前两次谐波叠加)subplot 222y8=4/pi*(sin(t)+sin(3*t)/3+sin(5*t)/5);%将前三次谐波叠加plot(t,y8);title(前三次谐波叠加)subplot 223y9=4/pi*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/
6、7+sin(9*t)/t);%将前五次谐波叠加plot(t,y9);title(前五次谐波叠加)%重新定义y,把各次波形数据存为一个三维数组y=zeros(10,max(size(t);x=zeros(size(t);for k=1:2:15 x=x+4/pi*(sin(k*t)/k);y(k+1)/2,:)=x;end%将各波形叠合绘出pause,figure(4),plot(t,y(1:9,:),title(各波形叠合)5 调试过程及结论5.1调试过程在调试过程中,编写方波时由于当时没有注意方波扫描的精确度,将ts的数值选取的过于大了而导致方波的波形出现了大的失真,经过反复几次的调试后终于
7、得出了一个比较理想的方波图形。由于在设计之初是要将方波与后来要形成的多次正弦波叠加后的波形放到一起,所以对于方波周期的选取以及方波振幅的确定也尝试了好多次。最终才将这两个数值确定下来。本事课程设计的目的是要证明方波能够分解为多次正弦波之和,所以程序的设计目的在于体现分解的过程以及最后n次谐波叠加后所形成的波形是否为方波。根据上述公式9得出的方波表达式,令=1后分别画出y=4/pi*sin(t)的正弦基波、y=4/pi*(sin(3*t)/3)的三次谐波、y=4/pi*(sin(5*t)/5)的五次谐波、y=4/pi*(sin(7*t)/7)的七次谐波以及y=4/pi*(sin(9*t)/9)的
8、九次谐波,为了能够充分的显示风波分解为多次正弦波之和的过程,又分别作出了前两、三、五次谐波叠加的波形。最后为了能够完美的证明方波分解为多次正弦波之和,利用了一个for循环语句画出了经过前n次谐波叠加后的波形(其中令n=15),并且与之前程序最开始画出的方波波形相互叠加。由于经过三角级数傅里叶分解得到的方波表达式是一个非周期性函数,故只有当无限次谐波叠加后才能形成正真的方波,所以本次的实验是存在一定的误差的,本想在程序中作出其误差的图形表示以及计算出不同次数的方波叠加形成的方波所造成的误差,但由于知识以及能力有限,经过多次尝试无果后放弃了计算误差这部分项目。造成了一定的遗憾。5.2 结论经过此次
9、的实验,充分的证明了方波能够分解为多次正弦波之和,叠加次数越多误差越小越接近方波真实的波形。所得波形如下所示:图5-1 方波波形图5-2 各次谐波波形图5-3 叠加后的波形图5-4 前n次叠加后的波形6 心得体会通过此次的课程设计可以知道利用Matlab所得出的结果与利用理论知识通过计算得出的结果是一样的,方波,正弦波,以及正弦波叠加后的波形都能够利用程序编写出来的,并且通过利用Matlab所得出的波形能够很清晰的表达出各个波形的物理意义。Matlab是一款非常强大非常实用的软件,利用Matlab我们不仅能够证明许多数学上的问题,而且许多我们通过理论知识所无法计算的问题都能够解决,比如说我们这
10、次的课程设计,通过人工计算我们能够得出方波的公式,但是这个公式却是一个非周期性的,我们无法准确的算出方波的波形。但是利用Matlab却是能够做到。通过利用Matlab进行仿真,仅仅用一个循环语句就能够让我们的波形无限的接近方波的真实波形,而且我们还能利用Matlab计算出不同次正弦波叠加后所产生的误差并且通过图形模式表示出来以及我们还可以通过建立一个三维坐标模型将方波分解为多次正弦波之和的趋势表示出来,使我们更加直观的了解方波是如何分解为多次正弦波之和的。这次的课程设计让我真的很难忘,经过两个多星期的努力,终于顺利完成了课程设计。开始做课程设计不知道从何入手,困难很多,经过查阅资料,和同学讨论
11、,终于了解了许多。在做课程设计的过程中,我学会了很多,最主要的是我对Matlab的运用更加熟练了,同时对信号这门课的知识又弄懂了不少,增加了对信号课程的学习兴趣。课程设计是每个大学生必须面临的一项综合素质的考验,如果说在我们的学习阶段是一个知识的积累过程,那么现在的课程设计就是对过去所学的知识的综合应用,是对理论进行深化和重新认识的实践活动。在这期间,我们有艰辛的付出,当然也有丰收的喜悦。首先,学习能力和解决问题的信心都得到了提高。通过这次课程设计,我不仅对理论有了更深一步的认识,还培养了自学能力和解决问题的能力,更重要的是,培养了克服困难的勇气和信心。7参考文献1吴大正.信号与线性系统分析(第四版).北京:高等教育出版社.20102刘卫国.MATLAB程序设计教程(第二版).北京:中国水利水电出版社.20103梁虹,梁洁,陈跃斌.信号与线性系统分析及MATLAB实现.北京:电子工业出版社.2002 4韩利竹,王华.MATLAB 电子仿真与应用M.北京:国防工业出版社,2001. 5陈怀,高西全.MATLAB 及在电子信息课程中的应用M.北京:电子工业出版社,2003. (注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注!)