求matlab程序解释,越详细越好。是关于卷积的源代码。

functiona=myconv(b,c)bs=size(b);cs=size(c);i=any(bs-cs);ifierror('error')endi=any(~(b... function a=myconv(b,c)
bs=size(b);
cs=size(c);
i=any(bs-cs);
if i
error('error')
end
i=any(~(bs-1));
if ~i
error('error')
end
ko=0;
if bs(1)>bs(2)
b=b';
c=c';
ko=1;
end
bs=size(b);
cs=size(c);
ss=2*bs(2)-1;
a=zeros(1,ss);
for i=1:cs(2)
q=zeros(1,i-1);
p=zeros(1,ss-cs(2)+1-i);
ba=[q,c,p];
ma=b(i)*ba;
a=a+ma;
end
if ko
a=a';
end
end
展开
 我来答
机智又矫健的彩虹0C
2011-09-30 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1753
采纳率:75%
帮助的人:3151万
展开全部
个人认为这个程序有问题
i=any(bs-cs);
if i
error('error')
end
这里明显是没道理的,如果bs和cs不一样,i就会是1,然后这里就会报错。这很明显不合理。
如果b=[1 1],c=[1 1 1],那么bs=[1 2],cs=[1 3],从而i=1,程序到这里就报错结束了,但是很明显b和c是可以做卷积的,结果是[1 2 2 1]
MATLAB里面的内置卷积源程序是conv.m,卷积说白了就是多项式乘法,标准程序里是用FIR滤波器写的,很精辟。你可以试试conv([1 1],[1 1 1 ]),结果就是[1 2 2 1],但是你这个myconv就不行。我不知道"my"是谁,你还是问本人吧。
追问
不知道您能不能给个卷积的程序看看,多谢
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式