Frage

Ich habe einige einfache Audioverarbeitungsalgorithmen in Matlab geschrieben, die ich für eine Android-Anwendung verwenden werde. Ich habe Probleme, die FFT-Implementierung in Java zu übersetzen.

Ich versuche die Java-Version von fftpack , das angeblich effizient ist, aber ist Auch ein bisschen kryptisch für mich, vielleicht, weil mein Mangel an einem festen FFT im Allgemeinen auf FFT erfolgt.

Ich habe einfach ein doppelte Array, von dem ich ein entsprechendes Array von komplexen Zahlen erstellen möchte, die die FFT darstellt. Die einzige Berechnung, die ich an der FFT tue, ist der absolute Wert seiner Elemente.

wegen der Klarheit sake ist hier der wesentliche Matlab-Code, den ich mit Java FFTPack replizieren möchte:

generasacodicetagpre.

Ich erwarte, dass dies ziemlich einfach ist, aber ich kann keine Einstiegspunkte in FFTPack identifizieren.


Gelöst:

Die untenstehende Antwort von Lutzl arbeitet, aber das Erstellen eines komplexen1d-Objekts ist eigentlich nicht erforderlich, da FFTPACK ein doppeltes Array als Eingabe unterstützt:

generasacodicetagpre.

War es hilfreich?

Lösung

Lesen von SourceForge JFFTPACK-Repository

Sie initialisieren ein neues FFT-Objekt über

generasacodicetagpre.

Verwenden Sie dann die Vorwärtstransformation des FFT-Objekts mit

generasacodicetagpre.

und kann dann auf die absoluten Werte wie

zugreifen generasacodicetagpre.

teilen optional durch N, um die FFT zu normalisieren.

Geeignete variable Erklärungen hinzufügen.


Die üblichen Übereinkommen gelten, wenn das Signal mit Abtastfrequenz FS abgetastet wird, wobei der Eintrag X (XY) [k] die Frequenzkomponente bei k * fs / n für k= n / 2 bis n-1 darstellt. < / p>


Möglicherweise möchten Sie nach einer anderen, besser unterstützten FFT-Implementierung suchen, die in reiner Java durchgeführt wird. Es ist nicht so kompliziert, dass die FFT für dyadische Längen umgesetzt wird. Die einzige Komplikation ist bei der Implementierung der Umwandlung an Ort und Stelle, um den letzten Beschleunigungsfaktor zu erhalten.

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