MATLAB门函数

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')

参考资料:http://zhidao.baidu.com/link?url=WWGSYsm-rZ5vWlsAmxwV0HxJ6TWQr1obQlR0RNSuELT_4rGULcD71i0QXyD6LzePVEH0N5ryLaF0aRm0aYLac_

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-07

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)

        qn=heaviside(t-n*Tc-1)-heaviside(t-n*Tc+1);

        sn=cos(2*pi*K*n/2^N)*qn;

        s=[s sn];

    end

    plot(s);

不知道你想实现什么功能,循环结束后n=u-1,而程序对应的就是u-1的图形。

本回答被提问者采纳