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 ?
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 ?
http://www.exocortex.org/dsp/ est une bibliothèque mathématique C# à code source ouvert contenant des algorithmes FFT.
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
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.
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.
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.
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.
N'est-il pas gratuit avec le programme "Community Licensing" ? Options gratuites pour la bibliothèque Intel Integrated Performance Primitives (IPP), Support Yourself, Royalty-Free
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.