Skip to content
ComputeVerse.ai

Signals & Systems

Convolution Calculator

Convolve two discrete sequences, y[n] = Σ x[k]·h[n−k], with the full flip-and-slide breakdown for the selected output sample and stem plots of both inputs and the result.

About this calculator

Convolution is how a linear time-invariant system maps an input to an output: the output is the input convolved with the system's impulse response. This calculator computes the full linear convolution of two finite sequences and, crucially, shows the work — for any output index you choose, it lists every overlapping product x[k]·h[n−k] and their sum, which is exactly the 'flip one sequence, slide it, multiply and add' picture from the textbook.

Enter each sequence as comma- or space-separated numbers (interpreted as x[0], x[1], …). The result has length L + M − 1, where L and M are the two input lengths — every nonzero overlap is accounted for, with values outside each sequence taken as zero. The stem plots show both inputs and the output; the highlighted sample tracks the index you're inspecting.

This is the linear (aperiodic) convolution, not the circular convolution the DFT computes directly. The two agree only when both sequences are zero-padded to at least L + M − 1 — a distinction this tool keeps explicit, because mixing them up is one of the most common DSP errors. Use it to build intuition, check a hand computation, or find the impulse response of a cascade (convolving the two stage responses).

Design notes & common mistakes

  • Output length is always L + M − 1 — a frequent off-by-one source when sizing buffers.
  • Convolution is commutative (x*h = h*x), associative, and distributive; the impulse response of a cascade is the convolution of the stage responses.
  • Convolving with a unit impulse δ[n] leaves x unchanged; convolving with a shifted impulse δ[n−d] delays x by d samples.
  • Linear ≠ circular: the DFT multiplies spectra to give CIRCULAR convolution. Zero-pad to ≥ L + M − 1 to make them agree.

Assumptions

  • Both inputs are finite, real, causal sequences indexed from n = 0.
  • Full linear (aperiodic) convolution is computed; samples outside each sequence are zero.
  • Sequence length is capped at 64 samples per input to keep the step-by-step view legible.

When to use this calculator

Appropriate for

  • Computing or checking the linear convolution of two finite sequences by hand
  • Finding the impulse response of a cascade of LTI stages
  • Teaching the flip-and-slide mechanics and the L + M − 1 length rule

Not suitable for

  • Continuous-time convolution integrals (use the analytic transform tools instead)
  • Circular convolution or fast FFT-based convolution of very long signals
  • Deconvolution or system identification

What this calculator does not cover

  • Discrete sequences only — this is not continuous-time convolution (no ∫x(τ)h(t−τ)dτ).
  • Real-valued samples only; complex sequences are out of scope for this tool.
  • Computes linear convolution; it does not perform circular/periodic convolution (see the DFT tool for that relationship).
  • No deconvolution (recovering x or h from y), which is ill-conditioned in general.
  • As with every calculator on this site: results are preliminary and educational, are not verified for any specific installation, and must be reviewed against the applicable code edition and stamped by a licensed Professional Engineer before real-world use.

Frequently asked questions

How long is the convolution of two sequences?

If x has L samples and h has M samples, the linear convolution y = x ∗ h has exactly L + M − 1 samples, indexed 0 to L + M − 2. Every nonzero overlap contributes; samples outside each input are treated as zero.

What is the difference between linear and circular convolution?

Linear convolution is the ordinary sliding sum with zero-padding outside each sequence. Circular convolution — what you get by multiplying two DFTs and inverting — wraps the ends around. They agree only when both sequences are zero-padded to at least L + M − 1 before the DFT.

Why does convolving with an impulse leave the signal unchanged?

The unit impulse δ[n] is the identity for convolution: x ∗ δ = x. A shifted impulse δ[n−d] convolves to a pure delay, shifting x right by d samples. This is why the impulse response fully characterizes an LTI system.

References

  • Oppenheim, A. V. & Willsky, A. S., Signals and Systems, 2nd ed., Ch. 2 (discrete-time convolution)
  • Proakis, J. G. & Manolakis, D. G., Digital Signal Processing, 4th ed., Ch. 2 (linear convolution, properties)
  • Lathi, B. P., Linear Systems and Signals, 2nd ed. (convolution sum)

Related calculators

Get the ComputeVerse.ai quick reference

A free engineering quick-reference PDF, plus a note when new calculators launch across the library — one or two emails a month, nothing else.