matlab 矩阵卷积
function [ hp] = juanji( f,g )%此函数只为计算两任意二维矩阵的卷积
%命令格式:C=juanji(A,B) C为A B的卷积;
%若A为m*n矩阵,B为p*q矩阵,则C为(m+p-1)*(n+q-1)矩阵;
=size(f);
=size(g);
M=m1+m2-1;
N=n1+n2-1;
fp=zeros(M,N);
gp=zeros(M,N);
fp(1:m1,1:n1)=f;
gp(1:m2,1:n2)=g;
Fp=reshape(fp',); %fp 必须转置 reshape 把原矩阵的各列连接为列矩阵
for i=1:M
G(:,:,i)=gallery('circul',gp(i,:)); %生成循环矩阵
end
temp=gallery('circul',1:M)';
for i=1:M
for j=1:M
a1=(i-1)*N+1;
a2=i*N;
b1=(j-1)*N+1;
b2=j*N;
c=temp(i,j);
Gb(a1:a2,b1:b2)=G(:,:,temp(i,j))';
end
end
Hp=Gb*Fp;
hp=reshape(Hp,);
end
页:
[1]