Strukturdynamik 2.5-1 Prof. Dr. Wandinger 2.5 Zeitreihenanalyse mit Octave Lösungen Aufgabe 1: Octave-Skript zur Lösung der Aufgabe: # Übungsblatt 2.5, Aufgabe 1: Wasserfall # # -----------------------------------------------------set(0, "defaultlinelinewidth", 2); # Konstanten nbin = 50; % Intervalle für die Häufigkeitsverteilung # Daten einlesen [x, fs] = wavread("u2_5_1.wav"); # Mittelwerte xm = mean(x); s2 = var(x); s = sqrt(s2); printf("Mittelwert printf("Varianz printf("Standardabweichung = %8.5f\n", xm); = %8.5f\n", s2); = %8.5f\n", s); # Kurtosis und Schiefe b2 = kurtosis(x); g1 = skewness(x); printf("Kurtosis printf("Schiefe = %8.5f\n", b2); = %8.5f\n", g1); # Häufigkeitsverteilung xmax = max(abs(x)); edges = linspace(-xmax, xmax, nbin + 1); xc = 0.5 * (edges(1 : nbin) + edges(2 : end)); 2. Übertragungsfunktionen 10.04.15 Strukturdynamik 2.5-2 Prof. Dr. Wandinger N = hist(x, xc); # Wahrscheinlichkeitsdichtefunktion dx = mean(diff(edges)); pdfx = N / (length(x) * dx); pdfg = normpdf(xc, xm, s); # Ausgabe figure(1, "position", [100, 500, 600, 600], ... "paperposition", [0, 0, 12.5, 8.5]); plot(xc, pdfx, "color", "green", "marker", "+", ... xc, pdfg, "color", "red"); legend("Daten", "Gauss"); legend("boxoff"); legend("left"); grid; xlabel("x"); ylabel("p(x)"); print("u2_5_1.jpg", "-djpg", "-FArial:12"); Wahrscheinlichkeitsdichte: Ausgabe: Mittelwert 2. Übertragungsfunktionen = -0.00279 10.04.15 Strukturdynamik Varianz Standardabweichung Kurtosis Schiefe 2.5-3 = = = = Prof. Dr. Wandinger 0.00957 0.09781 3.10774 0.00994 Es handelt sich mit sehr guter Näherung um einen Gaußschen stochastischen Prozess. Aufgabe 2: Octave-Skript zur Lösung der Aufgabe: # Übungsblatt 2.5, Aufgabe 2: # Kovarianzen und Leistungsdichtespektren # # -----------------------------------------------------set(0, "defaultlinelinewidth", 1); colors = {"green", "blue", "magenta", "cyan", "black"}; # Parameter für Berechnung der Leistungsdichtespektren lenw = 1024; overlap = 0.7; % Fensterlänge % Überlappungsfaktor # Daten einlesen data = dlmread("u2_5_2.csv"); [nt, nr] = size(data); nr = nr - 1; t = data(:, 1); x = data(:, 2 : end); dt = mean(diff(t)); fs = 1 / dt; # Kovarianzen maxlag = floor(0.1 * nt); for k = 1 : nr [R(:, k), lags] = xcov(x(:, k), maxlag, "unbiased"); end tau = lags * dt; Rm = mean(R, 2); 2. Übertragungsfunktionen 10.04.15 Strukturdynamik 2.5-4 Prof. Dr. Wandinger # Leistungsdichtespektren for k = 1 : nr [G(:,k), f] = pwelch(x(:,k),lenw,overlap,[],fs); end Gm = mean(G, 2); # Varianz s2x = mean(var(x)); s2G = trapz(f, Gm); printf("Varianz aus Zeitreihe = %8.5f\n", s2x); printf("Varianz aus PSD = %8.5f\n", s2G); # Ausgabe figure(1, "position", [10, 500, 1000, 500], ... "paperposition", [0, 0, 17, 7.5]); hold on plot(tau, Rm, "color", "red", "linewidth", 2); text{1} = "Gemittelt"; for k = 2 : 2 : nr l = k / 2; plot(tau, R(:, k), "color", colors{l}); text{l + 1} = sprintf("Realisierung %2d", k); end hold off legend(text); legend("boxoff"); legend("left"); set(gca(), "xlim", [0, tau(end)]); grid; xlabel('\tau'); ylabel('R_{xx}'); print("u2_5_2a.jpg", "-djpg", "-FArial:14"); figure(2, "position", [10, 10, 1000, 500], ... "paperposition", [0, 0, 17, 7.5]); hold on plot(f, Gm, "color", "red", "linewidth", 2); text{1} = "Gemittelt"; for k = 2 : 2 : nr l = k / 2; plot(f, G(:, k), "color", colors{l}); text{l + 1} = sprintf("Realisierung %2d", k); 2. Übertragungsfunktionen 10.04.15 Strukturdynamik 2.5-5 Prof. Dr. Wandinger end hold off legend(text); legend("boxoff"); legend("left"); set(gca(), "xlim", [0, 50]); grid; xlabel('f'); ylabel('G_{xx}'); print("u2_5_2b.jpg", "-djpg", "-FArial:14"); Kovarianzen: Leistungsdichtespektren: 2. Übertragungsfunktionen 10.04.15 Strukturdynamik 2.5-6 Prof. Dr. Wandinger Vergleich der Varianzen: – Berechnung aus Zeitreihe: s2 = 3,712 – Berechnung aus Leistungsdichtespektrum: s2 = 3,796 Die Mittelung über die Realisierungen führt zu einer deutlichen Glättung der Kovarianz und des Leistungsdichtespektrums. Aufgabe 3: Octave-Skript zur Lösung der Aufgabe: # Übungsblatt 2.5, Aufgabe 3: # Leistungs- und Kreuzleistungsdichtespektrum # # ----------------------------------------------------set(0, "defaultlinelinewidth", 2); # Parameter für Berechnung der Leistungsdichtespektren lenw = overlap = 512; 0.5; % Fensterlänge % Überlappungsfaktor # Daten einlesen data = dlmread("u2_5_3.csv"); t x y nt dt fs = = = = = = data(:, 1); data(:, 2); data(:, 3); length(t); mean(diff(t)); 1 / dt; # Auto- und Kreuzkorrelation maxlag [Rxx, lags] Ryy Rxy tau = = = = = floor(0.1 * nt); xcorr(x, maxlag, "unbiased"); xcorr(y, maxlag, "unbiased"); xcorr(x, y, maxlag, "unbiased"); lags * dt; # Leistungs- und Kreuzleistungsdichtespektren [Gxx, f] = pwelch(x, lenw, overlap, [], fs); Gyy = pwelch(y, lenw, overlap, [], fs); 2. Übertragungsfunktionen 10.04.15 Strukturdynamik Gxy 2.5-7 Prof. Dr. Wandinger = cpsd(x, y, lenw, overlap, [], fs); # Ausgabe figure(1, "position", [10, 100, 1000, 500], ... "paperposition", [0, 0, 15, 7.5]); plot(tau, Rxx, "color", "red", tau, Ryy, "color", "green", ... tau, Rxy, "color", "blue"); legend("R_{xx}", "R_{yy}", "R_{xy}"); legend("boxoff"); legend("left"); set(gca(), "xlim", [tau(1), tau(end)]); grid; xlabel('\tau [s]'); print("u2_5_3a.jpg", "-djpg", "-FArial:14"); figure(2, "position", [10, 500, 1000, 500], ... "paperposition", [0, 0, 17, 9.5]); subplot(1, 2, 1); plot(f, Gxx, "color", "red", f, Gyy, "color", "green"); legend("G_{xx}", "G_{yy}"); legend("boxoff"); legend("left"); set(gca(), "xlim", [0, 50]); grid; xlabel("f [Hz]"); subplot(1, 2, 2); plot(f, real(Gxy), "color", "red", ... f, imag(Gxy), "color", "green"); legend("Re(G_{xy})", "Im(G_{xy})"); legend("boxoff"); legend("left"); set(gca(), "xlim", [0, 50]); grid; xlabel("f [Hz]"); print("u2_5_3b.jpg", "-djpg", "-FArial:14"); 2. Übertragungsfunktionen 10.04.15 Strukturdynamik 2.5-8 Prof. Dr. Wandinger Korrelationen: Leistungs- und Kreuzleistungsdichtespektren: 2. Übertragungsfunktionen 10.04.15
© Copyright 2024 ExpyDoc