|
|
Messdaten laufend mitteln |
|
Boromir05 |

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 08.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2016, 13:29
Titel: Messdaten laufend mitteln
|
 |
Hallo zusammen,
Ich weiß nicht genau, wie ich mein Problem kurz beschreiben soll, deshalb konnte ich auch die Suchfunktion nicht nutzen
Folgendes:
Ich habe mehrere Messreihen, die mit 1 Hz aufgezeichnet wurden.
Das Plotten direkt über der Zeit ist aber leider nicht sonderlich aussagekräftig, da ich zwei Wertereihen miteinander vergleichen will. Beide Messdaten sind sehr dynamisch, die eine Reihe schwankt sehr stark.
Ich möchte gern eine Funktion schreiben, die mir zu jeder Sekunde einen gemittelten Wert ausgibt. Die Funktion müsste also für jede Sekunde z.B. über die letzten 10 Sekunden den Mittelwert bilden.
Ich hoffe das ist verständlich
Wenn nicht: Gerne nachfragen, was unklar ist.
Wenn ja, dann kann mir hoffentlich jemand helfen.
Danke!
Johannes
|
|
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 08.08.2016, 16:27
Titel:
|
 |
Würde sagen wenn die Messung mit der Data Acquisition Toolbox auf 1 Hz läuft, dann ist da auf jeden Fall genug Zeit für. Ab dem 10. Messwert kann man dann z.B. den FILTER Befehl nutzen. Sie Doku für FILTER, gleich das erste Beispiel "Moving average filter of vector data".
Andreas
|
|
|
Boromir05 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 08.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.08.2016, 17:13
Titel:
|
 |
Hallo Andreas,
Erstmal danke für denke Antwort!
Was du mit Data Acquisition Toolbox meinst, weiß ich nicht. Die Messung ist außerhalb von Matlab entstanden und die Messwerte dann nur als Variablen eingelesen.
Die Filterfunktion habe ich zwar nicht ganz verstanden, habe sie aber äquivalent zum Beispiel angewandt. Funktioniert super! Danke dafür!
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 09.08.2016, 09:08
Titel:
|
 |
Ich habe "werden" gelesen statt "wurden" und nahm an, dass die Daten mit MATLAB aufgezeichnet werden, nicht nur das Post-Processing gemacht wird. Es ist halt generell einfacher alles in einem Tool zu machen.
Andreas
|
|
|
Boromir05 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 08.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 08:37
Titel:
|
 |
Das glaube ich. Die Messdaten sind aber nunmal schon vorhanden...
Kann man den Prozess auch andersherum laufen lassen?
Also dass der Filter nicht die 10 letzten Werte, sondern die 10 auf den Messwert folgenden Werte bei der Mittelung mit einbezieht?
Da ich in meinem Fall über mehr Werte mittlere:
Wie kann man z.B.
einfacher beschreiben? Bei 5 geht es ja noch problemlos. Bei 500 ist das dann aber schon eine ziemlich lange Zeile
Das sind bestimmt grundlegende Dinge bei der Arbeit mit MatLab... Ich bin aber im Programmieren quasi vollkommen unerfahren und nutze MatLab deshalb wahrscheinlich meist nur auf eine sehr primitive Weise. Inklusive ständigem Einsatz von Google^^
Zuletzt bearbeitet von Boromir05 am 10.08.2016, 10:30, insgesamt einmal bearbeitet
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 08:50
Titel:
|
 |
Also für grössere n würde das z.B. so gehen:
Andreas
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 08:58
Titel:
|
 |
Für
Zitat: |
Also dass der Filter nicht die 10 letzten Werte, sondern die 10 auf den Messwert folgenden Werte bei der Mittelung mit einbezieht?
|
Nun, die Fortune Telling Toolbox ist noch nicht erfunden . Aber hier handelt es sich ja um Post-Processing... Einfach den Index um 10 Schritte verschieben.
Andreas
|
|
|
Boromir05 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 08.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 09:24
Titel:
|
 |
Moin Andreas,
Das mit "repmat" läuft, danke!
Zu der anderen Sache: Ja, das bezieht sich auf das Post-Processing.^^
Den Code verstehe ich aber leider nicht
Bzw ich denke schon, dass ich verstehe, dass die erste Zeile 30 Zufallswerte erzeugt und die anderen beiden Zeilen jeweils 10 Werte davon ausgeben.
Aber wie hilft mir das
Grüße
Johannes
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 10:31
Titel:
|
 |
Damit will ich nur zeigen, wie man auf verschiedene Abschnitte eines Vektors / einer Zeitreihe zugreifen kann. Wenn man den gleitenden Mittelwert auf diese Werte loslässt
berechnet man den gleitenden Mittelwert auf die Nummer 1 zusammen mit den nächsten 9 Werten. Bei
wäre das der Ausschnitt des Vektors für Messwert Nummer 10 plus die nächsten 9.
Andreas
|
|
|
Boromir05 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 08.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 11:58
Titel:
|
 |
Ja, dass man so an die Werte an den speziellen Stellen des Vektors kommt, ist mir bewusst... Aber leider weiß ich nicht, wie ich das auf den Filter übertragen soll.
gibt mir für jede Sekunde einen Mittelwert über die jeweils letzten 10 Sekunden aus.
Was ich jetzt gemacht habe und was wahrscheinlich zum selben Ergebnis führt wie das Mittelwert-Bilden über die folgenden 10 Elemente:
Ich drehe mit flipud den urpsrünglichen Vektor um, lasse ihn filtern und drehe ihn danach wieder um
|
|
|
Boromir05 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 08.08.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 12:47
Titel:
|
 |
Das Problem bei der Filterfunktion ist, dass sich durch die Mittelung über viele Messwerte ein Delay ergibt.
Das fällt vor allem auf, wenn man den "vorwärts" und "rückwärts" gefilterten Wert miteinander vergleicht.
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 10.08.2016, 14:55
Titel:
|
 |
Das lässt sich kaum verhindern.
Wegen FILTER: Denn habe ich angegeben, weil ich diesen Ansatz kenne. Man kann natürlic auch ganz simpel all n Werte aufaddieren und dann durch n teilen.
Andreas
|
|
|
|
|
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 - 2025
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.
|
|