2014-05-16 15 views
6

Đây có lẽ là một câu hỏi rất ngây thơ nhưng ở đây.Chuyển đổi Fourier vs Numpy FFT

Tôi muốn tính toán biến đổi Fourier của hàm f (x). Vì vậy, tôi xác định một mảng X gumpy và đi qua hàm vectơ f. Bây giờ nếu tôi tính toán FFT của mảng này f (X) nó không xuất hiện để được Fourier Transform của f (x) như nó sẽ nếu tôi làm điều đó trên một mảnh giấy. Ví dụ: Nếu tôi tính toán FFT của Gaussian tôi sẽ nhận được một Gaussian hoặc một mảng có phần thực sự sẽ giống với một Gaussian rất chặt chẽ.

đây là mã. xin vui lòng cho tôi biết những gì tôi phải thay đổi để có được Fourier Transform thông thường.

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() 

hãy để tôi nhắc lại. Tôi muốn tính toán biến đổi Fourier của bất kỳ hàm nào (ví dụ: gaussian). FFT là cách để tính toán biến đổi Fourier của một mảng các số nhưng điều này không giống như việc phân loại đơn giản của công thức biến đổi Fourier liên tục.

Trả lời

7

Không, FFT không phải là cách tính phép biến đổi Fourier (FT) của hàm. FFT là một thuật toán nhanh để tính toán DFT, biến đổi Fourier rời rạc của một mảng các mẫu. Mảng mẫu này có thể được hiểu là lấy mẫu của một hàm tại các điểm cách nhau bằng nhau.

DFT và FT là 2 thứ khác nhau và bạn không thể sử dụng DFT để tính FT. Xem điều này link về sự khác biệt của chúng. Nếu chức năng của bạn là định kỳ, thì phổ của nó là một hàm chỉ được xác định tại các điểm, và bạn có thể sử dụng DFT trên các mẫu có khoảng cách bằng nhau để suy ra FT thành công, nếu bạn chọn rất cẩn thận tên miền của mình và tỷ lệ lấy mẫu và miền là bội số của tất cả các giai đoạn của tất cả các giai điệu của hàm của bạn.

+0

Bạn có thực sự tuyên bố rằng Biến đổi Fourier rời rạc không phải là biến đổi Fourier không? –

+0

Tôi nói rằng DFT không phải là FT. FT thường đề cập đến biến đổi Fourier liên tục của một hàm. Tôi sẽ chỉnh sửa bài viết một chút để tránh nhầm lẫn. – gg349

2

Tôi nghĩ rằng tôi đã trả lời câu hỏi của bạn here. (Không thấy câu hỏi của bạn trước khi hỏi và tự trả lời trong liên kết trên)

Các vấn đề liên quan