fft c 예제

Posted by adminfeira - 2 agosto, 2019 - Sin categoría - No Comments

다음 관심사는 FFT에 보낼 데이터의 양과 샘플 속도입니다. 샘플 속도는 2^N 번호여야 하지만 처리할 2^N 샘플 배열을 보낼 필요는 없습니다(다른 구현에 대한 NR 읽기). 예를 들어 50개의 샘플을 보내고 나머지 배열을 0으로 채울 수 있습니다. 그러나 계산을 위해 보내는 데이터가 많을수록 FFT가 더 정확하다는 것을 기억하십시오. 먼저 다니엘슨-란즈코스 알고리즘을 수행하려면 원래 배열을 변환해야 합니다. 예를 들어, 컴플렉스[인덱스]는 복합[비트 역순 인덱스]로 장소를 바꿉습니다. 인덱스(바이너리)가 0b000001이면 비트 역순 인덱스는 0b10000이 됩니다. 그림 1에서는 변환 후 데이터 배열에 어떤 일이 발생하는지 확인할 수 있습니다. 이제 이미지 처리를 수행할 수 있으며(예: 필터링) 이미지가 공간 도메인으로 다시 변환됩니다. 예를 들어 로우 패스 필터링은 고주파 구성요소(위 이미지의 중심에서 방사형으로 멀리 떨어져 있음)를 줄이는 것을 포함합니다.

서로 다른 컷오프 주파수를 사용하는 두 가지 예는 아래에 설명되어 있습니다. Stata는 문서화되지 않은 fft 명령을 사용하여 FFT를 계산할 수도 있습니다. 다음은 구문을 보여주는 예제입니다. 이 명령을 호출하기 전에 시간 변수가 설정되어 있어야 합니다. 마타의 fft() 함수와 동일한 결과를 얻으려면 입력 변수와 출력 변수 모두에서 가상 부분을 먼저 전달해야 합니다. 두 번째 예는 필터의 임펄스 응답이었습니다. 정의에 따르면, 우리는 1개의 샘플(n=0의 임펄스)에 대해서만 에너지를 공급했습니다. 그것은 했다 32 탭 필터를 통해 그것의 방법을 작동 하는 충 전에 대 한 샘플, 하지만이 지연은 무관. 1개의 샘플에 에너지를 공급했기 때문에 FFT의 출력을 확장하지 않습니다.

두 개의 샘플에 에너지를 공급했다면 출력을 1/2로 조정합니다. 예를 들어 DFT를 사용하는 1024개 포인트의 변환은 FFT를 사용하는 것보다 약 100배 더 오래 걸리며, 이는 상당한 속도 증가입니다. 실제로 다양한 FFT 루틴의 속도를 비교하는 것은 문제가 되며, 보고된 타이밍 중 상당수는 특정 코딩 방법 및 하드웨어 및 운영 체제와의 관계와 관련이 있습니다.