I’ve read some explanations of how autocorrelation can be more efficiently calculated using the fft of a signal, multiplying the real part by the complex conjugate (Fourier domain), then using the inverse fft, but I’m having trouble realizing this in Matlab because at a detailed level.
I’ve read some explanations of how autocorrelation can be more efficiently calculated using the
Share
Just like you stated, take the fft and multiply pointwise by its complex conjugate, then use the inverse fft (or in the case of cross-correlation of two signals:
Corr(x,y) <=> FFT(x)FFT(y)*)In fact, if you look at the code of
xcorr.m, that’s exactly what it’s doing (only it has to deal with all the cases of padding, normalizing, vector/matrix input, etc…)