Warum zeigt mein KISS-FFT-Diagramm doppelte Peaks, die auf der Y-Achse gespiegelt sind?

StackOverflow https://stackoverflow.com/questions/8887896

  •  29-10-2019
  •  | 
  •  

Frage

Ich bin ein Anfänger mit FFT-Konzepten und verstehe daher, dass ich, wenn ich 1024 Signale eingebe, 513 Bins im Bereich von 0 Hz bis 22050 Hz zurückbekomme (bei einer Abtastrate von 44100 Hz).Unter Verwendung von KISS FFT in Cinder gibt die Funktion getBinSize die erwarteten 513 Werte für eine Eingabe von 1024 Signalen zurück.Was ich nicht verstehe, ist, warum doppelte Peaks angezeigt werden.Wenn ich ein Test-Audiobeispiel laufen lasse, das Frequenzen (in der Reihenfolge) von 20 Hz bis 22.000 Hz durchläuft, sehe ich die ganze Zeit über zwei Spitzen.Es sieht ungefähr so ​​aus:

_____|________|_____

Während der Ton abgespielt wird, scheinen sich die Spitzen aufeinander zu zu bewegen, sodass die zweite Spitze tatsächlich ein gespiegeltes Duplikat der ersten zu sein scheint.Jedes Beispiel, das ich durchgesehen habe, scheint einfach alle 513 Werte grafisch darzustellen, und es scheint dieses Spiegelungsproblem nicht zu geben.Ich bin mir nicht sicher, was mir fehlt.

War es hilfreich?

Lösung

Ok, nachdem ich das gelesen habe, habe ich die Lösung gefunden.Der Grund für die Spiegelung liegt darin, dass ich eine FFT für reelle Zahlen verwende (echte FFT).Wie jeder weiß, funktioniert die normale FFT mit komplexen Zahlen.Daher wird der Imaginärteil in der realen FFT auf 0 „gesetzt“, was zu einer Spiegelung um die Mitte führt (oder technisch gesehen beträgt die Spiegelung etwa 0 und N/2).

Hier eine ausführliche Diskussion: http://www.edaboard.com/thread144315.html

Und lesen Sie die Seiten 238 - 242 dieses Buches.Es ist fantastisch, also kaufen Sie es.Ich glaube, es gibt eine kostenlose PDF-Version auf der Website des Autors: http://www.dspguide.com/

Andere Tipps

Sie zeichnen möglicherweise die Größe aller 1024 FFT-Ergebnisbereiche einer FFT mit 1024 Längen auf, aber die obere Hälfte ist nur ein Spiegelbild der unteren Hälfte (da eine reine reale Eingabe in eine komplexe FFT nicht genügend Freiheitsgrade bietet die obere Hälfte einzigartig machen).

Die Spitzen bewegen sich aufeinander zu, wenn sie um die Mitte herum spiegelbildlich zueinander sind.

Eine andere Möglichkeit wäre, dass Ihre FFT irgendwie nur die Länge 512 hatte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top