在哪里可以找到C#中免费,快速,可靠的FFT实现?

那可以在产品中使用吗?或者有任何限制吗?

有帮助吗?

解决方案

AForge.net 是一个免费(开源)库,支持快速傅里叶变换。 (参见Sources / Imaging / ComplexImage.cs 用法,来源/数学/ FourierTransform.cs 用于实施)

其他提示

做AForge的那个人做得相当不错,但这不是商业品质。这是很好的学习,但你可以告诉他他也在学习,所以他有一些非常严重的错误,比如假设一个图像的大小,而不是每个像素使用正确的位。

我不是要敲那个人,我尊重他的学习所有这一切并向我们展示如何去做。我认为他现在是博士,或者至少他是这样的,所以他非常聪明,这不是一个商业上可用的图书馆。

使用傅里叶变换和复杂图像/数字时,Math.Net库有其独特之处。就像,如果我没有弄错的话,它会输出人类可视格式的傅立叶变换,如果你想看一下变换的图片,这对人类来说很不错,但是当你期望数据在某个特定的情况下它不是那么好格式(正常格式)。我可能会对此有所误解,但我只记得有些奇怪,所以我实际上去了他们用于傅里叶东西的原始代码,它的效果要好得多。 (ExocortexDSP v1.2 http://www.exocortex.org/dsp/

在处理来自FFT的数据时,Math.net也有一些我不喜欢的时髦,我不记得它是什么我只是知道从ExoCortex DSP获得我想要的东西要容易得多图书馆。我不是数学家或工程师;对那些人来说,这可能是完全合理的。

原来如此!我使用的是Math.Net基于ExoCortex的FFT代码,没有任何其他功能,而且效果很好。

最后,我知道这不是C#,但我已经开始考虑使用FFTW( http:// www .fftw.org / )。而这个人已经制作了一个C#包装器,所以我要检查它,但还没有实际使用它。 ( http://www.sdss.jhu.edu/~tamas/bytes /fftwcsharp.html

OH!我不知道你是在上学还是上班,但无论哪种方式都有斯坦福大学教授在iTunes大学上发表的大型免费讲座系列。

https://podcasts.apple .COM / US /播客/的傅立叶变换和 - 其应用/ id384232849

Math.NET的铱库提供快速,定期更新的数学相关函数集合,包括FFT 。它是根据LGPL许可的,因此您可以在商业产品中自由使用它。

我认为这是一个旧线程,但是为了它的价值,我在这里有一个免费的(MIT许可证)1-D 2-power-of-only-only C#FFT实现:    http://gerrybeauregard.wordpress.com/2011/04/ 01 / AN-FFT-在-C /

我没有将其性能与其他C#FFT实现进行比较。我写它主要是为了比较Flash / ActionScript和Silverlight / C#的性能。后者要快得多,至少对于数字运算而言。

http://www.exocortex.org/dsp/ 是一个开源的C#数学具有FFT算法的库。

这是另一个; Ooura FFT的C#端口。它的速度相当快。该软件包还包括重叠/添加卷积和其他一些DSP内容,根据MIT许可证。

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

如果您不介意输入,那么Numerical Recipes网站(http://www.nr.com/)会有一个FFT。我正在开发一个将Labview程序转换为C#2008,.NET 3.5的项目获取数据,然后查看频谱。不幸的是,Math.Net使用最新的.NET框架,因此我无法使用该FFT。我试过Exocortex一个 - 它工作但结果与Labview结果相匹配,我不知道足够的FFT理论知道导致问题的原因。所以我在数字食谱网站上尝试了FFT,它运作良好!我还能够编写Labview低旁瓣窗口(并且必须引入缩放因子)。

您可以在他们的网站上阅读“数字食谱”一书中作为嘉宾的章节,但这本书非常有用,我非常推荐购买它。即使您最终使用Math.NET FFT。

一个老问题,但它仍会出现在Google搜索结果中......

可以在

找到非常不受限制的MIT许可C#/ .NET库

https:// www .codeproject.com /物品/ 1107480 / DSPLIB-FFT-DFT-傅里叶变换库换网

这个库很快,因为它在多个内核上并行运行,并且非常完整且可以随时使用。

对于针对英特尔处理器进行调整的多线程实现,我会查看英特尔的MKL库。它不是免费的,但是它的价值(低于100美元)和快速 - 但你需要通过P / Invokes调用它的C dll。 Exocortex项目在6年前停止了开发,所以如果这是一个重要的项目,我会小心使用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top