ich habe als Rohdaten ein 2D Feld mit einer turbulenten Windgeschwindigkeitskomponente u(y,x) und möchte hierfür das Leistungsdichtespektrum berechnen und darstellen (Gitterweite jeweils 2.5 m und Ausdehnung in x und y Richtung 640m). Zur Überprüfung, ob alles geklappt hat, berechne ich anschließend das Integral des Spektrums, welches nach meinem Kenntnisstand die Varianz der Größe u(x,y) ergeben müsste. Mein bisheriger Ansatz mit numpy sieht wie folgt aus:
Code: Alles auswählen
psd = (np.abs(np.fft.fft2(u[:,:])))**2
psd2 = np.mean(psdfff,axis=0) #Mittelung der PSD's entlang y
freqs = np.fft.fftfreq(257,2.5) #Bestimmung der zugehörigen frequenzen (Einheit cycles/m)
idx = np.argsort(freqs)
plt.loglog(freqs[idx],psd2[idx]) # plotten. Die Form des spetrums entspricht gut theoretischen Überlegungen (Kolmogorov Spektrum)
variance = scipy.integrate.simps(psd2[idx],x=freqs[idx]) #Varianz über Integration des Spektrums
u_var = np.var(u[:,:]) #Varianz über np.var
Vielen Dank im Voraus