У меня есть два сигнала, которые я хочу сравнить с точки зрения сходства. Один меньше (по времени), чем другой.
Если я использую корреляцию, чтобы найти наибольшее сходство, это говорит мне, что самые высокие значения находятся на значении, которое я бы не ожидал.
Может ли кто-нибудь дать мне подсказку, если я просто считаю «неправильным» или корреляция - это неправильный инструмент для такого рода проблемы?
Моя настройка:
import numpy
import matplotlib.pyplot as plt
signal_a = numpy.array([10, 20, 10, 30, 20, 10, 28, 22, 10])
signal_b = numpy.array([28, 22])
correlations = numpy.correlate(signal_a, signal_b, mode = "full")
print(correlations)
plt.plot(correlations)
Выводит этот график и массив корреляций
Наибольшая корреляция [28, 22] рассчитывается в позиции [..., 30, 20, ...].
Я понимаю формулу и почему это 1280.
Но я на самом деле ищу [..., 28, 22, ...], поскольку именно (в этом случае) я ищу (Сигнал B).
Корреляция - правильная вещь? Я нашел так много источников, где корреляция используется для обнаружения сходства. Разве одни и те же значения не должны быть более похожими, чем другие?