0
0
RosConceptBeginner · 4 min read

Convolution Theorem in Fourier Transform: Explanation and Example

The 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.

python
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()
Output
Convolution via Fourier transform: [0. 1. 2.5 4. 5. 2. 0. ] Direct convolution: [0. 1. 2.5 4. 5. 2. 0. ]
🎯

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.

Key Takeaways

The convolution theorem links time domain convolution to frequency domain multiplication.
Fourier transform simplifies complex convolution calculations.
It enables faster processing of large signals in practical applications.
Commonly used in filtering, image processing, and signal analysis.