2014-05-16 2 views
6

이것은 아마도 매우 순진한 질문 일지 모르지만 여기에 있습니다.푸리에 변환 대 Numpy FFT

함수 f (x)의 푸리에 변환을 계산하고 싶습니다. 그래서 numpy 배열 X를 정의하고 벡터화 된 함수 f를 전달합니다. 이제이 배열 f (X)의 FFT를 계산하면, 종이에 그랬을 때처럼 f (x)의 푸리에 변환이되지 않습니다. 예를 들어 가우스의 FFT를 계산할 경우 가우시안이나 배열이 가우시안과 매우 비슷하게 배열되어야합니다.

여기 코드가 있습니다. 일반적인 푸리에 변환을 얻기 위해 내가 무엇을 바꾸어야하는지 알려주세요.

import matplotlib.pyplot as plt 
import numpy as np 

N = 128 
x = np.linspace(-5, 5, N) 
y = np.exp(-x**2) 

y_fft = np.fft.fftshift(np.fft.fft(y).real) 
plt.plot(x, y_fft) 

plt.show() 

날 반복하자. 어떤 함수 (예 : 가우스)의 푸리에 변환을 계산하고 싶습니다. FFT는 숫자 배열의 푸리에 변환을 계산하는 방법이지만 연속 푸리에 변환 공식의 단순한 이산화와 다릅니다.

답변

7

아니요, FFT는 함수의 푸리에 변환 (FT)을 계산하는 방법이 아닙니다. FFT는 DFT, 샘플 배열의 이산 푸리에 변환을 계산하는 빠른 알고리즘입니다. 이 샘플 배열은 등 간격 점에서 함수를 샘플링하는 것으로 해석 할 수 있습니다.

DFT와 FT는 서로 다른 두 가지이며, DFT를 사용하여 FT를 계산할 수 없습니다. 차이점은 link을 참조하십시오.

함수가 주기적이면 그 스펙트럼은 점에서만 정의되는 함수이며 함수의 등 간격 샘플에 DFT를 사용하면 FT를 좋은 성공으로 추론 할 수 있습니다. 샘플링 속도, 도메인은 함수의 모든 고조파의 모든 기간의 배수입니다.

+0

실제로 이산 푸리에 변환이 푸리에 변환이 아니라고 주장하십니까? –

+0

DFT가 FT가 아니라고합니다. FT는 일반적으로 함수의 연속 푸리에 변환을 나타냅니다. 나는 약간 혼란을 피하기 위해 게시물을 편집 할 것입니다. – gg349

2

고객님의 질문에 대한 답변이 here 인 것 같습니다. (위의 링크에서 직접 묻고 답하기 전에 질문을 보지 못했습니다.)

관련 문제