문제

C#에서 매우 빠르고 안정적인 무료 FFT 구현을 어디에서 찾을 수 있나요?

제품에 사용할 수 있는 건가요?아니면 제한사항이 있나요?

도움이 되었습니까?

해결책

aforge.net 빠른 푸리에 변환 지원이있는 무료 (오픈 소스) 라이브러리입니다. (소스/이미징 참조/compleximage.cs 사용, 소스/수학/Fouriertransform.cs 구현을 위해)

다른 팁

Aforge를 한 사람은 상당히 좋은 일을했지만 상업적 품질은 아닙니다. 배우는 것이 좋지만 당신은 그가 배우고 있다고 말할 수 있으므로 픽셀 당 올바른 비트를 사용하는 대신 이미지의 크기를 가정하는 것과 같은 심각한 실수가 있습니다.

나는 그 사람을 두드리는 것이 아니며, 나는 그 모든 것을 배우는 것에 대해 그에게 도대체를 존중하고 우리에게 그것을하는 방법을 보여줍니다. 나는 그가 지금 박사 학위라고 생각합니다.

Math.net 라이브러리는 푸리에 변환 및 복잡한 이미지/숫자로 작업 할 때 고유 한 이상 함을 가지고 있습니다. 내가 실수하지 않으면, 그것은 푸리에 변환을 인간의 관찰 가능한 형식으로 출력합니다. 변신의 그림을보고 싶을 때 인간에게 좋지만 데이터가 확실하게 될 것으로 기대할 때 좋지는 않습니다. 형식 (일반 형식). 나는 그것에 대해 착각 할 수 있지만 나는 단지 약간 이상한 점이 있다는 것을 기억합니다. 그래서 나는 그들이 실제로 푸리에 물건에 사용한 원래 코드로 갔고 훨씬 더 잘 작동했습니다. (ExocortexDsp v1.2 http://www.exocortex.org/dsp/)

Math.net은 또한 FFT에서 데이터를 다룰 때 마음에 들지 않는 다른 펑키를 가졌습니다. 나는 그것이 무엇인지 기억이 나지 않습니다. 나는 수학자 나 엔지니어가 아닙니다. 그 사람들에게 그것은 완벽하게 이해 될 수 있습니다.

그래서! 나는 exocortex에서 Yanked FFT 코드를 사용합니다. exocortex는 Math.net이 다른 어떤 것도 기반으로하며 훌륭하게 작동합니다.

그리고 마지막으로 C#이 아니라는 것을 알고 있지만 FFTW를 사용하기 시작했습니다.http://www.fftw.org/). 그리고이 사람은 이미 C# 래퍼를 만들었으므로 확인하려고했지만 아직 사용하지 않았습니다. (http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html)

오! 나는 당신이 학교 나 직장을 위해이 일을하고 있는지 모르겠지만 iTunes University의 Stanford 교수가 제공하는 훌륭한 무료 강의 시리즈가 있습니다.

https://podcasts.apple.com/us/podcast/the-fourier-transforms-and-its-applications/id384232849

Math.net 's 이리듐 도서관 FFT를 포함하여 빠르고 정기적으로 업데이트 된 수학 관련 기능 모음을 제공합니다. LGPL에 따라 라이센스가 부여되므로 상용 제품에서 자유롭게 사용할 수 있습니다.

나는 이것이 오래된 스레드라는 것을 알지만, 그 가치가있는 것에 대해, 나는 무료 (MIT 라이센스) 1-D 전원 -2 길이 전용 c# fft 구현이 있습니다. http://gerrybeauregard.wordpress.com/2011/04/01/an-fft-in-c/

성능을 다른 C# FFT 구현과 비교하지 않았습니다. Flash/ActionScript 및 Silverlight/C#의 성능을 비교하기 위해 주로 썼습니다. 후자는 적어도 숫자 크 런칭의 경우 훨씬 빠릅니다.

http://www.exocortex.org/dsp/ FFT 알고리즘이있는 오픈 소스 C# 수학 라이브러리입니다.

여기에 또 다른 것이 있습니다. 오우라 FFT의 C# 포트. 합리적으로 빠릅니다. 패키지에는 MIT 라이센스에 따라 오버랩/추가 컨볼 루션 및 기타 DSP 제품도 포함됩니다.

https://github.com/hughpyle/hughpyle/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의 낮은 사이드로브 창을 프로그래밍할 수 있었습니다(그리고 배율 인수를 도입해야 했습니다).

해당 사이트의 게스트로서 Numerical Recipes 책의 장을 읽을 수 있지만 이 책은 매우 유용하므로 구매를 적극 권장합니다.Math.NET FFT를 사용하게 되더라도 마찬가지입니다.

오래된 질문이지만 여전히 Google 결과에 나타납니다 ...

매우 제한되지 않은 MIT 라이센스 C# / .NET 라이브러리는 찾을 수 있습니다.

https://www.codeproject.com/articles/1107480/dsplib-fft-dft-transform-for-net

이 라이브러리는 여러 코어의 스레드를 평행하게하고 매우 완전하고 사용할 준비가되어 있기 때문에 빠릅니다.

인텔 프로세서를 위해 조정 된 멀티 스레드 구현의 경우 Intel의 MKL 라이브러리를 확인했습니다. 무료는 아니지만 aforible (100 달러 미만)과 빨리 타 오르지 만 P/호출을 통해 C DLL을 호출해야합니다. Exocortex 프로젝트는 6 년 전 개발을 중단 했으므로 이것이 중요한 프로젝트라면이를 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top