Frage

kennt jemand eine Implementierung der inversen FFT in HLSL/GLSL/cg ...?

Es würde erspart mir viel Arbeit.

Best, heinrich

War es hilfreich?

Lösung

DirectX11 kommt mit einem FFT Beispiel für Compute Shaders (siehe DX11 August SDK Veröffentlichung Hinweise ). Wie PereAllenWebb weist darauf hin, kann dies auch für die inverse FFT verwendet werden.

Edit: Wenn Sie nur eine schnelle FFT wollen, könnten Sie die CUFFT versuchen, die auf der GPU ausgeführt wird. Es ist ein Teil des CUDA SDK. Die AmCl von AMD hat auch eine FFT, die derzeit nicht GPU beschleunigt, aber dies wahrscheinlich bald hinzugefügt werden.

Andere Tipps

Haben Sie bereits eine FFT-Implementierung? Sie haben vielleicht schon bewusst sein, aber die Umkehrung kann durch Umkehrung der Reihenfolge der N Eingänge, wobei die FFT über diejenigen, und Dividieren des Ergebnisses durch N berechnet werden.

Implementiert habe ich eine 1D-FFT auf 7800GTX hardware back in 2005.Dies war vor CUDA usw also ich hatte zu greifen, um mit Cg und manuell Umsetzung der FFT.

Ich habe zwei FFT-Implementierungen.Eines ist ein Radix2 Decimation in Time FFT und der andere ein Stockham Autosort FFT.Die stockham führen würde etwa 2-4x schneller als eine CPU (zur Zeit 3-GHz-P4 single-core) für größere Größen (> 8192), aber für die kleineren Größen wurde die CPU schneller, da Sie nicht haben, zu verschieben, Daten in/aus der GPU.

Wenn Sie interessiert sind in der shader-code, fühlen sich frei, mich zu Kontaktieren und ich werde senden Sie es per E-Mail.Es wurde aus einem persönlichen Projekt, damit nicht abgedeckt durch jede kommerzielle Urheberrecht.Ich könnte mir vorstellen, dass CUDA (und ähnliche) - Implementierungen würden Massiv übertreffen meine Umsetzung jedoch von einem learning-Perspektive, können Sie nicht besser als zu schreiben oder studieren Sie den code selbst!

Vielleicht könnten Sie einen Blick auf OpenCL nehmen, die auf Grafiken (und andere) Hardware ein Standard für allgemeine Rechen ist.
Wikipedia-Artikel enthält ein OpenCL Beispiel für einen Standard-FFT:
http://en.wikipedia.org/wiki/OpenCL#Example

Wenn Sie auf einem Mac mit OS X 10.6 sind, Sie müssen nur die Entwickler-Tools installieren, mit OpenCL Entwicklung zu beginnen. Ich habe auch gehört, dass Hardware-Anbieter bereits grundlegende OpenCL-Treiber-Unterstützung unter Windows zur Verfügung stellen.

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