numpy.correlate
numpy.correlate(a, v, mode='valid') [source]
两个一维序列的互相关。
此函数计算信号处理文本中通常定义的相关性:
c_{av}[k] = sum_n a[n+k] * conj(v[n])
其中a和v序列在必要时进行zero-padded,而conj是共轭。
参数 : | a, v :array_like 输入序列。 mode : 请参考 请注意,默认值是 ‘valid’,与卷积不同,后者使用‘full’。 old_behavi或 : 在NumPy 1.10中删除了old_behavior。 如果您需要旧的行为, 请使用multiarray.correlate。 |
返回值 : | out :ndarray a和v的离散互相关。 |
Notes
上面相关性的定义不是唯一的,有时相关性可以不同地定义。另一个常见的定义是:
c'_{av}[k] = sum_n a[n] conj(v[n+k])
通过c'_ {av}[k] = c_ {av}[-k]
与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])