J'essaie de calculer une autocorrélation sur une plate-forme où la seule primitive accélérée dont je dispose est la (I) FFT. J'ai un problème cependant.
Je l'ai prototypé dans MATLAB . Je suis cependant légèrement confus. J'ai supposé que cela fonctionne simplement comme suit (c'est de mémoire donc excuses si je me trompe un peu).
autocorr = ifft( complex( abs( fft( inputData ) ), 0 ) )
Cependant, j'obtiens un résultat différent de celui obtenu en utilisant la xcorr
fonction. Maintenant, je m'attends à ne pas obtenir le côté gauche de la corrélation automatique (car c'est un reflet du côté droit et donc pas nécessaire de toute façon). Cependant, le problème est que mon côté droit semble être lui-même réfléchi autour de la mi-course. Ce qui signifie effectivement que j'obtiens environ la moitié de la quantité de données que j'attends.
Je suis donc sûr que je dois faire quelque chose de très simple, mais je n'arrive pas à comprendre quoi.