Why do i get different results when i perform convolution with different ways?

3 visualizaciones (últimos 30 días)
Hello ,
i have an image 30x30 and i want to perform convolution with a filter 9x9 using 2 methods . Firstly , i need to perform the convolution using conv2() and then using ifft2(fft2(image)*fft2(filter)) . Can someone explain why in the first case i get back a 38x38 result as expected ( i am aware that the result after the convolution is length(image+filter-1)) but in the second i get back a 30x30 result? Isn't supposed to be the same procedure ?

Respuesta aceptada

Matt J
Matt J el 10 de Dic. de 2020
Editada: Matt J el 10 de Dic. de 2020
No, it's not the same procedure. conv2 performs linear convolution, wherease your fft method performs cyclic convolution. See also,
  3 comentarios
Matt J
Matt J el 10 de Dic. de 2020
The link I gave you discusses how to compare them.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by