Как сократить время выполнения функции xcorr? - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу найти оконные значения корреляции x и y, которые являются массивами размером 1 * 20000.Кроме того, я хочу извлечь максимальное значение корреляции из каждого окна.

Функция xcorr занимает слишком много времени для выполнения.Есть ли способ сократить время выполнения?Мой код указан ниже:

k=1;
for i = 1 : stepsize : (length(x)-w+1)
    corrValue_w = xcorr(x(i:i+w-1),y(i:i+w-1));
    maxCorrValue_w(k) = max(corrValue_w);
    k=k+1;
end

1 Ответ

0 голосов
/ 26 февраля 2019

Проблема в длине сигналов.Попробуйте использовать БПФ.Вот несколько указателей: Кросс-корреляция в Matlab без использования встроенной функции? и https://dsp.stackexchange.com/questions/12630/cross-correlation-with-fft-and-fftshift. Первый из них кажется наиболее актуальным!

...