K=5;
N=10;
Tc=1;
u=2^N/gcd(2^N,K);
t=0:u*Tc;s=0;
for n=1:1:(u-1)
q(n*Tc)=heaviside(t-n*Tc)-heaviside(t-(n+1)*Tc);(有错误)
s(n)=cos(2*pi*K*n/2^N)*q(n*Tc)
s=s+s(n);
end
plot(s)
其中q(n*Tc)为门函数U(t-n*Tc)-U(t-(n+1)*Tc)
求解答
matlab里边是可以利用单边函数表示门函数的。你可以跑一下下边的程序,看一下门函数:
fx=heaviside(x+0.5)-heaviside(x-0.5);
ezplot(fx,[-1,1]);
而且matlab里边还有对符号表达式做傅里叶变换的函数fourier(),用法如下:
FX=fourier(fx);
ezplot(FX,[-30,30]);
title('fourier transformation of fx')