Взаимная корреляция и интерполяция для выбора наиболее похожего сигнала

Я использую Matlab для обработки сигналов, и у меня есть вопрос о взаимной корреляции и интерполяции для выбора наиболее похожего сигнала.

Допустим, у меня есть два сигнала K1 и K2 с частотой дискретизации 30 Гц и третий сигнал Q с частотой дискретизации 100 Гц. Первым шагом, который я выполняю, является сплайн-интерполяция сигналов K1 и K2, чтобы иметь частоту дискретизации 100 Гц. Затем я выполняю нормировку амплитуды для всех сигналов, чтобы их можно было сравнить.

Итак, на данный момент у меня есть три сигнала с частотой дискретизации 100 Гц, и все они имеют разную длину. Теперь мой главный вопрос: в конце концов я хочу выбрать, какой сигнал, К1 или К2, больше похож на Q и я хочу, чтобы они имели одинаковую длину. Я думал о двух гипотезах:

1 - я интерполирую три сигнала до одинаковой длины, затем выполняю взаимную корреляцию и выбираю сигнал с максимальным значением взаимной корреляции.

2 - я выполняю взаимную корреляцию, выбираю сигнал с максимальным значением взаимной корреляции, а затем интерполирую два сигнала (выбранный Q и сигнал)

Я сомневаюсь, что при первом варианте, когда я интерполирую три сигнала, я буду выполнять взаимную корреляцию с сигналами с разными частотами дискретизации, но одинаковой длины. Во втором варианте я выполняю взаимную корреляцию с сигналами с одинаковой частотой дискретизации, но разной длиной, а затем интерполирую.
Я не уверен, что это правильный способ сделать это или даже если это безразлично.

Я использую функции spline и ppval для интерполяции и функцию xcorr для взаимной корреляции.


person Fatias7    schedule 15.07.2016    source источник


Ответы (1)


1) Сплайн может быть недостаточно хорошим интерполятором для повышающей дискретизации. Это красиво для печати и легко для вычислений, но не минимизирует искажения. Лучше использовать http://www.mathworks.com/help/signal/ref/intfilt.html

2) Взаимная корреляция должна выполняться для сигналов с одинаковой частотой дискретизации.

3) Для взаимной корреляции не нужны сигналы одинаковой длины, если Q короче Kn, коэффициенты корреляции представляют собой окна из Kn с размером Q.

person xvan    schedule 15.07.2016
comment
Большое тебе спасибо! Знаете ли вы о какой-либо документации, где я могу найти дополнительную информацию о взаимной корреляции? - person Fatias7; 15.07.2016
comment
Помимо приложений спектральной плотности мощности (то есть для стохастических процессов, что Лаплче/Фурье для временных сигналов), для сравнения сигналов здесь не так много. - person xvan; 15.07.2016
comment
Вас может заинтересовать нормализованная взаимная корреляция. В Matlab сделайте это, используя xcov с 'coeff' scaleopt , иначе вы не сможете сравнить, если K1 и Q более похожи, чем K2 и Q, если K1 и K2 имеют разную среднюю мощность. - person xvan; 15.07.2016