LabVIEWForum.de - Werte dezimieren - so umständlich?

LabVIEWForum.de

Normale Version: Werte dezimieren - so umständlich?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe versucht, die Wertedezimierung umzusetzen, damit ich nur die Werte in einem Graphen darstelle, die man auch sieht (Geschwindigkeitsoptimierung). Eine Anleitung steht bei ni.com:

Zitat:Use the Plot Area»Size»Width property of the graph to query for this. To reduce artifacts [...] so multiply the graph pixel width by two to get the nominal number of intervals to divide your data into. Divide your data length by this number and round up to the nearest integer. This gives you the chunk size for decimation. For each chunk, find the maximum and minimum points and order them in the same order they occurred in the data set. [...] String all the max and min data together and plot.
So, das habe ich versucht umzusetzen, bin mir aber nicht sicher, ob mein Ansatz stimmt. Das rot markierte ist hierbei das, womit ich mir unsicher bin.
Überprüft habe ich das Blockdiagramm noch nicht. Ist die Vorgehensweise denn korrekt? Blink

snip09
[attachment=28144]
' schrieb:ich habe versucht, die Wertedezimierung umzusetzen, damit ich nur die Werte in einem Graphen darstelle, die man auch sieht (Geschwindigkeitsoptimierung).
Es gibt hierfür VIs. Musst du mal auf Signalpalette kucken.

Zitat:Das rot markierte ist hierbei das, womit ich mir unsicher bin.
Ich denke, du hast das richtig umgesetzt.
Das Erstellen der reduzierten Arrays (jetzt mit leeren Arrays am Schieberegister-Eingang und den Elementen "Array erstellen") kann man sicher optimieren. z.B. Arrays der Größe N ans Schieberegister und "In Array ersetzen" verwenden.

Zitat:Ist die Vorgehensweise denn korrekt?
Die Vorgehensweise zum Dezimieren? Korrekt ist Standpunktsache. Was meinst du genau mit korrekt?
Du kannst auch den Wert aus der Mitte des Bereiches nehmen (also einen Wert, statt jetzt zwei). Dann gingen möglicherweise Spikes verloren. Was man verwenden müsste, hängt wohl vom Verhältnis der Kurvengrößen vor und nach der Reduzierung ab.
' schrieb:Es gibt hierfür VIs. Musst du mal auf Signalpalette kucken.
Na das hätten die ja auch erwähnen können.Smile
Die haben zwar Beispiele erwähnt, die ich bei mir jedoch nicht finden konnte.

' schrieb:Ich denke, du hast das richtig umgesetzt.
Yahoo

' schrieb:Das Erstellen der reduzierten Arrays (jetzt mit leeren Arrays am Schieberegister-Eingang und den Elementen "Array erstellen") kann man sicher optimieren. z.B. Arrays der Größe N ans Schieberegister und "In Array ersetzen" verwenden.
Stimmt, das wäre sicher schneller. Irgendwo stand auch, dass "Array erstellen" etc. möglichst nicht in Schleifen aufgerufen werden soll.
Ich hatte mich dann gefragt, wie man es sonst machen soll, aber du hast mir nun eine mögliche Lösung genannt. Die natürlich nur funktioniert, wenn die Array-Größe von vornherein bekannt ist.

' schrieb:Die Vorgehensweise zum Dezimieren? Korrekt ist Standpunktsache. Was meinst du genau mit korrekt?
Nur die Umsetzung. Da Min- und Max-Wert enthalten sind, machen kleine Ungenauigkeiten nichts aus.

Danke für deine Antwort.

Nachtrag: Und jetzt, wo ich zu Hause nochmals drüber nachdenke, stelle ich fest, das funktioniert in meinem Fall gar nicht. Ich habe einen XY-Graphen und da kann eine Kurve ja auch mal "zurück" laufen. Na klasse.
Aber ich weiß es für zukünftige Aufgabenstellungen, die einen Signalverlaufsgraphen/-chart erfordern.
' schrieb:ich habe versucht, die Wertedezimierung umzusetzen, damit ich nur die Werte in einem Graphen darstelle, die man auch sieht (Geschwindigkeitsoptimierung). Eine Anleitung steht bei ni.com:
Hast du auch gesehen, dass es ganz unten auf der Seite eine giga_labview.llb zum Download gibt?

Da ist das alles schon umgesetzt.

Gruß, Jens
' schrieb:Die natürlich nur funktioniert, wenn die Array-Größe von vornherein bekannt ist.
Bei FOR-Schleifen ist die Größe bekannt.

Zitat:das funktioniert in meinem Fall gar nicht. Ich habe einen XY-Graphen und da kann eine Kurve ja auch mal "zurück" laufen.
Es ist egal, ob die effektive Kurve eine f(t)- oder eine f(x)-Funktion ist (t als Zeit ist per Definition stetig steigend, x nicht). Wenn du dich an die Vorgabe "sortieren nach Index" hältst, passt das immer: Die Kraft-Kurve und die Weg-Kurve alleine kann man ja als f(t) auffassen. Die Reduzierung bezieht sich nicht auf die Kraft-Weg-Kurve, sondern auf die Sample-Rate(!) der Kraft-Kurve.
Referenz-URLs