Quel effet un retard dans le domaine temporel a-t-il sur le domaine fréquentiel?

21

Si j'ai un signal qui est limité dans le temps, disons une sinusoïde qui ne dure que secondes, et je prends la FFT de ce signal, je vois la réponse en fréquence. Dans l'exemple, ce serait un pic à la fréquence principale de la sinusoïde.T

Maintenant, disons que je prends ce même signal temporel et que je le retarde d'une constante de temps, puis que je prends la FFT, comment les choses changent-elles? La FFT est-elle en mesure de représenter ce délai?

Je reconnais qu'un délai représente un changement de dans le domaine fréquentiel, mais j'ai du mal à déterminer ce que cela signifie réellement .exp(jωt)

En pratique, le domaine fréquentiel est-il un endroit approprié pour déterminer le délai entre différents signaux?

gallamine
la source
1
Cela dépend de ce que vous entendez par FFT. Supposons que votre signal d'origine contienne échantillons de temps. Supposons que le retard soit de échantillons. Alors maintenant, vous avez échantillons, les premiers étant . Calculez-vous la FFT des premiers échantillons (comme précédemment)? des échantillons ? des derniers des échantillons? La réponse dépendra de ce que vous entendez par FFT ...100 N + 100 100 0 N N + 100 N N + 100N100N+1001000NN+100NN+100
Dilip Sarwate
1
@Dilip Je cherche une réponse plus générale. Peut-être qu'une explication de ce qui changerait dans ces scénarios serait utile?
gallamine
1
Si vous transmettez le dernier des N + 100 échantillons à votre sous-programme FFT à N points, vous obtiendrez le même FFT qu'auparavant. Aucune différence que ce soit. Si vous passez le premier N des N + 100 échantillons (avec les 100 premiers échantillons étant 0 ) à votre sous-programme FFT à N points, vous obtiendrez des choses difficiles à interpréter. Lisez attentivement la réponse de @JasonR qui vous indique que si les 100 premiers échantillons sont remplis à partir de vos données via une circulaire ou une cycliqueNN+100NNN+1001000N100décalage, vous verrez alors le retard reflété dans la phase des échantillons.
Dilip Sarwate,

Réponses:

21

La transformée de Fourier discrète (DFT) , généralement mise en œuvre par la transformée de Fourier rapide (FFT) , mappe une séquence de longueur finie d'échantillons de domaine temporel discrets en une séquence de longueur égale d'échantillons de domaine de fréquence. Les échantillons dans le domaine fréquentiel sont en général des nombres complexes; ils représentent des coefficients qui peuvent être utilisés dans une somme pondérée de fonctions exponentielles complexes dans le domaine temporel pour reconstruire le signal d'origine dans le domaine temporel.

Ces nombres complexes représentent une amplitude et une phase associées à chaque fonction exponentielle. Ainsi, chaque nombre dans la séquence de sortie FFT peut être interprété comme:

X[k]=n=0N-1X[n]e-j2πnkN=UNEkejϕk

Vous pouvez l'interpréter comme suit: si vous voulez reconstruire x [n], le signal avec lequel vous avez commencé, vous pouvez prendre un tas de fonctions exponentielles complexes , pondérez chacun parX[k]=Akejϕk, et additionnez-les. Le résultat est exactement égal (avec une précision numérique) àx[n]. Ceci est juste une définition mot de la DFT inverse.ej2πnkN,k=0,1,,N-1X[k]=UNEkejϕkX[n]

Donc, en réponse à votre question, les différentes saveurs de la transformée de Fourier ont la propriété qu'un retard dans le domaine temporel correspond à un déphasage dans le domaine fréquentiel. Pour la DFT, cette propriété est:

x [ n - D ] e - j 2 π k D

X[n]X[k]
X[n-]e-j2πkNX[k]

Autrement dit, si vous retardez votre signal d'entrée de échantillons, alors chaque valeur complexe dans la FFT du signal est multipliée par la constante e - j 2 π k D . Il est courant que les gens ne réalisent pas que les sorties de la DFT / FFT sont des valeurs complexes, car elles sont souvent visualisées uniquement en magnitudes (ou parfois en magnitude et en phase).e-j2πkN

Edit: Je tiens à souligner qu'il existe certaines subtilités à cette règle pour la DFT en raison de sa finesse dans la couverture temporelle. Plus précisément, le décalage de votre signal doit être circulaire pour que la relation soit maintenue; c'est-à-dire que lorsque vous retardez de D échantillons, vous devez envelopper les derniers échantillons D qui se trouvaient à la fin de x [ n ] à l'avant du signal retardé. Cela ne correspondrait pas vraiment à ce que vous verriez dans une situation réelle où le signal ne démarre juste qu'après le début de l'ouverture DFT (et est précédé de zéros, par exemple). Vous pouvez toujours contourner ce problème en remplissant à zéro le signal d'origine x [ nX[n]X[n] sorte que lorsque vous retardez de D échantillons, vous enveloppez simplement les zéros vers l'avant de toute façon. Cette relation ne s'applique qu'à la DFT car elle est finie dans le temps; cela ne s'applique pas à la transformée de Fourier classique ou àla transformée de Fourier à temps discret.X[n]

Jason R
la source
1

Gallamine,

Cela signifie simplement qu'il y aura un décalage de phase dans votre vecteur FFT. Lorsque vous FFT votre signal (réel), votre réponse sera complexe, vous aurez donc une partie réelle et imaginaire. Si vous avez pris leur phase, (inverse_tangent (imag / real)), cela affichera toutes les phases des fréquences. La façon dont leurs phases diffèrent si vous n'aviez pas de retard est directement liée au retard que vous avez dans le temps.

(Dans matlab, vous pouvez également obtenir la phase simplement en "angle (fft_result)").

Soit dit en passant, si vous effectuez une corrélation de votre signal avec retard et sans retard et choisissez le pic, vous pouvez obtenir le retard de cette façon. Dans le domaine freq, il soustrait toutes les phases de votre signal sans retard, de tout le signal avec retard, et prend la moyenne.

Spacey
la source
2
Il y a trop de choses non dites et non spécifiées dans cette réponse. Mohammad suppose essentiellement un décalage circulaire des données sans le dire. Voir la réponse (modifiée) de @ JasonR pour une description minutieuse de ce point, et mon commentaire sur la question principale disant qu'il existe de nombreuses façons d'utiliser la FFT et qu'elles donnent toutes des résultats différents
Dilip Sarwate
@DilipSarwate a raison, cela suppose un décalage circulaire des données. Comme il l'a souligné, il existe des subtilités dans la FFT basées sur le vecteur d'entrée.
Spacey
@gallamine, puis-je vous demander à quoi ressemblent vos vecteurs de données, exmaple: - Signal1: [someZeros, signal, someZeros] - Signal2: [someDifferentNumberOfZeros, signal, someDifferentNumberOfZeros]
Spacey
1

péché(ωt)ω

aman deep
la source
Salut aman. Bienvenue sur Signals.SE. Pourriez-vous prendre un peu de temps et formater un peu votre réponse? Nous avons activé MathJax , que nous préférons généralement pour les équations. J'ai fait un montage partiel rapide qui a quelques exemples si vous ne l'avez pas utilisé auparavant. Merci pour votre contribution, et encore une fois, bienvenue sur le site!
datageist