Why can you do Convolution in frequency Domain?

In summary, the conversation discusses the feasibility of performing a convolution filter in the frequency domain and its equivalence to a vector multiplication in the time domain. The issue of pixel position in the frequency information and its encoding into phase data is also mentioned. The conversation ends with a question about the interpretation and implementation of the convolution operation in the frequency domain, using a simple example in MATLAB.
  • #1
Agadoul
2
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
  • #2
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.
 
  • #3
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.
 
  • #4
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?
 
  • #5
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 ..
 
  • #6
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.
 

Related to Why can you do Convolution in frequency Domain?

1. What is the advantage of performing convolution in the frequency domain?

The main advantage of performing convolution in the frequency domain is that it can significantly reduce the computational complexity compared to performing convolution in the time domain. This is because convolution in the frequency domain involves only multiplication and addition, which are much faster operations than the time-domain convolution involving integration or summation.

2. How does convolution in the frequency domain work?

In frequency domain convolution, the two signals are first transformed into the frequency domain using the Fast Fourier Transform (FFT) algorithm. The convolution operation is then performed by multiplying the two frequency domain representations and then transforming the result back to the time domain using the inverse FFT.

3. Can all types of convolutions be done in the frequency domain?

No, not all types of convolutions can be done in the frequency domain. Only linear and circular convolutions can be performed using the frequency domain method.

4. What are the limitations of performing convolution in the frequency domain?

One limitation of performing convolution in the frequency domain is that it assumes the signals are periodic, which may not always be the case. Additionally, the frequency domain method may introduce some errors due to the finite precision of the FFT algorithm.

5. When is it beneficial to use frequency domain convolution?

Frequency domain convolution is beneficial when the signals being convolved are long or have a large number of samples, as it can significantly reduce the computation time. It is also useful when performing multiple convolutions with the same signal, as the FFT only needs to be performed once.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
1
Views
900
Replies
9
Views
2K
Replies
6
Views
1K
  • Computing and Technology
Replies
3
Views
618
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
817
  • Electrical Engineering
Replies
4
Views
1K
  • Calculus and Beyond Homework Help
Replies
1
Views
869
Replies
1
Views
1K
Replies
7
Views
3K
Replies
4
Views
2K
Back
Top