J'ai essayé de googler et de wikipedia, mais je n'ai obtenu aucune réponse au-delà de "c'est parce que la fréquence du signal d'entrée se situe entre deux cases".
Je comprends que c'est la raison, mais ce que je ne comprends pas, c'est pourquoi la fuite semble s'étendre à plusieurs bacs adjacents plutôt qu'à un seul bac adjacent.
Pour illustrer ce dont je parle, voici quelques données simulées (code à la fin du post):
Ci-dessus, le spectre FFT (tracé sur une échelle logarithmique) d'une onde sinusoïdale de fréquence 10. Le taux d'échantillonnage est de un et le nombre d'échantillons est de 100. Le graphique a été décalé FFT. Il n'y a clairement qu'un pic au bac 10, et le reste est de l'ordre de l'erreur numérique, ou à peu près.
Il s'agit du spectre de fréquences à une fréquence générée de 10,1. Il y a clairement une «fuite» dans plus de bacs que le bac immédiatement adjacent.
Ceci est l'intrigue pour une fréquence de 10,5.
Question: Pourquoi y a-t-il cette fuite et pourquoi s'étend-elle à tous les autres bacs plutôt qu'au bac adjacent immédiat?
Code, pour toute personne intéressée (code Python)
import numpy as np
import matplotlib.pyplot as plt
xFreq = 10.5
xSize = 100.0
xPeriod = xSize/xFreq
x = np.linspace(1,xSize,xSize)
data = np.sin(2*np.pi*x/xPeriod)
fft = np.fft.fft(data)
fft = np.fft.fftshift(fft)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(abs(fft), "o")
ax.set_yscale('log')
plt.show()
J'ai changé la xFreq
valeur de 10.0
en 10.5
, etc.
la source
Réponses:
Une FFT a une longueur finie et constitue ainsi une fenêtre rectangulaire par défaut sur un flux de données. Une fenêtre dans le domaine temporel se traduit par une convolution dans le domaine fréquentiel avec la transformation de la fenêtre. Notez que la transformation d'une fenêtre rectangulaire est une fonction Sinc (sin (x) / x), qui a une largeur infinie. Ce n'est pas seulement 2 bacs de largeur. Ainsi, les ondulations de la fonction Sinc apparaîtront comme des "fuites" loin de tout pic spectral qui n'est pas parfaitement périodique dans la longueur de la FFT.
L'image ci-dessous montre une partie de la réponse en fréquence de la fonction sinc. Lorsque la tonalité est centrée sur l'un des casiers, tous les autres points sont alignés avec les valeurs nulles dans la réponse en fréquence. S'il n'est pas centré sur un casier, c'est comme déplacer la réponse en fréquence entière, ce qui fait tomber les autres casiers sur des parties non nulles de la réponse en fréquence.
Une autre façon de voir les choses est qu'une FFT est juste une banque de filtres, où chaque étage de bande d'arrêt de filtre a beaucoup d'ondulations, et n'est certainement pas infini en atténuation à plus d'un bac de la fréquence centrale. Certaines fenêtres (von Hann, etc.) autres que rectangulaires ont des bandes d'arrêt inférieures, ce qui est une des raisons de leur utilisation populaire.
la source
hotpaw2
La réponse est bonne, mais je voudrais développer un peu leuser5133
commentaire de:et en même temps répondre à la question aussi. Notez que je suis un expert dans ce domaine --- n'hésitez pas à commenter, corriger ou confirmer.
Mais la transformée de Fourier d'un produit est la convolution des transformées de Fourier:
la source