Une implémentation de la transformée de Fourier rapide (FFT) en C#
Où puis-je trouver un logiciel gratuit, très rapide et fiable de la mise en œuvre de la FFT en C#?
Qui peut être utilisé dans un produit? Ou sont les limites?
Vous devez vous connecter pour publier un commentaire.
AForge.net est un logiciel gratuit (open-source) de la bibliothèque avec la transformée de Fourier Rapide de soutien. (Voir les Sources/Imagerie/ComplexImage.cs pour l'utilisation de Sources/Math/FourierTransform.cs pour la mise en oeuvre)
Le gars qui a fait AForge a fait un assez bon travail, mais ce n'est pas de qualité commerciale. C'est génial pour apprendre, mais vous pouvez dire qu'il était aussi de l'apprentissage, de sorte qu'il a d'assez graves erreurs, comme en supposant que la taille d'une image au lieu d'utiliser le bon nombre de bits par pixel.
Je ne suis pas frapper le gars, je respecte le diable hors de lui pour l'apprentissage tout cela et de nous montrer comment le faire. Je pense qu'il a un Ph. D maintenant, ou au moins il est sur le point de l'être, il est vraiment intelligent, c'est juste pas utilisable à des fins commerciales de la bibliothèque.
L'Math.Net la bibliothèque dispose de sa propre étrangeté, lorsque l'on travaille avec les transformées de Fourier et de complexe d'images et de chiffres. Comme, si je ne me trompe pas, il les sorties de la transformée de Fourier dans l'homme visible format qui est agréable pour l'homme, si vous voulez regarder une image de la transformation, mais il n'est pas si bon quand vous attendez les données dans un certain format (le format normal). Je pourrais me tromper, mais j'ai juste rappelez-vous il y avait une certaine étrangeté, donc je suis allé sur le code d'origine, ils ont utilisé pour la transformée de Fourier des trucs et il a travaillé beaucoup mieux. (ExocortexDSP v1.2 http://www.exocortex.org/dsp/)
Math.net avait également quelques autres funkyness je n'aimais pas lorsque vous traitez avec les données de la FFT, je ne me souviens pas ce que c'était, je sais juste que c'était beaucoup plus facile d'obtenir ce que je voulais sortir de la ExoCortex DSP de la bibliothèque. Je ne suis pas un mathématicien ou d'un ingénieur; pour ces gars-là, il pourrait tout à fait logique.
Donc! J'utilise la FFT code arrachés de ExoCortex, qui Math.Net est basé sur, sans rien d'autre et il fonctionne très bien.
Et enfin, je sais que c'est pas du C#, mais j'ai commencé à regarder à l'aide de FFTW (http://www.fftw.org/). Et ce gars-là a déjà fait un C# wrapper alors que j'allais vérifier mais n'avez pas encore utilisé. (http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html)
OH! Je ne sais pas si vous le faites pour l'école ou le travail, mais de toute façon il y a une GRANDE conférence gratuite de la série donnée par un professeur de l'université Stanford sur iTunes Université.
https://podcasts.apple.com/us/podcast/the-fourier-transforms-and-its-applications/id384232849
Math.NET's Iridium bibliothèque fournit un moyen rapide, régulièrement mis à jour de la collection de mathématiques-fonctions connexes, y compris la FFT. Il est sous licence LGPL donc vous êtes libre de les utiliser dans des produits commerciaux.
Je vois que c'est un vieux thread, mais pour ce que ça vaut, j'ai un libre (Licence MIT) 1-D de la puissance-de-2-longueur-seulement C# FFT mise en œuvre ici:
http://gerrybeauregard.wordpress.com/2011/04/01/an-fft-in-c/
Je n'ai pas comparé ses performances à d'autres C# FFT implémentations. Je l'ai écrit principalement pour comparer les performances de Flash/ActionScript et Silverlight/C#. Ce dernier est beaucoup plus rapide, au moins pour les calculs.
http://www.exocortex.org/dsp/ est un open-source C# bibliothèque de mathématiques avec des algorithmes de FFT.
Voici un autre; un C# port de la Ooura FFT. C'est assez rapide. Le forfait comprend également un chevauchement/ajouter à convolution et quelques autres DSP choses, sous la licence MIT.
https://github.com/hughpyle/inguz-DSPUtil/blob/master/Fourier.cs
Une vieille question, mais il apparaît toujours dans les résultats de Google...
Un très restrictives, sous Licence MIT, C# /.NET de la bibliothèque peut être trouvé à la,
https://www.codeproject.com/articles/1107480/dsplib-fft-dft-fourier-transform-library-for-net
Cette bibliothèque est rapide comme il threads parallèles sur plusieurs cœurs et est très complet et prêt à l'emploi.
Le Numérique Recettes site (http://www.nr.com/) a une FFT si vous n'avez pas l'esprit en le tapant. Je suis en train de travailler sur un projet de conversion d'un programme Labview pour C# 2008, .NET 3.5 pour obtenir les données, puis de regarder le spectre de fréquence. Malheureusement, l'Math.Net utilise la dernière .NET framework, donc je ne pouvais pas utiliser la FFT. J'ai essayé le Exocortex - il a travaillé, mais les résultats correspondent à l'Labview résultats et je ne connais pas assez la FFT la théorie à savoir ce qui est à l'origine du problème. J'ai donc essayé la FFT sur le numérique recettes site web et cela a fonctionné! J'ai aussi été en mesure de programme Labview faible des lobes latéraux de la fenêtre (et ont dû introduire un facteur d'échelle).
Vous pouvez lire le chapitre du Numérique le livre de Recettes en tant qu'invité sur leur site, mais le livre est tellement utile que je recommande fortement l'achat. Même si vous ne finissent par à l'aide de la Math.NET FFT.
Pour un multi-fileté de mise en œuvre de l'écoute pour les processeurs Intel, je serais découvrez Intel MKL bibliothèque. Ce n'est pas gratuit, mais c'est afforable (moins de $100) et ultra-rapide - mais vous auriez besoin d'appeler la dll C par P/Invoque. Le Exocortex projet de développement arrêté il y a 6 ans, donc je serais prudent de l'utiliser si c'est un projet important.