c# fft 예제

Cód: --- | Fabricante: ---
Publicado em: Sem categoria

의 신호 발생기 클래스의 예제 신호를 살펴 보자. 생성된 신호는 주파수 1.0 Hz및 진폭 20.0의 간단한 사각 파입니다 : 다음 표는 위의 예에 대한 다른 FFTs에 의해 계산 된 진폭을 보여줍니다 : 여기에 주파수로 복식의 배열을 변환하는 최소한의 사례 예입니다 C# (비주얼 스튜디오 커뮤니티 2017)에서 빠른 푸리에 변환을 사용하여 도메인. 어코드 .NET 라이브러리를 사용합니다. 어셈블리 프레임워크 System.Numerics에 대한 참조를 추가합니다. NuGet을 사용하여 Accord.Audio를 설치합니다. 예제 프로젝트: 마이크 FFT 예제: 음성 신호 및 4개의 변환입니다. 예제 섹션에서 전체 예제를 다운로드합니다. 위의 표에서 각 FFT는 실제로 10000 번이라고합니다 (사용자 인터페이스의 반복 값은 200으로 선택되었으며 50 내부 반복을 곱함). 벤치 마크는 AMD 페놈 II X2 550 프로세서 (3.1 G Hz)에서 실행 되었다. 포이어 변환에 권장되는 방법은 ILMath 클래스의 정적 함수를 사용하는 것입니다. 그들은 인기있는 수학 언어와 유사한 편리한 인터페이스를 제공합니다.

이러한 함수는 ILNumerics의 고성능 메모리 관리에서 자동으로 이익을 얻으며 FFT 함수 섹션에 설명되어 있습니다. 다음 표는 증가하는 크기의 FFT에 대한 총 실행 시간(및 평균)을 보여 줍니다. 이중 정밀도, 1…n 치수. .NET 인터페이스(C# 및 Visual Basic에서 사용 가능)는 Matlab® 같은 인기 있는 수학 언어에서 알려진 인터페이스와 유사합니다. FFT는 모든 크기 및 치수에 대해 계산할 수 있습니다. 그러나 N$에서 $n 2n의 신호 길이가 가장 효율적으로 계산됩니다. 다음 차트는 크기 2048, 4096 및 8192의 다른 FFT에 대한 벤치 마크 결과를 보여줍니다 : 분명히 완전히 예상치 못한 것은 아니지만 FFTW가 확실한 승자입니다. 따라서 네이티브 DLL을 사용하는 것이 옵션인 경우 사용하십시오. 관리 코드를 보면, 엑소피텍스와 로몬트 모두 좋은 선택이 될 것 같습니다. 복잡한 가치 데이터의 경우 Lomont가 약간 빠릅니다. 실제 값 신호의 경우 둘 다 동일한 작업을 수행합니다. NAudio는 또한 꽤 잘 수행하지만, 사용자 정의 복잡한 유형을 사용하고 실제 가치 입력을 지원하지 않습니다.

이 짧은 문서에서는 .NET 플랫폼에 대한 FFT(빠른 푸리에 변환) 구현 몇 가지를 비교합니다. 참가자는 다음과 같습니다 : 기본적으로, FFT의 결과로 주파수 도메인은 하나의 사이나및 코신 파 신호의 숫자에서 조립되는 것으로 데이터를 볼 수 있습니다. 정현파의 주파수는 원래 데이터의 샘플링 주파수와 신호의 샘플 수에 의해 결정됩니다. DFT에 의해 전달되는 주파수 빈은 원래 신호로 요약하기 위해 필요한 이러한 개별 주파수의 강도(크기)에 대한 정보를 제공합니다. 벤치마크 응용 프로그램에는 FFT 탐색기라는 유틸리티가 포함되어 있습니다.

Compartilhe