方波分解为多次正弦波之和
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1 技术要求 (1)
2 基本原理 (1)
3 建立模型描述 (2)
4 模块功能分析或源程序代码 (2)
5 调试过程及结论 (4)
5.1调试过程 (4)
5.2 结论 (5)
6 心得体会 (7)
7参考文献 (8)
方波分解为多次正弦波之和的设计
1 技术要求
已知某一周期性方波,用matlab 仿真软件演示谐波合成情况,讨论参数对分解和合成波形的影响。
2 基本原理
根据三角傅里叶级数: ∫cos 2(nωt )dt =∫sin 2(nωt )dt =T
2t1+T
t1
t1+T
t1 (1)
∫cos (mωt )cos (nωt )dt =∫sin (mωt )sin (nωt )dt =0,m ≠n t1+T
t1
t1+T
t1
(2)
∫sin (mωt )cos (nωt )dt =0 t1+T
t1
m 、n 为任何整数 (3)
对于任何一个周期为T 的周期信号f (t ),都可以求出它在上述各函数中的分量,从而将此函数在区间(t1,t1+T )内表示为 f (t )=
a 02
+a 1cos (ωt )+a 1cos (2ωt )+⋯+a n cos (nωt )+⋯+b 1sin (ωt )+b 2sin (2ωt )+
…+b n sin (nω)+⋯=a 02
+∑[a n cos (nωt )+b n sin
(nωt)]∞n=1 (4) 这就是函数f(t)在上述区间内的三角傅里叶级数表达式。
方波函数表达式:
{f (t )=1 0 f (t ) T/2 (5) 先把这个函数展开为三角级数,为此就要求出分量系数a 和b 。 a 0= 2 T ∫f(t)dt T 0=2 T [∫dt T 2 0−∫dt T T 2 ]=0 (6) a n=2 T ∫f(t)cos (nωt)dt T =2 T [∫cos(nωt) T 2 dt−∫cos(nωt) T T 2 ]=0(7) b n=2 T ∫f(t)sin (nωt)dt T =2 T [∫sin(nωt)dt T 2 −∫sin(nωt)dt T T 2 ]={ 4 nπ 当n为奇数 0 当n为偶数 (8) 因此,该非周期性方波在区间(0,T)内可以表示为 f(t)=4 π[sin(ωt)+1 3 sin(3ωt)+1 5 sin(5ωt)+⋯](9) 3 建立模型描述 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(0.32*pi*t);%产生一个方波 plot(t,y1); title('产生一个方波');pause hold on figure(2) subplot 321 y2=4/pi*sin(t);%频率为1(f=1/2*pi)的正弦基波% plot(t,y2); title('正弦基波') subplot 322 y3=4/pi*(sin(3*t)/3);%三次谐波 plot(t,y3); title('三次谐波') subplot 323 y4=4/pi*(sin(5*t)/5);%五次谐波 plot(t,y4); title('五次谐波') subplot 324 y5=4/pi*(sin(7*t)/7);%七次谐波 plot(t,y5); title('七次谐波') subplot 325 y6=4/pi*(sin(9*t)/9);%九次谐波 plot(t,y6); title('九次谐波');pause figure(3) subplot 221 y7=4/pi*(sin(t)+sin(3*t)/3);%将前两次谐波叠加 plot(t,y7); title('前两次谐波叠加') subplot 222 y8=4/pi*(sin(t)+sin(3*t)/3+sin(5*t)/5);%将前三次谐波叠加 plot(t,y8); title('前三次谐波叠加') subplot 223 y9=4/pi*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/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的数值选取的过于大了而导致方波的波形出现了大的失真,经过反复几次的调试后终于得出了一个比较理想的方波图形。由于在设计之初是要将方波与后来要形成的多次正弦波叠加后的波形放到一起,所以对于方波周期的选取以及方波振幅的确定也尝试了好多次。最终才将这两个数值确定下来。本事课程设计的目的是要证明方波能够分解为多次正弦波之和,所以程序的设计目的在于体现分解的过程以及最后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)的九次谐波,为了能够充分的显示风波分解为多次正弦波之和的过程,又分别作出了前两、三、五次谐波叠加的波形。最后为了能够完美的证明方波分解为多次正弦波之和,利用了一个for循环语句画出了经过前n次谐波叠加后的波形(其中令n=15),并且与之前程序最开始画出的方波波形相互叠加。 由于经过三角级数傅里叶分解得到的方波表达式是一个非周期性函数,故只有当无限次谐波叠加后才能形成正真的方波,所以本次的实验是存在一定的误差的,本想在程序中作出其误差的图形表示以及计算出不同次数的方波叠加形成的方波所造成的误差,但由于