利用谐波叠加对周期方波进行逼近

摘要

小虎最近试着用谐波叠加对周期方波逼近,发现实现起来很有趣,我用的仿真手段是MATLAB,这里跟大家说说。

结果

图1 n=1
图2 n=8
图3 n=16
图4 n=100
可以看到,随着叠加谐波的数量的增加,其拟合矩形波的效果越相似,可以预见,如果利用无数谐波叠加,那么其结果将会是一个矩形波。

代码分析

幅值为2,周期为3,讨论区间在[-3:3]。

A=2;
T=3;
t=-T:0.01:T;

简谐波叠加,n是简谐波叠加数量的1/2或-1后的1/2。

n=1;
for k=1:2:n
    x=x+4*A*sin(k*w0*t)/(k*pi);
end

作图。

plot(t,x,'k');
grid on;
hold on;
xs=A*square(w0*t);
plot(t,xs,'r');
text=['n=',num2str(n)];
xlabel({'t',text});
ylabel('x(t)');

完整代码

A=2;
T=3;
t=-T:0.01:T;
w0=2*pi/T;
x=zeros(size(t));
n=1;
for k=1:2:n
    x=x+4*A*sin(k*w0*t)/(k*pi);
end
plot(t,x,'k');
grid on;
hold on;
xs=A*square(w0*t);
plot(t,xs,'r');
text=['n=',num2str(n)];
xlabel({'t',text});
ylabel('x(t)');
发布了82 篇原创文章 · 获赞 70 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Davidietop/article/details/105223500