2016-05-19 1 views
0

を掛けることができるので、私は2つの行列、A(逆フィルタ)を持ってBゼロとカントパッドiは要素によって二つの行列(MATLAB)

A=ones(20,20); 
B=zeros(33,33); 

と私は、このような要素により、これらを乗算します:。()周波数領域で製品を検索し、(画像復元をバック変換信号処理の目的のために

C=A.*B; 


これを行うには、私がすべきパッド最小の配列、それはA[33,33]であるように、 しかし、その後size(A)=(44,44); そして、私の画像を中心にされていないと私はカントこの

A=A(1:33,1:33); 

のようなものを取ることになり、この

A=padarray(A,[7,7]); 

のようなIパッド期待される結果。
Aの画像を中央に配置し、次にBを乗算するにはどうすればよいですか?

+1

偶数サイズのマトリックスを奇数サイズのマトリックスの中に集中させることについて、正確にどの程度正確に調整したいと思いますか? – Suever

+0

中央周波数表示(つまり、DC成分を中心にした)をゼロ周波数表示(つまり、左上隅のDC成分)に置き換えることを検討しましたか? ['fftshift'](http://www.mathworks.com/help/matlab/ref/fftshift.html)と[' ifftshift'](http://www.mathworks.com/help/matlab/ref)を見てください。 /ifftshift.html)を参照してください。 – Shai

答えて

0

fftshiftはどうですか?

pA = fftshift(A); 
pA(size(B,1),size(B,2)) = 0; %// fill with zeros, high frequencies 
pA = ifftshift(pA); 
0

あなたは、私はちょうど対称性に応じてパディングなかった

A = ones(20,20); 
B=zeros(33,33); 
A = padarray(A,7,'symmetric','pre'); 
A = padarray(A',7,'symmetric','pre'); 
A = padarray(A,6,'symmetric','post'); 
A = padarray(A',6,'symmetric','post'); 
C = A.*B; 

前と後のパディングで行くことができます。 Aのすべての要素は対称性に従ったものなので、それを1で埋めました。あなただけの「padarray」は、実際に7を使用して、コードIパッド用も トップ前の異なるシナリオのためにどのように機能するか詳細を確認し、それを作るために6で投稿するには、コマンドプロンプトで

help padarray 

を記述する必要が異なって試すことができます13. 希望すると便利です

関連する問題