Home > Community > FPScript > Prüfung von zwei Signalreihen > Antwort auf: Prüfung von zwei Signalreihen

#9249
Bernhard KantzBernhard Kantz
Teilnehmer

Wenn die beiden Signale jeweils dieselbe Zeitspur (X-Komponente) haben, reduziert sich das Problem auf das Finden gemeinsamer Indizes nach einer Ereignisisolation.
Eine kleine Klippe ist die Bedingung größer bzw. kleiner statt größer oder gleich bzw. kleiner oder gleich, welche durch die entsprechenden FPScript-Funktionen ValuesAboveLevel() bzw. ValueBelowLevel() realisiert werden. Dies kann man durch Verwendung der jeweiligen anderen Funktion mit dem zusätzlichen Parameterflag EVENT_COMPLEMENT erreichen.
Für die Verknüpfung der beiden Ereignisse stehen die Mengenoperationen auf Indexreihen (IndexAnd(), IndexOr(), IndexNot(), IndexAfter(), IndexBefore()) zur Verfügung. Im vorliegenden Fall leistet IndexAnd() das gewünschte.
Zusammen ergibt sich der FPScrip-Code:


Dim idx1 = ValuesBelowLevel(Signal1, 10, EVENT_INDEX + EVENT_COMPLEMENT)
Dim idx2 = ValuesAboveLevel(Signal2,  2, EVENT_INDEX + EVENT_COMPLEMENT)
Signal1.X[IndexAnd(idx1, idx2)]