Pourquoi la FFT est-elle «en miroir»?


36

Si vous faites un tracé FFT d'un signal simple, comme:

t = 0:0.01:1 ;
N = max(size(t));
x = 1 + sin( 2*pi*t ) ;
y = abs( fft( x ) ) ;
stem( N*t, y )

1 Hz sinusoïde + DC

1Hz

FFT d'en haut

fft

Je comprends que le nombre dans la première case est "combien de DC" il y a dans le signal.

y(1)  %DC
  > 101.0000

Le nombre dans la deuxième case doit être "combien de 1 cycle sur tout le signal" il y a:

y(2)  %1 cycle in the N samples
  > 50.6665

Mais ce n'est pas 101! Il est environ 50,5.

Il y a une autre entrée à la fin du signal fft, de magnitude égale:

y(101)
  > 50.2971

Donc 50,5 encore.

Ma question est la suivante: pourquoi la FFT est-elle mise en miroir? Pourquoi n’est-ce pas juste un 101 po y(2)(ce qui voudrait bien sûr dire que tous les 101 canaux de votre signal ont une sinusoïde de 1 Hz?)

Serait-il juste de faire:

mid = round( N/2 ) ;

% Prepend y(1), then add y(2:middle) with the mirror FLIPPED vector
% from y(middle+1:end)
z = [ y(1), y( 2:mid ) + fliplr( y(mid+1:end) ) ];

stem( z )

Basculer et ajouter la seconde moitié du vecteur FFT

entrez la description de l'image ici

Je pensais maintenant que la partie en miroir sur le côté droit était ajoutée correctement, ce qui me donnait le résultat souhaité "toutes les 101 cases de la FFT contiennent une sinusoïde à 1Hz"

>> z(2)

ans =

  100.5943

Une question similaire a été posée ici: dsp.stackexchange.com/questions/3466/…
pichenettes

Mais il s'agit spécifiquement de la symétrie (je crois que cela s'appelle symétrie hermétienne?) Du signal.
Bobobobo

Pour un signal réel pur F (k) = conj (F (Nk)), c'est pourquoi la transformée de Fourier d'un signal réel pur est symétrique.
WebMonster

Demandez-vous quel résultat vous attendriez si votre signal était 1 + cos (2 * pi t) ... Et 1 + i cos (2 * pi t) ... Et 1 + i péché (2 * pi * t) ...
pichenettes

2
Parce qu'une transformation de Fourier divise un signal en exponentielles complexes, une onde sinusoïdale est la somme de 2 exponentielles complexes. dsp.stackexchange.com/a/449/29
endolith

Réponses:


39

Les signaux réels sont "reflétés" dans les moitiés réelle et négative de la transformation de Fourier en raison de la nature de la transformation de Fourier. La transformée de Fourier est définie comme suit:

H(f)=h(t)ej2πftdt

Fondamentalement, il corrèle le signal avec un groupe de sinusoïdes complexes, chacune avec sa propre fréquence. Alors, à quoi ressemblent ces sinusoïdes complexes? L'image ci-dessous illustre une sinusoïde complexe.

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

Le "tire-bouchon" est la sinusoïde complexe en rotation dans le temps, alors que les deux sinusoïdes qui la suivent sont les composants réels et imaginaires extraits de la sinusoïde complexe. Le lecteur avisé remarquera que les composants réels et imaginaires sont exactement les mêmes, mais qu’ils sont déphasés les uns par rapport aux autres de 90 degrés ( ) Comme ils sont déphasés de 90 degrés, ils sont orthogonaux et peuvent "capter" n'importe quelle composante du signal à cette fréquence.π2

La relation entre l'exponentielle et le cosinus / sinus est donnée par la formule d'Euler:

ejx=cos(x)+jsin(x)

Cela nous permet de modifier la transformée de Fourier comme suit:

H(f)=h(t)ej2πftdt=h(t)(cos(2πft)jsin(2πft))dt

Aux fréquences négatives de la transformée de Fourier devient le suivantes-

H(f)=h(t)(cos(2π(f)t)jsin(2π(f)t))dt=h(t)(cos(2πft)+jsin(2πft))dt

La comparaison de la version à fréquence négative avec la version à fréquence positive montre que le cosinus est identique alors que le sinus est inversé. Ils sont toujours déphasés de 90 degrés les uns par rapport aux autres, ce qui leur permet d’attraper toute composante du signal à cette fréquence (négative).

Comme les sinusoïdes de fréquence positive et négative sont déphasées de 90 degrés et ont la même amplitude, elles répondent toutes deux aux signaux réels de la même manière. Ou plutôt, l' ampleur de leur réponse sera la même, mais la phase de corrélation sera différente.

EDIT: Plus précisément, la corrélation de fréquence négative est le conjugué de la corrélation de fréquence positive (due à la composante sinusoïdale imaginaire inversée) pour les signaux réels. En termes mathématiques, c'est, comme l'a souligné Dilip, le suivant:

H(f)=[H(f)]

Une autre façon de penser:

Les composants imaginaires ne sont que ça..Imaginaire! C’est un outil qui permet d’utiliser un avion supplémentaire pour visualiser les choses et rend possible le traitement du signal numérique (et analogique), sinon beaucoup plus facilement que l’utilisation d’équations différentielles!

5i


Bonne réponse - un léger nitpick cependant, je ne suis pas à bord avec "Parce qu'ils sont identiques, tout ce avec quoi on est en corrélation, l'autre le sera aussi avec exactement la même ampleur et un déphasage de 90 degrés.". Je sais ce que vous essayez de dire, cependant (comme vous le savez), un sinus est corrélé à un sinus (score 1), mais ne correspond pas du tout à un cosinus (score 0). Ils sont le même signal, mais avec des phases différentes après tout.
Spacey

Tu as raison. Il y a un autre problème plus grave aussi. Je vais le réparer plus tard.
Jim Clay

Ce serait bien si vous pouviez modifier votre réponse pour qu'elle soit plus sensible à la question qui concerne les TFD (bien que le titre soit FFT dans le titre) plutôt que de donner la théorie générale des transformations de Fourier.
Dilip Sarwate

@DilipSarwate Mon but est d'aider le questionneur à comprendre, et je pense que mon approche est la meilleure pour cela. J'ai cependant voté contre votre réponse pour avoir fait le calcul discret.
Jim Clay

H(-F)=[H(F)]*|H(-F)|=|H(F)|X(t)est un signal réel et qu’il s’agit de la "mise en miroir" à propos de laquelle le PO se demandait En d'autres termes, je vous demande de modifier votre réponse pour qu'elle réponde mieux à la question posée (comme je l'avais demandé dans mon précédent commentaire).
Dilip Sarwate

20

N101NN2k4k afin d'accélérer le calcul DFT via la FFT.

x=(x[0],x[1],x[2],,x[N1])NX=(X[0],X[1],X[2],,X[N1])

X[m]=n=0N1x[n](exp(j2πmN))n,m=0,1,,N1
j=1XxxX[0]=n=0N1x[n]Nexp(jπ)=1
X[N2]=n=0N1x[n](exp(j2πN/2N))n=n=0N1x[n](1)n
NXx m1mN1
X[m]=n=0N1x[n](exp(j2πmN))nX[Nm]=n=0N1x[n](exp(j2πNmN))n=n=0N1x[n](exp(j2π+j2πmN))n=n=0N1x[n](exp(j2πmN))n=(X[m])
1mN1X[Nm]=(X[m])m=N/2NX[N/2]=(X[N/2])X[N/2]

m(Nm)

1


x11

x[n]=1+sin(2π(0.01n)), 0n100
x[0]=x[100]=1101
X[m]=n=0100(1+sin(2π(n100)))(exp(j2πm101))n
100101X[m]2m99t100t=0,0.01,0.02,,0.99
x[n]=1+sin(2π(0.01n)), 0n99.
X[m]=n=099(1+sin(2π(n100)))(exp(j2πm100))n,
X=(100,50j,0,0,,0,50j)0n99
x[n]=1100m=099X[m](exp(j2πn100))m=1100[10050jexp(j2πn100)1+50j(exp(j2πn100))99]=1+12j[exp(j2πn100)exp(j2πn100)]=1+sin(2π(0.01n))

Alors, est-il possible de dire à partir de la FFT si un signal est périodique ou non ?
Nom du

@displayname C'est une question distincte qui devrait être posée à part entière (et qui a peut-être déjà été posée et à laquelle on a déjà répondu).
Dilip Sarwate

Lorsque je soulève soigneusement les groupes symétriques conjugués [en y écrivant un 0 + 0i] et que je reconstruis le signal dans le domaine temporel en utilisant ifft, la magnitude du signal dans le domaine temporel reconstruit a été divisée par deux. Est-ce naturel ou s'agit-il d'un problème d'outillage? Je m'occupe de la normalisation de la sortie FFT et de son inversion après iFFT.
Raj

14

Notez qu'un résultat FFT est reflété (comme dans symétrique conjuguée) uniquement si les données d'entrée sont réelles.

Pour des données d’entrée strictement réelles, les deux images miroir conjuguées du résultat de la FFT annulent les parties imaginaires de toute sinusoïde complexe et donnent ainsi une sinusoïde strictement réelle (à l’exception du minuscule bruit d’arrondi numérique), vous laissant ainsi une représentation de vraies ondes sinusoïdales.

Si le résultat de la FFT n'était pas conjugué en miroir, il représenterait une forme d'onde comportant des valeurs complexes (composants imaginaires non nuls), et non quelque chose de strictement réel.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.