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!
Hi,
folgendes Problem: Ich komme mit 124 Werten in einem Array an ->Mit einer Abtastrate von 1000Hz -> diese sollen nun ein 10-Fach Oversampling erfahren. Also aus immer 10 Werten soll der Mittelwert gebildet werden und so auch der Datenstrom reduziert werden.
Aber wie soll ich immer 10 Werte herraus bekommen? Ohne an dem Einganswert etwas fallen zu lassen komme ich da nicht weiter.
Wenn auch der letzte Wert des "Mittelwertes" zeitlich mit dem letzten Wert des Datensatzes übereinstimmen soll => XY-Graph, da nicht äquidistant (würde auch gehen)
doch nun die Frage aller Fragen ...Wofür das Ganze?
viel Spaß damit
1Postingempfehlungen, 2Motivation Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Ich tippe ja mal darauf, dass es eher darum geht, dass Destiny immer wieder ein Datenpaket aus 124 Messwerten erhält und momentan nicht weiß, wie er die 4 Werte, die beim ersten Durchlauf der Datenreduzierung übrig bleiben, an den nächsten Datendurchlauf weitergibt.
Stimmt diese Interpretation der Frage?
Wenn ja, das Stichwort "Schieberegister" könnte dir weiterhelfen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
1Postingempfehlungen, 2Motivation Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
' schrieb:Ich tippe ja mal darauf, dass es eher darum geht, dass Destiny immer wieder ein Datenpaket aus 124 Messwerten erhält und momentan nicht weiß, wie er die 4 Werte, die beim ersten Durchlauf der Datenreduzierung übrig bleiben, an den nächsten Datendurchlauf weitergibt.
Stimmt diese Interpretation der Frage?
Wenn ja, das Stichwort "Schieberegister" könnte dir weiterhelfen.
Gruß, Jens
genau! Nur wenn ich jetzt das array mit 124 Werten in ein schieberegister gebe habe ich doch immernoch ein ungerades datenpacket. es sei denn ich sammel dann 5 Datenpackete (620 werte), aber das kann ja nicht der sinn der sache sein.
man müsste halt wert 1-10 aus dem array haben, danach 11-20 und wenn bei dem arrar nurnoch 4 werte über sind eben aus dem nächsten die ersten 6 dazu und dann das nächste 10er päckchen.
Ich hab hier jetzt leider kein LabVIEW und kanns euch weder zeigen noch ausprobieren.
wozu das ganze: ganz einfach zur datenreduktion, wir bekommen mehr werte rein als man braucht...und das ist dann halt auch ein sehr unruiges signal.
Und leider kann die Messkarte nur so krumme Blocklängen ausgeben.
Schau dir das 2. Beispiel von ImExporty an, dann hast du die Lösung. Er gibt nur die noch nicht bearbeiteten Werte an den nächsten Schleifendurchlauf weiter, verbindet sie dort mit den neuen Daten, reduziert so weit wie möglich, gibt den Rest wieder weiter etc. etc. etc.
Gruß, Jens
P.S.: Seit wann ist übrigens 124 eine ungerade Zahl?
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
danke, die 2.lösung habe ich gersten abend garnicht mehr gesehen.....müssen wir wohl gleichzeitig gepostet haben
Puh, das sieht aber verdammt kompliziert aus, dafür das man einfach nur nen Mittelwert braucht(blöde messkarte), werd mich gleich mal dran machen das aus zu probieren. Ich hab auch immer das "Mean" genommen und nicht das "Avarage", oder ist das egal welches man da nimmt?
' schrieb:Puh, das sieht aber verdammt kompliziert aus, ....da ist ja auch noch vieles an Altlasten drin, da ich zuerst in eine andere Richtung gedacht hatte
dafür das man einfach nur nen Mittelwert braucht ...na ja, ist ja auch nicht der Regelfall, einen gleitenden Mittelwert mit Überlaufsberücksichtigung zu berechnen
viel Erfolg beim Einbau
PS: du brauchst nur die innere Schleife
1Postingempfehlungen, 2Motivation Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Ich hab anhand dieser Vorlage mal was aufgebaut, um eben auch nach zu volziehen was da eigentlich gemacht wird - da sind jetzt ein paar Dinge anders, könnt ihr vielleicht mal gucken ob man das so machen kann, oder da ein grober Fehler drin ist?
LV8.6
Habs vorher mal mit einem gefüllten Array (natürlich mit weniger werten) ausprobiert und auch da passiert genau das was passieren soll.
Die Werte werden genommen, der Mittelwert gebildet- und der Rest wird dann an das nächste array oben drauf gesetzt.
11.06.2009, 18:47 (Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2009 18:48 von jg.)
Hier der Schlimmste:
Das Build-Array gehört nach vorne, du willst doch den nächsten Datenblock an die noch nicht gemittelten Werte anhängen, und erst dann wieder neu dezimieren.
Auch fehlt dir durch das uninitialisierte Schiebe-Register momentan die Möglichkeit eines Reset. In meinen Augen ein "minor Bug".
Aber genug der langen Rede, hier noch mal 2 Vereinfachungsvorschläge. Die Dezimier-Funktion gibt es nämlich fertig in LabVIEW: