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 

1D-oder 2D-Array puffern und mitteln



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!

25.02.2010, 10:54 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2010 11:17 von Amaris2003.)
Beitrag #1

Amaris2003 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Feb 2010

9.0
2010
de

37077
Deutschland
1D-oder 2D-Array puffern und mitteln
Hallo,

erstmal möchte ich euch danken, ohne dieses Forum mit den kompetenten Beiträgen und der SuFu wäre mein Messprogramm wohl noch lange nicht so weit, wie es jetzt ist. Leider ist es mittlerweile nicht mehr selbstverständlich, dass ein Forum auch über längere Zeit ein Niveau hält, welches deutlich über dem des Internet-Durchschnitts liegt. Als blutiger Anfänger tue ich mir noch schwer.

So, nun zu meinem Problem, ich hole mal ein wenig aus:
Ich fahre eine 20MHz-Messkarte mit einem externen analogen Start-Trigger, welcher alle 20Hz eine neue Messung startet. Die Messung läuft zwecks Wiederholung in einer For-Schleife, die erzeugten Messdaten werden via Autoindizierung nach der Schleife gesammelt, gespeichert und anschließend gesammelt ausgewertet (kein Beispiel-VI). In diesem Offline-Modus kann ich Spektren mitteln um das Rauschen zu minimieren, siehe Beispiel-VI.

Mittlerweile bin ich daran, eine Online-Auswertung zu erstellen. Die Daten werden von der Messkarte als 2D-Array geliefert und dann von mir nach Kanälen aufgetrennt. Ich habe also im Schleifentakt je Kanal ein 1D-Array. Diese sollen gemittelt werden, dies darf jedoch nicht in der gleichen Schleife passieren, da sonst der Puffer auf das nächste Spektrum wartet, während die Messung wartet, bis der Puffer fertig ist. Dazu müsste ich die ausserhalb der Messschleife Messdaten puffern, wahrscheinlich in einem Schieberegister. Dass bekomme ich aber nicht hin, siehe vereinfachtes Problem-VI.[attachment=53113:ProblemV...ion_9.0_.vi]


Angehängte Datei(en)
Sonstige .lvm  Beispielspektren.lvm (Größe: 1,84 MB / Downloads: 233)

Sonstige .vi  Offline_2D_Array_spaltenweise_mitteln_Version_9.0_.vi (Größe: 331,98 KB / Downloads: 251)

Sonstige .vi  ProblemVI_Online_1D_Array_spaltenweise_mitteln_Version_9.0_.vi (Größe: 63,77 KB / Downloads: 211)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.02.2010, 13:11
Beitrag #2

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
1D-oder 2D-Array puffern und mitteln
Du solltest die Messdatenerfassung in einer separaten Schleife haben.

Ich habe mal schnell dein VI etwas aufgeräumt und simuliere in einer extra Schleife die Messdatenerfassung anhand deiner Messwerte in obiger LVM-Datei.

Lv09_img2

Sonstige .vi  SUB_Spektren_mitteln.vi (Größe: 19,02 KB / Downloads: 288)


Sonstige .vi  ProblemVI_Online_1D_Array_spaltenweise_mitteln_Version_9.0_.vi (Größe: 76,44 KB / Downloads: 249)


Ich hoffe dies hilft dir weiter....

Tobias Brüggemann
Dipl.-Ing.(FH) Nachrichtentechnik/Elektronik
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2010, 13:59 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2010 14:12 von Amaris2003.)
Beitrag #3

Amaris2003 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Feb 2010

9.0
2010
de

37077
Deutschland
1D-oder 2D-Array puffern und mitteln
Ich bin mir noch nicht sicher, ob es weiter hilft,.....muss das erstmal verstehen, was du gemacht hast, mit Queue hab ich noch nicht gearbeitet. Und das Programm tut noch nicht das, was ich erwartet hatte. So wird z.B. die Anzahl der Messpunkte verändert? Auf jeden Fall ist ein kleiner Fehler drin, habe ich die Messdaten spaltenweise, so muss man die dann auch simulieren.

Denn ich wollte: Nimm Spektrum 1, 2 und 3 und mittel die, die Puffergrösse wäre dann 3, da 3 Spektren gemittelt werden. Dann warte auf die nächsten 3 Spektren usw. Und macht es nicht Sinn, den Puffer genauso zuwählen wie man Spektren mitteln möchte?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2010, 14:11
Beitrag #4

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
1D-oder 2D-Array puffern und mitteln
Achso - ich dachte mit Puffer meinst du die Anzahl Messwerte, da du von einer Onlineauswertung gesprochen hast.

Ein Puffer macht nur Sinn, wenn du nur einen Teil deiner Messungen auswerten willst und den Rest dann verwirfst. Sprich du hast drei Messungen und mittelst diese; jetzt kommt die vierte Messung und du schmeisst die erste Messung aus deinem Puffer um anschliessend über Messung 2 bis 4 zu mitteln. Wenn du jetzt deine Puffergröße auf 4 erhöhst, dann wird aber nicht plötzlich über Messung 1 bis 4 gemittelt sondern es wird sobald Messung 5 verfügbar ist über Messung 2 bis 5 gemittelt.

Ich werde meinen Lösungsansatz mal dahingehend anpassen, dass die Daten entsprechend übergeben werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2010, 14:16 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2010 14:16 von Amaris2003.)
Beitrag #5

Amaris2003 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Feb 2010

9.0
2010
de

37077
Deutschland
1D-oder 2D-Array puffern und mitteln
Aha, hatte mich nicht genau ausgedrückt....daher hatte ich auch das Offline-Vi angehängt: Ich habe 100 Spektren in der Datei, jedes á 2500 Punkte. Deutlich zu erkennen: das Rauschen vor dem eigentlichen Signal (ca. 1250 Punkte). Das Ziel ist, mehrere (z.B. 4) Spektren zu mitteln, damit hat man nur noch 25 Spektren á 2500 Punkte, aber nicht mehr so viel Rauschen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2010, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2010 14:34 von Amaris2003.)
Beitrag #6

Amaris2003 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Feb 2010

9.0
2010
de

37077
Deutschland
1D-oder 2D-Array puffern und mitteln
Zitat:in Puffer macht nur Sinn, wenn du nur einen Teil deiner Messungen auswerten willst und den Rest dann verwirfst. Sprich du hast drei Messungen und mittelst diese; jetzt kommt die vierte Messung und du schmeisst die erste Messung aus deinem Puffer um anschliessend über Messung 2 bis 4 zu mitteln. Wenn du jetzt deine Puffergröße auf 4 erhöhst, dann wird aber nicht plötzlich über Messung 1 bis 4 gemittelt sondern es wird sobald Messung 5 verfügbar ist über Messung 2 bis 5 gemittelt.

Das wäre ja sogar ein gleitender Mittelwert, oder? Wäre auch nicht schlecht....
Habe es jetzt auf spaltenweises Arbeiten geändert, aber sobald er fertig ist, schreibt er nullen rein und fängt an, vordere Werte zu löschen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.02.2010, 15:32
Beitrag #7

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
1D-oder 2D-Array puffern und mitteln
Hier mein neuer Lösungsvorschlag:
Lv09_img2

Sonstige .vi  SUB_Spektren_mitteln.vi (Größe: 19,48 KB / Downloads: 244)


Sonstige .vi  ProblemVI_Online_1D_Array_spaltenweise_mitteln_Version_9.0_.vi (Größe: 82,08 KB / Downloads: 245)


Jetzt werden die Spektren gemittelt, nachdem sie komplett "erfasst" wurden. Ich habe dazu jedoch auch noch das SubVI entsprechend anpassen müssen.
Ausserdem wird jetzt vorausgesetzt, dass es immer 2500 Messwerte je Spektrum sind (wegen der Performance) und die eine For-Schleife ausserhalb der Consumer-Loop ausgeführt.

Als kleines Gimmick habe ich noch dafür gesorgt, dass solange noch Daten erfasst werden (bzw in der Queue sind) auch die neuen Daten in den Puffer geschrieben werden. Sobald die Queue gelöscht ist, wird nurnoch mit den Daten im Puffer gearbeitet. Dadurch kannst du noch deine Daten im Graph anschauen und verschiedene Mittelungswerte ausprobieren. Nachteil: die Fehlerbehandlung der Queue wird nicht mehr als Abbruchbedingung in der While-Schleife betrachtet.

Tobias Brüggemann
Dipl.-Ing.(FH) Nachrichtentechnik/Elektronik
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2010, 16:35
Beitrag #8

Amaris2003 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Feb 2010

9.0
2010
de

37077
Deutschland
1D-oder 2D-Array puffern und mitteln
DA bleibt mir leider nicht viel zu sagen, ausser: Danke, läuft prima, so habe ich mir das vorgestellt. Noch eins: Jetzt ist der Puffer mindestens so groß wie Anzahl der Spektren geladen werden, ich habe häufig auch 10 000 und mehr, da wird das langsam. Aber jetzt habe ich Grundgerüst, dass ich modifizieren kann. Ich werde daher probieren, nur die Spektren, die gemittelt werden sollen, in den Puffer schreiben zu lassen und danach den Puffer zu leeren.
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
  Messwerte Mitteln Mr. Bean 6 4.201 28.01.2016 10:58
Letzter Beitrag: Mr. Bean
  Über letzte Array Werte mitteln dbuckl 3 4.569 03.12.2013 13:06
Letzter Beitrag: GerdW
  Array in selbstdefiniertem Bereich aufspalten und mitteln jh1988 5 4.568 24.02.2013 11:25
Letzter Beitrag: jh1988
  Spalten von 2D-Array einzeln aussortieren und mitteln Thorax 9 7.686 16.08.2012 18:21
Letzter Beitrag: Lucki
  Case-Struktur Grün oder Rot darstellen bei true oder false TobiasSch 14 14.893 23.01.2012 09:32
Letzter Beitrag: TobiasSch
  Daten einlesen, Puffern und abspeichern Andy_B 1 4.501 14.12.2011 13:20
Letzter Beitrag: eb

Gehe zu: