ListConvolve

ListConvolve[ker,list]
forms the convolution of the kernel ker with list.

ListConvolve[ker,list,k]
forms the cyclic convolution in which the k^(th) element of ker is aligned with each element in list.

ListConvolve[ker,list,{kL,kR}]
forms the cyclic convolution whose first element contains and whose last element contains .

ListConvolve[ker,list,klist,p]
forms the convolution in which list is padded at each end with repetitions of the element p.

ListConvolve[ker,list,klist,{p1,p2,}]
forms the convolution in which list is padded at each end with cyclic repetitions of the .

ListConvolve[ker,list,klist,padding,g,h]
forms a generalized convolution in which g is used in place of Times and h in place of Plus.

ListConvolve[ker,list,klist,padding,g,h,lev]
forms a convolution using elements at level lev in ker and list.

DetailsDetails

  • With kernel and list , ListConvolve[ker,list] computes , where the limits of the sum are such that the kernel never overhangs either end of the list.
  • ListConvolve[ker,list] gives a result of length Length[list]-Length[ker]+1.
  • ListConvolve[ker,list] allows no overhangs and is equivalent to ListConvolve[ker,list,{-1,1}].
  • ListConvolve[ker,list,k] is equivalent to ListConvolve[ker,list,{k,k}].
  • The values of and in ListConvolve[ker,list,{kL,kR}] determine the amount of overhang to allow at each end of list.
  • Common settings for are:
  • {-1,1}no overhangs (default)
    {-1,-1}maximal overhang at the righthand end
    {1,1}maximal overhang at the lefthand end
    {1,-1}maximal overhangs at both beginning and end
  • With maximal overhang at one end only, the result from ListConvolve is the same length as list.
  • ListConvolve[ker,list,{kL,kR},padlist] effectively lays down repeated copies of padlist, then superimposes one copy of list on them and forms a convolution of the result.
  • Common settings for padlist are:
  • ppad with repetitions of a single element
    {p1,p2,}pad with cyclic repetitions of a sequence of elements
    listpad by treating list as cyclic (default)
    {}do no padding
  • ListConvolve works with multidimensional kernels and lists of data.
  • ListConvolve[ker,list,{{kL 1,kL 2,},{kR 1,kR 2,}}] forms the cyclic convolution whose element contains , and whose element contains .
  • is taken to be equivalent to .
  • When a function h is specified to use in place of Plus, explicit nested h expressions are generated with a depth equal to the depth of ker.
  • ListConvolve works with exact numbers and symbolic data as well as approximate numbers.

ExamplesExamplesopen allclose all

Basic Examples  (4)Basic Examples  (4)

Convolve a kernel with a list of data:

In[1]:=
Click for copyable input
Out[1]=

Make a cyclic convolution the same length as the original data:

In[1]:=
Click for copyable input
Out[1]=

Align element 2 in the kernel with successive elements in the data:

In[2]:=
Click for copyable input
Out[2]=

Pad with instead of using the data cyclically:

In[1]:=
Click for copyable input
Out[1]=

Two-dimensional convolution:

In[1]:=
Click for copyable input
Out[1]=
Introduced in 1999
(4.0)