Digital signal processing

convolution

Convolution is the single operation that describes what any linear, time-invariant filter does to a signal: slide a flipped copy of the filter's impulse response across the input, and at every position multiply-and-add the overlap. Intuitively, the output 'paints a copy' of the system's response at every input sample, then sums all those overlapping copies. Drop a pebble each instant into a pond and the total ripple pattern is the convolution of your taps with the pond's single-pebble response.

Two facts make it the beating heart of DSP. First, knowing one thing — a system's impulse response — lets you predict its output for any input whatsoever, simply by convolving. Second, convolution in time is multiplication in frequency, so a job that looks like a slow N·M sliding sum can be done blazingly fast by an FFT, multiply, inverse-FFT round trip. The same operation, generalized to 2-D, is exactly what blurs, sharpens, and edge-detects images — and what a convolutional neural network learns.

y[n] = (x * h)[n] = Σ_k x[k] · h[n−k]

Don't confuse convolution with correlation: they are nearly identical sliding sums, but convolution flips one signal first. For a symmetric filter they give the same result; for measuring similarity or time-delay, use correlation.

Also called
卷積迴旋積分