谐波分析C语言程序

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

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

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

资源描述

谐波分析1)作业要求编程求出图一所示波形的最大值、平均值、有效值、求出1~8次谐波的幅值和频率。图一被分析波形2)解题思路、拟定方法、使用工具软件描述解题思路:上图为周期20ms的正弦波,该波形为奇函数。11021210)sin()cos(2...)sin()sin(...)2cos()cos(2)(nnnntnbtnaatbtbtataatf(1)TndttntfTa0,)cos()(2n=0,1,2,…(2)TndttntfTb0,)sin()(2n=1,2,…(3)因为f(t)为奇函数,故na=0。1)sin()(nntnbtf(4)故要求得)(tf的1~8次谐波可分为两个步骤:其一,求nb的值;其二,求81)sin()(nntnbtf。拟定方法:先构造上述函数,取一个周期分成1000等份。每个等份对应一个数值,在对这些数值进行一定的运算后便可求得最大值、平均值、有效值和1~8次谐波的幅值和频率。使用工具软件描述:用c语言软件求得最大值、平均值、有效值和1~8次谐波的幅值和频率,并显示出来。3)子函数描述f(t)函数:f(t)为所要构建的周期性方波信号波形,在第一个周期内(200t)当5.75.2t时f(t)=100,当5.175.12t时f(t)=-100,其余时刻f(t)=0。再通过一个整除函数进行周期延拓。f(t){doublei;if(t=0.0025&&t=0.0075)i=100.0;elseif(t=0.0125&&t=0.0175)i=-100.0;elsei=0.0;return(i);}jf(a,b)函数:jf(a,b)函数为求f(t)有效值,设a,b为一个周期的起点和终点。有效值=dt)(2Ttfjf(a,b){intj,n=1000;doublei;doubleh;h=(b-a)/1000;i=(f(a)*f(a)+f(b)*f(b))*h/2;for(j=1;jn;j++)i+=f(a+j*h)*f(a+j*h)*h;i=sqrt(i/(b-a));returni;}//求傅立叶变换doublejf1(doublea,doubleb,intk){intj,n=1000;doublei,h;h=(b-a)/1000.0;i=(f(a)*sin(100*3.1415926*k*a)+f(b)*f(100*3.1415926*k*b))*h/2;for(j=1;jn;j++)i+=f(a+j*h)*sin(100*3.1415926*k*(a+j*h))*h;i=i/0.01;if(i0.2&&i-0.2)i=0;return(fabs(i));}图二求最大值流程图4)实验报告的结论、分析、说明最大值100V平均值0V有效值70.78V实验结果谐波次数幅值/V实验频率/HZ理论幅值190.175090.03201000329.8715030.01402000518.1525018.00max=f(a),i=0i++≠1000f(a+i×h)≥maxmax=f(a+i×h)结束NNYY603000712.7235012.86804000理论分析频率nTnfn50n=1,2…(5)将波形函数代入式(3)可得幅值dttnTdttnTbn0175.00125.00075.00025.0)sin(200)sin(200(6))47cos45cos43cos4(cos100nnnnnbnn=1,2…(7)即可求的理论幅值如上表设计者:肖正2012.11.01附件#includemath.h#includestdio.hmain(){doublejf(doublex,doubley);doublejf1(doublex,doubley,intk);intn=1000,k=0;doublef(doublet);doublea=0.0,b=0.02,h,j,max,sum,m;doublevalue,ave,d;//求最大值max=f(a);h=(b-a)/2000.0;for(j=0;j=n;j++){if(f(a+j*h)max)max=f(a+j*h);}printf(信号最大值为%.2f\n,max);//求平均值sum=(f(a)+f(b))*h/2;for(j=1;jn;++j)sum+=f(a+j*h)*h;ave=sum/(double)n;ave=cos(3.1415926535*0.75)-cos(3.1415926535*0.25)+cos(3.1415926535*1.75)-cos(3.1415926535*1.25);printf(信号平均值为%.2f\n,ave);//求有效值value=jf(a,b);printf(信号有效值为%.2f\n,value);//求谐波j=8;while(j--){k++;d=jf1(a,b,k);printf(信号的%d次谐波的幅值为%.2f,频率为%d\n,k,d,k*50);}///*求理论值for(j=1;j8;){m=100*(cos(j*0.25*3.1415926535)-cos(j*0.75*3.1415926535)-cos(j*1.25*3.1415926535)+cos(j*1.75*3.1415926535))/j/3.1415926535;j=j+2;printf(%f/n,m);}//*/}//构造f(t)函数doublef(doublet){doublei;if(t=0.0025&&t=0.0075)i=100.0;elseif(t=0.0125&&t=0.0175)i=-100.0;elsei=0.0;return(i);}doublejf(doublea,doubleb){intj,n=1000;doublei=0,k=0;doubleh;h=(b-a)/(double)n;i=(f(a)*f(a)+f(b)*f(b))*h/2.0;for(j=1;jn;++j)i+=f(a+j*h)*f(a+j*h)*h;i=sqrt(i/(b-a));returni;}//求傅立叶变换doublejf1(doublea,doubleb,intk){intj,n=1000;doublei,h;h=(b-a)/1000.0;i=(f(a)*sin(100*3.1415926*k*a)+f(b)*f(100*3.1415926*k*b))*h/2;for(j=1;jn;j++)i+=f(a+j*h)*sin(100*3.1415926*k*(a+j*h))*h;i=i/0.01;if(i0.2&&i-0.2)i=0;return(fabs(i));}

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

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

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

×
保存成功