Frage

Wo finde ich eine freie, sehr schnell, und zuverlässige Umsetzung der FFT in C #?

Das kann in einem Produkt verwendet werden? Oder gibt es irgendwelche Einschränkungen?

War es hilfreich?

Lösung

AForge.net ist eine freie (Open-Source) Bibliothek mit Fast-Fourier-Transformation-Unterstützung . (Siehe Quellen / Imaging / ComplexImage.cs für die Nutzung, Quellen / Math / FourierTransform.cs für Implemenation)

Andere Tipps

Der Typ, AForge tat tat einen ziemlich guten Job, aber es ist nicht kommerzielle Qualität. Es ist toll, von zu lernen, aber man kann sagen, er lernte auch, damit er ein paar ziemlich schwere Fehler wie vorausgesetzt, die Größe eines Bildes hat anstatt die richtigen Bits pro Pixel.

Ich bin nicht der Typ klopfen, respektiere ich das Heck aus ihm für alles, was das Lernen und zeigen uns, wie es zu tun. Ich glaube, er ist ein Ph.D jetzt oder zumindest ist er etwa zu sein, so ist er wirklich klug es ist einfach nicht eine kommerziell nutzbare Bibliothek.

Die Math.Net Bibliothek hat seine eigene Verrücktheit, wenn sie mit Fourier-Transformationen und komplexen Bildern / Zahlen arbeiten. Wie, wenn ich mich nicht irre, gibt sie die Fourier in den Menschen sichtbaren Format umwandeln, die für den Menschen ist schön, wenn man sich ein Bild von der Transformation aussehen wollen, aber es ist nicht so gut, wenn man die Daten erwarten in einem sicher zu sein, Format (das normale Format). Ich könnte darüber irren, aber ich erinnere mich nur, dass eine Seltsamkeit war so ich tatsächlich auf den ursprünglichen Code ging sie für das Fourier-Material verwendet und es funktionierte viel besser. (ExocortexDSP v1.2 http://www.exocortex.org/dsp/ )

Math.net hatte auch einige andere Funkyness Ich mag nicht, wenn sie mit den Daten aus der FFT zu tun, kann ich mich nicht erinnern, was es war, ich weiß es einfach war viel einfacher zu bekommen, was ich aus dem ExoCortex DSP wollte Bibliothek. Ich bin kein Mathematiker oder Ingenieur obwohl; zu diesen Typen kann es durchaus Sinn machen.

So! Ich verwende den FFT-Code aus ExoCortex gezerrt, die Math.Net auf basiert, ohne etwas anderes und es funktioniert super.

Und schließlich, ich weiß, es ist nicht C #, aber ich habe angefangen Blick auf FFTW mit ( http: // www .fftw.org / ). Und dieser Kerl bereits einen C # Wrapper so war ich dabei, es zu überprüfen, aber nicht tatsächlich noch verwendet. ( http://www.sdss.jhu.edu/~tamas/bytes /fftwcsharp.html )

OH! Ich weiß nicht, ob Sie dies für die Schule oder Arbeit tun, aber so oder so gibt es eine große kostenlose Vortragsreihe von einem Professor der Stanford gegeben auf iTunes University.

https://podcasts.apple .com / us / Podcast / the-Fourier-Transformationen-und-seine-Anwendungen / id384232849

Iridium Bibliothek eine schnelle, regelmäßig aktualisierte Sammlung von Mathe-bezogene Funktionen, einschließlich der FFT . Es ist unter der LGPL lizenziert, so dass Sie frei zu verwenden, um es in kommerziellen Produkten sind.

Das sehe ich ein alter Thread, aber für das, was es wert ist, ich habe eine freie (MIT-Lizenz) 1-D Power-of-2-Länge-nur hier # FFT Implementierung C:    http://gerrybeauregard.wordpress.com/2011/04/ 01 / ein-fft-in-c /

Ich habe seine Leistung zu anderen C # FFT-Implementierungen nicht verglichen. Ich schrieb es in erster Linie um die Leistung von Flash / Actionscript und Silverlight / C # zu vergleichen. Letzteres ist viel schneller, zumindest für Zahlenverarbeitung.

http://www.exocortex.org/dsp/ ist eine Open-Source C # Mathematik Bibliothek mit FFT-Algorithmen.

Hier ist eine andere; ein C # Port der Ooura FFT. Es ist ziemlich schnell. Das Paket enthält auch Überlappung / hinzufügen Faltung und einige andere DSP Sachen, unter der MIT-Lizenz.

https://github.com/hughpyle/inguz-DSPUtil /blob/master/Fourier.cs

Die Numerical Recipes Website (http://www.nr.com/) eine FFT, wenn Sie nichts dagegen haben, es in der Eingabe. Ich an einem Projekt arbeite ein Labview Programm C # 2008 konvertieren, .NET 3.5 zu Daten erfassen und dann Blick auf das Frequenzspektrum. Leider nutzt die Math.Net die neueste .NET-Framework, so kann ich nicht, dass der FFT verwenden. Ich versuchte, die Exocortex ein - es funktionierte, aber die Ergebnisse der Labview Ergebnisse zu passen und ich weiß nicht genug FFT Theorie zu wissen, was das Problem verursacht. Also versuchte ich die FFT auf der numerischen Rezepten Website und es funktionierte! Ich war auch in der Lage, die Labview niedrigen Nebenkeulen-Fenster zu programmieren (und hatte einen Skalierungsfaktor einzuführen).

Sie können das Kapitel der Numerical Recipes Buch als Gast auf thier Seite gelesen, aber das Buch ist so nützlich, dass ich es sehr empfehlen den Kauf. Selbst wenn Sie die Math.NET FFT tun enden.

Eine alte Frage, aber es zeigt immer noch in Google Suchergebnissen nach oben ...

Ein sehr un-restriktive MIT lizenzierte C # / .NET-Bibliothek kann, gefunden wird

https: // www .codeproject.com / articles / 1107480 / DSPLIB-fft-dft-Fourier-Transform-Bibliothek-for-net

Diese Bibliothek ist schnell, wie es parallele Threads auf mehreren Kernen und ist sehr komplett und einsatzbereit.

Für eine Multi-Threaded-Implementierung abgestimmt für Intel-Prozessoren würde ich überprüfen Intel MKL Bibliothek. Es ist nicht kostenlos, aber es ist afforable (weniger als $ 100) und extrem schnelle - aber sie bräuchten es ist C DLL über P / Invokes zu nennen. Das Exocortex Projekt gestoppt Entwicklung vor 6 Jahren, so würde ich vorsichtig sein, es zu verwenden, wenn dies ein wichtiges Projekt ist.

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