利用Matlab求门函数频谱提示错误

利用Matlab绘制门函数 g2 (t) 的频谱;

我的程序先写了门函数代码

function y=gate(t,w)
y=(abs(t)<=1).*(1).*exp(-j*w*t);

之后利用quad求

w=linspace(-20,20,256);
N=length(w);F=zeros(1,N);
for k=1:N
    F(k)=quad(@gate,-2,2)
end
plot(w,real(F));
xlabel('\omega');ylabel('F(j\omega)');

然后就开始报错

(在一楼的提示下修改了gate中错误的括号后报错依旧)

新报错:

>> project4
输入参数的数目不足。

出错 gate (line 2)
y=(abs(t)<=1).*(1).*exp(-j*w*t);

出错 quad (line 67)
y = f(x, varargin{:});

出错 project4 (line 4)
    F(k)=quad(@gate,-2,2)
 
>> 

 

求怎么解决?

问题是括号不匹配,gate函数改成:

function y=gate(t,w)
y=(abs(t)<=1).*(1).*exp(-j*w*t);

求解段修改为:

w=linspace(-20,20,256);
N=length(w);F=zeros(1,N);
for k=1:N
    w0 = w(k);
    g = @(t) gate(t,w0);
    F(k) = quad(g,-2,2);
end
plot(w,real(F));
xlabel('\omega');ylabel('F(j\omega)');

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632