UpperEnvelope (FPScript)
Ermittelt eine obere Hüllkurve zu einem Signal oder die Indizes von Punkten in einem Signal, die zu dessen oberer Hüllkurve gehören.
Syntax
UpperEnvelope(Signal [ , Parameter = 0 ])
oder
UpperEnvelope(Amplitude, Time, Parameter)
Die Syntax der UpperEnvelope-Funktion besteht aus folgenden Teilen:
Teil |
Beschreibung |
---|---|
Signal |
Der Datensatz, dessen obere Hüllkurve ermittelt wird. Wenn Sie eine Datenreihe angeben, wird die X-Komponente automatisch generiert. Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle numerischen Datentypen erlaubt. Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste. |
Amplitude |
Eine Datenreihe mit der Y-Komponente des Signals. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle numerischen Datentypen erlaubt. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
Time |
Eine Datenreihe mit der X-Komponente des Signals. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle numerischen Datentypen erlaubt. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
Parameter |
Ist dieser Wert positiv und ohne Einheit angegeben, dann bestimmt er die Anzahl der Nachbarn, die zur Ermittlung des jeweils nächsten Stützpunktes berücksichtigt werden sollen. Mit der Einheit "%" oder als negativer Wert bestimmt er die Hysterese in Prozent der Spannweite des Datensatzes für die Suche nach lokalen Maxima im Signal, die dann zur Ermittlung der Anzahl der Nachbarn verwendet werden. In der Variante mit zwei Argumenten ist dieses Argument optional. Wenn Sie es weglassen oder 0 übergeben, entspricht dies einer Hysterese von 5 %. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle numerischen Datentypen erlaubt. Bei komplexen Datentypen erfolgt eine Betragsbildung. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 0 gesetzt. |
Anmerkungen
Das Ergebnis hat die gleiche Einheit wie das Argument Signal.
Die Hüllkurve setzt sich aus einer Untermenge der Werte des zu analysierenden Datensatzes zusammen, die mit folgendem Algorithmus gesucht werden. Beginnend mit dem ersten Punkt werden zu einer vorgegebenen Anzahl von Nachbarn geradlinige Verbindungen berechnet und deren Steigung ermittelt. Der Nachbar mit der höchsten Steigung wird zum nächsten Stützpunkt der Hüllkurve und der Algorithmus wird mit diesem Wert fortgesetzt.
Sie können die Anzahl der Nachbarn explizit vorgeben, indem Sie für Parameter einen positiven Wert ohne Einheit angeben. Dieser Wert sollte dann so gewählt werden, dass er bei periodischen Signalen mindestens eine Periode überspannt. Wenn Sie einen Wert mit der Einheit "%" angeben, dann wird dessen Betrag als Argument für die Funktion Extrema verwendet, um alle lokalen Maxima im Datensatz zu suchen. Als Anzahl der Nachbarn wird dann der größte vorkommende Abstand dieser lokalen Maxima verwendet.
Wenn Signal angegeben wird, ist das Ergebnis ein Signal vom gleichen Datentyp, dass die zur Hüllkurve gehörenden Punkte enthält. Wenn Amplitude und Zeit angeben wird, dann ist das Ergebnis eine Datenreihe mit 64-Bit Ganzzahlwerten, die Indizes auf die gefundenen Stützstellen der Hüllkurve darstellen.
Die folgende Grafik zeigt ein transientes Signal und dessen obere Hüllkurve:
Verfügbarkeit
FlexPro Basic, Professional, Developer Suite
Beispiele
UpperEnvelope(Signal, 10 %) |
Berechnet die obere Hüllkurve des Signals. Für den Algorithmus wird eine Hysterese von 10 % verwendet. |