mein ursprüngliches Problem war das folgende:FFTshift verursacht Schwingungen - warum? (numpy)
Ich habe eine Puls-Hüllkurve in einem Array a (0-Element = Zeit 0, letztes Element = Zeit T). Ich möchte das Spektrum des Impulses fourier. Also was ich getan habe, war np.fft.fftshift(np.fft.fft(a))
. Alles gut.
Aber dann wurde mir gesagt, auch vorher eine Schicht zu machen: np.fft.fftshift(np.fft.fft(np.fft.fftshift(a)))
. Dann entstanden Schwingungen.
Jetzt frage ich mich, warum man 2 Schichten tun würde, wie oben gezeigt, und warum Schwingungen entstehen ...
Hier das Beispiel: Ich habe den folgenden Code
x = np.arange(100)
a =np.sin(np.pi*x**2/1000)
a_fft_shift = np.fft.fftshift(a_fft)
a_shift = np.fft.fftshift(a)
a_shift_fft = np.fft.fft(a_shift)
a_shift_fft_shift = np.fft.fftshift(a_shift_fft)
vor der Verschiebung: die tiefen Frequenzen bei 0 und 100. Nach der Verschiebung, sie bei 50 sind, als ob sie auf hohe Frequenzen entsprach. FFT und FFT^{- 1} sind sehr nah. Wenn daher die FFT des verschobenen Signals berechnet wird, treten Hochfrequenzstörungen auf. 'np.fft.fftshift()' ist nur nützlich, um tiefe Frequenzen in der Mitte des Plots anzuzeigen. Verwenden Sie es nur für die Anzeige! – francis