matlab求卷积函数_MATLAB求两个函数的卷积出问题了
%-- 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。
追问:
问题已解决,谢谢。
其他回答
暂无其它回答!