matlab做傅里叶级数展开

仿真出来的波形和原函数上下位置对不上是为什么,原函数周期是5是当t大于零小于3时函数值是5,当t大于3小于5时是0
syms t n ;
help pi;
T=5;w=2pi/T;
x=-10:0.01:10;
f1=5;
f2=0;
a0=(1/T)int(f1,t,0,3);
an=(2/T)int(f1cos(n
w
t),t,0,3);
bn=(2/T)int(f1sin(nwt),t,0,3);
f1=ancos(nwt)+bnsin(nwt);
ft1=a0/2+symsum(f1,n,1,3);
ft2=a0/2+symsum(f1,n,1,5);
ft3=a0/2+symsum(f1,n,1,9);
ft4=a0/2+symsum(f1,n,1,500);
et=5*((x>=0)-(x>=3));
eTt=et+5*((x-5>=0)-(x-5>=3))+5*((x+5>=0)-(x+5>=3))+5*((x+10>=0)-(x+10>=3));
fplot(t,ft1,[-10,10]);
hold on
fplot(t,ft2,[-10,10]);
hold on
fplot(t,ft3,[-10,10]);
hold on
fplot(t,ft4,[-10,10]);

可能数据格式不匹配吧,int型舍掉了很多值

被转成整数了,有个T

数字精度问题,用更加准确地浮点数试下