摘要
小虎最近试着用谐波叠加对周期方波逼近,发现实现起来很有趣,我用的仿真手段是MATLAB,这里跟大家说说。
结果
|
|
|
|
代码分析
幅值为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)');