matlab求卷积函数_MATLAB求两个函数的卷积出问题了

原问题:MATLAB求两个函数的卷积出问题了
分类:编程开发 > 最后更新时间:【2016-12-15 15:12:52】
问题补充:

%-- 16-11-25 上午3:51 --%

f=conv(f1,f2);

f=f*p;

k0=k1(1)+k2(1);

k3=length(f1)+length(f2)-2;

k=k0:p:k0+k3*p;

subplot(2,2,1);

plot(k1,f1);

title('f1(t)');

xlabel('t');

ylabel('f1(t)');

subplot(2,2,2);

plot(k2,f2);

title('f2(t)');

subplot(2,2,3);

plot(k,f);

h=get(gca,'position');

h(3)=2.5*h(3);

set(gca,'position',h);

title('f(t)=f1(t)*f2(t)');

xlabel('t');

ylabel('f(t)') ;

??? Undefined function or variable 'f1'.

最佳答案

conv函数要求输入的两个量是多项式的系数矢量,如:

>> f1=[3 0 2 1];f2=[1 3 0.5 -4];

f=conv(f1,f2)

f =

3.0000 9.0000 3.5000 -5.0000 4.0000 -7.5000 -4.0000

f也是多项式的系数,而你在程序中,没有先定义f1,f2,就用conv(f1,f2),当然计算不出结果,提示没有定义变量f1。如你定义了f1,接着就会提示定义 f2。


追问:
我在m-file里面定义了,function[f,k]=(f1,f2,k1,k2,p) 追答:
你这个定义function[f,k]=(f1,f2,k1,k2,p)就是错的,等号后必须是字母+括号,如:function [f,k]=abc(f1,f2,k1,k2,p),在调用时用[f,k]=abc(f1,f2,k1,k2,p)才能正确引用到定义的变量,否则,无效。
追问:
function[f,k]=sconv(f1,f2,k1,k2,p)是不对的,刚刚我少打了sconv。

  • 追问:
    问题已解决,谢谢。
    最佳答案由网友  扣2674716548  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    8

    分享到:

    其他回答

    暂无其它回答!

      推荐