INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Ringpuffer - aber wie?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

18.05.2010, 15:00
Beitrag #1

dommae Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2010

8.5.1
2010
de


Deutschland
Ringpuffer - aber wie?
Sers an alle,

ich möchte die Arrays meiner Messwerte mitteln, d.h. ich möchte beispielsweise 5 Arrays mit je 1000 Messwerten aufnehmen und diese dann elementweise addieren und durch 5 teilen, damit ich eine gemittelte Kurve bekomme. Das ganze soll als Ringpuffer fungieren, also das älteste Array immer raus, das neueste rein und dann Mittelwert elementweise für alle 5 Arrays.

Wie geht das?

Danke schonmal für die Hilfe!!!

Grüße,

Thomsen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.05.2010, 15:04
Beitrag #2

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Ringpuffer - aber wie?
Gibt's fertig: Signalverarbeitung -> Punkt für Punkt -> Wahrscheinlichkeit und Statistik (Punkt für Punkt) -> Mittelwert

Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 15:08
Beitrag #3

Achimedes Offline
LVF-Freak
****


Beiträge: 544
Registriert seit: Aug 2005

2011
2001
DE

72461
Deutschland
Ringpuffer - aber wie?
Hallo,

ich geh jetzt einfach davon aus das deine messung in irgend einer schleife ist.

klick auf den rechten oder linken Rahmen der schleife und wähle "schieberegister hinzufügen".
Da schliest du an der rechten seite der schleife deine messung an.

Links kannst du das schieberegister nach unten aufziehen, das du vier anschlüsse erhältst.
Da kannst du jetzt die messwerte der letzten 4 schleifendurchläufe abholen und eben mit deinem aktuellen verrechnen.

Achtung: die 4 anschlüssse solltest du initiallisieren. auserhalb der schleife was anschliessen.

Grüße
Achimedes

Wer Rechtschreibfehler findet .... darf sie behalten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 15:12
Beitrag #4

dommae Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: May 2010

8.5.1
2010
de


Deutschland
Ringpuffer - aber wie?
Danke, das mit den Schieberegistern ist ne Möglichkeit. Aber dann kann ich meine Ringpuffergröße nicht dynamisch einstellen!
Das würde ich allerdings ganz gerne!


Die Lösung von Dimitri funktioniert nur mit einzelnen Werten, nicht mir Arrays, jedenfalls soweit ichs versteh.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 15:48
Beitrag #5

Ome Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 109
Registriert seit: Nov 2009

2011
2009
DE

12XXX
Deutschland
Ringpuffer - aber wie?
Hallo,

das immer die 5 neusten Arrays verarbeitet werden, kannst du mit Queues erreichen.

Bsp gibt es hier: http://www.LabVIEWforum.de/index.php?s=&am...ost&p=87814

Das Arithmetik geht dann in einer For-Schleife...

Gruß Ome
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 15:49 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2010 16:15 von eg.)
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Ringpuffer - aber wie?
Warum sind es 5 Arrays mit je 1000 Elementen und nicht eins mit 5000 Elementen?
Warum musst du überhaupt deine Messwerte in Arrays ansammeln um danach einen Mittelwert zu bilden? Ich meine es frisst doch dein RAM?!

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 16:28 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2010 16:32 von Ome.)
Beitrag #7

Ome Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 109
Registriert seit: Nov 2009

2011
2009
DE

12XXX
Deutschland
Ringpuffer - aber wie?
Wer weiß wieso er es so will... hier mal 'nen Lösungsvorschlag.

Gruß Ome


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 16:43 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2010 16:52 von eg.)
Beitrag #8

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Ringpuffer - aber wie?
@Ome, ich hätte es auch mit Lossy Queue gemacht Wink

Übrigens, sobald ich das Wort "Ringbuffer" höre, denke ich direkt an Lossy Queue. Das Problem dabei ist, dass die Größe eines solchen Puffers nicht dynamisch einstellbar ist. Aber, ich glaube, ich habe schon eine Lösung dafür im KopfBig Grin

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 17:45
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Ringpuffer - aber wie?
' schrieb:ich möchte die Arrays meiner Messwerte mitteln, d.h. ich möchte beispielsweise 5 Arrays mit je 1000 Messwerten aufnehmen und diese dann elementweise addieren und durch 5 teilen, damit ich eine gemittelte Kurve bekomme. Das ganze soll als Ringpuffer fungieren, also das älteste Array immer raus, das neueste rein und dann Mittelwert elementweise für alle 5 Arrays.
Würde gern helfen, aber da müßte ich zu sehr raten, wie Du es genau meinst...
Aber vielleicht hilft das: Den Ringpuffer gibt es auch als Funktion, und die Größe ließe sich dort dynamisch einstellen. Allerdings nur für ein einfaches Element. Wenn Du 5 Elemente hast, dann müßtest Du 5 solche Puffer verwenden (Was kein Problem wäre)
Sehr gut versteckt in: Signalverarbeitung Punkt für Punkt weitere Funktionen Daten Queue
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2010, 18:24
Beitrag #10

Ome Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 109
Registriert seit: Nov 2009

2011
2009
DE

12XXX
Deutschland
Ringpuffer - aber wie?
' schrieb:@Ome, ich hätte es auch mit Lossy Queue gemacht Wink

Übrigens, sobald ich das Wort "Ringbuffer" höre, denke ich direkt an Lossy Queue. Das Problem dabei ist, dass die Größe eines solchen Puffers nicht dynamisch einstellbar ist. Aber, ich glaube, ich habe schon eine Lösung dafür im KopfBig Grin

Ja das drängt sich gerade zu aufBig Grin

Die Frage ist was er mit Dynamisch meint... mehr oder weniger ist ja die Anzahl der Elemente im Queue während der Laufzeit des Programms einstellbar nur halt nicht während der Queue verwendet wird.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Chart-History als Ringpuffer verwenden dimitri84 11 10.537 08.12.2009 22:33
Letzter Beitrag: dimitri84
  Array-Ringpuffer in While eg 9 11.522 21.03.2007 17:35
Letzter Beitrag: eg

Gehe zu: