2009-08-06 3 views
5

Angesichts der Geschwindigkeit als ein Problem, ist es vielleicht besser, eine andere Sprache zu wählen, aber was ist Ihre Bibliothek/Modul/Implementierung der Wahl für eine 1D schnelle Fourier-Transformation (FFT) in Python?Was ist das empfohlene Python-Modul für schnelle Fourier-Transformationen (FFT)?

+2

Python-Pakete, die FFTs ausführen, implementieren sie im Allgemeinen nicht in reinem Python, sondern in einer zugrunde liegenden kompilierten Sprache, so dass die Geschwindigkeit von Python nicht in der Geschwindigkeit der Transformation reflektiert wird. Das heißt, sie werden so schnell sein wie alles andere. – tom10

Antwort

3

Ich würde empfehlen, die FFTW Bibliothek ("die schnellste Fourier-Transformation im Westen") zu verwenden. Die FFTW download page besagt, dass Python-Wrapper existieren, aber die Verbindung ist unterbrochen. Eine Google-Suche ergab Python FFTW, die Python-Bindungen zu FFTW3 bietet.

8

Ich würde numpy Bibliothek empfehlen, ich bin mir nicht sicher, ob es die schnellste Implementierung ist, aber es ist sicherlich eines der besten wissenschaftlichen Modul auf dem "Markt".

5

FFTW wäre wahrscheinlich die schnellste Implementierung, wenn Sie eine Python-Bindung finden, die tatsächlich funktioniert.

Die einfachste Sache zu verwenden ist sicherlich scipy.fft, obwohl. Außerdem bekommst du die ganze Macht von numpy/scipy, um damit zu gehen.

Ich habe es nur für ein Spielzeugprojekt (eine grundlegende Musikvisualisierung) verwendet, aber es war schnell genug, Moor-Standard-Audio bei 44 kHz bei 60 fps zu verarbeiten, soweit ich mich erinnern kann.

Verwandte Themen