PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spektralanalyse (Fourieranalyse)


BAGZZlash
2011-02-01, 15:12:37
Was mich schon lange interessiert und worauf ich gerade mal wieder gestoßen bin: Spektralanalyse.

Ich beschäftige mich gerade ein bißchen mit R (http://www.r-project.org/) und in meiner Doku gibt's ein kleines Programmierbeispiel anhand einer Spektralanalyse.
Schon oft hab' ich gelesen, dass dabei mittels einer FFT Daten vom "Zeit"-Raum in den Frequenzraum überführt werden. Wikipedia bringt außerdem dieses Beispiel (http://de.wikipedia.org/wiki/Fourieranalyse#Anwendungsbeispiel):


Als Beispiel (mit Diskretheit): Eine Schwingung wird mit einer Frequenz von 44,1 kHz abgetastet. Nun wird mit den so erhaltenen Werten eine komplexwertige Diskrete Fourier-Transformation mit 512 Punkten durchgeführt. Man erhält das Amplitudenspektrum, deren Frequenzwerte von 0 bis 511 läuft. Allerdings ist dabei Folgendes zu beachten: Das eigentliche Amplitudenspektrum läuft nur von 0 bis 255. Ab 256 bis 511 ergibt sich eine Spiegelung desselben. Dieses hängt mit den „negativen Frequenzen“ zusammen, die zwar physikalisch keine Rolle spielen, aber mathematisch existieren. Bei der o. g. Abtastfrequenz ergibt sich nach dem Abtasttheorem eine Darstellung von 0 bis 22,05 kHz. Das bedeutet: 0 steht für > 0 Hz (da keine Gleichstromanteile vorhanden sind) und 254 steht für 22,05 kHz.


Mein Problem ist: Ich kapier' das nicht. Was sagt mir das denn?
In der folgenden Abbildung sieht man oben einen simulierten ARMA (http://de.wikipedia.org/wiki/ARMA-Modell)-Pfad. Egal, irgendwelche Daten halt. Darunter sieht man die Spektralanalyse dieser Daten. Das Spektrum hat offenbar Ausprägungen von 0 bis 15 und die Frequenz zerfällt sukzessive von 0 bis 0,5. Was bedeutet das? Was sagt mir das? Kann mir das jemand erklären?

38673

Zephyroth
2011-02-01, 15:35:20
Die Spektralanalyse ist eine eigene Wissenschaft, teilweise gehört sie zu meinem beruflichen Aufgabenfeld. Soviel dazu.

Du hast als Anfang gleich ein Signal genommen, das an ein Rosa Rauschen (http://de.wikipedia.org/wiki/Rosa_Rauschen) erinnert. Leider weist dies keine periodischen Elemente auf, sondern ist ein stochastisches Signal.

Wenn du wirklich erst am Anfang der Spektralanalyse stehst und so ein schönes Programm hast, dann beginn' einfach mit einem Sinus. Verändere die Amplitude, ändere die Frequenz und danach beides. Du wirst im Spektrogramm eine Nadel sehen die auf deine Eingaben reagiert. Die Nadel gibt dir auf der X-Achse an welche Frequenz dein Sinus hat und die Höhe welche Amplitude. Danach sollte klar sein, was eine FFT grundsätzlich (es gibt dann noch verschiedene Skalierungsarten, dazu erst viel später) zeigt.

Du kannst ein jedes beliebige Signal aus der Summe von reinen Sinus-Schwingungen (verschiedenster Frequenz, Phasenlage und Amplitude) erzeugen. Die FFT stellt nun diese Frequenzen dar. Probier nach dem reinen Sinus ein Rechteck-Signal und schau was passiert. Da wirst du dann mehrere Nadeln mit abfallender Amplitude sehen. Die erste ist deine Grundfrequenz, die zweite (sofern das Signal gut ist) findest du bei der 3x Frequenz, die 3. bei der 5x Frequenz. Das sind die Oberwellen.

Je komplexer das Signal, desto mehr Frequenzen sind drinnen. Alle Frequenzen hast du beim Rauschen, sehr ähnlich deinem Beispiel. Deshalb ist das zum Verständnis der FFT am Anfang ungeeignet, weil man sich darunter nichts vorstellen kann.

Grüße,
Zeph

BAGZZlash
2011-02-01, 16:58:53
Hi!

Okay, danke für Deine Antwort. Leider macht mich das auch nicht wirklich schlauer. Ich hab' getan wie mir geheißen:


Ausgangs-Sinus:
38674

Doppelte Frequenz:
38675

Halbierte Amplitude im Vergleich zum Ausgangs-Sinus (man beachte die geänderte Skalierung der Grafik):
38676

Rechteck:
38677


Und nun? Was sagt mir das?

ux-3
2011-02-01, 17:15:47
Ist dir klar, was eine Fourier-Reihe ist? Sonst ist das Tapsen im Nebel.

Und was das Spektrum angeht: Kann es sein, dass dein Fenster viel zu weit ist?

Edit: Stell mal die Achse im Spektrum so, dass sie nur bis max. ca. 0,01 geht.

Im letzten Bild Mitte siehst du doch die Obertöne, von denen Zephyroth sprach.

pest
2011-02-01, 18:57:21
das man das Frequenz nennt ist halt Konvention weil viel Motivation aus der Physik dahinter steckt.

Eine Fouriertransformation macht nichts anderes, als eine Funktion zu nehmen, und eine andere auszugeben. Jede stetige Funktion kann man mit Hilfe von Cosinus/Sinus approximieren.

BeetleatWar1977
2011-02-01, 19:02:11
Schau die mal das Programm an: http://www.didactronic.de/fourier.htm

Von meinem alten Berufschullehrer, könnte dem Verständnis dienlich sein;)

BAGZZlash
2011-02-01, 19:14:32
Ist dir klar, was eine Fourier-Reihe ist? Sonst ist das Tapsen im Nebel.

Eine grobe Vorstellung hab' ich, ja. Es fällt mir auch schwer, zu sagen, was genau ich nicht verstehe.


Und was das Spektrum angeht: Kann es sein, dass dein Fenster viel zu weit ist?
Edit: Stell mal die Achse im Spektrum so, dass sie nur bis max. ca. 0,01 geht.

Meinst Du jetzt die Ordinate oder die Abszisse?
Ich spiel' morgen wieder dran 'rum, wenn ich im Büro bin.


Im letzten Bild Mitte siehst du doch die Obertöne, von denen Zephyroth sprach.

Und was sagen mir die?


Die Nadel gibt dir auf der X-Achse an welche Frequenz dein Sinus hat und die Höhe welche Amplitude.
Nehmen wir mal das. Abszisse = Frequenz (http://de.wikipedia.org/wiki/Frequenz), richtig?

Sie [die Frequenz] gibt die Anzahl von sich wiederholenden Vorgängen pro Zeiteinheit, z. B. in einer Sekunde, an und kann auch als Kehrwert der Periodendauer berechnet werden.


Also bei meinem Ausgangssinus gibt's ja keine Zeiteinheiten. Aber die "Welle" wiederholt sich so alle etwa, naja, sagen wir, 600 Einheiten. Nehmen wir an, die Einheit ist "ms", also alle 600 ms (= 0,6 s) gibt's ein Wellental => 1/0,6 = 1,66. Ist die Frequenz dann 1,66 Hz?
Die Amplitude des Signals geht von -1 bis 1, also würde ich sagen, die Amplitude ist 2.
Beide Zahlen sehe ich aber im Spektraldiagramm nicht.

Tut mir leid, wenn Euch diese Fragen echt zu doof sind. Wenn Euch das zu lästig ist, kennt Ihr vielleicht 'nen nett geschriebenen Artikel im Netz dazu?

ux-3
2011-02-01, 20:33:37
Meinst Du jetzt die Ordinate oder die Abszisse?


Die Querachse. (Ordinate)

Und was sagen mir die?

Ich an deiner Stelle würde mir einen Funktionsplotter schnappen und erst mal die Synthese von Funktionen aus trigonometrischen Funktionen ansehen, also einfache Fourierreihen zu einfachen Funktionen "Term um Term" fortsetzen und immer wieder plotten. Dann wird dir hoffentlich irgendwann klar, dass Zephs Peaks diesen Bausteinen entsprechen. Dann kann man die Darstellung im Frequenzraum auch einfach "vorhersehen" ohne auch nur ein Stück zu rechnen.


Also bei meinem Ausgangssinus gibt's ja keine Zeiteinheiten. Aber die "Welle" wiederholt sich so alle etwa, naja, sagen wir, 600 628 Einheiten.

Ich gehe davon aus, das da 100*2*Pi drin stecken.


Nehmen wir an, die Einheit ist "ms", also alle 600 ms (= 0,6 s) gibt's ein Wellental => 1/0,6 = 1,66. Ist die Frequenz dann 1,66 Hz?

Ja, aber du wechselst die Einheit und deine Software wird das nicht machen.

Periodendauer T = 200Pi -> f=1/T = 0,0016

Darum hab ich vorgeschlagen, bis 0,01 zu gehen, da sollten dann auch Obertöne Platz finden.

Zephyroth
2011-02-01, 20:36:39
Ok, an und für sich funktionierts schon, nur deine Frequenz ist etwas unglücklich gewählt. Damit eine FFT wirklich gut funktioniert müssen entweder sehr viele Perioden des Signals in dem Beobachtungsfenster liegen, oder das Beobachtungsfenster ist ein ganzzahlig Vielfaches der Periodendauer. Mach einfach die Frequenz viel höher (z. B. 1000).

Ich seh' schon, da ist noch viel Arbeit notwendig. Ich helf' dir aber gerne dabei.

Grüße,
Zeph

BAGZZlash
2011-02-01, 21:21:07
Danke. :smile:
Okay, ich werd' morgen mal die Frequenz nach oben schrauben und die Spektrum-Achse kleiner skalieren.

Langenscheiss
2011-02-01, 21:33:41
Vermutlich wurde es schon gesagt, aber ich fass es noch mal zusammen:
Die Fourier-Analyse beruht darauf, dass sich im Grunde jede periodische Funktion, die zumindest stückweise stetig ist (z.B. die Rechteck-Schwingung) in eine Fourier-Reihe entwickeln lässt. Das bedeutet anschaulich, dass du diese Funktion, egal wie kompliziert sie auch scheinen mag, nach Sinus und Kosinus entwickeln kannst und diese Reihe dann zumindest im quadratischen Mittel konvergiert (für absolute Konvergenz müssen noch mehr Kriterien erfüllt sein soweit ich weiß). Dass das geht, liegt daran, dass Sinus-Kosinus-Funktionen eine VONB (vollständige orthonormale Basis) bezüglich des Raums der L-Periodischen Funktionen (L z.b 2Pi) ist, also mit den gleichen Eigenschaften der Kartesischen Basis, nur eben im Funktionenraum mit entsprechend definiertem Skalarprodukt (= das Integral über die Periode multipliziert mit Normierung). Du erhälst sozusagen die Summe ganz vieler solcher elementarer Sinus-Schwingungen mit unterschiedlicher Frequenz. Die Fourier-Koeffizienten, d.h. die Vorfaktoren jedes Summanden dieser Reihe sagen also etwas darüber aus, wie stark eine Frequenz gegenüber den anderen im gesamten Spektrum als elementare Welle vorhanden ist. Und genau diese Koeffizienten bestimmt man bei der Spektralanalyse. Dabei nutzt man die eben genannte VONS Eigenschaft der Sinus und Kosinus-Funktionen aus, in dem man mit der ursprünglichen Funktion, also im realen Fall die gemessenen Zeitdaten, und den Sinus und Kosinus-Funktionen Skalar-Produkte bildet, denn eben gerade weil diese Funktionen eine VONB des Funktionenraumes bilden, liefert das Skalarprodukt (also das Integral) mit der zu untersuchenden Funktion eben genau nur den Koeffizienten der Reihe, der die Gewichtung der gesuchten Frequenz angibt, so wie z.B. im R^3 das Skalarprodukt mit e_x eben nur die x-Komponente des Vektors liefert, d.h. z.B. auch, dass der Funktionenraum ein abzählbar unendlich dimensionaler ist.

Das Spektrum der Analyse ist eine (eventuell normierte) Auftragung der Fourier-Koeffizienten gegen die Frequenz. Willst du das ganze auf nicht periodische Funktionen erweitern, brauchst du das Fourier-Integral bzw. die Fourier-Transformation.
Der Realfall sieht allerdings so aus, dass man nur zu bestimmten Zeiten bestimmte Werte hat. Hier hilft die sogenannte disrekte Fouriertransformation (DFT) bzw. das schnelle, im Computer anwendbare, Verfahren FFT, aber das Grundprinzip bleibt das gleiche.

BAGZZlash
2011-02-01, 22:08:02
Okay, das klingt doch ganz gut. Wenn also, wie in meiner ersten Zeitreihe (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=8542926&postcount=1), im Signal ganz viele unterschiedliche Frequenzen zu finden sind, gibt es in der Fourier-Reihe eben auch entsprechend viele Summanden, für jede Frequenz (und damit jede elementare Sinus-/Kosinusschwungung) eine.

Die Höhe der entsprechenden Ausschläge im Diagramm der Spektralanalyse gibt an, welche "Bedeutung" (im übertragenen Sinne) die jeweilige Frequenz im Signal hat, welchen Stellenwert sie besitzt. Evtl. sogar, in welcher Häufigkeit sie auftritt?

Wenn das Spektraldiagramm (so wie hier) rechtsschief ist, bedeutet das, dass im Signal tieffrequente Komponenten überwiegen.

Irgendwas von meinen Ausführungen richtig?

Langenscheiss
2011-02-01, 22:27:10
Du hast es verstanden. Aber die Aussage "in welcher Häufigkeit sie auftritt" macht keinen Sinn. Exakt eine Frequenz tritt auch nur einmal als elementare Welle (also als Sinus + Kosinus bzw. Sinus mit Phase) auf. Der entsprechende Koeffizient gibt an, wie stark die gesamte "Amplitude" von dieser Frequenz beinflusst ist. Wenn z.B. die Analyse linkslastig ist, tragen viele tiefe Frequenzen bei. Der Ausschlag bei 0 ist der konstante offset der Zeitfunktion, wobei man im Grunde ja in der Reihe nur ganzzahlige Vielfache einer endlichen Grundfrequenz betrachten kann und der offset immer als zusätzlicher Summand geschrieben wird, da man ja schlecht ein ganzzahliges Vielfaches von 0 nehmen kann ;). Je kleiner du diese Grundfrequenz wählst, desto genauer analysierst du die Funktion. Du gehst halt nur davon aus, dass deine gesamte Funktion irgendeine Periode hat, die ein Vielfaches deiner Grundperiode (1/Frequenz) hat, was bei den zu analysierenden Signalen stehts der Fall ist (in guter Näherung sowieso ;) ).
Das schöne ist jetzt, dass man im Spektrum die Normalfrequenzen sieht, denn diese treten halt immer in Form von elementaren Wellen in der Fourier-Reihe auf. D.h. selbst wenn du diese Frequenzen im eigentlichen Signal nicht siehst, so sind diese Resonanzen im Fourier-Spektrum trotzdem zu sehen, denn, wie der Name schon sagt, sind Resonanzen besonders stark angeregte Frequenzen, d.h. der Vorfaktor in der Fourier-Reihe ist besonders groß, was dann widerum einen Peak im Spektrum liefert.

BAGZZlash
2011-02-01, 22:33:11
Ah, okay. Ja, ich hatte da ein Fragezeichen dahinter geschrieben, weil mir das selbst schon ein bißchen komisch vorkam. Vielen Dank! (y) :smile:

Langenscheiss
2011-02-02, 00:04:32
Ah, okay. Ja, ich hatte da ein Fragezeichen dahinter geschrieben, weil mir das selbst schon ein bißchen komisch vorkam. Vielen Dank! (y) :smile:
Dann hatte das physikalische Grundpraktikum also doch noch was gutes. Da mussten wir diesen Schmonzes immer anwenden, um Normalschwingungen von gekoppelten Pendeln und Schallresonanzen in eingespannten Metallstäben aus den gemessenen Amplituden-Zeit-Daten gut zu ermitteln.