web-dev-qa-db-fra.com

Unités d'une transformée de Fourier (FFT) lors de l'analyse spectrale d'un signal

Ma question porte sur la signification physique des résultats d'une analyse spectrale d'un signal, ou de la projection du signal dans une FFT et de l'interprétation de ce qui sort en utilisant un package numérique approprié,

Plus précisément:

  • prendre un signal, disons une tension variable dans le temps v (t)
  • jetez-le dans une FFT (vous récupérez une séquence de nombres complexes)
  • prenez maintenant le module (abs) et mettez le résultat au carré, c'est-à-dire | fft (v) | ^ 2.

Vous avez donc maintenant des nombres réels sur l'axe y - dois-je appeler ces coefficients spectraux?

  • en utilisant la résolution d'échantillonnage, vous suivez une recette de livre de cuisine et associez les coefficients spectraux aux fréquences.
  • À CE POINT, vous avez un spectre de fréquences g(w) avec une fréquence sur l'axe x, mais QUELLES UNITÉS PHYSIQUES sur l'axe y?

Ma compréhension est que ce spectre de fréquences montre la proportion des différentes fréquences présentes dans le signal de tension - ce sont des coefficients spectraux dans le sens où ce sont les coefficients des sinus et cosinus des différentes fréquences nécessaires pour reconstituer le signal d'origine.

Donc la première question est, quelles sont les UNITÉS de ces coefficients spectraux?

La raison pour laquelle cela importe est que les coefficients spectraux peuvent être minuscules et énormes, donc je veux utiliser une échelle dB pour les représenter.

Mais pour cela, je dois faire un choix:

  • Soit j'utilise la conversion 20log10 dB, correspondant à une mesure de champ, comme la tension.
  • Ou j'utilise la conversion 10log10 dB, correspondant à une mesure d'énergie, comme la puissance.

La mise à l'échelle que j'utilise dépend de ce que sont les unités.

Toute lumière apportée à ce sujet serait grandement appréciée!

58
Assad Ebrahim

prendre un signal, une tension variable dans le temps v (t)

les unités sont V , les valeurs sont réelles.

jetez-le dans une FFT - ok, vous récupérez une séquence de nombres complexes

les unités sont toujours V , les valeurs sont complexes (pas V/Hz - la FFT a DC = le signal devient un point au niveau DC niveau, pas une fonction delta dirac zoomant à l'infini)

prenez maintenant le module (abs)

les unités sont toujours V , les valeurs sont réelles - amplitude des composantes du signal

et mettre le résultat au carré, c'est-à-dire | fft (v) | ^ 2

les unités sont maintenant V2, les valeurs sont réelles - carré des amplitudes des composantes du signal

dois-je appeler ces coefficients spectraux?

C'est plus proche d'une densité de puissance que de l'utilisation habituelle du coefficient spectral. Si votre puits est une résistance parfaite, ce sera de la puissance, mais si votre puits dépend de la fréquence, c'est "le carré de la magnitude de la FFT de la tension d'entrée".

A CE POINT, vous avez un spectre de fréquence g (w): fréquence sur l'axe x, et ... QUELLES UNITÉS PHYSIQUES sur l'axe y?

Les unités sont V2

L'autre raison pour laquelle les unités sont importantes, c'est que les coefficients spectraux peuvent être minuscules et énormes, donc je veux utiliser une échelle dB pour les représenter. Mais pour cela, je dois faire un choix: dois-je utiliser la conversion 20log10 dB (correspondant à une mesure de champ, comme la tension)? Ou dois-je utiliser la conversion 10log10 dB (correspondant à une mesure d'énergie, comme la puissance)?

Vous avez déjà quadrillé les valeurs de tension, donnant une puissance équivalente dans une résistance parfaite de 1 Ohm, alors utilisez 10log10.

journal (x2) est 2 log (x), donc 20log10 | fft (v) 10log10 (| fft (v) |2)) ==, donc si vous n'avez pas mis les valeurs au carré, vous pouvez utiliser 20log10.

75
Pete Kirkham

L'axe des y est complexe (par opposition à réel). La magnitude est l'amplitude du signal d'origine dans toutes les unités dans lesquelles se trouvaient vos échantillons d'origine. L'angle est la phase de cette composante de fréquence.

7

Voici ce que j'ai pu trouver jusqu'à présent:

L'axe des y semble être probablement en unités de [Énergie/Hz]!?

Voici comment je dérive cela (les commentaires sont les bienvenus!):

  1. le signal v(t) est en volts

  2. donc après avoir pris l'intégrale de Fourier: intégrale e ^ iwt v(t) dt, nous devrions avoir des unités de [volts * secondes], ou [volts/Hz] (e ^ iwt est sans unité)

  3. prendre la grandeur au carré devrait alors donner des unités de [volts ^ 2 * s ^ 2], ou [v ^ 2 * s/Hz]

  4. nous savons que la puissance est proportionnelle aux volts ^ 2, ce qui nous amène à [puissance * s/Hz]

  5. mais la puissance est le taux de variation dans le temps de l'énergie, c'est-à-dire la puissance = énergie/s, nous pouvons donc également écrire Énergie = puissance * s

  6. cela nous laisse avec la conclusion candidate [Energy/Hz]. (Joules/Hz?!)

... qui suggère le sens "Contenu énergétique par Hz", et suggère comme utilisation l'intégration des bandes de fréquences et la visualisation du contenu énergétique ... ce qui serait très sympa si c'était vrai ...

Continuant ... en supposant que ce qui précède est correct, alors nous avons affaire à une mesure d'énergie, donc cela suggérerait d'utiliser la conversion 10log10 pour entrer dans l'échelle dB, au lieu de 20log10 ...

...

3
Assad Ebrahim

Eh bien, réponse tardive je sais. Mais j'avais juste raison de faire quelque chose comme ça, dans un contexte différent. Mes données brutes étaient des valeurs de latence pour les transactions par rapport à une unité de stockage - je les ai rééchantillonnées à un intervalle de temps de 1 ms. Les données d'origine y étaient donc "latence, en microsecondes". J'avais 2 ^ 18 = 262144 points de données d'origine, sur des pas de temps de 1 ms.

Après avoir fait la FFT, j'ai obtenu un 0ème composant (DC) tel que le suivant contenait:

FFT [0] = 262144 * (moyenne de toutes les données d'entrée).

Il me semble donc que FFT [0] est N * (moyenne des données d'entrée). Cela a du sens - chaque point de données possède cette DC moyenne dans le cadre de ce qu'il est, donc vous les ajoutez tous.

Si vous regardez la définition de la FFT, cela a également un sens. Tous les autres composants impliqueraient également des termes sinus et cosinus, mais en réalité, la FFT n'est qu'un résumé. La moyenne est juste la seule qui se trouve également présente en tous points, car vous avez cos (0) = 1.

2
Kip Ingram

La puissance dans une résistance est de v^2/R Watts. La puissance d'un signal x(t) est une abstraction de la puissance dans une résistance 1 Ohm. Par conséquent, la puissance d'un signal x(t) est x^2 (Également appelée puissance instantanée), quelles que soient les unités physiques de x(t).

Par exemple, si x(t) est la température et que les unités de x(t) sont des degrés C, alors les unités de puissance x^2 De x(t) sont C^2, certainement pas des watts.

Si vous prenez la transformée de Fourier de x(t) pour obtenir X(jw), alors les unités de X(jw) sont C*sec Ou C/Hz ( selon l'intégrale de transformée de Fourier). Si vous utilisez (abs(X(jw)))^2, Alors les unités sont C^2*sec^2=C^2*sec/Hz. Puisque les unités de puissance sont C^2 Et les unités d'énergie sont C^2*sec, Alors abs(X(jw)))^2 donne la densité spectrale d'énergie, disons E/Hz. Ceci est cohérent avec le théorème de Parseval, où l'énergie de x(t) est donnée par (1/2*pi) Fois l'intégrale de abs(X(jw)))^2 par rapport à w, c'est-à-dire, (1/2*pi)*int(abs(X(jw)))^2*dw) > (1/2*pi)*(C^2*sec^2)*2*pi*Hz > (1/2*pi)*(C^2*sec/Hz)*2*pi*Hz > E.

La conversion en échelle dB (échelle logarithmique) ne change pas les unités.

Si vous prenez la FFT d'échantillons de x(t), écrite comme x(n), pour obtenir X(k), alors le résultat X(k) est une estimation de les coefficients de la série de Fourier d'une fonction périodique, où une période sur T0 secondes est le segment de x(t) qui a été échantillonné. Si les unités de x(t) sont des degrés C, alors les unités de X(k) sont également des degrés C. Les unités de abs(X(k))^2 sont C^2, Qui sont les unités de puissance. Ainsi, un tracé de abs(X(k))^2 en fonction de la fréquence montre le spectre de puissance (et non la densité spectrale de puissance) de x(n), qui est une estimation de la puissance d'un ensemble de composantes de fréquence de x(t) aux fréquences k/T0 Hz.

2
Roland Priemer