Bonjour,

Je souhaiterais comprendre un peu mieux le fonctionnement de la fonction fft.
Par la simulation, je calcule une fonction d'autocorrélation que je transforme en fonction de covariance f(t). Avec t=[0,T] avec une résolution de dt = 1e-4.

Je souhaite obtenir la densité spectrale g(f) associée à h(t). Donc je réalise une transformée de Fourier en utilisant la fonction fft.
Par définition, h(t) est censé être paire et réelle. Les conséquences sont que g(f) doit être un réel pur sans partie imaginaire.
Cependant quand je réalise la fft, je trouve une partie imaginaire de même magnitude (à peu près) que la partie réelle.

J'ai deux hypothèses: soit je fais une erreur lors du traitement de h(t), soit h(t) est mal estimé.

Je ne sais pas comment la fft reconnait si une fonction est paire. Donc pour forcer la chose, j'ai dupliqué ma fonction par symétrie avec t=0. Ainsi mon autocorrélation est nécessairement paire.
L'application de la fft me donne une densité spectrale uniquement réelle. Le bémol, c'est que j'ai une fonction g(f) qui n'est pas strictement supérieur à 0.

L'algorithme que j'utilise se résume en ces étapes:

1) Chargement de f(t)
2) g(f) = fftshift( fft( f(t) ) )
3) Détermination de l'axe des f en fonction de t et dt
4) plot de (f, abs(g), f, real(g), f, imag(g))

Avez-vous des éléments de réponse à m'apporter sur l'origine de mon problème ?

Je vous remercie.