|
|
Fourier Analyse für Zeitreihe |
|
Max1896 |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 11.01.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.02.2019, 22:09
Titel: Fourier Analyse für Zeitreihe
|
|
Guten Tag,
ich habe eine Zeitreihe mit Geschwindigkeitsmesswerten. In einem Modellversuch zu meiner Abschlussarbeit wurden diese gemessen mit einem ADV bei einer Frequenz von 25 Hz. Ich soll nun laut meinem Prüfer eine Fourier Analyse durchführen, um eine Sinuskurve heruaszubekommen, sodass a) das Rauschen rausfällt und ich b) die verschiedenen Kurven vergleichen kann.
Leider fehlt mir als Matlab Neuling total der Ansatz, wie ich das umsetzten kann. Ich suche schon seit einigen Stunden auf google nach einem Ansatz aber bekomme es selbst nicht hin. Habe mich bisher nur an dem fft codewort versucht und kann mit dem ergebnis leider nichts anfangen. Der Plot dieses Vektors zeigt mir nichts plausibles.
Ich hoffe hier einen Ansatz zu bekommen, würde mich sehr freuen.
VG,
Max
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.02.2019, 22:28
Titel:
|
|
Hallo,
der Befehl
fft
ist der richtige Anfang. Schau dir dann mal die Beispiele in der Doku dazu an.
Ansonsten bitte die Fragen möglichst konkret formulieren: wir kennen weder deine Daten noch wissen wir, welche Ergebnisse du bekommst und warum du diese nicht für plausibel hältst. Dann ist es auch schwierig, dich zu unterstützen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Max1896 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 11.01.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.02.2019, 23:13
Titel:
|
|
Nabend Harald,
ja da hast du Recht, ich war wohl etwas vorschnell.
Ich habe die beiden Vektoren als Matlab-Datei angehängt, mit der Zeit als t und vx als Geschwindigkeit.
Ich habe
berechnet und mir das ergebnis plotten lassen plot(t,g). Den Plot habe ich auch angehängt.
Ich sehe zwei Spitzen bei t=1,88 und t=163,3 aber da komme ich bereits nicht weiter.
Edit: der Plot macht auch wenig Sinn ich denke
schon eher. Dort habe ich zwei Pekas von jeweils y=172,3 bei x1=48 und x2=4084 (Vektorlänge 4130).
Bei dem Beispiel in der Doku ist mir nicht ganz klar, wie ich das Signal formen kann, ohne die Amplitude zu kennen. Die Frequenz wäre in meinem Fall 25, richtig ?
Viele Grüße
Beschreibung: |
|
Download |
Dateiname: |
plot_abs(g).fig |
Dateigröße: |
93.3 KB |
Heruntergeladen: |
388 mal |
Beschreibung: |
|
Download |
Dateiname: |
plot_fft(vx).fig |
Dateigröße: |
103.19 KB |
Heruntergeladen: |
405 mal |
Beschreibung: |
|
Download |
Dateiname: |
t_vx.mat |
Dateigröße: |
25.61 KB |
Heruntergeladen: |
392 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.02.2019, 00:18
Titel:
|
|
Hallo,
S ist nur ein Beispielsignal. Statt S bzw. dem gestörten Signal X solltest du dein tatsächliches Signal verwenden.
Am Plot kannst du mehr ablesen, wenn du auf der x-Achse die Frequenz aufträgst. Wie das geht, siehst du in dem Beispiel.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Max1896 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 11.01.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.02.2019, 16:18
Titel:
|
|
Hallo,
leider verstehe ich nicht was mein Signal ist. Ich habe den Plot aber weiss nicht was ich daraus ablesen kann bzw. wie ich die Signalfunktion aufstelle.
Wenn ich das richtig sehe brauche ich zwei Frequenzen und zwei Amplituden.
Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.02.2019, 17:50
Titel:
|
|
Hallo,
Zitat: |
leider verstehe ich nicht was mein Signal ist. |
Na, deine Daten. Du hast die Variable vx genannt.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Max1896 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 11.01.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.02.2019, 18:16
Titel:
|
|
okay aber wie kann ich vx als Signal verwenden? Ich habe die Schritte aus der Docu in ein Skript geschrieben. Laut der Docu soll das Signal abhängig von Amplitude und Frequenz sein. Ich habe lediglich einen Spaltenvektor vx mit 4130 Einträgen.
Wenn ich das richtig verstanden habe kann ein Skript nicht auf eine Variable im Workspace zugreifen.
Gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.02.2019, 19:17
Titel:
|
|
Hallo,
Zitat: |
Laut der Docu soll das Signal abhängig von Amplitude und Frequenz sein. |
Wie gesagt: in der Doku wird so ein Beispielsignal generiert.
Was passiert denn, wenn du deine Daten wie in der Doku verarbeitest und die angepasste fft gegen die Frequenz plottest?
Zitat: |
Wenn ich das richtig verstanden habe kann ein Skript nicht auf eine Variable im Workspace zugreifen. |
Sofern es der Base Workspace ist, geht das sehr wohl.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Max1896 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 11.01.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.02.2019, 19:38
Titel:
|
|
Das mit der Variable hat doch funktioniert. Hatte zuvor versucht auf die 4. Spalte meiner .dat Datei zuzugreifen mit
. Das hat leider nicht funktioniert. Nun gut es funktioniert mit der Variablen aus dem Workspace wenn ich sage S=vx. Danke dafür schonmal.
X habe ich nun wie im Beispiel belassen
Nun sieht der letzte Plot S(t) eher aus wie X(t) aussehen sollte, also mit Ströfrequenzen. Normalerweise sollte ich da einzelne Peaks haben (2 Stück?).
Und ich bin nicht sicher, ob ich das X überhaupt noch brauche, da ich ja keine Störfrequenz erzeugen muss, sondern diese schon in vx drin ist. Kann ich x rausnehmen ohne das Skript durcheinander zu bringen?
Wenn ich z.B.
schreibe, sehen logischerweise S(t) und X(t) gleich aus und S(t) immer noch nicht auf zwei Peaks reduziert .
Zuletzt bearbeitet von Max1896 am 22.02.2019, 20:14, insgesamt 2-mal bearbeitet
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.02.2019, 20:01
Titel:
|
|
Hallo,
Zitat: |
Kann ich x rausnehmen ohne das Skript durcheinander zu bringen indem ich
schreibe ? |
Das kannst du nicht nur, das solltest du. Wie mehrfach gesagt sind S bzw. X Beispielsignale.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Max1896 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 11.01.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.02.2019, 21:56
Titel:
|
|
Hallo,
leider ist nun immer noch nicht das Rauschen für mein Signal für vx rausgefiltert worden.
Die Kurven für X(t) und S(t) sind noch gleich. Also das Frequenzspektrum ist ungefiltert und hilft mir so leider nicht weiter.
Ich zweifle gerade daran ob ich überhaupt etwas verstanden habe
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.02.2019, 22:23
Titel:
|
|
Hallo,
den Teil mit X kannst du doch weglassen. Warum würdest du über deine Daten ein Rauschen legen wollen?!
Was soll gefiltert werden und wie?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Max1896 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 11.01.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.02.2019, 23:06
Titel:
|
|
Nabend,
also wenn ich X einfach weglasse, dann passt ja das Skript nicht mehr zusammen. Das kriege ich so auch nicht umgeschrieben weil ich nicht ganz nachvollziehen kann was dort gerechnet wird. Deshalb steht bei mir immer noch X=S;
Ich bin davon ausgegangen, dass das Skript mir die Frequenzen meines Signals herausfiltern kann, die mein Signal später als schöne Sinuskurve im Zeitbereich beschreiben können.
Dazu möchte ich dann die inverse Transformation benutzen. Dies klappt auch am Ende meines Skriptes, jedoch werden die Störfrequenzen nicht herausgefiltert und das Signal ist am Ende wieder das Ausgangssignal.
Viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.02.2019, 23:34
Titel:
|
|
Hallo,
warum wendest du fft denn überhaupt 2 Mal an? Der wesentliche Teil vom Beispiel war ja, wie man die Frequenzachse hinbekommt.
Zitat: |
dass das Skript mir die Frequenzen meines Signals herausfiltern kann, die mein Signal später als schöne Sinuskurve im Zeitbereich beschreiben können. |
Wie soll das Skript das können? Es berechnet ja nur die fft und plottet sie. Wenn du eine schöne Sinuskurve haben willst, musst du das originale Signal rekonstruieren, siehe z.B.
https://de.mathworks.com/matlabcent.....-original-signal-from-fft
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|