2014-05-16 14 views
6

Dies ist wahrscheinlich eine sehr naive Frage, aber hier ist es.Fourier Transformation vs Numpy FFT

Ich möchte Fourier-Transformation einer Funktion f (x) berechnen. Also definiere ich ein numpy Array X und gehe durch die vektorisierte Funktion f. Wenn ich jetzt die FFT dieses Feldes f (X) berechne, ergibt es sich nicht als Fourier-Transformation von f (x), wie wenn ich es auf einem Blatt Papier machen würde. Zum Beispiel, wenn ich FFT von Gaussian berechne, sollte ich ein Gaußsches oder ein Array bekommen, dessen realer Teil einem Gaußschen sehr nahe kommen würde.

Hier ist der Code. Bitte lassen Sie mich wissen, was ich ändern muss, um die übliche Fourier-Transformation zu erhalten.

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

lassen Sie mich wiederholen. Ich möchte Fourier-Transformation irgendeiner Funktion (z. B. Gaußschen) berechnen. FFT ist ein Weg, die Fourier-Transformation eines Zahlenfeldes zu berechnen, aber dies ist nicht dasselbe wie die einfache Diskretisierung der Formel für die kontinuierliche Fourier-Transformation.

Antwort

7

Nein, die FFT ist keine Möglichkeit, die Fourier-Transformation (FT) einer Funktion zu berechnen. Die FFT ist ein schneller Algorithmus zur Berechnung der DFT, diskreten Fourier-Transformation eines Arrays von Samples. Diese Anordnung von Abtastwerten kann als das Abtasten einer Funktion an äquidistanten Punkten interpretiert werden.

Die DFT und die FT sind 2 verschiedene Dinge, und Sie können die DFT nicht verwenden, um die FT zu berechnen. Siehe diese link auf ihre Unterschiede.

Wenn Ihre Funktion periodisch ist, dann ist ihr Spektrum eine nur an Punkten definierte Funktion, und Sie können die DFT auf gleich beabstandete Stichproben der Funktion verwenden, um die FT mit gutem Erfolg abzuleiten, wenn Sie Ihre Domäne sehr sorgfältig auswählen und Abtastrate, und die Domäne ist ein Vielfaches aller Perioden aller Harmonischen Ihrer Funktion.

+0

Sie behaupten tatsächlich, dass eine diskrete Fourier-Transformation keine Fourier-Transformation ist? –

+0

Ich behaupte, dass die DFT nicht die FT ist. Die FT bezieht sich üblicherweise auf die kontinuierliche Fourier-Transformation einer Funktion. Ich werde den Beitrag leicht bearbeiten, um Verwirrung zu vermeiden. – gg349

2

Ich glaube, ich habe Ihre Frage here beantwortet. (Ihre Frage wurde nicht angezeigt, bevor Sie sie im obigen Link beantwortet und beantwortet haben)