Energiedichtespektrum

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
ChGr
User
Beiträge: 4
Registriert: Montag 1. August 2016, 17:18

Hallo zusammen,

ich bin gerade dabei mich mit der Messung von Turbulenz (in Luftströmungen) zu beschäftigen und möchte dabei ein 1D-Hitzdrahtsignal (enthält die Geschwindigkeitsfluktuationen) auswerten. Dabei möchte ich das Energiedichtespektrum des Signals darstellen. Dabei fällt es mir schwer einen Überblick über die versch. Möglichkeiten der Berechnung des Spektrums der Energiedichte (Numpy, Scipy, Matplotlib, ...) zu finden. Jede von den Möglichkeiten scheint das irgendwie anders zu machen. Dies zeigt sich in deutlich anderen y-Achsenabschnitten.

Kann mir da einer von euch weiterhelfen?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@ChGr: mit Matplotlib kann man ja nichts ausrechnen. Wenn Du verschiedene Ergebnisse erhältst, scheinst Du irgendetwas unterschiedliches zu machen. Ohne genau zu wissen, was das ist, läßt sich Dir aber schlecht helfen.
ChGr
User
Beiträge: 4
Registriert: Montag 1. August 2016, 17:18

Hey Sirius,

Variante 1 ist:

Code: Alles auswählen

def powerspec(x):
    hann = np.hanning(len(x))
    s = np.fft.fft(hann*x)
    return np.real(s*np.conjugate(s))
Variante 2:

Code: Alles auswählen

f, Pxx_den = signal.welch(E, fs=fs, window='hann', nperseg=1024)
Variante 3:

Code: Alles auswählen

f, Pxx_den = matplotlib.mlab.psd(E, NFFT=2**12, Fs=fs)
Variante 4:

Code: Alles auswählen

Pxx_den =np.abs(np.fft.fft(x))**2
Variante 5:

Code: Alles auswählen

f, Pxx_den = signal.periodogram(x, fs)
Laut Theorie sollte eigentl. Variante 1 passen oder?
ChGr
User
Beiträge: 4
Registriert: Montag 1. August 2016, 17:18

keiner da der mir da weiter helfen kann? :(
Antworten