71 votes

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 de l'analyse spectrale d'un signal, ou de l'introduction du signal dans une FFT et de l'interprétation des résultats à l'aide d'un logiciel numérique approprié,

Plus précisément :

  • prendre un signal, par exemple une tension variable dans le temps v(t)
  • le lancer dans une FFT (vous obtenez en retour 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 des y - dois-je les appeler des coefficients spectraux ?

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

D'après ce que j'ai compris, ce spectre de fréquences indique la proportion des différentes fréquences présentes dans le signal de tension. Il s'agit de coefficients spectraux dans le sens où ce sont les coefficients des sinus et des 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 est important est que les coefficients spectraux peuvent être minuscules et énormes, et je veux donc utiliser une échelle en 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 bien j'utilise la conversion 10log10 dB, correspondant à une mesure d'énergie, comme la puissance.

L'échelle que j'utilise dépend des unités.

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

3 votes

Notez que pour une transformée de Fourier (pas une fft) en termes de f, les unités sont [V.s] (si le signal est en volts et le temps en secondes). C'est parce que lorsque nous intégrons, le résultat a les unités de l'axe des y multipliées par les unités de l'axe des x (pour trouver l'aire sous une courbe). De plus, l'intégrale du carré d'un signal est la même dans le domaine temporel et dans le domaine fréquentiel (théorème de Parseval). Les unités à gauche sont [V^2.s], et à droite [X^2.(1/s)] (f est en Hz), donc X = [V.s]. Voir aussi physics.stackexchange.com/questions/15073/

0 votes

@EvgeniSergeev - merci, c'est une bonne explication de la transformation de Fourier, qui renvoie aux mathématiques sous-jacentes (+1).

0 votes

Je vote pour classer cette question comme hors sujet car elle appartient à Physique

85voto

Pete Kirkham Points 32484

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

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

on le jette dans une FFT -- ok, on récupère une séquence de nombres complexes

Les unités sont toujours V les valeurs sont complexes ( pas V/Hz - la FFT, un signal DC devient un point au niveau DC, et non une fonction delta de Dirac zoomant à l'infini ;)

maintenant prenez le module (abs)

Les unités sont toujours V les valeurs sont réelles - magnitude des composantes du signal

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

Les unités sont maintenant V 2 les valeurs sont réelles - carré de la magnitude 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 une puissance, mais si votre puits dépend de la fréquence, ce sera "le carré de la magnitude de la FFT de la tension d'entrée".

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

Les unités sont V 2

L'autre raison pour laquelle les unités sont importantes est que les coefficients spectraux peuvent être minuscules et énormes, et que je veux donc utiliser une échelle en dB pour les représenter. Mais pour cela, je dois faire un choix : est-ce que j'utilise 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à élevé au carré les valeurs de tension, ce qui donne une puissance équivalente dans une résistance parfaite de 1 Ohm, utilisez donc 10log10.

log(x 2 ) es 2 log(x) donc 20log10 |fft(v)| = 10log10 ( |fft(v)|) 2 ) Si vous n'avez pas élevé les valeurs au carré, vous pouvez également utiliser 20log10.

0 votes

Pete, merci ! Je modifiais la dérivation au moment où vous tapiez votre réponse. J'obtiens Energie/Hz (voir la dérivation ci-dessous).

4 votes

Oui. C'est pourquoi j'ai dit "pas V/Hz - la FFT d'un signal DC devient un point au niveau DC, pas une fonction delta de Dirac zoomant à l'infini". La FFT calcule la somme de son entrée échantillonnée à des points de temps discrets multipliée par des valeurs sans dimension ; les unités du résultat de la FFT sont celles de son entrée ; il n'y a pas de mise à l'échelle par le temps ou la fréquence dans le processus.

0 votes

@Pete -- aaah ! Isee. Merci. Donc, le terme "coefficients spectraux" serait-il correctement appliqué à la séquence complexe de nombres provenant de fft(v) ?

7voto

Laurence Gonsalves Points 50783

L'axe des y est complexe (par opposition à réel). La magnitude est l'amplitude du signal original dans n'importe quelle unité de vos échantillons originaux. L'angle est la phase de cette composante de fréquence.

1 votes

Merci Laurence ; permettez-moi de clarifier : (A) J'obtiens des valeurs réelles sur l'axe des y. Donc, puisqu'une vraie transformée de Fourier donne des valeurs complexes, l'une des choses suivantes peut se produire dans le paquet : (i) il prend les valeurs réelles de la transformée, ou (ii) il prend l'amplitude de la transformée, ou (iii) ? (B) Les échantillons originaux sont en Volts

2 votes

@AKE, la partie réelle de la valeur complexe ne vous dit pas grand-chose par elle-même - elle est presque sans valeur. Vous voulez probablement la magnitude, qui est sqrt(r^2 + i^2) ou le carré de la magnitude, ce qui est plus facile à calculer, en laissant de côté la variable sqrt .

0 votes

Quelles sont les unités des parties réelles et imaginaires ? Quelles sont les unités de la phase (c'est-à-dire les unités de l'axe des x) ?

3voto

Assad Ebrahim Points 1295

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

L'axe des ordonnées semble être en unités de [énergie / Hz] ! ?

Voici comment j'en déduis ceci (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. en prenant la magnitude au carré, on obtient 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 donne [puissance * s / Hz].

  5. mais la puissance est le taux de variation de l'énergie en fonction du temps, c'est-à-dire puissance = énergie/s, donc on peut aussi écrire Énergie = puissance * s

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

... ce qui suggère la signification "Contenu énergétique par Hz", et suggère comme utilisation d'intégrer des bandes de fréquences et de voir le contenu énergétique... ce qui serait très bien si c'était vrai...

En continuant... en supposant que ce qui précède est correct, alors nous avons affaire à une mesure d'énergie, ce qui suggère d'utiliser une conversion 10log10 pour obtenir l'échelle dB, au lieu de 20log10...

...

0 votes

Tout semble bon, sauf que ce n'est pas de l'énergie/puissance, en soi. À moins que vous n'ayez une résistance spécifique en tête, vous ne devriez pas mentir et dire simplement que c'est des Volts^2.

0 votes

J'ai à l'esprit une résistance idéale de 50 ohms (l'impédance du dispositif de transmission étant adaptée à celle du projecteur). P ~ V^2 / R avec R pris comme la charge constante de 50 ohms.

1 votes

@AssadEbrahim C'était une ancienne réponse, donc je ne suis pas sûr que vous soyez toujours là, mais ça a l'air bien ! De plus, je crois que l'énergie est de l'ordre de \Sum_ {k=0}^{N-1}x[n]^2$ alors que la puissance est de $ \frac {1}{N} \Sum_ {k=0}^{N-1}x[n]^2$. Donc si nous normalisons la FFT par la longueur (qui est la durée en échantillons), nous obtenons une densité spectrale de puissance. Est-ce que cela a un sens pour vous ?

3voto

Roland Priemer Points 31

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

Par exemple, si x(t) est la température, et les unités de x(t) sont des degrés C alors les unités de la puissance x^2 de x(t) son C^2 et 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) son C*sec o C/Hz (selon l'intégrale de la transformée de Fourier). Si vous utilisez (abs(X(jw)))^2 alors les unités sont C^2*sec^2=C^2*sec/Hz . Comme les unités de puissance sont C^2 et les unités d'énergie sont C^2*sec entonces 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é 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 modifie pas les unités.

Si vous prenez la FFT des échantillons de x(t) qui s'écrit comme suit x(n) pour obtenir X(k) alors le résultat X(k) est une estimation des 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 son 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 (pas 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 .

2voto

Kip Ingram Points 21

Eh bien, réponse tardive je sais. Mais je viens d'avoir l'occasion de faire quelque chose comme ça, dans un contexte différent. Mes données brutes étaient des valeurs de latence pour des transactions contre une unité de stockage - je les ai rééchantillonnées à un intervalle de temps de 1ms. Donc la donnée originale y était "latence, en microsecondes". J'avais 2^18 = 262144 points de données originaux, sur des pas de temps de 1ms.

Après avoir fait la FFT, j'ai obtenu une composante 0 (DC) telle que la suivante s'applique :

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

Il me semble donc que la FFT[0] est N*(moyenne des données d'entrée). C'est assez logique - chaque point de données possède cette moyenne DC en tant que partie de ce qu'il est, donc vous les additionnez tous.

Si vous regardez la définition de la FFT, cela a également du sens. Toutes les autres composantes impliquent également des termes sinus et cosinus, mais la FFT n'est qu'une somme. La moyenne est simplement la seule qui se trouve être présente dans tous les points de manière égale, car vous avez cos(0) = 1.

0 votes

Pour compléter cette idée, les UNITÉS doivent être les mêmes, car les composantes de la FFT ne sont qu'une somme des composantes d'entrée multipliées par des termes sinus et cosinus sans dimension.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X