求matlab大神解释一下这个程序每一步的含义,越详细越好,跪谢(悬赏可再加)

clc;
clear all;
close all;
n=input('n=')
T0=0.01;
A=1;
t=[0:0.0001:0.05];
z=square(2*pi*100*t);
x=0;
pi=3.1415926;
w0=2*pi/T0;
for i=1:n
fw(i)=(2*i-1)*w0;
a(i)=4*A/(pi*(2*i-1));
y(i,:)=a(i)*sin(fw(i)*t);
fai(i)=0;
x=x+y(i,:);
figure(1)
a=1:100
subplot(n,1,i);
plot(t,y(i,:));xlabel('时间/s');ylabel('振幅')
title(['方波',num2str(a(i)),'次谐波'])
end;
figure(2);
subplot(2,1,1);
plot(t,z);
xlabel('时间/s');
axis([-0,0.05,-2,2]);
ylabel('振幅')
title('方波')
subplot(2,1,2);
plot(t,x);
xlabel('时间/s');
ylabel('振幅');
title([num2str(a(i)),'次谐波合成图'])
主要是方波的分解和合成,n是输入要分解成几次谐波,后面的就都不太懂了。尤其是那个循环里面。_(:зゝ∠)_

clc;%清理窗口显示内容
clear %清除工作间变量
close all;%关闭所有图形
n=input('n=');%命令窗中手动输入,2,3,………谐波次数
T0=0.01;%周期
A=1;%振幅
t=0:0.0001:0.05;%时间
z=square(2*pi*100*t);%方波脉冲
x=0;%均值,0
pi=3.1415926;
w0=2*pi/T0;%周期数,频率
for i=1:n
fw(i)=(2*i-1)*w0;%每次谐波频率
a(i)=4*A/(pi*(2*i-1));%每次谐波的振幅
y(i,:)=a(i)*sin(fw(i)*t);%信号
fai(i)=0;%相位,没用到,可去掉
x=x+y(i,:);%合成信号
figure(1)%生成第一图窗
a=1:100;%定义无效,可去掉
subplot(n,1,i);%生成子图
plot(t,y(i,:));%画子图
xlabel('时间/s');ylabel('振幅')%x,y轴名称
title(['方波',num2str(a(i)),'次谐波'])%图形名称
end;
figure(2);%生成第二图形窗
subplot(2,1,1);%生成子图
plot(t,z);%画子图
xlabel('时间/s');%x轴名称
axis([-0,0.05,-2,2]);%设置轴范围
ylabel('振幅')%y轴名称
title('方波')%子图名称
subplot(2,1,2);%生成第二子图
plot(t,x);%画子图
xlabel('时间/s');%x轴名称
ylabel('振幅');%y轴名称
title([num2str(a(i)),'次谐波合成图'])%子图名称
温馨提示:答案为网友推荐,仅供参考
相似回答