求在matlab中不用conv函数直接实现离散卷积的编程
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 14:50:47
求在matlab中不用conv函数直接实现离散卷积的编程
写一个函数,达到等效于conv的目的.只有20财富,全部贡献啦
function coresult = conv_my(A,B)
C=fliplr(B);
length1 = length(A);
length2 = length(C);
if length1 = length2
if length1 > length2
C = [C zeros(1,length1-length2)];
else
A = [A zeros(1,length2-length1)];
end
end
N = length(A);
coresult = zeros(1,2*N-1);
for k = 1:N
temp{k} = A*C(k);
end
for k = 1:N
temp{k} = [zeros(1,2*N-1-k+1-N) temp{k} zeros(1,k-1)];
end
for k = 1:N
coresult = coresult+temp{k};
end
这是我前两天写的,测试结果是正确的,但是首尾的0去不掉
写一个函数,达到等效于conv的目的.只有20财富,全部贡献啦
function coresult = conv_my(A,B)
C=fliplr(B);
length1 = length(A);
length2 = length(C);
if length1 = length2
if length1 > length2
C = [C zeros(1,length1-length2)];
else
A = [A zeros(1,length2-length1)];
end
end
N = length(A);
coresult = zeros(1,2*N-1);
for k = 1:N
temp{k} = A*C(k);
end
for k = 1:N
temp{k} = [zeros(1,2*N-1-k+1-N) temp{k} zeros(1,k-1)];
end
for k = 1:N
coresult = coresult+temp{k};
end
这是我前两天写的,测试结果是正确的,但是首尾的0去不掉
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中这个函数的源代码
求在matlab中不用conv函数直接实现离散卷积的编程
matlab 不用conv求卷积
怎样用matlab求离散卷积但不能用conv函数拜托各位大神
我的matlab里怎么没有卷积conv函数
matlab 怎样用conv()函数求 sin(t)和cos(t)的卷积
求matlab中实现离散序列傅里叶变换的函数.
什么是矩阵卷积?在matlab的help里看到矩阵卷积函数的介绍,q = conv(p,p),p是一个向量,请问矩阵卷积
matlab中 conv表示卷积?gggfconv?ggfconv?
在matlab中实现正弦信号和门函数的卷积
用matlab编写两个矩阵的卷积,不能用conv及conv2函数
matlab 实现门函数卷积
用matlab中con函数求卷积