clc;
clear;
close all;
syms x; %定义符号变量x用于积分'int()'的计算
t=0:0.001:4;
T=1; %周期
w=2*pi/T;
y=max(square(w*t),0); %max()最大值为1,最小值为0,方波s(t)
a0=1; %系数a0=(2/T)*int(1,x,0,T/2)=1;
n=5; %展开项数
%求和
f1=0;
for k=1:n
an1=(2/T)*int(1*cos(k*w*x),x,0,T/2); %系数an
bn1=(2/T)*int(1*sin(k*w*x),x,0,T/2); %系数bn
f1=f1+an1*cos(k*w*t)+bn1*sin(k*w*t);
end
F1=f1+0.5; %a0/2=0.5;
m=20; %展开项数
f2=0;
%求和
for k=1:m
an2=(2/T)*int(1*cos(k*w*x),x,0,T/2); %系数an
bn2=(2/T)*int(1*sin(k*w*x),x,0,T/2); %系数bn
f2=f2+an2*cos(k*w*t)+bn2*sin(k*w*t);
end
F2=f2+0.5; %a0/2=0.5
%图形的显示
figure;
plot(t,y,'b',t,F1,'r',t,F2,'g');
legend('s(t)原图y','项数为5时的展开式图F1','项数为20时的展开式图F2');
title('s(t)及其傅里叶展开');
xlabel('t');
ylabel('y or F1 or F2');
![](https://img-bbs.csdn.net/upload/201906/02/1559414433_468995.jpg)
![](https://img-bbs.csdn.net/upload/201906/02/1559414434_539549.jpg)
![](https://img-bbs.csdn.net/upload/201906/02/1559414434_741815.png)