numpy.correlate

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.correlate(a, v, mode='valid')[source]

两个1维序列的互相关。

该函数计算信号处理文本中通常定义的相关性:

c_{av}[k] = sum_n a[n+k] * conj(v[n])

其中a和v序列在必要时被填零,conj是共轭。

参数:

a,v:array_like

输入序列。

mode:{'valid','same','full'},可选

请参阅convolve文档字符串。请注意,默认值为“有效”,与使用“full”的convolve不同。

old_behavior:bool

在NumPy 1.10中删除了old_behavior如果你需要旧的行为,使用multiarray.correlate

返回:

out:ndarray

av的离散互相关。

也可以看看

convolve
离散,两个一维序列的线性卷积。
multiarray.correlate
老,没有共轭,correlate的版本。

笔记

上述相关性的定义不是唯一的,并且有时相关性可能被不同地定义。另一个常见的定义是:

c'_{av}[k] = sum_n a[n] conj(v[n+k])

其通过c'_ {av} [k] = c_与c_{av}[k]

例子

>>> np.correlate([1, 2, 3], [0, 1, 0.5])
array([ 3.5])
>>> np.correlate([1, 2, 3], [0, 1, 0.5], "same")
array([ 2. ,  3.5,  3. ])
>>> np.correlate([1, 2, 3], [0, 1, 0.5], "full")
array([ 0.5,  2. ,  3.5,  3. ,  0. ])

使用复杂序列:

>>> np.correlate([1+1j, 2, 3-1j], [0, 1, 0.5j], 'full')
array([ 0.5-0.5j,  1.0+0.j ,  1.5-1.5j,  3.0-1.j ,  0.0+0.j ])

注意,当两个输入序列改变位置时,你得到时间反转的复共轭结果,即c_ {va} [k] = c ^ {*} _ {av} [ - k]

>>> np.correlate([0, 1, 0.5j], [1+1j, 2, 3-1j], 'full')
array([ 0.0+0.j ,  3.0+1.j ,  1.5+1.5j,  1.0+0.j ,  0.5+0.5j])