We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
开发 AForge 的人做得相当不错,但还达不到商业质量。从中学习很棒,但你可以看出他也在学习,所以他犯了一些非常严重的错误,比如假设图像的大小,而不是使用正确的每像素位数。
我并不是要打击这个人,我尊重他学习所有这些并向我们展示如何做到这一点。我认为他现在是一名博士,或者至少他即将成为一名博士,所以他真的很聪明,只是不是一个商业可用的图书馆。
Math.Net 库在处理傅立叶变换和复杂图像/数字时有其自身的怪异之处。就像,如果我没记错的话,它以人类可见的格式输出傅立叶变换,如果您想查看变换的图片,这对人类来说很好,但当您期望数据处于某种特定格式时,它就不太好了格式(正常格式)。我可能会弄错,但我只记得有一些奇怪的地方,所以我实际上去了他们用于傅里叶东西的原始代码,它工作得更好。 (ExocortexDSP v1.2 http://www.exocortex.org/dsp/)
Math.net 也在处理来自 FFT 的数据时,还有一些我不喜欢的其他时髦之处,我不记得那是什么了,我只知道从 ExoCortex DSP 库中获得我想要的东西要容易得多。但我不是数学家或工程师;对于那些人来说这可能很有意义。
所以!我使用从 ExoCortex 中提取的 FFT 代码,这是 Math.Net 的基础,没有任何其他东西,而且效果很好。
最后,我知道这不是 C#,但我已经开始考虑使用 FFTW (http://www.fftw.org /)。这个人已经制作了一个 C# 包装器,所以我打算检查一下,但还没有实际使用它。 (http://www.sdss.jhu.edu/~tamas/bytes/ fftwcsharp.html)
哦!我不知道你这样做是为了学校还是工作,但无论怎样,iTunes 大学上都有斯坦福大学教授提供的精彩免费系列讲座。
https://podcasts.apple.com/us /podcast/the-fourier-transforms-and-its-applications/id384232849
The guy that did AForge did a fairly good job but it's not commercial quality. It's great to learn from but you can tell he was learning too so he has some pretty serious mistakes like assuming the size of an image instead of using the correct bits per pixel.
I'm not knocking the guy, I respect the heck out of him for learning all that and show us how to do it. I think he's a Ph.D now or at least he's about to be so he's really smart it's just not a commercially usable library.
The Math.Net library has its own weirdness when working with Fourier transforms and complex images/numbers. Like, if I'm not mistaken, it outputs the Fourier transform in human viewable format which is nice for humans if you want to look at a picture of the transform but it's not so good when you are expecting the data to be in a certain format (the normal format). I could be mistaken about that but I just remember there was some weirdness so I actually went to the original code they used for the Fourier stuff and it worked much better. (ExocortexDSP v1.2 http://www.exocortex.org/dsp/)
Math.net also had some other funkyness I didn't like when dealing with the data from the FFT, I can't remember what it was I just know it was much easier to get what I wanted out of the ExoCortex DSP library. I'm not a mathematician or engineer though; to those guys it might make perfect sense.
So! I use the FFT code yanked from ExoCortex, which Math.Net is based on, without anything else and it works great.
And finally, I know it's not C#, but I've started looking at using FFTW (http://www.fftw.org/). And this guy already made a C# wrapper so I was going to check it out but haven't actually used it yet. (http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html)
OH! I don't know if you are doing this for school or work but either way there is a GREAT free lecture series given by a Stanford professor on iTunes University.
https://podcasts.apple.com/us/podcast/the-fourier-transforms-and-its-applications/id384232849
AForge.net 是一个免费(开源)库,支持快速傅里叶变换。 (请参阅 Sources/Imaging/ComplexImage.cs对于使用,Sources/Math/FourierTransform.cs 用于实施)
AForge.net is a free (open-source) library with Fast Fourier Transform support. (See Sources/Imaging/ComplexImage.cs for usage, Sources/Math/FourierTransform.cs for implemenation)
Math.NET 的 Iridium 库 提供快速、定期更新的数学相关函数集合,包括 FFT。它根据 LGPL 获得许可,因此您可以在商业产品中自由使用它。
Math.NET's Iridium library provides a fast, regularly updated collection of math-related functions, including the FFT. It's licensed under the LGPL so you are free to use it in commercial products.
我看到这是一个旧线程,但就其价值而言,这是我在 2010 年编写的免费(MIT 许可证)一维 2 次方长度 C# FFT 实现。
我还没有将其性能与其他实现进行比较C# FFT 实现。我写它主要是为了比较Flash/ActionScript和Silverlight/C#的性能。后者要快得多,至少对于数字运算来说是这样。
}
I see this is an old thread, but for what it's worth, here's a free (MIT License) 1-D power-of-2-length-only C# FFT implementation I wrote in 2010.
I haven't compared its performance to other C# FFT implementations. I wrote it mainly to compare the performance of Flash/ActionScript and Silverlight/C#. The latter is much faster, at least for number crunching.
}
一个老问题,但它仍然出现在 Google 结果中...
找到一个非常不受限制的 MIT 许可的 C# / .NET 库
可以在https://www.codeproject.com/articles/1107480/dsplib-fft-dft-fourier-transform-library-for- net
这个库速度很快,因为它在多个内核上并行线程,并且非常完整且易于使用。
An old question but it still shows up in Google results...
A very un-restrictive MIT Licensed C# / .NET library can be found at,
https://www.codeproject.com/articles/1107480/dsplib-fft-dft-fourier-transform-library-for-net
This library is fast as it parallel threads on multiple cores and is very complete and ready to use.
这是另一个; Ooura FFT 的 C# 端口。这是相当快的。该软件包还包括重叠/相加卷积和一些其他 DSP 内容,均获得 MIT 许可。
https://github.com/hughpyle/inguz-DSPUtil/blob/ master/Fourier.cs
Here's another; a C# port of the Ooura FFT. It's reasonably fast. The package also includes overlap/add convolution and some other DSP stuff, under the MIT license.
https://github.com/hughpyle/inguz-DSPUtil/blob/master/Fourier.cs
http://www.exocortex.org/dsp/ 是一个带有 FFT 的开源 C# 数学库算法。
http://www.exocortex.org/dsp/ is an open-source C# mathematics library with FFT algorithms.
如果您不介意输入的话,Numerical Recipes 网站 (http://www.nr.com/) 有一个 FFT。我正在开展一个项目,将 Labview 程序转换为 C# 2008、.NET 3.5 以获取数据和然后看频谱。不幸的是,Math.Net 使用最新的 .NET 框架,所以我无法使用该 FFT。我尝试了外皮质 - 它有效,但结果与 Labview 结果匹配,而且我不知道足够的 FFT 理论来知道是什么导致了问题。所以我在数字食谱网站上尝试了 FFT,它成功了!我还能够对 Labview 低旁瓣窗口进行编程(并且必须引入缩放因子)。
您可以在他们的网站上以访客身份阅读《数值食谱》一书的章节,但这本书非常有用,因此我强烈建议购买它。即使您最终使用了 Math.NET FFT。
The Numerical Recipes website (http://www.nr.com/) has an FFT if you don't mind typing it in. I am working on a project converting a Labview program to C# 2008, .NET 3.5 to acquire data and then look at the frequency spectrum. Unfortunately the Math.Net uses the latest .NET framework, so I couldn't use that FFT. I tried the Exocortex one - it worked but the results to match the Labview results and I don't know enough FFT theory to know what is causing the problem. So I tried the FFT on the numerical recipes website and it worked! I was also able to program the Labview low sidelobe window (and had to introduce a scaling factor).
You can read the chapter of the Numerical Recipes book as a guest on thier site, but the book is so useful that I highly recomend purchasing it. Even if you do end up using the Math.NET FFT.
对于针对 Intel 处理器调整的多线程实现,我会查看 Intel 的 MKL 库。它不是免费的,但是价格实惠(不到 100 美元)并且速度极快 - 但您需要通过 P/Invokes 调用它的 C dll。 Exocortex 项目在 6 年前停止开发,所以如果这是一个重要的项目,我会小心使用它。
For a multi-threaded implementation tuned for Intel processors I'd check out Intel's MKL library. It's not free, but it's afforable (less than $100) and blazing fast - but you'd need to call it's C dll's via P/Invokes. The Exocortex project stopped development 6 years ago, so I'd be careful using it if this is an important project.