怎样用matlab求离散卷积但不能用conv函数拜托各位大神
展开全部
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
测试了一下,跟conv计算的结果偏差很小(我测试的结果是10^-15左右),执行效率略低(用cputime 测试rand(1,99),差了0.2964) 商业软件就是牛啊 真想知matlab中这个函数的源代码
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
测试了一下,跟conv计算的结果偏差很小(我测试的结果是10^-15左右),执行效率略低(用cputime 测试rand(1,99),差了0.2964) 商业软件就是牛啊 真想知matlab中这个函数的源代码
黄先生
2024-12-27 广告
2024-12-27 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采...
点击进入详情页
本回答由黄先生提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询