LabVIEWForum.de
Mittelwertberechnung von Signalverläufen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Mittelwertberechnung von Signalverläufen (/Thread-Mittelwertberechnung-von-Signalverlaeufen)



Mittelwertberechnung von Signalverläufen - J_uri - 10.10.2008 06:55

[attachment=14757]

Hallo,

mir ist bei der Verwendung des VIs "Averaged DC-RMS" aufgefallen, dass die Zeitstempel nach der Berechnung auf 0 gesetzt werden (bzw. 1.1.1904). Ich habe den entsprechenden Code angehangen. Ist das gewollt, bzw. kann man das abstellen?

Kurz zur Erklärung:
Ich lese 8 Signalverläufe ein und möchte für jeden Signalverlauf alle 0,1 sek den Mittelwert berechnen und in eine Datei speichern.

Danke,
Gruß
J_uri


Mittelwertberechnung von Signalverläufen - kpa - 10.10.2008 08:32

Hallo J_uri,

eine Vermutung:

Beim Mittelwert handelt es sich nicht mehr um einen Zeitpunkt sondern um einen Zeitbereich und ein Timestamp ist dafür nicht gültig.

Außerdem tritt eine Phasenverschiebung des gemittelten Signals auf.

kpa


Mittelwertberechnung von Signalverläufen - J_uri - 10.10.2008 08:36

' schrieb:Hallo J_uri,

eine Vermutung:

Beim Mittelwert handelt es sich nicht mehr um einen Zeitpunkt sondern um einen Zeitbereich und ein Timestamp ist dafür nicht gültig.

Außerdem tritt eine Phasenverschiebung des gemittelten Signals auf.

kpa

Hallo kpa,
danke für deinen Antwort.
Ja, klingt logisch, aber warum wird dann extra ein SubVi erstellt, dass ausdrücklich dafür zuständig ist einen Mittelwert aus Signalverläufen zu erstellen. Die haben doch von Natur aus einen Zeitstempel dabei. Ich hätte gedacht, dass man nach der Berechnung der Mittelwerte einen aktuell gültigen Zeitstempel einfügt und den an den gemittelten Signalverlaufswert übergibt.
Mögliche Lösung:
Signalverlaufsattribut Zeitstempel im Nachhinein von Hand setzen. Würde das gehen?

Gruß,
J_uri.


Mittelwertberechnung von Signalverläufen - Kvasir - 10.10.2008 09:00

Hallo J_uri,

also prinzipiell ist es natürlich möglich im Nachhinein einen Zeitstempel zu setzen. Nutze dazu einfach die Funktion "Signalverlauf erstellen", schließe an den Eingang deinen Signalverlauf an und setze nur den Wert t0 neu.

Aber: Ich habe schnell die Mittelwertfunktion überflogen (was du übrigens auch tun kannst, indem du einfach doppelklickst auf sie) und festgestellt, dass diese sehr wohl den Timestamp mitführt.
Sie hat allerdings ein Problem damit, wenn das neue t0 nicht mir der Endzeit des letzten Durchganges übereinstimmt.

Die Funktion macht folgendes:
- Sie berechnet bei Aufruf den Mittelwert deines Signalverlaufs und speichert den Ausgangszustand, sowie die Endzeit (= t0 + n*dt; mit n = Anzahl Samples)
- bei einem erneuten Aufruf testet sie, ob das neue t0 mit der Endzeit des vorherigen Durchlaufes übereinstimmt. Dies macht ja Sinn, das sonst Daten fehlen und die Mittelwertberechnung natürlich nicht so ohne weiteres fortgeführt werden kann.

Ich empfehle dir also hier nochmal deine Struktur zu überdenken.
- Gehen dir Daten verloren?
- Brauchst du eventuell gar keinen fließenden Mittelwert, sondern nur für die jeweiligen Signalverläufe einen abgeschlossenen (dann einfach die Mittelwertfunktion auf Reset = True stellen)

Grüße


Mittelwertberechnung von Signalverläufen - J_uri - 10.10.2008 09:09

Hallo Kvasir, danke für die Antwort.

Also ich lese ja ein Array aus Signalverläufen ein (8 Verläufe). Es kann durchaus sein, dass die Signalverläufe unterschiedliche Zeitstempel haben, da sie ja u.U. nicht gleichzeitig eingelesen werden.

Das manuelle Setzen wäre somit recht aufwändig. Ich glaube ich lass die Mittelwertbildung weg. Ich hatte sie implementiert um die Datenmenge nicht zu groß werden zu lassen. Aber ich denke die Anzahl der Samples/Sek. zu reduzieren hätte eine ähnlichen Effekt für mich.

Dennoch erstmal vielen Dank.


Mittelwertberechnung von Signalverläufen - J_uri - 17.12.2008 10:37

Ok, ich stehe wieder vor selbigem Problem. Ich benötige jetzt doch den Mittelwert. Ich brauche einen fließenden Mittelwert. Dafür ist dieses VI ja auch gegeben, soweit ich die Beschreibung verstehe. Ich habe mir das VI angesehen. Es erscheint tatsächlich die Warnung "Aktueller und vorheriger Signalverlauf sind nicht zusammenhängend." Ich habe mal ein Screenshot angehangen, in dem meine Datenerfassungsschleife zu sehen ist. Ich nehme also kontinuierlich mit 50 Hz Werte auf. Alle 5 Werte soll der Mittelwert der aufgenommenen Signale in den Melder geschoben werden. Deshalb ist eine Wartezeit von 100 ms enthalten. Eventuell rührt daher die Diskontinuität des Signals?

[attachment=15891]

Gruß,
J_uri.