Convolution Calculator

Compute the discrete linear convolution of two numeric sequences for signal processing and mathematical analysis.

Discrete convolution
Enter each finite sequence as comma-separated numbers.

About convolution

Convolution combines two sequences to describe how one pattern modifies, filters, or overlaps another. For finite discrete sequences, every output sample is the sum of products formed by sliding one sequence across the other. If the first sequence has length m and the second has length n, their full linear convolution has length m + n - 1. This calculator performs that complete operation and displays samples from the earliest overlap through the latest overlap. The operation appears throughout digital signal processing. A sampled input signal convolved with a system's impulse response produces the system output when the system is linear and time invariant. Audio equalizers, smoothing filters, echo models, image kernels, and communication channels all use this idea. In probability, convolution also gives the distribution of a sum of independent random variables, while polynomial multiplication uses the same coefficient-by-coefficient pattern. To calculate an output sample, pair values whose indices add to that sample's index, multiply each pair, and add the products. Near the ends, only a few values overlap. In the middle, more values contribute. The calculator accepts integers, decimals, and negative numbers, so it can model many practical finite signals without requiring special notation. It computes linear convolution rather than circular convolution; circular convolution wraps indices around a fixed period and can produce a different result. Convolution is commutative, so exchanging the two input sequences does not change the output. It is also associative and distributive, properties that make cascaded filters and decomposed systems easier to analyze. A one-sample impulse with value one acts as an identity: convolving any sequence with it returns the original sequence. Scaling either input scales every output by the same factor. Use the displayed result as an exact sample list for classroom exercises, quick filter checks, or verification of hand calculations. Very long sequences are often processed with fast Fourier transform methods, but direct summation is clear and reliable for the short sequences typically entered here. Always keep the sample order consistent, and include explicit zeros when they represent meaningful delays.

Convolution examples

Input sequencesOutput sequenceInterpretation
[1, 2, 3] and [1, 1][1, 3, 5, 3]A two-sample moving sum
[1, 0, 2] and [2, 1][2, 1, 4, 2]A sequence containing a zero sample
[2, -1] and [3, 4][6, 5, -4]Signed values are supported

How to calculate a convolution

  1. Enter the first sequence in sample order, separating each number with a comma.
  2. Enter the second sequence in the same comma-separated format.
  3. Select Calculate convolution to multiply and sum every valid overlap.
  4. Read the full output sequence from left to right.

Frequently asked questions

What type of convolution does this calculator perform?

It performs full discrete linear convolution on two finite sequences. It does not wrap samples as circular convolution does.

Why is the output longer than either input?

A length m sequence convolved with a length n sequence produces m + n - 1 samples. The extra samples represent partial overlaps at both ends.

Can I enter negative numbers and decimals?

Yes, each comma-separated item may be a finite integer or decimal, including a negative value. The output is rounded only to suppress insignificant floating-point noise.

Does input order matter?

No, convolution is commutative, so swapping the first and second sequences gives the same result. The internal sliding interpretation changes, but the numeric output does not.

Is convolution the same as correlation?

No, correlation measures similarity at different shifts and typically reverses or conjugates one sequence differently. Convolution is primarily used to combine an input with a system response or kernel.