Zu 1:
Für die Diskriminierung ungültiger Nulldurchgänge gibt es verschiedne Strategien, aber ganz frei von Willkür ist das immer nicht. Man kann immer Beispiele finden, in denen es nicht so wunschgemäß funktioniert, z.B. wenn mehrere Peaks dicht hintereinander folgen.
Ich würde die Entfernung auf jeden Fall "Online" vornehmen, und zwar so: Ein Übergang, z.B. -/+, ist nur dann gültig, wenn z.B die nachfolgenden 10 Samples alle positiv bleiben. Beispiel:
---++-++++--
+++++++++++------ (nur der rote Wert wird gezählt)
Das läßt sich mit einem Zähler machen, wenn Du damit nicht zurechtkommst, helfe ich Dir gern weiter.
Zu 2:
Kann das nicht nachvollziehen, bei mir kommt genau das raus was ich erwarte. Ich hasse allerdings Kommas als Dezimalzeichen in meinem System, und um Deine Komma-Daten lesen zu können, mußte ich den Formatstring ändern.
Habe Dein VI etwas abgespeckt. Das Nulldurchgang-Vi ist wird hier nicht gebraucht. Wenn Du z.B in den State -+ eintrittst, sind die Werte ja immer erst mal negativ, und Du suchst den ersten positiven Wert. Da genügt ein einfache Abfrage >0.