np correlate について

conv と correlate は計算方向が逆になっただけで基本の考え方は一緒。

corr の 基本の計算は、c'_{av}[k] = sum_n a[n] conj(v[n+k]) な感じ。

[1, 2, 3], [0, 1, 0.5]

--> 0 padding

[0, 0, 1, 2, 3, 0, 0]
[0, 0, 0, 1, 0.5, 0, 0]
  • valid: 0 padding しない場合 (defalut)。
  • same: 0padding するが、length を input と output をあわせる
  • full: 0padding して、すべての correlate を求める。
>>> 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. ])

docs.scipy.org