首页 > 解决方案 > 如何减少 xcorr 函数的执行时间?

问题描述

我想找到 和 的窗口相关值xy它们是大小为 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

标签: matlabcorrelationcross-correlation

解决方案


问题是信号的长度。尝试使用 FFT。这里有一些提示:matlab 中的互相关而不使用内置函数?https://dsp.stackexchange.com/questions/12630/cross-correlation-with-fft-and-fftshift。第一个似乎最相关!


推荐阅读