PSD Berechnung mit fftpack - Skalierung und Absolutwerte

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jayjo2710
User
Beiträge: 2
Registriert: Dienstag 5. März 2013, 18:19

Servus zusammen,

ich habe folgendes Problem: Im Rahmen einer Datenauswertung bekomme ich eine gewisse Menge bins(=Punkte im Frequenzraum). Daraus kann ich durch Rücktransformationen ein ursprünliches Signal (=Zeitserie) bestimmen. Mein Problem ist nun, dass die Rücktransformation des Signales in den Frequenzraum nicht annähernd aussieht wie meine ursprüngliche PSD.

Hier mal der Code für ein paar exemplarische bins. Es gibt zwar im Plot Erhebungen an den richtigen Stellen im Frequnzbereich, allerdings stimmen diese nicht in der Amplitude. Kann mir da jemand weiterhelfen?

Code: Alles auswählen

import scipy
import scipy.fftpack
import pylab
from scipy import pi
import matplotlib.pyplot as plt
import matplotlib
import numpy as np

t = scipy.linspace(0,2*pi,8196)
bins = (2,4,7)
binsV = (2.0,1.9,0.5)

signal = np.zeros(len(t))

for i in range(3):
    signal += binsV[i] * np.cos(2*pi*bins[i]*t)


FFT = abs(scipy.fft(signal))
PSD = abs(FFT)**2.0


freqs = scipy.fftpack.fftfreq(t.size, (t[1]-t[0]))
np.fft.fftshift(freqs)

plt.plot(freqs, PSD)
plt.show()
Antworten