Estou tentando calcular uma autocorrelação em uma plataforma em que a única primitiva acelerada que tenho disponível é a (I) FFT. Estou tendo um problema.
Eu o prototipei no MATLAB . Estou, no entanto, um pouco confuso. Eu assumi que ele funciona da seguinte forma (isso é da memória, desculpe-me se eu entendi um pouco errado).
autocorr = ifft( complex( abs( fft( inputData ) ), 0 ) )
No entanto, recebo um resultado diferente do uso da xcorr
função Agora, espero não obter o lado esquerdo da correlação automática (pois é um reflexo do lado direito e, portanto, não é necessário). No entanto, o problema é que meu lado direito parece refletir-se em torno do ponto médio. O que significa efetivamente que recebo cerca da metade da quantidade de dados que estou esperando.
Então, tenho certeza de que devo estar fazendo algo muito simples errado, mas não consigo descobrir o que.