Comment calculez-vous la planéité spectrale d'une FFT?

17

Ok, la planéité spectrale (également appelée entropie de Wiener) est définie comme le rapport de la moyenne géométrique d'un spectre à sa moyenne arithmétique.

Wikipedia et d'autres références disent le spectre de puissance . N'est-ce pas le carré de la transformée de Fourier? La FFT produit un "spectre d'amplitude" et ensuite vous le quadrillez pour obtenir un "spectre de puissance"?

Fondamentalement, ce que je veux savoir, c'est, si spectrum = abs(fft(signal)), lequel est correct?

  • spectral_flatness = gmean(spectrum)/mean(spectrum)
  • spectral_flatness = gmean(spectrum^2)/mean(spectrum^2)

La définition de Wikipédia semble utiliser directement l'ampleur:

Flunetness=n=0N-1X(n)Nn=0N-1X(n)N=exp(1Nn=0N-1lnX(n))1Nn=0N-1X(n)
X(n)représente la magnitude dunombrendecasesn.

Les documents SciPy définissent le spectre de puissance comme:

Lorsque l'entrée a est un signal du domaine temporel et A = fft(a), np.abs(A)est son spectre d'amplitude et np.abs(A)**2son spectre de puissance.

Cette source s'accorde sur la définition du "spectre de puissance" et l'appelle SF(ω) :

Nous pouvons définir FT(ω) qui est la transformée de Fourier du signal dans la période T, et définir le spectre de puissance comme suit: SF(ω)=limT1TFT(ω)2.

Cette source définit l'entropie de Wiener en termes de S(F) .

Mais je ne vois pas la quadrature dans des équations comme celle-ci , qui semble être basée sur le spectre de magnitude :

SFlunetness=exp(1NkJournal(unek))1Nkunek

De même, une autre source définit la planéité spectrale en termes de spectre de puissance, mais utilise ensuite directement l'amplitude des cellules FFT, ce qui semblerait entrer en conflit avec la définition ci-dessus de "spectre de puissance".

Le "spectre de puissance" signifie-t-il différentes choses pour différentes personnes?

endolith
la source
selon Wikipedia: la planéité spectrale ak représente la magnitude du nombre de casiers k.
Hamed Gholami
Bonjour @endolith, avez-vous obtenu une réponse satisfaisante que vous êtes prêt à accepter?
jojek
@jojek Non, pas encore
endolith
1
@endolith, je crois que Peter vient de frapper le clou dans la tête;)
jojek
@jojek J'ai essayé de frapper le clou à travers la planche. 😂
Peter K.

Réponses:

4

La référence la plus fiable que je puisse trouver provient de Jayant & Noll, Digital Coding Of Waveforms , (c) Bell Telephone Laboratories, Incorporated 1984, publié par Prentice-Hall, Inc.

En page 57, ils définissent la planéité spectrale:

Planéité spectrale

et, précédemment, à la page 55, ils définissent :SXX

Définition du spectre de puissance

La version FFT au carré est donc celle que vous souhaitez.

Il ressemble à Makhoul & Wolf, Linear Prediction and the Spectral Analysis of Speech , Bolt, Beranek et Newman, Inc. Technical Report, 1972 est également disponible.

Et il a la même définition:

entrez la description de l'image ici

entrez la description de l'image ici

Peter K.
la source
7

Si la définition de la planéité dicte que vous utilisez un spectre de puissance, alors oui, vous devez quadriller les magnitudes comme l'indique la référence de la documentation SciPy. Dans l'équation que vous avez mentionnée où vous n'avez pas vu de quadrature, je ne pense pas que vous puissiez y lire beaucoup; ça dit que

SFlunetness=exp(1NkJournal(unek))1Nkunek

mais je ne vois aucune définition pour nulle part. Si vous voulez que le spectre soit proportionnel à la puissance dans chaque bac, vous devez mettre au carré.unek

Jason R
la source
Je suppose que cela est une question sur ce que la définition fait est , alors
endolith
selon une mesure de planéité spectrale segmentaire pour la discrimination harmonique-percussive représente le spectre d'amplitude du nombre de cases k. unek
Hamed Gholami
@HamedGholami Veuillez ne pas saisir à nouveau votre commentaire comme réponse. Votre commentaire ne fournit pas de réponse à la question, mais essaie d'être utile ici.
Peter K.
@PeterK. Je pense que les nouveaux utilisateurs ne peuvent pas poster de commentaires, mais peuvent poster des réponses.
endolith
1
@endolith Compris. Mais même après que jojek ait proposé sa première réponse pour être un commentaire sur la question, Hamed a republié le même commentaire comme réponse. C'est le comportement que je veux dissuader: republier à nouveau après que leur "réponse" a été déplacée.
Peter K.
4

Les définitions varient, n'est-ce pas? La première chose à régler est de savoir si nous convenons que la densité spectrale de puissance est équivalente au spectre de puissance , ou bien définissons ce que nous entendons par les deux. Proakis et Salehi les utilisent comme synonymes . Pour continuer, je pense que les écarts sont dus à des définitions différentes, pour les signaux qui en ont une, du spectre de puissance. La définition habituelle de cela est la grandeur au carré des données transformées de Fourier. Le théorème de Wiener-Khinchin fournit une autre voie vers le spectre de puissance pour les signaux WSS via la transformée de Fourier de l'autocorrélation. Selon que vous définissez ou non le spectre de puissance avec un carré, vous obtenez un carré dans la planéité spectrale.

D'autres utilisent l'amplitude de la transformée de Fourier . Certains appellent cela le "spectre de puissance", et réservent le nom de " densité de spectre de puissance " pour la dérivée du "spectre de puissance" tandis que d'autres réservent le terme "spectre de puissance" pour l'intégrale de la transformée de Fourier de l'autocorrélation (ce que d'autres appellent le spectre de puissance). Comme vous pouvez le voir, les définitions abondent; n'hésitez pas à inventer votre propre :) Ou respectez la norme Wiener-Khinchin.

Question connexe : Différence entre la densité spectrale de puissance, la puissance spectrale et les rapports de puissance?

Emre
la source
Cela dit aussi "spectre de puissance".
endolith
1
ಠ_ಠ
endolith
0

C'est une bonne question, une que je me posais également. La planéité spectrale (également connue sous le nom d'entropie de Weiner) est simplement une mesure du «pic» d'un vecteur.

Cette source semble indiquer que le vecteur considéré est la densité spectrale de puissance, auquel cas il faut quadriller. Si vous ajustez le spectre de magnitude, vous accentuez les pics par rapport au cas où vous ne cadrez pas évidemment, et je pense que cela a également un sens plus intuitif.

Spacey
la source