4. Spektralanalyse ● ● ● 26.04.16 Die Spektralanalyse ermittelt, welche Beiträge die einzelnen Frequenzen zu einem Signal liefern. Je nach Art des Zeitsignals wird der Frequenzgehalt durch die Fourier-Transformation, die Fourier-Reihe oder das Leistungsdichtespektrum beschrieben. Mit Hilfe der diskreten Fourier-Transformation lassen sich in allen drei Fällen Abschätzungen für den Frequenzgehalt aus endlichen Zeitreihen berechnen. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-1 4. Spektralanalyse 26.04.16 4.1 Transiente Signale 4.2 Periodische Signale 4.3 Stochastische Signale Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-2 4.1 Transiente Signale ● ● 26.04.16 Der Frequenzgehalt von transienten Signalen wird durch ihre Fourier-Transformation beschrieben. Aufgabenstellung: – Gegeben ist die Zeitreihe x n =x (n Δ t ) , n=0,… , N −1, die durch Abtasten mit der Abtastrate fS aus dem transienten Signal x(t) gewonnen wurde. – Es wird vorausgesetzt, dass die Fourier-Transformation des Zeitsignals existiert und beim Abtasten die Nyquist-Bedingung fS ≥ 2 fA eingehalten wurde. – Mit Hilfe der Zeitreihe soll eine Abschätzung für die FourierTransformation gefunden werden. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-3 4.1 Transiente Signale ● 26.04.16 Abschätzung der Fourier-Transformation: – Nach der Rechteckregel wird das Fourier-Integral approximiert durch N −1 −2 π i f n Δ t X^ ( f )= ∑ x n e Δ t , − f A≤ f ≤ f A n= 0 – Auswertung für die Frequenzen k k N N f k= f S= , − ≤k≤ N N Δt 2 2 ergibt: N −1 −2 π i k n /N X^ ( f k )=Δ t ∑ x n e =Δ t X k n= 0 Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-4 4.1 Transiente Signale 26.04.16 – Wegen X-N/2 = XN/2 ergeben sich nur N verschiedene Werte. – Die Indizes 0 ≤ k ≤ N/2 entsprechen den positiven Frequenzen 0 ≤ fk ≤ fA. – Für die Frequenzauflösung gilt: fS 1 1 Δ f = f k +1− f k = = = N N Δt T Die Frequenzauflösung ist umgekehrt proportional zur Anzahl der Messwerte und umgekehrt proportional zur Messdauer T. – – Die Frequenzauflösung lässt sich erhöhen, indem die Zeitreihe durch Anfügen von Nullen verlängert wird (Zero padding). Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-5 26.04.16 4.1 Transiente Signale ● Inverse Transformation: – Da das Zeitsignal nach Voraussetzung nur Frequenzen mit |f| ≤ fA enthält, gilt: fA x (t )= ∫ X ( f ) e 2πi f t df −fA – Approximation nach der Rechteckregel ergibt: N / 2−1 x^ (t )= 1 2π i k Δ f t ^ X e Δ f = ∑ k N Δt k=−N /2 1 = N Prof. Dr. Wandinger N / 2−1 ∑ k=−N /2 Xk e N / 2−1 ∑ k=−N /2 Xk Δt e 2πik Δ f t 2πi k Δ f t 3. Zeitreihenanalyse Strukturdynamik 3.4-6 26.04.16 4.1 Transiente Signale – Für t = nΔt gilt: x^ ( n Δ t )= – 1 N Δ f t =n / N N /2−1 ∑ k=−N / 2 Xk e 2 π i k n /N = 1 N N −1 ∑ k =0 Xk e 2 π i k n/ N = xn Die Fourier-Reihe x^ (t )= 1 N N /2−1 ∑ k =−N / 2 Xk e 2 π i k t /T interpoliert im Zeitbereich 0 ≤ t ≤ T das Messsignal und setzt sich außerhalb dieses Intervalls periodisch fort. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-7 26.04.16 4.1 Transiente Signale ● Ergebnisse: – Zwischen der diskreten Fourier-Transformation der Zeitreihe und der Fourier-Transformation des Zeitsignals bestehen folgende Zusammenhänge: k 1 X^ f S =Δ t X k , x n = N NΔt ( ) – N −1 ∑ k =0 k 2 π i k n/ N X^ f S e N ( ) Für die Berechnung mit GNU/Octave können die Funktionen fft und ifft verwendet werden. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-8 4.1 Transiente Signale ● 26.04.16 Beispiel: – Für den Impuls { t sin π , 0≤t ≤T x (t )= T 0, t >T 2 ( ) soll die Fourier-Transformation mit GNU/Octave berechnet werden. – Dabei soll der Einfluss der Abtastrate untersucht werden. – Zahlenwert: T = 1 ms Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-9 4.1 Transiente Signale – 26.04.16 Octave-Skript: # Daten T n fA fS = 0.001; = 10; = 2 / T; = [2 * fA, % % % fA]; % Impulsdauer Messdauer = n * T Nyquist-Frequenz Abtastraten # Rechnung for m = 1 : 2 dt = 1 / fS(m); t = 0 : dt : T; x = sin(pi * t / T).^2; N = n * length(t); N = N + mod(N, 2); Xd = fft(x, N); X{m} = dt * Xd(1 : N/2 + 1) / T; f{m} = T * (0 : N/2) * fS(m) / N; end Prof. Dr. Wandinger 3. Zeitreihenanalyse % Impuls % N gerade % X/T, k = 0, ..., N/2 % T * f Strukturdynamik 3.4-10 4.1 Transiente Signale 26.04.16 # Ausgabe set(0, "defaultlinelinewidth", 2); figure(1, "position", [100, 100, 800, 400], ... "paperposition", [0, 0, 24, 13]); subplot(1, 2, 1); plot(f{1}, real(X{1}), "color", "green", ... f{2}, real(X{2}), "color", "red"); legend("f_S = 4 / T", "f_S = 2 / T"); grid; xlabel("f T"); ylabel("Re(X) / T"); subplot(1, 2, 2); plot(f{1}, imag(X{1}), "color", "green", ... f{2}, imag(X{2}), "color", "red"); legend("f_S = 4 / T", "f_S = 2 / T"); grid; xlabel("f T"); ylabel("Im(X) / T"); print("v3_4_1.jpg", "-djpg", "-FArial:14"); Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-11 4.1 Transiente Signale Prof. Dr. Wandinger 3. Zeitreihenanalyse 26.04.16 Strukturdynamik 3.4-12 26.04.16 4.2 Periodische Signale ● ● Der Frequenzgehalt von periodischen Signalen wird durch die Koeffizienten der Fourier-Reihe beschrieben. Komplexe Fourier-Reihe: – Die reelle Fourier-Reihe eines Zeitsignals der Periode T ist: ∞ x (t )=c 0 + ∑ k=1 – ( ( t t c k cos 2 π k + s k sin 2 π k T T ) ( )) Für die trigonometrischen Funktionen gilt: 1 cos ( 2 π k t /T )= ( e 2 π i k t /T + e−2 π i k t /T ) 2 1 ( 2 π i k t /T −2 π i k t /T ) sin ( 2 π k t /T ) = e −e 2i Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-13 26.04.16 4.2 Periodische Signale – Einsetzen ergibt: 1 ∞ 2 π i k t /T −2 π i k t /T x (t )=c 0 + ∑ [ ( c k −i s k ) e + ( c k +i s k ) e ] 2 k=1 – Mit C k =c k −i s k , C 0 =2 c 0 , C −k = C̄ k 1 ∞ 2 π i k t /T x (t )= C e vereinfacht sich die Reihe zu: ∑ 2 k=−∞ k ● Periodische Zeitreihe: – Abtasten einer Periode des Zeitsignals mit dem Zeitschritt Δt ergibt: 1 ∞ 2 π i k n Δ t /T x n =x ( n Δ t )= ∑ C k e , n=0,…, N −1 2 k=−∞ Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-14 4.2 Periodische Signale – 26.04.16 Wegen x ( N Δ t )=x ( 0) besteht folgender Zusammenhang zwischen Periode, Zeitschritt und Anzahl von Messwerten: T =N Δ t → Δ t /T =1/ N – Damit lautet die Zeitreihe: 1 ∞ 2πi k n/N x n= ∑ C k e , n=0,… , N −1 2 k=−∞ – 2 π i (k + N ) n/ N 2πi kn/N 2 πi n 2 π i k n/ N =e e =e Wegen e enthält die unendliche Reihe nur N verschiedene komplexe Exponentialfunktionen. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-15 26.04.16 4.2 Periodische Signale – Die Zeitreihe lässt sich daher als endliche Summe schreiben: N / 2−1 1 ~ x n = ∑ C k e 2 π i k n/ N , n=0,… , N −1 2 k=−N /2 – Die größte enthaltene Frequenz ist: fS N 1 N 1 1 f max = f N /2 = = = = =fA 2 T 2 N Δt 2Δt 2 – Wenn die Nyquist-Bedingung erfüllt ist, gilt: ~ C k =C k Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-16 26.04.16 4.2 Periodische Signale ● Zusammenhang mit der diskreten Fourier-Transformation: – Mit den Werten Xk der diskreten Fourier-Transformation der Zeitreihe gilt: 1 x n= N – N −1 ∑ k =0 N / 2−1 ∑ k=−N /2 Xk e 2 π i k n/ N Daraus folgt: C k =c k −i s k = – 1 2 π i k n/ N Xk e = N 2 2 2 X k → c k = ℜ(X k ) , s k =− ℑ( X k ) N N N Der Index k ist gleich der Anzahl der Perioden des entsprechenden Beitrags während der Dauer des Signals. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-17 4.2 Periodische Signale – ● 26.04.16 Die angegebenen Beziehungen gelten auch dann, wenn die Länge des Zeitsignals ein ganzzahliges Vielfaches der Periode ist. Beispiel: – Betrachtet wird eine periodische Funktion mit der Periode T = 0,1 s. – Die Koeffizienten der Fourier-Reihe haben die Werte s1 = 2, c3 = 5, s4 = -1,5, c4 = 2. Alle anderen Koeffizienten sind null. – Die zugehörigen Frequenzen sind f1 = 10 Hz, f3 = 30 Hz und f4 = 40 Hz. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-18 4.2 Periodische Signale – 26.04.16 Das folgende Skript erzeugt eine Zeitreihe mit zwei Perioden und berechnet daraus die Koeffizienten der FourierReihe: # Daten T f1 f3 f4 nT = = = = = 0.1; 10; s1 = 2; 30; c3 = 5; 40; s4 = -1.5; c4 = 2 2; % % % % % Periode Frequenz 1 Frequenz 2 Frequenz 3 Anzahl Perioden % % % % Abtastrate Zeitschritt Anzahl Messpunkte Zeitpunkte # Zeitreihe fS = dt = N = t = pt = x = x += 2.5 * f4; 1 / fS; nT * T * fS; (0 : N - 1) * dt; 2 * pi * t; s1 * sin(f1 * pt) + c3 s4 * sin(f4 * pt) + c4 Prof. Dr. Wandinger * cos(f3 * pt); * cos(f4 * pt); 3. Zeitreihenanalyse Strukturdynamik 3.4-19 26.04.16 4.2 Periodische Signale # Fourier-Transformation C f c s = 2 * fft(x) / N; C(1)= 0.5 * C(1); = (0 : N/2) / (nT *T); = real(C(1 : N/2 + 1)); = -imag(C(1 : N/2 + 1)); # Ausgabe figure(1, "position", [100, 500, 1000, 800], ... "paperposition", [0, 0, 25, 14]); subplot(2, 1, 1); bar(f, c, "barwidth", 0.2, "edgecolor", "r",... "facecolor", "r"); grid; axis("labely"); ylabel("c"); subplot(2, 1, 2, "position", [0.13, 0.17, 0.775,0.34]); bar(f, s, "barwidth", 0.2, "edgecolor", "g",... "facecolor", "g"); grid; Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-20 4.2 Periodische Signale 26.04.16 xlabel("f [Hz]"); ylabel("s"); print("v3_4_2.jpg", "-djpg", "-FArial:14"); – Das Bild auf der folgenden Seite zeigt, dass die Koeffizienten der Fourier-Reihe korrekt identifiziert und ihren Frequenzen zugeordnet werden. – Die Methode kann verwendet werden, um die Fourier-Koeffizienten von analytisch gegebenen Funktionen zu ermitteln. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-21 4.2 Periodische Signale Prof. Dr. Wandinger 3. Zeitreihenanalyse 26.04.16 Strukturdynamik 3.4-22 4.2 Periodische Signale ● 26.04.16 Gemessene Zeitreihen: – Bei gemessenen Zeitreihen ist die Messdauer in der Regel kein ganzzahliges Vielfaches der Periode. – Die Periode ist meist nicht bekannt. – In diesem Fall liefert die folgende Methode brauchbare Näherungen für die Amplituden der Koeffizienten der FourierReihe und die zugehörigen Frequenzen: ● ● Die Zeitreihe wird mit einer Fensterfunktion w(t) gewichtet: x wn =w n x n Die diskrete Fourier-Transformation der gewichteten Zeitreihe liefert die Koeffizienten Xwk . Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-23 26.04.16 4.2 Periodische Signale ● Daraus werden Näherungen für die Amplituden berechnet: N −1 1 2 a 0 = |X w 0|, a k = √ c 2k + s 2k = |X wk| mit S = ∑ w n S S n=0 – Hinweise: ● ● – Die Messdauer muss so lang sein, dass sie eine große Anzahl von Perioden enthält. Für die Phasen ergeben sich keine brauchbaren Näherungen. Fensterfunktionen: ● Die Fensterfunktionen müssen die Bedingung w 0 =w N −1=0 erfüllen. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-24 26.04.16 4.2 Periodische Signale – Hanning-Fenster: ● – Flattop-Fenster: Das Hanning-Fenster ist definiert durch x (t )=sin 2 (π t /T ) ● – Es liefert gute Näherungen für die Amplituden bei gleichzeitig kleiner Bandbreite und wird daher als Standard verwendet. ● Das Flattop-Fenster liefert sehr genaue Näherungen für die Amplituden bei einer größeren Bandbreite. Daneben gibt es eine Vielzahl weiterer Fenster. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-25 4.2 Periodische Signale ● 26.04.16 Beispiel: – Untersucht wird die Zeitreihe einer periodischen Funktion mit der Periode T = 0,1 s. – Die Koeffizienten der Fourier-Reihe haben die Werte s1 = 2, c3 = 5, s4 = -1,5, c4 = 2. Alle anderen Koeffizienten sind null. – Die zugehörigen Frequenzen sind f1 = 10 Hz, f3 = 30 Hz und f4 = 40 Hz. – Die Messdauer beträgt 20,5T. – Das folgende Skript untersucht den Einfluss der Fenster auf die Näherungen für die Amplituden. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-26 4.2 Periodische Signale # Daten T = 0.1; % f1 = 10; s1 = 2; % f3 = 30; c3 = 5; % f4 = 40; s4 = -1.5; c4 = 2; % nT = 20.5; % # Zeitreihe fS = 3 * f4; dt = 1 / fS; TM = nT * T; N = fix(TM * fS); t = (0 : N - 1) * dt; pt = 2 * pi * t; x = s1 * sin(f1 * pt) + c3 x += s4 * sin(f4 * pt) + c4 % % % % % 26.04.16 Periode Frequenz 1 Frequenz 2 Frequenz 3 Anzahl Perioden Abtastrate Zeitschritt Messdauer Anzahl Messpunkte Zeitpunkte * cos(f3 * pt); * cos(f4 * pt); # Fourier-Transformation ohne Fenster C = 2 * fft(x) / N; C(1) = 0.5 * C(1); a = abs(C(1 : N/2 + 1)); f = (0 : N/2) * fS / N; Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-27 26.04.16 4.2 Periodische Signale # Fourier-Transformation mit Hanning-Fenster wh = hanning(N)'; Ch = 2 * fft(wh .* x) / sum(wh); Ch(1) = 0.5 * Ch(1); ah = abs(Ch(1 : N/2 + 1)); # Fourier-Transformation mit Flattop-Fenster wf = flattopwin(N)'; Cf = 2 * fft(wf .* x) / sum(wf); Cf(1) = 0.5 * Cf(1); af = abs(Cf(1 : N/2 + 1)); # Vergleich figure(1, "position", [100, 500, 1000, 750], ... "paperposition", [0, 0, 25, 13]); set(1, "defaultlinelinewidth", 2); plot(f, a, "color", "red", f, ah, "color", "green", ... f, af, "color", "blue"); legend("kein Fenster", "Hanning-Fenster", "Flattop-Fenster"); legend("boxoff"); legend("left"); grid; xlabel("f [Hz]"); ylabel("Amplitude"); print("v3_4_2b.jpg", "-djpg", "-FArial:14"); Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-28 4.2 Periodische Signale Prof. Dr. Wandinger 3. Zeitreihenanalyse 26.04.16 Strukturdynamik 3.4-29 4.3 Stochastische Signale ● ● 26.04.16 Der Frequenzgehalt von stationären stochastischen Prozessen wird durch das Leistungsdichtespektrum beschrieben. Das Standardverfahren zur Abschätzung von Leistungsund Kreuzleistungsdichtespektren ist die Methode von Welch: – Ausgangspunkt ist die Gleichung 2 E [ X k ( f ,T ) Ȳ k ( f ,T )] . T →∞ T G xy ( f )=lim – Anstelle des Grenzübergangs wird eine feste Messdauer Tm verwendet, die ausreichend lang sein muss. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-30 26.04.16 4.3 Stochastische Signale – Der Erwartungswert wird durch einen über die Zeitachse gebildeten Mittelwert approximiert. – Dazu wird die Zeitreihe in M Fenster der gleichen Länge T unterteilt. Die Fenster dürfen sich überlappen. – Für jedes Fenster werden die beiden Zeitreihen mit einer Fensterfunktion multipliziert. Anschließend wird die endliche Fourier-Transformation berechnet. – Die Schätzung für das Kreuzleistungsdichtespektrum ist: 2 ^ G xy ( f k )= MT – M ∑ X^ wm ( f k ,T ) Y¯^ wm ( f k , T ) , m=1 f k =k /T Für Y = X ergibt sich das Leistungsdichtespektrum. Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-31 26.04.16 4.3 Stochastische Signale – Das Standard-Verfahren verwendet ein Hanning-Fenster und eine Überlappung von 50 %. – Funktionen in GNU/Octave: ● Leistungsdichtespektrum: [Gxx, f] = pwelch(x,window,overlap,[],fs) ● Kreuzleistungsdichtespektrum: [Gxy, f] = cpsd(x,y,window,overlap,[],fs) ● Die Argumente window und overlap können weggelassen werden: [Gxx, f] = pwelch(x,[],[],[],fs) Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-32 26.04.16 4.3 Stochastische Signale – Argumente: x, y window overlap fs Überlappungsfaktor (zwischen 0 und 1) Abtastrate fS in Hz Gxx, Gxy Leistungs- bzw. Kreuzleistungsdichte spektrum Frequenzen f – Zeitreihen Länge NW des Fensters Für die Frequenzauflösung gilt: Prof. Dr. Wandinger 3. Zeitreihenanalyse Δ f= f S / N W Strukturdynamik 3.4-33 26.04.16 4.3 Stochastische Signale ● Beispiel: – Für die am vorderen und hinteren rechten Fahrwerksdom gemessenen Vertikalbeschleunigungen werden die Leistungs- und Kreuzleistungsdichtespektren berechnet. – Skript: set(0, "defaultlinelinewidth", 2); fname = "../../Daten/Car/az.csv"; % Eingabedatei lenw = 1024; % Fensterlänge overlap = 0.5; % Überlappungsfaktor # Daten einlesen und aufbereiten data t dt fs az = = = = = dlmread(fname); data(:, 1); mean(diff(t)); 1 / dt; data(:, [3, 4]); Prof. Dr. Wandinger % % % % 3. Zeitreihenanalyse Zeitpunkte Zeitschritt Abtastrate Beschl. vorne / hinten Strukturdynamik 3.4-34 26.04.16 4.3 Stochastische Signale # Leistungs - und Kreuzleistungsdichtespektren [Gvv, f] = pwelch(az(:, 1), lenw, overlap, [], fs); [Ghh, f] = pwelch(az(:, 2), lenw, overlap, [], fs); [Ghv, f] = cpsd(az(:, 2), az(:, 1), lenw, overlap, [], fs); # Kohärenz ghv = Ghv .* conj(Ghv) ./ (Gvv .* Ghh); # Ausgabe figure(1, "position", [1100, 400, 1000, 500], ... "paperposition", [0, 0, 25, 13.5]); subplot(1, 2, 1); loglog(f(2 : end), Gvv(2 : end), "color", "green", ... f(2 : end), Ghh(2 : end), "color", "red"); legend("G_{vv}", "G_{hh}"); legend("boxoff"); legend("left"); grid; xlabel("f [Hz]"); ylabel("[m^2/(s^4 Hz)]") Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-35 4.3 Stochastische Signale 26.04.16 subplot(1, 2, 2); semilogx(f(2: end), ghv(2: end), "color", "blue"); legend('\gamma^2_{hv}'); legend("boxoff"); legend("left"); grid; xlabel("f [Hz]"); print("v3_4_3.jpg", "-djpg", "-FArial:14"); Prof. Dr. Wandinger 3. Zeitreihenanalyse Strukturdynamik 3.4-36 4.3 Stochastische Signale Prof. Dr. Wandinger 3. Zeitreihenanalyse 26.04.16 Strukturdynamik 3.4-37
© Copyright 2024 ExpyDoc