Convolve
Details and Options
- Convolve is also known as Fourier convolution, acausal convolution or bilateral convolution.
- The convolution
of two functions
and
is given by
. - The multidimensional convolution is given by
. - The following options can be given:
-
Assumptions $Assumptions assumptions to make about parameters GenerateConditions False whether to generate conditions on parameters Method Automatic method to use PrincipalValue False whether to use principal value integrals
Examples
open all close allBasic Examples (3)
Convolve a function with DiracDelta:
Convolve[DiracDelta[x], f[x], x, y]Convolve[UnitBox[x], UnitBox[x], x, y]Convolve two exponential functions and plot the result:
Convolve[Exp[-x]UnitStep[x], Exp[-x]UnitStep[x], x, y]Plot[%, {y, 0, 10}, PlotRange -> All]Scope (5)
Univariate Convolution (3)
The convolution gives the product integral of translates:
f[x_] := UnitBox[x]g[x_] := E ^ (-x ^ 2)GraphicsRow@Table[Plot[{f[x], g[x - i]}, {x, -3, 4}, Ticks -> None, Exclusions -> None,
PlotRange -> All], {i, -1, 2}]Convolve[f[x], g[x], x, y]Convolve[x, 1 / (x ^ 2 + 1), x, y]Convolve[E ^ (-a x ^ 2), 1, x, y]A convolution typically smooths the function:
f0 = UnitBox[x];f1 = Convolve[f0, f0, x, y] /. y -> xf2 = Convolve[f1, f1, x, y] /. y -> x//Simplifyf3 = Convolve[f2, f2, x, y] /. y -> x//Simplify;Plot[Evaluate[{f0, f1, f2, f3}], {x, -3, 3}, Exclusions -> None]For this family, they all have unit area:
Integrate[{f0, f1, f2, f3}, {x, -∞, ∞}]Multivariate Convolution (2)
The convolution gives the product integral of translates:
f[x_, y_] := E ^ (-x ^ 2 - y ^ 2)GraphicsGrid@Table[Plot3D[{f[x, y], f[x - i, y - j]}, {x, -3, 3}, {y, -3, 3}, Mesh -> 5, ImageSize -> 400, Ticks -> None,
PlotRange -> All, PlotStyle -> {LightRed, LightOrange}], {i, -1, 1}, {j, -1, 1}]Convolution with multivariate delta functions acts as a point operator:
Convolve[f[x, y], DiracDelta[x, y], {x, y}, {r, s}]Convolution with a function of bounded support acts as a filter:
Convolve[E ^ (-x ^ 2 - y ^ 2), UnitBox[x, y], {x, y}, {r, s}]Generalizations & Extensions (1)
Multiplication by UnitStep effectively gives the convolution on a finite interval:
Convolve[x ^ 5 UnitStep[x], Sin[x] UnitStep[x], x, y, Assumptions -> y > 0]Integrate[x ^ 5 Sin[y - x], {x, 0, y}, Assumptions -> y > 0]Options (2)
Assumptions (1)
Applications (5)
Obtain a particular solution for a linear ordinary differential equation using convolution:
First@Simplify[y[x] /. DSolve[{y'[x] + y[x] == x ^ 2, y[0] == 0}, y, x]]Expand[Simplify[Convolve[E ^ (-t)UnitStep[t], t ^ 2 UnitStep[t], t, x], x > 0]]Obtain the step response of a linear, time-invariant system given its impulse response h:
h = Exp[-x]UnitStep[x];Plot[h, {x, 0, 10}, PlotRange -> All]The step response of the system:
Convolve[h, UnitStep[x], x, y]Plot[%, {y, 0, 10}, PlotRange -> All]Convolving the PDF of UniformDistribution with itself gives a TriangularDistribution:
Convolve[PDF[UniformDistribution[{0, 1}], x], PDF[UniformDistribution[{0, 1}], x], x, y]PDF[TriangularDistribution[{0, 2}], y]FullSimplify[%% - %]UniformSumDistribution[n] is the convolution of n UniformDistribution[] PDFs:
Table[Convolve[PDF[UniformSumDistribution[k], x], PDF[UniformDistribution[{0, 1}], x], x, y] - PDF[UniformSumDistribution[k + 1], y], {k, 2, 5}]//FullSimplifyTable[Plot[PDF[UniformSumDistribution[k], x], {x, 0, 4}, Filling -> Axis, Exclusions -> None, PlotRange -> {0, 1}, PlotLabel -> k], {k, 1, 4}]ErlangDistribution[k,λ] is the convolution of k ExponentialDistribution[λ] PDFs:
Convolve[PDF[ErlangDistribution[k, λ], x], PDF[ExponentialDistribution[λ], x], x, y]PDF[ErlangDistribution[k + 1, λ], y]FullSimplify[%% - %]Table[Plot[PDF[ErlangDistribution[k, 1], x], {x, 0, 8}, Filling -> Axis, Exclusions -> None, PlotRange -> {0, 1}, PlotLabel -> k], {k, 1, 4}]Properties & Relations (7)
Convolve computes an integral over the real line:
Convolve[x ^ 2, E ^ (-x ^ 2), x, y]Integrate[x ^ 2 E ^ (-(y - x) ^ 2), {x, -Infinity, Infinity}, Assumptions -> Im[y] == 0]Convolution with DiracDelta gives the function itself:
Convolve[Sin[x], DiracDelta[x], x, y]Convolve[a r[x], s[x], x, y]Convolve[r[x], a s[x], x, y]f[x_] := x ^ 2g[x_] := E ^ (-Abs[x])Convolve[f[x], g[x], x, y]Convolve[g[x], f[x], x, y]Convolve[h[x], i[x] + j[x], x, y]Convolve[h[x] + i[x], j[x], x, y]The Laplace transform of a causal convolution is a product of the individual transforms:
f[x_] := Sin[x]UnitStep[x]g[x_] := x UnitStep[x]Together[LaplaceTransform[Convolve[f[x], g[x], x, y], y, s]]LaplaceTransform[f[x], x, s]LaplaceTransform[g[x], x, s]The Fourier transform of a convolution is related to the product of the individual transforms:
f[x_] := UnitBox[x / 2];g[x_] := 2UnitBox[(x + 1) / 3];Plot[{f[x], g[x]}, {x, -3, 3}, Exclusions -> None, Filling -> Axis]FourierTransform[f[x], x, ω, FourierParameters -> {1, 1}] FourierTransform[g[x], x, ω, FourierParameters -> {1, 1}]FourierTransform[Convolve[f[y], g[y], y, x], x, ω, FourierParameters -> {1, 1}]//FullSimplifyFullSimplify[% / %%]Interactive Examples (1)
This demonstrates the convolution operation
:
DynamicModule[{f, g, h},
f[x_] := UnitBox[x / 2];
g[x_] := UnitBox[x];
h[y_] = Convolve[f[x], g[x], x, y];
Manipulate[
GraphicsRow[{
Plot[{f[x], g[y - x]}, {x, -5 / 2, 5 / 2}, ...],
Plot[f[x] g[y - x], {x, -5 / 2, 5 / 2}, ...],
Plot[h[x], {x, -5 / 2, y}, ...]}, ImageSize -> 480], {{y, -0.8, Style["y", Italic]}, -2, 2}]]Related Guides
Related Links
History
Text
Wolfram Research (2008), Convolve, Wolfram Language function, https://reference.wolfram.com/language/ref/Convolve.html.
CMS
Wolfram Language. 2008. "Convolve." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Convolve.html.
APA
Wolfram Language. (2008). Convolve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Convolve.html
BibTeX
@misc{reference.wolfram_2026_convolve, author="Wolfram Research", title="{Convolve}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/Convolve.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_convolve, organization={Wolfram Research}, title={Convolve}, year={2008}, url={https://reference.wolfram.com/language/ref/Convolve.html}, note=[Accessed: 12-June-2026]}