매트랩 fft 예제

Y = fft(X, n, dim)는 치수 어둡게 따라 푸리에 변환을 반환합니다. 예를 들어 X가 행렬인 경우 fft(X,n,2)는 각 행의 n포인트 푸리에 변환을 반환합니다. X가 다차원 배열인 경우 fft(X)는 크기가 1과 같지 않은 첫 번째 배열 차원을 따라 값을 처리하고 각 벡터의 Fourier 변환을 반환합니다. fft의 실행 시간은 변환 의 길이에 따라 다릅니다. 작은 소수 계수만 있는 변환 길이는 소수이거나 큰 소수 요인이 있는 길이보다 훨씬 빠릅니다. 시간 도메인에서 주파수 도메인으로 가우시안 펄스를 변환합니다. 양면 스펙트럼 P2를 계산합니다. 그런 다음 P2 및 짝수 값 신호 길이를 기반으로 단면 스펙트럼 P1을 계산하여 진폭 0.7의 50 Hz 정현파 와 진폭 1의 120 Hz 정현을 포함하는 신호를 형성합니다. 푸리에 변환이 들어오는 곳입니다. 이 메서드는 모든 비선형 함수가 (무한) 사이나파의 합계로 표현될 수 있다는 사실을 사용합니다. 기본 그림에서 이것은 단계 함수가 수많은 사이나파에 의해 시뮬레이션되는 것처럼 설명됩니다. [] 또는 음수 정수 스칼라로 지정된 변환 길이입니다.

변환 길이에 대해 양수 정수 스칼라를 지정하면 fft의 성능이 향상될 수 있습니다. 길이는 일반적으로 2의 전원 또는 작은 소수의 곱으로 팩터링할 수 있는 값으로 지정됩니다. n이 신호 길이보다 작으면 fft는 9번째 항목을 지나남은 신호 값을 무시하고 잘린 결과를 반환합니다. n이 0이면 fft는 빈 행렬을 반환합니다. dim이 ndims(X)보다 크면 fft(X,[]],희미)가 X를 반환합니다. n을 지정하면 fft(X, n, dim) 패드 또는 X를 치수 어둡게 따라 길이 n으로 자른다. 우리는 각 주파수의 에너지에 관심이 있으므로 FFT 출력의 절대 값을 결정할 수 있습니다. 스펙트럼에서 좋은 통찰력을 얻으려면 에너지는 주파수에 대해 플롯되어야한다.

FFT의 각 불연속 수 출력은 특정 주파수에 해당합니다. 주파수 해상도는 다음에 의해 결정됩니다. Y = fft (X, n, dim)의 경우 크기 값 (Y, dim)은 n과 같지만 다른 모든 차원의 크기는 X와 같이 유지됩니다. X가 행렬인 경우 fft(X)는 X열을 벡터로 처리하고 각 열의 푸리에 변환을 반환합니다. [2] 프리고, M., S. G. 존슨. „FFTW: FFT를 위한 적응형 소프트웨어 아키텍처.“ 음향, 음성 및 신호 처리에 관한 국제 회의의 절차. 1998년 제3권, 1381-1384쪽. 샘플링 주파수가 1kHz이고 신호 지속 시간이 1.5초인 신호의 파라미터를 지정합니다. 다행히 일부 영리한 사람 (쿨리와 Tukey) 재귀적으로 작은 DFT의 에서 DFT를 분할 하는 빠른 푸리에 변환 (FFT) 알고리즘을 마련 했다 크게 필요한 계산 시간을 데리고.

표준 DFT는 O(N2)를 확장하고 FFT는 O(N 로그(N))를 확장합니다. 분산 배열의 경우 병렬 FFT 알고리즘을 사용하는 대신 fft는 단일 작업자에 벡터를 수집하여 프라임 길이 FFT를 수행합니다. 큰 프라임 길이 벡터 FFT의 경우 메모리 부족 오류가 발생할 수 있습니다. 그러나 시간 신호에서이 코드를 실행하는 경우 wich에는 약 10,000 개의 값이 포함되어 있으며 계산하는 데 10 초 이상 걸립니다! 우와… 이것은 느립니다. n의 대부분의 값의 경우 실제 입력 DfT는 복잡한 입력 DfT의 계산 시간의 약 절반을 필요로 합니다. 그러나 n이 큰 주요 요인이 있는 경우 속도 차이가 거의 또는 전혀 없습니다.