У меня есть два сигнала, которые я хочу сравнить с точки зрения сходства. Один меньше (по времени), чем другой. Если я использую корреляцию, чтобы найти наибольшее сходство, это говорит мне, что самые высокие значения имеют значение, при котором я этого не ожидал.
Может ли кто-нибудь дать мне подсказку, если я просто думаю «неправильно», или корреляция - неправильный инструмент для такого рода проблем?
Моя установка:
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).
Правильно ли делать корреляцию? Я нашел так много источников, где используется корреляция для обнаружения сходства. Разве одни и те же значения не должны быть более похожими, чем любые другие?