J'ai essayé différents codes de transformée de Fourier sur des ondes sinusoïdales uniques, et tous produisent un spectre distribué avec une résonance à la fréquence du signal alors qu'ils devraient théoriquement afficher une seule barre.
La fréquence d'échantillonnage a peu d'effet (10 kHz ici), cependant le nombre de cycles:
Un cycle:
100 cycles:
100000 cycles:
Il semble que la transformée de Fourier ne converge que pour un nombre infini de cycles, pourquoi? Une fenêtre temporelle d'exactement un cycle ne devrait-elle pas apporter les mêmes résultats que celle de N cycles?
Application: C'est à la fois par curiosité et aussi parce que je veux savoir à quel point la réponse échelonnée d'un système de premier ordre excitera la résonance d'un assemblage mécanique. J'ai donc besoin d'une transformée de Fourier précise de la réponse ... à laquelle je ne fais plus confiance. Que pourrais-je faire pour améliorer la précision alors, sur la base du cas de "l'onde sinusoïdale"?
PS: Ces captures d'écran particulières sont basées sur le code ici .
la source
Réponses:
Il s'agit d'un artefact de fenêtrage.
Le code lié remplit un 10 000 échantillon de signal avec des zéros de sorte que la longueur est une puissance de deux.
Notez que dans le code ci-dessus, la FFT est prise avec la taille FFT
NFFT
qui est la puissance suivante de 2 plus grande que la longueur du signal (dans ce cas, 16,384.) De la documentation Mathworksfft()
:Cela signifie que vous ne prenez pas réellement une FFT d'une «onde sinusoïdale pure» - vous prenez la FFT d'une onde sinusoïdale avec un signal plat après.
Cela équivaut à prendre la FFT d'une onde sinusoïdale multipliée par une fonction de fenêtre carrée. Le spectre FFT est alors la convolution du spectre de fréquence d'onde sinusoïdale (une fonction d'impulsion) avec le spectre de fréquence d'onde carrée (sinc (f).)
Si vous changez
L = 16,384
pour qu'il n'y ait pas de remplissage nul du signal, vous observerez uneperfect
FFT.Autres mots-clés de recherche: "Spectral Leakage", "Window Function", "Hamming Window".
Edit: J'ai nettoyé certains documents que j'ai écrits sur ce sujet à l'université, qui sont beaucoup plus détaillés. Je l'ai posté sur mon blog .
la source