fftw 예제

이전과 마찬가지로 #include 변환에 대한 계획을 만들었으며, fftwnd_plan 유형이 이번에는 간단히 말해서 다른 프로그램 실행에서 다시 사용할 수 있도록 디스크에 계획을 저장하는 방법을 제공합니다. FFTW_MEASURE 및 FFTW_USE_WISDOM 를 사용하여 계획을 작성한 다음 fftw_export_wisdom를 사용하여 지혜를 저장합니다. 즉, (실제, 가상) 쌍 (이중 정밀도) 숫자. 또한 fftwnd에서 위의 식에 실제 배열 인덱스를 얻기 위한 보폭을 곱하면 다차원 배열의 각 요소가 실제로 데이터 구조 또는 다른 배열인 경우에 유용합니다. 단일 필드. 그러나 대부분의 경우 보폭은 1입니다. 적절한 fftw3 함수를 호출하지만 포트란에 대한 서브 루틴 이름과 인수 목록의 차이점을 유의하십시오. FFTW++에는 C++, C, 파이썬 및 포트란에서 FFTW++를 호출하기 위한 인터페이스와 예제가 포함되어 있습니다. 예를 들어, 다음은 RFFTW를 사용하여 실제 배열의 전력 스펙트럼(즉, DFT 진폭의 절대 값의 제곱)을 계산하는 방법에 대한 개요입니다: 변환 자체는 입력 및 출력 배열과 함께 계획을 fftw_one으로 전달하여 계산됩니다. : 지혜는 누적되며 FFTW가 내부적으로 관리하는 글로벌 개인 데이터 구조에 저장됩니다.

필요한 저장 공간은 지혜가 생성 된 크기의 로거에 비례하여 최소한의. 지혜는 fftw_forget_wisdom()에 대한 호출로 잊혀질 수 있습니다(그리고 관련 메모리가 해제됨). 그렇지 않으면 프로그램이 종료될 때까지 기억됩니다. 또한 fftw_export_wisdom를 사용하여 파일, 문자열 또는 다른 매체로 내보낼 수 있으며 fftw_import_wisdom를 사용하여 프로그램(또는 다른 프로그램)을 후속 실행하는 동안 복원할 수 있습니다(이러한 함수는 아래에 설명되어 있음). in은 정적으로 선언된 배열로 행 주요 순서로 자동으로 수행되지만 fftwnd_one에서 예상하는 형식에 맞게 첫 번째 요소의 주소를 가져가야 합니다. (단면 다차원 배열 형식 참조)) FFTW_ESTIMATE 계획으로 만든 계획은 지혜를 사용할 수 있지만 생성할 수는 없습니다. FFTW_MEASURE 계획만이 실제로 지혜를 생성합니다. 또한 계획은 동일한 방향과 플래그로 만든 계획에서 생성된 지혜만 사용할 수 있습니다. 예를 들어 크기 42 FFTW_BACKWARD 변환은 크기 42 FFTW_FORWARD 변환에서 생성된 지혜를 사용하지 않습니다. 이 규칙의 유일한 예외는 FFTW_ESTIMATE 계획이 FFTW_MEASURE 계획의 지혜를 사용할 수 있다는 것입니다. C에서 다차원 배열을 할당하는 다른 방법은 종종 fftwnd와 호환되지 않는 것이 좋습니다 : 그것을 사용하면 FFTW가 고통스러운 죽음을 사망하게됩니다.