C#에서 FFT를 무료로 빠르고 안정적으로 구현할 수있는 곳은 어디입니까?C#에서 고속 푸리에 변환 (FFT)을 구현했습니다.
제품에서 사용할 수 있습니까? 아니면 제한이 있습니까?
C#에서 FFT를 무료로 빠르고 안정적으로 구현할 수있는 곳은 어디입니까?C#에서 고속 푸리에 변환 (FFT)을 구현했습니다.
제품에서 사용할 수 있습니까? 아니면 제한이 있습니까?
AForge.net은 고속 푸리에 변환을 지원하는 무료 (오픈 소스) 라이브러리입니다. (참조 소스/이미지 사용에 대한/ComplexImage.cs, 소스/수학 된 구현을위한/FourierTransform.cs)
http://www.exocortex.org/dsp/는 FFT 알고리즘 오픈 소스 C#을 수학 라이브러리입니다.
Math.NET의 Iridium library은 FFT를 비롯하여 정기적으로 업데이트되는 수학 관련 기능 모음을 제공합니다. LGPL에서 라이센스를 받았으므로 상용 제품에서 자유롭게 사용할 수 있습니다.
+1. Math.NET Iridium은 클래스와 각각의 메소드 사이의 긴밀한 대응으로 인해 Apache 코드를 사용하는 Java 코드를 .NET으로 변환하는 데 적합합니다. 시간의 95 % 만 클래스와 메소드 이름을 변경하면 모든 것이 작동합니다. – finnw
AForge를 한 사람은 상당히 유익했으나 상업적 품질이 아니 었습니다. 배우는 것은 좋지만 사진을 배우고 있다고 말할 수 있으므로 픽셀 당 올바른 비트를 사용하는 대신 이미지의 크기를 가정하는 것과 같은 심각한 오류가 있습니다.
나는 그 남자를 노크하지 않고, 나는 그 모든 것을 배우고 그것을 어떻게하는지 보여주기 위해 그를 존경한다. 제 생각에 그는 박사 학위를 소지했거나 적어도 지금은 거의 그가 진짜 똑똑해서 상업적으로 유용한 라이브러리가 아니라고 생각합니다.
Math.Net 라이브러리에는 푸리에 변환 및 복잡한 이미지/숫자로 작업 할 때 자체적 인 기이함이 있습니다. 마찬가지로 실수가 아니라면 사람이 볼 수있는 형식으로 푸리에 변환을 출력합니다. 변환에 대한 그림을보고 싶다면 사람에게 좋지만 데이터가 특정 상태가 될 것으로 기대할 때는 좋지 않습니다. 형식 (일반 형식). 나는 그것에 대해 착각 할 수는 있었지만 몇 가지 이상한 점이 있었음을 기억합니다. 그래서 실제로 푸리에 항목에 사용한 원래 코드로 갔고 훨씬 더 잘 작동했습니다. (ExocortexDSP v1.2 http://www.exocortex.org/dsp/)
Math.net에는 FFT에서 데이터를 처리 할 때 내가 좋아하지 않는 몇 가지 다른 펑키가 있습니다. 그게 무엇인지 기억할 수 없습니다. ExoCortex DSP 라이브러리에서 내가 원했던 것. 나는 수학자 나 기술자가 아닙니다. 그 사람들에게 그것은 완벽하게 이해할 수 있습니다.
그래서! Math.Net은 ExoCortex에서 추출한 FFT 코드를 사용합니다.이 코드는 다른 것없이 잘 작동합니다.
마지막으로 C#이 아니라는 것을 알고 있지만 FFTW (http://www.fftw.org/)를 사용하기 시작했습니다. 그리고이 녀석은 이미 C# 래퍼를 만들었 기 때문에 나는 그것을 조사 할 것이지만 실제로 그것을 사용하지는 않았다. (http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html)
OH! 학교 나 직장에서이 작업을하고 있는지는 모르지만 iTunes University의 Stanford 교수가 제공하는 훌륭한 무료 강의 시리즈가 있습니다. 내가 인텔 MKL 라이브러리를 확인해 줄 인텔 프로세서에 맞게 조정 멀티 스레드 구현을 위해
http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.1617315771
Math.NET Iridium fft 구현의 이상한 점에 대해 더 자세히 알고 싶습니다. 문제를 해결할 수 있습니다! ;). 그것은 복잡한 숫자가 처리되는 방법과 관련이 있습니까? 당신이 "인간이 볼 수있는 형식"을 가지고 무슨 뜻인지는 모르겠다. 샘플 : http://mathnet.opensourcedotnet.info/doc/IridiumFFT.ashx –
fftw에는 문제가있는 라이센스가 있습니다. 이것을 확인해보십시오 : "FFTW를위한 비 자유 라이선스는 GPL과 다른 사용 조건을 허용합니다." –
이것은 마이크 베다니에게하는 질문입니다. 시간 도메인에서 주파수 도메인으로 데이터를 변환하는 방법을 배우려고합니다. 엑소 코텍스 링크가 올바른 방법입니까? –
. 무료는 아니지만, 100 달러 미만의 저렴한 가격으로 제공됩니다.하지만 P/Invokes를 통해 C DLL을 호출해야합니다. Exocortex 프로젝트는 6 년 전에 개발을 중단 했으므로 중요한 프로젝트 인 경우 Exodortex 프로젝트를 사용할 때는주의해야합니다.
다른 점은 다음과 같습니다. Ooura FFT의 C# 포트. 합리적으로 빠릅니다. 이 패키지에는 MIT 라이센스에 따라 중첩/추가 컨볼 루션 (overlaps/add convolution) 및 기타 DSP 관련 내용도 포함되어 있습니다.
http://github.com/hughpyle/inguz-DSPUtil/commits/master/Fourier.cs
나는이 오래된 스레드 볼 수 있지만, 그것은 가치가 무엇인지, 내가 여기에 1-D 전력의-2 길이 만 C#의 FFT 구현 무료 (MIT 라이센스)가 대한 : http://gerrybeauregard.wordpress.com/2011/04/01/an-fft-in-c/
그 성능을 다른 C# FFT 구현과 비교하지 않았습니다. 나는 주로 Flash/ActionScript와 Silverlight/C#의 성능을 비교하기 위해이 스크립트를 작성했습니다. 후자는 숫자 정리를 위해 훨씬 더 빠릅니다.
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를 사용하여 끝내더라도.
수치 조리법. 코드에 문제가 없으면 라이센스가 문제입니다. 코드를 사용하려면 비용을 지불해야하며 비상업적이거나 과학적으로 적용되는 경우에는 예외가 아닙니다. 자세한 내용은이 [link] (http://mingus.as.arizona.edu/~bjw/software/boycottnr.html)를 참조하십시오. –
오래된 질문하지만 여전히 구글의 검색 결과에 표시 ...
매우 유엔 제한 MIT의 C#/.NET이 라이브러리에서 찾을 수 있습니다 라이센스,
https://www.codeproject.com/articles/1107480/dsplib-fft-dft-fourier-transform-library-for-net
이 라이브러리 여러 개의 코어에서 스레드를 병렬로 사용하기 때문에 빠르며 매우 완벽하게 사용할 수 있습니다.
단 몇 개의 변환 크기로 제한됩니다. –