73 votes

Une implémentation de la transformée de Fourier rapide (FFT) en C#

Où puis-je trouver une implémentation gratuite, très rapide et fiable de la FFT en C# ?

Qui peuvent être utilisés dans un produit ? Ou y a-t-il des restrictions ?

5voto

pookleblinky Points 516

http://www.exocortex.org/dsp/ est une bibliothèque mathématique C# à code source ouvert contenant des algorithmes FFT.

1 votes

Limité à quelques tailles transformées.

5voto

Hugh Points 31

En voici un autre : un portage C# de la FFT de Ooura. Il est raisonnablement rapide. Le paquet inclut également la convolution overlap/add et quelques autres trucs DSP, sous la licence MIT.

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

4voto

Steve Hageman Points 71

Une vieille question mais qui apparaît toujours dans les résultats de Google...

Une bibliothèque C# / .NET sous licence MIT très peu restrictive peut être trouvée à l'adresse suivante,

https://www.codeproject.com/articles/1107480/dsplib-fft-dft-fourier-transform-library-for-net

Cette bibliothèque est rapide car elle met en parallèle les threads sur plusieurs cœurs et est très complète et prête à l'emploi.

2voto

Curt Points 416

Le site Web Numerical Recipes (http://www.nr.com/) propose une FFT si vous voulez bien la taper. Je travaille sur un projet de conversion d'un programme Labview en C# 2008, .NET 3.5 pour acquérir des données et ensuite regarder le spectre de fréquence. Malheureusement, Math.Net utilise la dernière version du cadre .NET, et je n'ai donc pas pu utiliser cette FFT. J'ai essayé celle d'Exocortex - elle a fonctionné mais les résultats ne correspondent pas à ceux de Labview et je ne connais pas assez la théorie de la FFT pour savoir ce qui cause le problème. J'ai donc essayé la FFT sur le site des recettes numériques et ça a marché ! J'ai également pu programmer la fenêtre Labview à faibles lobes secondaires (et j'ai dû introduire un facteur d'échelle).

Vous pouvez lire le chapitre du livre Numerical Recipes en tant qu'invité sur leur site, mais le livre est si utile que je recommande vivement de l'acheter. Même si vous finissez par utiliser le Math.NET FFT.

0 votes

Soyez prudent avec tout code que vous utilisez de Numerical Recipes. Il n'y a rien de mal avec le code, c'est la licence qui pose problème. Vous devez payer pour utiliser le code, et il n'y a aucune exception pour les applications non commerciales ou scientifiques. Voir ce qui suit lien pour plus d'informations.

1voto

Paul Points 3767

Pour une implémentation multi-threads adaptée aux processeurs Intel, je me tournerais vers la bibliothèque MKL d'Intel. Elle n'est pas gratuite, mais elle est abordable (moins de 100 $) et très rapide - mais vous devrez appeler ses dll C via P/Invokes. Le projet Exocortex a arrêté son développement il y a 6 ans, donc je serais prudent en l'utilisant si c'est un projet important.

2 votes

Le prix pour un seul utilisateur, en juin 2013, est de 499 $ US.

0 votes

En octobre 2015, l'édition compositeur est à 699 $.

0 votes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X