Why can you do Convolution in frequency Domain?

Click For Summary

Discussion Overview

The discussion revolves around the concept of performing convolution in the frequency domain, particularly in the context of image processing. Participants explore the implications of transforming images and filters into the frequency domain and the challenges associated with this process.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • Axel questions the feasibility of applying convolution in the frequency domain, noting the lack of explicit pixel positions after a Fourier transform.
  • One participant suggests that convolution in the frequency domain corresponds to vector multiplication in the time domain, indicating that positional information is encoded in the phase data.
  • Axel further clarifies that while positional information exists, it is not directly observable, and inquires about the method to apply a convolution kernel in the frequency domain given the size differences between the image and the kernel.
  • Another participant points out that knowing the convolution formula should allow for its application in the frequency domain, questioning the interpretation of filtering in this context.
  • A PhD student shares a practical example involving convolution of two vectors in both time and frequency domains using MATLAB, noting discrepancies in results and seeking clarification.
  • A later reply attributes the discrepancy to an oversight regarding aliasing and suggests that zero padding may be necessary to avoid this issue.

Areas of Agreement / Disagreement

Participants express differing views on the interpretation and execution of convolution in the frequency domain, with no consensus reached on the methods or implications discussed.

Contextual Notes

There are unresolved questions regarding the handling of size differences between the image and the convolution kernel in the frequency domain, as well as the implications of aliasing in the results obtained from MATLAB.

Agadoul
Messages
2
Reaction score
0
Hi everybody,

I have question: Why can you do Convolution filter in the frequency Domain ?

I mean, when you apply a filter to an image in the spatial domain, it 's easy. You've got for example your sobel 3x3 kernel that you apply on every pixel of your image. Easy.

But when you convert your image to the frequency domain using a fast Fourier transform, there is no notion of pixel position and there is no way you're going to be able to do a convolution on the image using the pixel that were around the pixel?

am I right ?

if not, can someone try to explain why?

Thanks,

Axel.
 
Computer science news on Phys.org
I'm not sure I understand the question entirely? But my understanding is that performing a convolution in the frequency domain is an equivalent operation to performing a vector multiplication in the time domain. So you can do it, but it doesn't have the same effect.

While it's true that pixel position is inaccessible in the frequency information, that information isn't gone, it's just hidden. Positional information gets encoded into for example the phase data.
 
I think you understood me well. Ok so the position is still there but he is not implicitly showed (the size of a Fourier transformation is the same of an image : that has to have a meaning too).
If you want to apply a convolution kernel in the frequency domain, how do you do that ?
convert both the image and the kernel in the Fourier image and multiply them together. the size of both entities are different. how do you do that ?

thanks,

Axel.
 
What is the rule for the convolution operation ?

If you know the formula than I don't think there should be a problem using that rule even in the frequency domain. But the problem is what is the interpretation for taking convolution in frequency domain. What do you want to filter?
 
Hello There,

I am doing my PhD in Image debluring and the convolution problem sometimes getting me crazy ..
If we take a simple example of convolution between 2 vectors A & B such that
A = [1 2] and B = [3 4]
and i want to perform the convolution in both time and frequency domain!
using MATLAB
>> A = [1 2]

A =

1 2

>> B = [3 4]

B =

3 4

>> C = conv(A,B)

C =

3 10 8

>> D = ifft(fft(A).*fft(B))

D =

11 10
But according to the convolution theorem A*B in the spatial domain is equivalen to A.B in the frequency domain but still we are not getting the same answer ,, Can Anyone explain me why please ! Thanks a lot ..
 
That is the same. You just forgot to alias the 8 back in on top of the 3. If you want to avoid aliasing then you need to do zero padding.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
Replies
17
Views
6K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K