Apricus_77
Apricus_77
2021-06-07 18:37
采纳率: 100%
浏览 53

利用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)
 
>> 

 

求怎么解决?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • technologist_47
    CSDN专家-Matlab_Fans 2021-06-07 19:50
    已采纳

    问题是括号不匹配,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)');
    

     

    点赞 评论
  • QA_Assistant
    有问必答小助手 2021-06-08 11:21

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

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

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

    点赞 评论

相关推荐