2008-10-04 13 views

Répondre

12

Iridium library de Math.NET fournit un moyen rapide, la collecte régulièrement mise à jour des fonctions liées aux mathématiques, y compris la FFT. Il est sous licence LGPL, vous pouvez donc l'utiliser dans des produits commerciaux.

+2

+1. Math.NET Iridium est idéal pour traduire du code Java (qui utilise Apache commons-math) en .NET grâce à la correspondance étroite entre les classes et les méthodes de chacun. 95% du temps tout ce que vous avez à faire est de changer les noms de classe et de méthode et tout va fonctionner. – finnw

47

Le gars qui a fait Aforge a fait un assez bon travail, mais ce n'est pas la qualité commerciale. C'est génial d'apprendre, mais vous pouvez dire qu'il apprenait aussi, donc il a des erreurs assez graves comme assumer la taille d'une image au lieu d'utiliser les bons bits par pixel.

Je ne suis pas frapper le gars, je respecte le diable hors de lui pour apprendre tout cela et nous montrer comment faire. Je pense qu'il est un doctorat maintenant ou au moins il est sur le point d'être si il est vraiment intelligent c'est juste pas une bibliothèque commercialement utilisable.

La bibliothèque Math.Net a son propre bizarrerie quand on travaille avec des transformations de Fourier et images/nombres complexes. Comme, si je ne me trompe pas, il sort la transformée de Fourier dans le format humain visible, ce qui est bien pour les humains si vous voulez regarder une image de la transformation, mais ce n'est pas très bien quand vous attendez les données dans un certain format (le format normal). Je pourrais me tromper à ce sujet mais je me souviens juste qu'il y avait de l'étrangeté, alors je suis allé au code original qu'ils utilisaient pour les trucs de Fourier et ça fonctionnait beaucoup mieux. (ExocortexDSP v1.2 http://www.exocortex.org/dsp/)

Math.net a également eu d'autres funkyness que je n'ai pas aimé en traitant les données de la FFT, je ne me souviens pas de quoi il s'agissait, je sais juste qu'il était beaucoup plus facile d'obtenir ce que je voulais sortir de la bibliothèque DSP ExoCortex. Je ne suis ni mathématicien ni ingénieur. pour ces gars-là, cela pourrait être parfaitement logique.

Alors! J'utilise le code FFT extrait d'ExoCortex, sur lequel Math.Net est basé, sans rien d'autre et ça marche très bien. Et enfin, je sais que ce n'est pas C#, mais j'ai commencé à chercher à utiliser FFTW (http://www.fftw.org/). Et ce gars a déjà fait un wrapper C# alors j'allais le vérifier mais je ne l'ai pas encore utilisé. (http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html)

OH! Je ne sais pas si vous faites ceci pour l'école ou le travail mais de toute façon il y a une grande série de conférences gratuites donnée par un professeur de Stanford sur iTunes University.

http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.1617315771

+1

Je serais intéressé par plus de détails sur l'étrangeté dans la mise en œuvre de Math.NET Iridium fft - afin que nous puissions y remédier! ;). Est-ce lié à la façon dont les nombres complexes sont traités? Aucune idée de ce que vous voulez dire avec le "format humain visible". Échantillons: http://mathnet.opensourcedotnet.info/doc/IridiumFFT.ashx –

+6

fftw a une sorte de licence problématique; vérifier ceci: "Les licences non-libres pour FFTW sont également disponibles qui permettent différentes conditions d'utilisation que la GPL." –

+0

Ceci est une question à Mike Bethany. J'essaie d'apprendre à convertir les données du domaine temporel au domaine fréquentiel. Votre lien exocortex est-il la bonne façon de le faire? –

1

Pour une implémentation multi-thread à l'écoute pour les processeurs Intel je vérifierais la bibliothèque sur MKL d'Intel. Ce n'est pas gratuit, mais c'est afforable (moins de 100 $) et flamboyant rapidement - mais vous auriez besoin de l'appeler C dll via P/Invokes. Le projet Exocortex a arrêté le développement il y a 6 ans, alors je ferais attention à l'utiliser s'il s'agit d'un projet important.

+2

Le prix pour un utilisateur unique en juin 2013 est de 499 $ US. – RickNZ

+0

À partir d'octobre 2015, l'édition du compositeur est 699 $ – mcy

+0

N'est-ce pas gratuit avec le programme «Community Licensing»? [Aucune option de coût pour la bibliothèque Intel Primitive Performance Primitives (IPP), soutien vous-même, libre de droits] (https://software.intel.com/en-us/articles/free_ipp) – Lati

7

Je vois c'est un vieux fil, mais pour ce que ça vaut, j'ai un logiciel gratuit (MIT License) la mise sous tension de 2-longueur seulement 1-D implémentation C# FFT ici: http://gerrybeauregard.wordpress.com/2011/04/01/an-fft-in-c/

Je n'ai pas comparé ses performances à d'autres implémentations C# FFT. Je l'ai écrit principalement pour comparer les performances de Flash/ActionScript et Silverlight/C#. Ce dernier est beaucoup plus rapide, au moins pour le calcul de nombre.

2

Le site Web Recettes numériques (http://www.nr.com/) a une FFT si cela ne vous dérange pas de le saisir. 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 le dernier framework .NET, donc je ne pouvais pas utiliser cette FFT. J'ai essayé l'Exocortex - ça a marché mais les résultats correspondent aux résultats de Labview et je ne connais pas assez la théorie 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 été capable de programmer la fenêtre basse LabVIEW de Labview (et j'ai dû introduire un facteur de mise à l'échelle).

Vous pouvez lire le chapitre du livre Recettes Numériques en tant qu'invité sur leur site, mais le livre est si utile que je recommande fortement l'achat. Même si vous finissez par utiliser la FFT Math.NET.

+0

Soyez prudent avec tout code que vous utilisez de Recettes numériques. Rien de mal avec le code, c'est la licence qui pose problème. Vous devez payer pour utiliser le code, et aucune exception pour les applications non commerciales ou scientifiques. Voir ce [link] (http://mingus.as.arizona.edu/~bjw/software/boycottnr.html) pour plus d'informations. –