The Convolution Theorem in 2D

5 ビュー (過去 30 日間)
Paz INBAR
Paz INBAR 2021 年 5 月 16 日
回答済み: Sulaymon Eshkabilov 2021 年 5 月 19 日
Hello,
I have two images A and B with different size.
I want to show that:
fft2(conv2(A,B))
is equal to
fft2(A).*fft2(B)
but I get different outputs.
what is the problem?
Thanks.

回答 (3 件)

Matt J
Matt J 2021 年 5 月 17 日
編集済み: Matt J 2021 年 5 月 17 日
The problem is that you need to zero-pad,
A=rand(10); B=rand(10);
szA=size(A);
szB=size(B);
szFull=szA+szB-1;
result1 = fftn(A,szFull).*fftn(B,szFull);
result2= fftn(conv2(A,B,'full'));
difference=norm(result1-result2,'inf')
difference = 1.0735e-12

Jonas
Jonas 2021 年 5 月 17 日
編集済み: Jonas 2021 年 5 月 17 日
i suggest you have a look onto file exchange, there is an example called 2d convolution theorem
https://de.mathworks.com/matlabcentral/fileexchange/60897-2d-convolution-theorem
  1 件のコメント
Paz INBAR
Paz INBAR 2021 年 5 月 17 日
Thank you for your answer.
I ran this file but I got different images in R ( I*M ) and in R ( ifft(F X W) ) , according to names of the images in this file.
(which are the both sides of the convolution theoren).

サインインしてコメントする。


Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 5 月 19 日
Note that the sizes of A and B must match. In your inserted image array, sizes of A and B must have differed.

カテゴリ

Help Center および File ExchangeImages についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by