Convolution Theorem in Fourier Transform: Explanation and Example
convolution theorem states that convolution in the time domain equals multiplication in the frequency domain using the Fourier transform. This means if you take the Fourier transform of two signals, multiply them, and then inverse transform, you get the convolution of the original signals.How It Works
Imagine you have two signals, like two sound waves, and you want to combine them by mixing their shapes over time. This mixing is called convolution. Doing this directly can be slow and complex.
The convolution theorem says you can switch to a different view called the frequency domain using the Fourier transform. In this view, instead of mixing signals by sliding and multiplying, you just multiply their frequency components directly. Then, by switching back to the time view with the inverse Fourier transform, you get the same result as the original convolution.
This is like translating two complicated recipes into a simpler language, combining them easily, and then translating back to get the final dish.
Example
This example shows how to use the convolution theorem with Python's NumPy library to convolve two simple signals by multiplying their Fourier transforms.
import numpy as np import matplotlib.pyplot as plt # Define two simple signals x = np.array([1, 2, 3, 4]) h = np.array([0, 1, 0.5, 0]) # Compute Fourier transforms X = np.fft.fft(x, n=7) # zero-padding to length 7 H = np.fft.fft(h, n=7) # Multiply in frequency domain Y = X * H # Inverse Fourier transform to get convolution y = np.fft.ifft(Y) # Compute convolution directly for comparison y_direct = np.convolve(x, h) print('Convolution via Fourier transform:', np.round(y.real, 2)) print('Direct convolution:', y_direct) # Plot results plt.stem(y.real, linefmt='b-', markerfmt='bo', basefmt='r-', label='FFT Convolution') plt.stem(y_direct, linefmt='g--', markerfmt='gx', basefmt='r-', label='Direct Convolution') plt.legend() plt.title('Convolution Theorem Demonstration') plt.show()
When to Use
The convolution theorem is very useful when working with long signals or large data sets because convolution directly can be slow and costly. By switching to the frequency domain, you can perform convolution much faster using multiplication.
It is widely used in digital signal processing tasks like filtering audio, image processing (blurring or sharpening images), and solving differential equations where convolution appears naturally.
Key Points
- Convolution in time domain equals multiplication in frequency domain.
- Fourier transform and its inverse allow switching between domains.
- Using the theorem speeds up convolution for large signals.
- Common in audio, image processing, and system analysis.