scipy.signal.correlate(in1, in2, mode='full', old_behavior=True)

Cross-correlate two N-dimensional arrays.

Cross-correlate in1 and in2 with the output size determined by the mode argument.

Parameters :

in1: array :

first input.

in2: array :

second input. Should have the same number of dimensions as in1.

mode: str {‘valid’, ‘same’, ‘full’} :

a string indicating the size of the output:
  • ‘valid’: the output consists only of those elements that do not

rely on the zero-padding. - ‘same’: the output is the same size as the largest input centered

with respect to the ‘full’ output.

  • ‘full’: the output is the full discrete linear cross-correlation of the inputs. (Default)

old_behavior: bool :

If True (default), the old behavior of correlate is implemented:
  • if in1.size < in2.size, in1 and in2 are swapped (correlate(in1, in2) == correlate(in2, in1))
  • For complex inputs, the conjugate is not taken for in2

If False, the new, conventional definition of correlate is implemented.

Returns :

out: array :

an N-dimensional array containing a subset of the discrete linear cross-correlation of in1 with in2.


The correlation z of two arrays x and y of rank d is defined as

z[...,k,...] = sum[..., i_l, ...]
x[..., i_l,...] * conj(y[..., i_l + k,...])

Previous topic


Next topic


This Page