代码:
syms t n y
if nargin<3;
Nf=100;
end
T=10;
if nargin<5;
Nn=32;
end
y=time_fun_s(t);
A0=2*int(y,t,0,T)/T;
As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);
Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);
A_sym(1)=double(vpa(A0,Nn));
for k=1:Nf
A_sym(k+1)=double(vpa(subs(As,n,k),Nn));
B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));
end
if nargout==0
S1=fliplr(A_sym)%对A_sym阵左右对称变换
S1(1,k+1)=A_sym(1)%A_sym的1*k阵扩展为1*(k+1)阵
S2=fliplr(1/2*S1)%对扩展后的s1阵左右对称交换回原位置
S3=fliplr(1/2*B_sym)%对B_sym阵左右对称交换
S3(1,k+1)=0%对B_sym的1*k阵扩展为1*(k+1)阵
S4=fliplr(S3)%对扩展后的S3阵左右对称交换回原位置
S5=S2-i*S4;
S6=fliplr(S5);
N=Nf*2*pi/T;
k2=-N:2*pi/T:N;
S7=[S6,S5(2:end)];
subplot(2,1,1)
stem(k2,abs(S7));%画出周期锯齿脉冲的频谱
grid on
tide('连续时间函数周期锯齿脉冲的双边幅度谱')
line([-8*Nf/T,8*Nf/T],[0,0])
line([0,0],[0,1.1/T])
axis([-80*Nf/T,80*Nf/T,-0.1/T,1.1/T])
subplot(2,1,2)
time_fun_e(t)%调用连续时间函数-周期锯齿脉冲
end
新建:time_fun_s.m
function y=time_fun_s(t)
syms t
T=10;
y=(sym('Heaviside(t)-Heaviside(t-1)'))*(-t/T+1);
y=simple(y);
总是有错误,却不知道怎么改,求教大神