Я использую Matlab для обработки сигналов, и у меня есть вопрос о взаимной корреляции и интерполяции для выбора наиболее похожего сигнала.
Допустим, у меня есть два сигнала K1 и K2 с частотой дискретизации 30 Гц и третий сигнал Q с частотой дискретизации 100 Гц. Первым шагом, который я выполняю, является сплайн-интерполяция сигналов K1 и K2, чтобы иметь частоту дискретизации 100 Гц. Затем я выполняю нормировку амплитуды для всех сигналов, чтобы их можно было сравнить.
Итак, на данный момент у меня есть три сигнала с частотой дискретизации 100 Гц, и все они имеют разную длину. Теперь мой главный вопрос: в конце концов я хочу выбрать, какой сигнал, К1 или К2, больше похож на Q и я хочу, чтобы они имели одинаковую длину. Я думал о двух гипотезах:
1 - я интерполирую три сигнала до одинаковой длины, затем выполняю взаимную корреляцию и выбираю сигнал с максимальным значением взаимной корреляции.
2 - я выполняю взаимную корреляцию, выбираю сигнал с максимальным значением взаимной корреляции, а затем интерполирую два сигнала (выбранный Q и сигнал)
Я сомневаюсь, что при первом варианте, когда я интерполирую три сигнала, я буду выполнять взаимную корреляцию с сигналами с разными частотами дискретизации, но одинаковой длины. Во втором варианте я выполняю взаимную корреляцию с сигналами с одинаковой частотой дискретизации, но разной длиной, а затем интерполирую.
Я не уверен, что это правильный способ сделать это или даже если это безразлично.
Я использую функции spline и ppval для интерполяции и функцию xcorr для взаимной корреляции.