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 

Signalverarbeitung



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!

20.12.2006, 23:40
Beitrag #1

Kopmann Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Nov 2006

8.0 Student
2005
kA

23552
Deutschland
Signalverarbeitung
Hallo

ich habe ein Problem mit dem Vi der (Signalverarbeitung --> Punkt für Punkt --> Integral und Differenzial -->) Differenzial Vi.
Dieses Vi scheint nicht innerhalb einer Schleife zu laufen. Beim ersten durchlauf meiner Sequenzen arbeit es sehr genau. Jeder Punkt wird gefunden. Beim zweiten Durchlauf wird einfach mein Positionsindex nur um +1 erhöht. Die anschließende such nach den nächsten Maxima und danach wieder Nulldurchgang funktioniert weiterhin sehr gut. [Beispieldatensatz: 9 (Max); 106 (Nulld.); 129 (Min); 139 (kleines Max); 469 (Max); 580 (Nulld.); 581 (sollte Min sein); 582 (sollte kleines Max sein); 941 (Max)usw.]
Ich habe das Programm schon diverse Male in der Aufbaustruktur geändert um vielleicht das Vi so zum laufen zu bekommen aber nichts Hilft. Es sei denn ich wiederhole immer wieder meine Sequenzen um so eine Schleife zu simulieren.

Ich bin leider kein Programmierer von daher gebt mir bitte eine "ausführlichere" Antwort!
Das Programm wurde mit LV 8.0 geschrieben. Als ich es mal auf einer LV 8.2 Version laufen lies funktionierte es nicht???

Vielen Dank Kopi


Sonstige .vi  Volumensuche_V8_0_Volumen_Caseabfrage.vi (Größe: 50,09 KB / Downloads: 240)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.12.2006, 10:54
Beitrag #2

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Signalverarbeitung
Hmm ich versteh dich nicht ganz.

Wenn du die Schleife zum ersten Mal durchlaufen lässt, dann funktioniert es? Die gesamte Schleife?
Startest du die Schleife dann erneut geht es nicht mehr?

Habe ich das so richtig verstanden?

Gruß

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2006, 16:13
Beitrag #3

Kopmann Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Nov 2006

8.0 Student
2005
kA

23552
Deutschland
Signalverarbeitung
' schrieb:Hmm ich versteh dich nicht ganz.

Wenn du die Schleife zum ersten Mal durchlaufen lässt, dann funktioniert es? Die gesamte Schleife?
Startest du die Schleife dann erneut geht es nicht mehr?

Habe ich das so richtig verstanden?

Gruß


Bei ersten Durchgang funktioniert alles wunderbar. In dem Moment wo das DifferenzierVI zum zweiten Mal aufgerufen wird gibt es keinen anständigen Wert mehr raus. Wie im Beispiel angegeben (die rot Markierten Werte -- an dieser Stelle sind zwei DifferenzierVi hintereinander "geschaltet") die andern Vi's wie Nulldurchgang suchen oder Spitzenwerterkennung funktionieren weiterhin tadellos.
Wäre für jede Hilfe dankbar.

Kopi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2006, 16:26 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2006 16:26 von Kopmann.)
Beitrag #4

Kopmann Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Nov 2006

8.0 Student
2005
kA

23552
Deutschland
Signalverarbeitung
' schrieb:Hmm ich versteh dich nicht ganz.

Wenn du die Schleife zum ersten Mal durchlaufen lässt, dann funktioniert es? Die gesamte Schleife?
Startest du die Schleife dann erneut geht es nicht mehr?

Habe ich das so richtig verstanden?

Gruß


Noch mal zum Beispieldatensatz. Eine Messwerte-Datei besteht aus 2500 Werten verschiedenster Sensoren.
Das Programm soll als erstes nach einem absoluten Maximum schauen hat es das gefunden folgt ein Nulldurchgang danach ein Minima und danach entweder ein Nulldurchgang oder Maxima (unterschiedlich). An den angegebenen Positionen (blau) findet das Programm die richtigen Punkte rot dagegen sind falsche Positionen.
9 (Max)
106 (Nulld.)
129 (Min)
139 (kleines Max)
469 (Max)[/color]
580 (Nulld.)
581 (sollte Min sein)
582 (sollte kleines Max sein)
941 (Max)
1049 (Nulldurchgang)
1050 (sollte Minima sein)
1051 (sollte kleines Max sein)
1414 (Max)[/color]
usw.

Kopi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2006, 17:22
Beitrag #5

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Signalverarbeitung
Das Vi Schwellenwert such ja kein Maximum, sondern gibt nur dann ein True aus, wenn Punkte auf einem Bereich von "Breite" über deinem "Schwellenwert" sind. Wenn gleich an der Nebenposition ein Minimum ist, dann liegt dieses vermutlich nicht über der Schwelle.

Probier doch mal deine Breite auf 1 zu setzen.

Gruß

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2006, 19:30
Beitrag #6

Kopmann Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Nov 2006

8.0 Student
2005
kA

23552
Deutschland
Signalverarbeitung
' schrieb:Das Vi Schwellenwert such ja kein Maximum, sondern gibt nur dann ein True aus, wenn Punkte auf einem Bereich von "Breite" über deinem "Schwellenwert" sind. Wenn gleich an der Nebenposition ein Minimum ist, dann liegt dieses vermutlich nicht über der Schwelle.

Probier doch mal deine Breite auf 1 zu setzen.

Gruß

Das Vi schwellenwert habe ich nur gewählt um wenigstens diesen Punkt zu finden. Vorher habe ich dort auch das DifferenzialVi benutzt, weil es einfach besser arbeitet. Leider kann ich die Testdaten nicht Hochladen, dann würdet ihr mein Dilemma sehen.
Die verschiedenen Punkte liegen auch weit genug auseinander so das die Breite sich nicht auf die andern abfragen auswirkt.
Übrigens das Programm im Anhang ist nicht die Programm-Version die ich Ursprünglich beschrieben habe, dort arbeite ich nicht mit den Sequenzen wie du sicher schon bemerkt hast.
Es funktioniert. – Bis auf diesen einen Fehler!!!

Kopi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.12.2006, 02:13 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2006 11:54 von Kopmann.)
Beitrag #7

Kopmann Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Nov 2006

8.0 Student
2005
kA

23552
Deutschland
Signalverarbeitung
Hallo

nachdem ich beim ersten Mal so wenig Feedback bekommen habe versuche ich mein Problem nochmals ausführlicher zu schildern. Vielleicht kann mir so jemand Helfen.

Ich Versuche ein Programm zu schreiben das Herzschläge analysiert. Sprich es soll das Auswurfsvolumen, das Schlussvolumen und das Leckvolumen bestimmt werden. Um diese Werte zu ermitteln sind 5 Punkte nötig. 4 Davon sind direkt auf der Volumenkurve zu finden der 5te wird durch die Drücke bestimmt. Was bedeutet er kommt aus einem anderen Datensatz parallel zum Volumen aufgenommen. Aber damit gibt es auch keine Probleme.

Um mit der Analyse zu beginnen habe ich mir gedacht es ist am einfachsten, wenn man mit der Suche nach dem Maximum des Auswurfsvolumens sucht (in der Datei mit Schwellwertanalyse gelöst. --> wenn true dann speichere Position (des Wertes) in Arry und erhöhe Caseabfrage von 1 auf 2). Als nächstes wird nach dem folgenden Nulldurchgang gesucht. (gelöst mit NulldurchgangVi -->wenn true dann speichere Position (des Wertes) in Arry und erhöhe Caseabfrage von 2 auf 3). Danach muss nach dem nächsten Minimum gesucht werden ("gelöst" mit DifferenzialVi --> wenn true dann speichere Position (des Wertes) in Arry und erhöhe Caseabfrage von 3 auf 4). Der letzte zu suchende Punkt ist abhängig von der Herzklappe die benutzt wird (biologisch oder mechanisch). Dort muss entweder nach einem neuen Nulldurchgang gesucht werden oder nach einem Maximum (gelöst" mit DifferenzialVi oder Nulldurchgang --> wenn true dann speichere Position in Arry und setze Caseabfrage von 4 auf 1). --> jetzt Schleife weil jetzt mindestens 5 Wiederholungen

Mein Problem: Ich würde gern das DifferenzialVi benutzten aber es arbeitet nicht in einer Schleife. Der erste Durchgang klappt wunderbar aber der zweite eben nicht. Siehe Beispieldatensatz: grün korrekt -- rot falsch
Benutze ich statt dem DifferenzialVi ein Min-MaxVi läuft das Programm korrekt aber die Positionen und damit auch die Werte
sind nicht mit ausreichender Genauigkeit gefunden (mangelhaft).

Frage: Wer kennt sich mit dem DifferenzialVi aus und kann mir Helfen das es in einer While-
Schleife läuft?


Beispieldatensatz: Achtung: Die Werte sind die Positionsangaben wo der Wert auf der x-Achse * delta(t) zu finden ist nicht die Messwerte
selber!!!

9 (Auswurfvolumen Max)
106 (Nulld. von Ausw. nach Schlussvolumen)
129 (Min Schlussvolumen Differenzialvi)
139 (kleines Max Differenzialvi)
469 (Auswurfvolumen Max)
580 (Nulld. von Ausw. nach Schlussvolumen)
581 (sollte Min von Schlussvolumen sein Differenzialvi)
582 (sollte kleines Max sein Differenzialvi)
941 (Auswurfvolumen Max)
1049 (Nulld. von Ausw. nach Schlussvolumen)
1050 (sollte Minima Schlussvolumen sein Differenzialvi)
1051 (sollte kleines Max sein Differenzialvi)
1414 (Auswurfvolumen Max)


Sonstige .vi  Volumensuche_V8_0_Volumen_Caseabfrage.vi (Größe: 50,09 KB / Downloads: 215)


Sonstige .txt  SJM030117__017.txt (Größe: 96,09 KB / Downloads: 460)
Achtung der Name der Datei hat sich gegenüber dem Programm geändert.



Kopi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2006, 10:23
Beitrag #8

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Signalverarbeitung
' schrieb:wenn true dann speichere Position in Arry und setze Caseabfrage von 4 auf 1). --> jetzt Schleife weil jetzt mindestens 5 Wiederholungen

Wie darf ich das verstehen?

Du hast um die Schleife in deinem Programm nochmals eine Schleife? Die 5 Arrays abtastet.
Oder meinst du einfach, dass deine Schleife (die ja schon läuft!) nach finden deines letzten Punktes weiterläuft, bis der Datensatz fertig ist? (dann wäre übrigens eine For Schleife geeigneter)

Das Differenzier Vi besitzt einen Eingang names "Initialisieren". Probier doch mal, diesen auf true zu setzen, wenn du zum 2. mal nach dem Minimum suchst. Aber Achtung du darfst ihn nur beim ersten Wert auf true setzen, dann wieder auf false.

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2006, 11:44
Beitrag #9

Kopmann Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Nov 2006

8.0 Student
2005
kA

23552
Deutschland
Signalverarbeitung
' schrieb:Wie darf ich das verstehen?

Du hast um die Schleife in deinem Programm nochmals eine Schleife? Die 5 Arrays abtastet.
Oder meinst du einfach, dass deine Schleife (die ja schon läuft!) nach finden deines letzten Punktes weiterläuft, bis der Datensatz fertig ist? (dann wäre übrigens eine For Schleife geeigneter)

Das Differenzier Vi besitzt einen Eingang names "Initialisieren". Probier doch mal, diesen auf true zu setzen, wenn du zum 2. mal nach dem Minimum suchst. Aber Achtung du darfst ihn nur beim ersten Wert auf true setzen, dann wieder auf false.


Der Datensatz besteht in der Regel aus 5 Herzschlägen die analysiert werden sollen. Da die Auswertung bis jetzt manuell lief beschränkte man sich auf 5 Wiederholungen. Sollte das Programm irgendwann laufen soll diese Anzahl beliebig erhöhbar sein. Von daher wäre eine Forschleife nicht so gut. Oder?
Mit dem Initieren habe ich mich auch schon rumgequält. Aber eher weniger Erfolg damit gehabt. Auch ist mir unklar was es mit dem Anfangswert-Eingang auf sich haben soll? Die Hilfe ist einfach mangelaft.

Kopi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2006, 16:14
Beitrag #10

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Signalverarbeitung
- Eine ForSchleife würde den ganzen Datensatz abarbeiten. Wieviele Zyklen du damit auswertest hängt ja sowieso (auch jetzt schon) vom Datensatz ab.
Zur Zeit brichst du ja einfach bei einem bestimmten Index ab. Dies ist aber sehr willkürlich, da das ja voraussetzt, dass du schon weißt, nach wieviele Daten deine 5 Zyklen fertig sind.

- Das Punkt zu Punkt differenzier Vi, das du benutzt arbeitet wie folgt:
Es nimmt das x, das du als Eingang gibst und subtrahiert davon das x, das du als Eingang gegeben hast 2 Aufrufe davor. Dann dividiert es das ganz noch durch 2*dt.
Wenn es erstmals aufgerufen wird, oder du initialisieren auf true setzt zieht er die Anfangsbedingung von x ab.
(Du siehst also die Funktion funktioniert NUR in einer Schleife, da einmaliges Aufrufen dem Vi nur einen Punkt gibt und nichts, wozu es die Differenz bilden kann)

Bsp: du rufst das Vi mit den Zahlen {1,2,3,4,5} hintereinander auf. Anfangswert setzt du 0 (standard), dt=1. Ergebnis dann also:
1. 1 - 0 / 1 = 1
2. 2 - 0 / 2 (2*dt) = 1
3. 3 - 1 (2 vorher) / 2 = 1
4. 4 - 2 / 2 = 1
5. 5 - 3 /2 = 1;

Initialisieren bewirkt also, dass er für die ersten Werte wieder die Anfangsbedingung nimmt und nicht die Werte die zuletzt waren.

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Signalverarbeitung PatrickF1706 8 4.425 31.07.2018 13:11
Letzter Beitrag: PatrickF1706
  Signalverarbeitung mit Array tomi2107 2 3.932 21.10.2013 10:16
Letzter Beitrag: BsaiboT
  Sinus über Rauschen - Signalverarbeitung SoR 7 10.176 25.03.2011 07:34
Letzter Beitrag: SoR
  Signalverarbeitung eines Gyroskopes ToraBoraJack 8 8.170 16.03.2010 14:41
Letzter Beitrag: jg
  Signalverarbeitung Kopmann 2 3.844 26.01.2007 01:04
Letzter Beitrag: Kopmann
  Signalverarbeitung die zweite Kopmann 5 5.103 13.01.2007 20:16
Letzter Beitrag: Lucki

Gehe zu: