# ListCorrelate

ListCorrelate[ker,list]

forms the correlation of the kernel ker with list.

ListCorrelate[ker,list,k]

forms the cyclic correlation in which the k element of ker is aligned with each element in list.

ListCorrelate[ker,list,{kL,kR}]

forms the cyclic correlation whose first element contains list[]ker[[kL]] and whose last element contains list[[-1]]ker[[kR]].

ListCorrelate[ker,list,klist,p]

forms the correlation in which list is padded at each end with repetitions of the element p.

ListCorrelate[ker,list,klist,{p1,p2,}]

forms the correlation in which list is padded at each end with cyclic repetitions of the pi.

forms a generalized correlation in which g is used in place of Times and h in place of Plus.

forms a correlation using elements at level lev in ker and list.

# Details • With kernel Kr and list as, ListCorrelate[ker,list] computes , where the limits of the sum are such that the kernel never overhangs either end of the list.
• For a onedimensional list ListCorrelate[ker,list] is equivalent to ListConvolve[Reverse[ker],list].
• For higher-dimensional lists, ker must be reversed at every level.
• Settings for kL and kR are negated in ListConvolve relative to ListCorrelate.
• Common settings for {kL,kR} in ListCorrelate are:
•  {1,-1} no overhangs (default) {1,1} maximal overhang at the right‐hand end {-1,-1} maximal overhang at the left‐hand end {-1,1} maximal overhangs at both beginning and end

# Examples

open allclose all

## Basic Examples(4)

Correlate a kernel {x,y} with a list of data:

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

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

Two-dimensional correlation:

## Scope(5)

Use exact arithmetic to compute the correlation:

Use machine arithmetic:

Use 24-digit precision arithmetic:

Correlation of complex data:

Two-dimensional correlation:

Cyclic two-dimensional correlation:

Two-dimensional correlation with maximal overhangs and zero padding:

## Generalizations & Extensions(4)

Use functions f and g in place of Plus and Times:

Use functions f and g in place of Plus and Times with maximal overhangs and zero padding:

Use functions f and g in place of Plus and Times with maximal overhangs and empty padding:

ListCorrelate works with TimeSeries:

## Applications(6)

Smooth data with a weighted running average:

Normalized Gaussian profile for averaging weights:

Gaussian smoothing of an image:

Gaussian kernel with a 5×5 pixel stencil:

Smooth the image:

Edge detection in an image:

Correlate with a Laplacian filter kernel:

Use a Laplacian of a Gaussian filter kernel:

Generate Pascal's triangle: