Wie berechnet man die spektrale Ebenheit aus einer FFT?

17

Ok, die spektrale Ebenheit (auch Wiener Entropie genannt) ist definiert als das Verhältnis des geometrischen Mittels eines Spektrums zu seinem arithmetischen Mittel.

Wikipedia und andere Referenzen sagen das Leistungsspektrum . Ist das nicht das Quadrat der Fourier-Transformation? Die FFT erzeugt ein "Amplitudenspektrum" und Sie quadrieren das, um ein "Leistungsspektrum" zu erhalten?

Grundsätzlich möchte ich wissen, ob spectrum = abs(fft(signal)), welches davon richtig ist?

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

Die Wikipedia-Definition scheint die Größe direkt zu verwenden:

Flatness=n=0N1x(n)Nn=0N1x(n)N=exp(1Nn=0N1lnx(n))1Nn=0N1x(n)
wobei die Größe der Bin-Nummer .nx(n)n

In SciPy-Dokumenten wird das Leistungsspektrum wie folgt definiert:

Wenn der Eingang A ein Zeitbereichssignal ist , und A = fft(a), np.abs(A)ist sein Amplitudenspektrum und np.abs(A)**2ist sein Leistungsspektrum.

Diese Quelle stimmt mit der Definition von "Leistungsspektrum" überein und nennt es :Sf(ω)

Wir können die die Fourier-Transformation des Signals in Periode T ist, und das Leistungsspektrum wie folgt definieren: FT(ω)Sf(ω)=limT1TFT(ω)2.

Diese Quelle definiert die Wiener Entropie im Sinne von .S(f)

Aber ich sehe die Quadratur in Gleichungen wie diesen nicht , die auf dem Magnitudenspektrum zu beruhen scheinen :

Sfleintness=exp(1NkLog(eink))1Nkeink

Ebenso definiert eine andere Quelle die spektrale Ebenheit in Bezug auf das Leistungsspektrum, verwendet dann aber direkt die Größe der FFT-Bins, was mit der obigen Definition von "Leistungsspektrum" in Konflikt zu stehen scheint.

Bedeutet "Leistungsspektrum" für verschiedene Menschen verschiedene Dinge?

Endolith
quelle
laut Wikipedia: Die spektrale Ebenheit ak repräsentiert die Größe der Bin-Zahl k.
Hamed Gholami
Hallo @endolith, hast du eine zufriedenstellende Antwort bekommen, die du akzeptieren willst?
Jojek
@jojek Nein, noch nicht
Endolith
1
@ Endolith, ich glaube, dass Peter gerade den Nagel in den Kopf getroffen hat;)
Jojek
@jojek Ich habe versucht, den Nagel durch das Brett zu schlagen. 😂
Peter K.

Antworten:

4

Die maßgeblichste Referenz, die ich finden kann, stammt von Jayant & Noll, Digital Coding Of Waveforms , (c) Bell Telephone Laboratories, Incorporated 1984, herausgegeben von Prentice-Hall, Inc.

Auf Seite 57 definieren sie die spektrale Ebenheit:

Spektrale Ebenheit

und vorher definieren sie auf Seite 55 :Sxx

Definition von Leistungsspektrum

Die FFT-Quadrat-Version ist also die, die Sie wollen.

Es sieht so aus, als ob Makhoul & Wolf, Linear Prediction und die Spektralanalyse von Sprache , Bolt, Beranek und Newman, Inc. Technical Report, 1972 ebenfalls verfügbar sind.

Und es hat die gleiche Definition:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Peter K.
quelle
7

Wenn die Definition der Ebenheit vorschreibt, dass Sie ein Leistungsspektrum verwenden, sollten Sie die Beträge quadrieren, wie aus der Referenz in der SciPy-Dokumentation hervorgeht. In der Gleichung, auf die Sie verwiesen haben, wo Sie keine Quadratur gesehen haben, kann man nicht viel hineinlesen. es steht dass

Sfleintness=exp(1NkLog(eink))1Nkeink

eink

Jason R
quelle
Ich denke , das ist eine Frage , was die Definition tatsächlich ist , dann
Endolithe
eink
@HamedGholami Bitte geben Sie Ihren Kommentar nicht erneut als Antwort ein. Ihr Kommentar gibt keine Antwort auf die Frage, versucht aber hier hilfreich zu sein.
Peter K.
@PeterK. Ich denke, neue Benutzer können keine Kommentare posten, aber sie können Antworten posten.
Endolith
1
@ Endolith verstanden. Aber selbst nachdem Jojek seine erste Antwort als Kommentar zur Frage verschoben hatte, postete Hamed denselben Kommentar als Antwort neu. Das ist das Verhalten, von dem ich abraten möchte: erneutes Posten, nachdem ihre "Antwort" verschoben wurde.
Peter K.
4

Definitionen variieren, nicht wahr? Die erste Sache , die geklärt werden muss , ist , ob wir , dass die zustimmen spektrale Leistungsdichte an dem entspricht Leistungsspektrum oder auch definieren , was wir durch beide bedeuten. Proakis und Salehi verwenden sie synonym . Ich denke, dass die Abweichungen auf unterschiedliche Definitionen für Signale mit einem Leistungsspektrum zurückzuführen sind. Die übliche Definition hierfür ist das Quadrat der Größe der fouriertransformierten Daten. Das Wiener-Khinchin-Theorem liefert einen anderen Weg zum Leistungsspektrum für WSS-Signale durch die Fourier-Transformation der Autokorrelation. Je nachdem, ob Sie das Leistungsspektrum mit einem Quadrat definieren oder nicht, erhalten Sie ein Quadrat in der spektralen Ebenheit.

Andere verwenden die Größe der Fourier-Transformation . Manche nennen dies das „Leistungsspektrum“, und behalten den Namen „Leistungsspektrum Dichte “ für die Ableitung des „Leistungsspektrum“ , während andere den Begriff „Leistungsspektrum“ für behalten das Integral der Fourier - Transformation der Autokorrelations (was andere Anruf das Leistungsspektrum). Wie Sie sehen können, gibt es Definitionen im Überfluss; Fühlen Sie sich frei, Ihre eigenen zu erfinden :) Oder halten Sie sich an den Wiener-Khinchin-Standard.

Verwandte Frage : Unterschied zwischen spektraler Leistungsdichte, spektraler Leistung und Leistungsverhältnissen?

Emre
quelle
Das sagt auch "Leistungsspektrum".
Endolith
1
ಠ_ಠ
Endolith
0

Es ist eine gute Frage, eine, die ich mich auch gefragt habe. Die spektrale Ebenheit (auch als Weiner-Entropie bekannt) ist lediglich ein Maß für die "Peakiness" eines Vektors.

Diese Quelle scheint darauf hinzudeuten, dass der betrachtete Vektor die spektrale Leistungsdichte ist. In diesem Fall müssen Sie quadrieren. Wenn Sie das Betragsspektrum quadrieren, akzentuieren Sie Spitzen über dem Fall, in dem Sie nicht offensichtlich quadrieren, und ich denke, dass dies auch intuitiver sinnvoll ist.

Spacey
quelle