|
|
Datensatz reduzieren mit Blockmittel |
|
sweety2210 |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 09.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 18:23
Titel: Datensatz reduzieren mit Blockmittel
|
 |
Hallo ihr Lieben,
ich einer Aufgabe, die ich berechnen soll, wurden Positionsdaten eines Messflugzeuges ermittelt, die von einer Frequenz von 100Hz auf 1 Hz reduziert werden sollen.
Dazu sollen wir einen Funktion zur Berechnung des sogenannten Blockmittels erstellen (kennt das jemand? In Google hab ichs nicht gefunden).
Ich hab das auch probiert, aber es funktioniert nicht.
In unserem Fall müsste die Blocklänge ja m=100 sein, oder?
Hab euch mal mein vorliegende Erklärung zum Blockmittel beigefügt.
Vielen Dank schon mal.
Beschreibung: |
|
 Download |
Dateiname: |
Blockmittel.png |
Dateigröße: |
42.18 KB |
Heruntergeladen: |
601 mal |
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 18:31
Titel:
|
 |
in der aufgabe steht doch was du machen sollst. immer den mittelwert aus 10er blöcken
das geht mit for schleife oder reshape und mean oder auch mit einem gleitenden mittelwert mittels filter.
_________________
richtig Fragen
|
|
|
sweety2210 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 09.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 18:49
Titel:
|
 |
Das in der Aufgabe ist ja nur ein Beispiel. Da ich ja von 100Hz auf 1 Hz kommen muss, muss ich ja 100er Blöcke nehmen.
Ja, ich weiß theoretisch was ich machen muss, weiß aber nicht wie ich das in Matlab umsetze. Ich bin leider ein totaler Anfänger.
Was ist denn an meinem Code falsch?
Ich bekomme zwar keine Fehlermeldung, aber der Datensatz wird trotzdem nicht reduziert.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 19:21
Titel:
|
 |
Hallo,
du setzt am Anfang Y=x.
In der Schleife überschreibst du die ersten Elemente von Y, die weiteren bleiben aber natürlich erhalten. Du müsstest also nur Y anders vorbelegen, z.B.
Die Anwendung von mean über Vektorteile wird effizienter sein als das händische Berechnen des Mittelwerts in einer for-Schleife. Allerdings gibt es in der for-Schleife zusätzlich das Problem, dass du in x hineinindizieren müsstest.
Ich würde eine systematische Einarbeitung empfehlen. Für den Anfang z.B. das Durcharbeiten der "Getting Started"-Tutorials:
http://www.mathworks.com/help/matla.....-started-with-matlab.html
Grüße,
Harald
|
|
|
sweety2210 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 09.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 19:38
Titel:
|
 |
Hi,
danke dir. Hat funktioniert!
Vielen, vielen Dank!
|
|
|
dödel0815 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.08.2013, 16:51
Titel:
|
 |
Hallöchen,
was genau bedeutet denn das "große" M? klein m ist ja die Blocklänge soweit ich das verstanden habe. und wie hast du M definiert?
Liebe Grüße
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 27.08.2013, 17:37
Titel:
|
 |
Hallo dödel0815,
Im Code-Beispiel is "M" die Blocklänge.
Nebenbei hier noch eine einfache und effiziente Implementierung:
Falls das Signal nicht glatt durch m teilbar ist:
Gruß, Jan
|
|
|
sweety2210 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 09.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2013, 11:36
Titel:
|
 |
Also hier ist meine Variante, die jetzt auch funktioniert.
Gruß
|
|
|
dödel0815 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2013, 12:12
Titel:
|
 |
Hallo Jan,
danke für deine Antwort.
Also "M" ist die Blocklänge in dem Beispiel auf der Folie, aber nicht in dem Code-Beispiel von sweety2210 oder? was ist dann "m", ich dachte nämlich das wäre die Blocklänge. Mich verwirren nur die zwei verschiedenen m's.
Grüße
|
|
|
sweety2210 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 09.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2013, 12:26
Titel:
|
 |
Vergiss mal das kleine m. Das hab ich am Anfang so gemacht, ist aber unnötig.
M ist die Blocklänge und x der Vektor, der gekürzt werden soll...
|
|
|
|
|
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.
|
|