Also ich entscheide den Algorithmus eher anhand der Rahmenbedingungen. Wie sehen die Signale tatsächlich aus, wie viel Zeit ist dafür zur Verfügung steht, soll während der Messwertaufnahme gezählt werden, wie ist die Sample Rate im vergleich zum schnellsten möglichen Signalwechsel usw.
Hier gab es vor kurzem eine ganz ähnliche Situation:
https://forums.ni.com/t5/LabVIEW/Boolean...anguage=en
Da war allerdings klar, dass es ganz steile Flanken gibt und keine Störungen.
Für viele Fälle geht so etwas einfaches schon (notfalls mit einem kleinen Filter davor). Hast du jedoch ganz furchtbare Signale, dann funktioniert das so einfach nicht mehr.
Jetzt versuche dich erst einmal an obigem Beispiel. Wenn du damit nicht zum Ziel kommst, dann sehen wir weiter. Vielleicht kannst du auch mal ein paar reale Messdaten posten, aber bitte nicht gleich die voellen 120 Sekunden - ein paar "Schaufeln" reichen schon :-)