Convolution
How Convolution Describes a Linear System
Convolution answers a single practical question: if you know how a system reacts to one sharp impulse, what does it do to an arbitrary signal? Any input can be decomposed into a dense train of scaled, time-shifted impulses. In a linear time-invariant system each of those impulses produces a scaled, shifted copy of the impulse response h(t), and superposition lets you add all the copies back together. The continuous sum of those overlapping echoes is precisely the convolution integral, which is why a single measured impulse response captures the complete behavior of an amplifier chain, a filter, or a multipath radio channel.
For sampled signals the integral becomes a discrete sum, the operation a digital signal processor actually executes. A finite impulse response filter with M taps computes each output sample as a weighted sum of the most recent M input samples, which is exactly a discrete convolution of the input stream with the tap coefficients. Because the work scales as the number of taps times the number of samples, long filters and long captures are usually processed with fast convolution, where a forward FFT, a spectral multiply, and an inverse FFT replace the direct sum and reduce the cost from order N times M to roughly N log N.
The frequency-domain view is the reason convolution is so central to RF design. The convolution theorem pairs time-domain convolution with frequency-domain multiplication, so a filter's effect is read directly from its frequency response rather than from a messy time integral. The dual statement is equally useful: multiplying two signals in time, the defining action of a mixer, convolves their spectra and produces the sum and difference frequencies that frequency conversion depends on.
Continuous and Discrete Forms
y(t) = (x ∗ h)(t) = ∫−∞∞ x(τ) · h(t − τ) dτ
Discrete convolution sum:
y[n] = ∑k=0M−1 h[k] · x[n − k]
Convolution theorem (the key shortcut):
y(t) = x(t) ∗ h(t) ⇔ Y(f) = X(f) × H(f)
Output length (linear convolution):
Lout = N + M − 1
Where x = input, h = impulse response, τ = shift variable, M = filter length, N = input length. Properties: commutative (x ∗ h = h ∗ x), associative, and distributive over addition.
Convolution Methods Compared
| Method | Cost (order) | Best Length | Latency | Wrap-Around Risk | Typical Use |
|---|---|---|---|---|---|
| Direct (time domain) | N × M | Short filters (< ~64 taps) | Low, sample by sample | None | Real-time FIR, low latency |
| FFT (single block) | N log N | Long, both finite | One full block | High if not zero-padded | Offline batch processing |
| Overlap-add | N log N | Long stream, short h | One block | Managed by padding | Streaming FIR filtering |
| Overlap-save | N log N | Long stream, short h | One block | Managed, discards edge | Continuous channelizers |
| Circular (raw DFT product) | N log N | Periodic signals only | One block | Inherent (periodic) | Cyclic-prefix OFDM analysis |
Frequently Asked Questions
How does convolution relate to multiplication in the frequency domain?
The convolution theorem states that time-domain convolution equals point-by-point multiplication of spectra: if y(t) = x(t) ∗ h(t), then Y(f) = X(f) × H(f). That is why engineers analyze filters with a frequency response H(f) instead of a time integral. The dual also holds, so multiplying two signals in time (a mixer) convolves their spectra and yields the sum and difference frequencies.
Why is FFT-based convolution faster than direct convolution for long signals?
Direct convolution of N samples with an M-tap filter costs about N × M multiply-accumulates. Fast convolution transforms both sequences, multiplies the spectra, and inverse-transforms at order N log N, often 10 to 100× faster for filters of several hundred taps. The overlap-add and overlap-save methods stream this in blocks while avoiding the circular wrap-around a plain FFT product would create.
What is the difference between linear convolution and circular convolution?
Linear convolution of N-point and M-point sequences yields N + M − 1 output samples with no wrap-around. Circular convolution, what a raw product of two N-point DFTs computes, treats the data as periodic so trailing samples fold back and corrupt the start. Zero-padding both sequences to at least N + M − 1 points before the FFT restores the correct linear result.