Я хочу убедиться, что правильно использую коррелят numpy, он не дает мне ожидаемого ответа. Возможно, я неправильно понимаю функцию корреляции. Вот фрагмент кода с комментариями:
import numpy as np
ref = np.sin(np.linspace(-2*np.pi, 2*np.pi, 10000)) # make some data
fragment = ref[2149:7022] # create a fragment of data from ref
corr = np.correlate(ref, fragment) # Find the correlation between the two
maxLag = np.argmax(corr) # find the maximum lag, this should be the offset that we chose above, 2149
print(maxLag)
2167 # I expected this to be 2149.
Разве это не индекс в массиве corr
, где корреляция является максимальной задержкой между этими двумя наборами данных? Я бы подумал, что начальный индекс, который я выбрал для меньшего набора данных, будет смещением с наибольшей корреляцией.
Почему существует расхождение между тем, что я ожидаю, 2149 и результатом, 2167?
Спасибо