📄 juanji_2.asv
字号:
%%####求离散的二维卷积####%%
clc;
clear all;
%%将f和h维数补齐#####%%%
f=[1,2;3,4];
h=[-1,1;-2,2];
M=2+2-1; N=2+2-1;
[mf,nf]=size(f);
for i=1:M
for j=1:N
if (i>mf) |(j>nf)
fe(i,j)=0;
else
fe(i,j)=f(i,j);
end
end
end
[mh,nh]=size(h);
for i=1:M
for j=1:N
if (i>mh) |(j>nh)
he(i,j)=0;
else
he(i,j)=h(i,j);
end
end
end
%%%%%%%%%%%
%%%构造列矢量F###%%%%
[mfe,nfe]=size(fe);
for i=1:mfe
for j=1:nfe
F(nfe*(i-1)+j)=fe(i,j);
end
end
%%%%%%%%%%%%%%%%%%%%%
%%%构造块循环矩阵#####%%%%%
% 求取单个子块Hi,然后利用H[n*(mH-1+nH-1)%m+i,m*(nH-1)+j]=Hi(i,j)
% 求得整个移动后的循环块
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[mhe,nhe]=size(he);
m=mhe;n=nhe;
for mH=1:m
he_Next=he(mH,:)';
Hi(:,1)=he_Next;
for i=1:mhe-1
he_Tmp=he_Next(nhe);
for j=1:nhe-1
he_Next(nhe-j+1)=he_Next(nhe-j);
end
he_Next(1)=he_Tmp;
Hi(:,i+1)=he_Next;
end
Hi
[mHi,nHi]=size(Hi);
for nH=1:n
for i=1:mHi
for j=1:nHi
H(n*mod((mH-1+nH-1),m)+i,m*(nH-1)+j)=Hi(i,j);
end
end
end
end
H
%%%%%%%%%%%%%%%%%%%%%%%%%%
g=H*F'
g=conv2(f,h)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -