Laden...

FFT Analyse von Realwerten - Interpretation der Ergebnisse

Erstellt von wickedcsharper vor 8 Jahren Letzter Beitrag vor 8 Jahren 5.200 Views
wickedcsharper Themenstarter:in
160 Beiträge seit 2008
vor 8 Jahren
FFT Analyse von Realwerten - Interpretation der Ergebnisse

Hallo zusammen,

ich hoffe, ich habe hier richtig gepostet, da es sich eher um eine mathematische Frage handelt:
ich hätte da eine Frage an die Matheprofis unter den Entwicklern:

Es geht dabei um die DFT bzw. FFt Analyse von Messwerten:
Ich bekomme von einem Arduino Board verschiedene Messwerte geliefert.
In meinem Fall sind dies Spannungsmesswerte eines Piezo Cristalls, der Schwingungen aufnimmt (Seismograph). So kann man über solche Schwingungsmesswerte im allgemeinen eine FFT Analyse machen, die ich auch erfolgreich implementiert habe (Testwerte stimmen). Die verwendete Bibliothek ist MathNet.Iridium.

Ich habe nur das Problem der Deutung der entstehenden Werte.
Angenommen ich habe 8 Messwerte. Z.B. ganz einfach:

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Dann ist das Resultat der FFT Analyse folgendes

28 -4 -4 -4 -4 -4 -4 -4

Nun die eigentliche Frage: Was sagt mir das ?

Vielleicht kann mir da jemand bei der Deutung helfen 😉
LG

„Wenn man eine Katze auseinandernehmen will, um zu sehen, wie sie funktioniert, hat man als erstes eine nicht funktionierende Katze in den Händen.“

6.911 Beiträge seit 2009
vor 8 Jahren

Hallo wickedcsharper,

es werden die Amplituden zu den Frequenzen ausgegeben. Die Frequenzen ergeben sich zu fi = i * Fs / N, wobei i die zu ermittelnde Frequenz, Fs die Sampling-Frequenz und N die Größe des (Real-) Eingangs ist.
Somit ist der erste Eintrag für 0 Hz, der zweite Eintrag für 2 * Fs / N Hz, usw.
Wie groß Fs ist, sollte dir bekannt sein wenn du die Daten ermittelt hast.

Bei reellen Eingaben kannst die zweite Hälfte des FFT-Resultats vergessen, da dies komplex-konjugierte Symmetrien der ersten Hälfte sind. D.h. hier sind nur die Frequenzen bis N/2-1 von Bedeutung.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

wickedcsharper Themenstarter:in
160 Beiträge seit 2008
vor 8 Jahren

Hallo gfoidl,

danke für die Antwort erst einmal. Angenommen ich habe eine zusammengesetze Schwingung aus mehreren Frequenzen, dann zeigt mir das FFT Diagramm also die Amplituden der Frequenzen, aus denen die Gesamtschwingung zusammen gesetzt ist ?

Was zeigt mir das in dem konkreten Beispiel wo ich 8 Werte habe, wo der erste 1 ist und die anderen 7 null ? Das Ergebnis wäre also eine Amplitude von 28 bei 0Hz und -4 bei den anderen ? 🤔

In meinem Fall habe ich Messwerte eines Piezzo Kristalls, den ich alle 10ms abfrage und die Messwerte über USB an mein C# Programm sende:

Hier bekomme ich dann int Werte in der Form raus:
0 8 8 9 10 10 15 15 17 7 8 3 1 0 (als Beispiel)
Macht dann eine FFT Analyse überhaupt Sinn ?

MFG

„Wenn man eine Katze auseinandernehmen will, um zu sehen, wie sie funktioniert, hat man als erstes eine nicht funktionierende Katze in den Händen.“

189 Beiträge seit 2014
vor 8 Jahren

Hallo wickedcsharper,

Angenommen ich habe eine zusammengesetze Schwingung aus mehreren Frequenzen, dann zeigt mir das FFT Diagramm also die Amplituden der Frequenzen, aus denen die Gesamtschwingung zusammen gesetzt ist ?

Jain. Bei der Fourier-Transformation geht man davon aus, dass jedes Signal aus einer Überlagerung (bis hin zu unendlich vieler) sinusförmiger Schwingungen besteht.
-> Außer den einfachen Signalen die sinus- oder cosinusförmig sind, sind alle "zusammengesetzt".
D.h. die FFT von Sinus- und Cosinussignalen ergibt die Signalamplitude an genau der Frequenz der Schwingung.
Alles andere ist dann eben etwas komplizierter. 😉
Gerade die Folge 1 0 0 ... ist ja kein kontinueriliches und periodisches Signal mit steiler Flanke.
Das ergibt dann eine unendliche Folge (die aber zur Vereinfachung abgebrochen werden kann -> ergibt dann nur je nach Abbruchstelle unterschiedlich große Ungenauigkeiten).
Somit ein recht schlechtes Anfangsbeispiel.

Was du beachten solltest -> deine Verarbeitung am PC allgemein und deine Abfrage alle 10ms im Speziellen stellt eine Abtastung dar.
Da musst du das Abtasttheorem einhalten. fa > 2*fg
(Abtastfrequenz > 2 * höchste im Signal vorkommende Frequenz)
Anderen Falls bekommst du den Alias-Effekt.
fg kann man festlegen, in dem man f > fg wegfiltert. Oder der Sensor hat ein fg (z.B. aufgrund seiner Trägheit) -> Datenblatt.

VG Ezio

6.911 Beiträge seit 2009
vor 8 Jahren

Hallo wickedcsharper,

Angenommen ich habe eine zusammengesetze Schwingung aus mehreren Frequenzen, dann zeigt mir das FFT Diagramm also die Amplituden der Frequenzen, aus denen die Gesamtschwingung zusammen gesetzt ist ?

Ja. Genauer genommen die Fourier Analyse bzw. die Fourier-Transformation in den Frequenzraum. Normalerweise kommen komplexe Ergebnisse heraus, so dass neben Amplitude auch die Phase bekannt ist. y = Asin(x) + Bsin(2x) ergibt ein anderes Signal als y = Asin(x-a) + Bsin(2x-b) - daher ist auch die Phase wichtig.

Das Ergebnis wäre also eine Amplitude von 28 bei 0Hz und -4 bei den anderen ?

Falls deine Berechnung stimmt -habs nicht validiert - so: ja. Du musst nur dabei bedenken, dass 8 Eingangswerte nicht sehr repräsentativ für eine "Schwingung" - wie du oben selbst erwähnst - sind, daher ist das Ergebnis auch etwas merkwürdig.

Macht dann eine FFT Analyse überhaupt Sinn ?

Ob eine FFT sinnvoll ist hängt auch davon ab, was du erreichen willst. FFT ist kein Allheilsmittel, sondern ein Verfahren zur Durchführung einer Fourier-Analyse bzw. Transformation, bei der vom Zeitraum in den Frequenzraum transformiert wird. Sollte die Information aus dem Frequenzraum von Interesse sein, so macht es Sinn.
Zu bedenken ist jedoch, dass es um "Schwingungen" - wenn auch entartet - geht. Mit 13, 14 Messwerten lässt sich noch nicht recht gut eine Schwingung abbilden, somit wird das Resultat der FFT wohl auch nicht recht aussagekräftig sein. Solltest du aber 1024 od. mehr Werte haben, so kann durch die FFT durchaus Periodizitäten, etc. im Signal entdeckt werden.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"