MATLAB2014a卷积老出错,求大神啊 Matlab求卷积 怎么也调不出来 总是有错误

匿名用户

1级

2013-12-01 回答

function [f,k]=sconv(f1,f2,k1,k2,p)

%计算连续信号卷积积分 f(t)=f1(t)*f2(t)

% f: 卷积积分 f(t)对应的非零样值向量

% k: f(t)的对应时间向量

% f1: f1(t)非零样值向量

% f2: f2(t)的非零样值向量

% k1: f1(t)的对应时间向量

% k2: 序列 f2(t)的对应时间向量

% p: 取样时间间隔

f=conv(f1,f2); %计算序列 f1与 f2的卷积和 f

f=f*p;

k0=k1(1)+k2(1); %计算序列 f非零样值的起点位

k3=length(f1)+length(f2)-2; %计算卷积和 f的非零样值的宽

k=k0:p:k0+k3*p; %确定卷积和 f非零样值的时

subplot(2,2,1)

plot(k1,f1) %在子图 1绘 f1(t)时域波形图

title('f1(t)')

xlabel('t')

ylabel('f1(t)')

subplot(2,2,2)

plot(k2,f2) %在子图 2绘 f2(t)时波形图

title('f2(t)')

xlabel('t')

ylabel('f2(t)')

subplot(2,2,3)

plot(k,f); %画卷积f(t)的时域波形

h=get(gca,'position');

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

set(gca,'position',h) %将第三个子图的横坐标范围扩为原来的2.5倍

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

xlabel('t')

ylabel('f(t)')

i=0;

for k1=-2:0.001:2

if ( k1<1&&k1>-1)

i=i+1;

f1(i)=k1;

end

end

k1=-0.999:0.001:0.999;

k2=k1;

f2=2.*f1;

T=0.001;

[y,k]=sconv(f1,f2,k1,k2,T);

subplot(3,1,1)

plot(k1,f1);

axis([-2,2,0,2.2])

title('f1')

subplot(3,1,2)

plot(k2,f2);

axis([-2,2,0,2.2])

title('f2')

subplot(3,1,3)

plot(k,fy);

title('y=f1*f2');

axis([min(k),max(k),min(y),max(y)+.02])

追问:

把它直接复制到matlab里面运行还是有下面的错误

??? function [f,k]=sconv(f1,f2,k1,k2,p)

|

Error: Function definitions are not permitted at the prompt or in scripts.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值