PhaseUnwrap (FPScript)

07.02.2018
 Daten mathematisch analysieren > Referenz > FPScript-Funktionen > Datenmanipulationen > PhaseUnwrap

PhaseUnwrap (FPScript)

<< Klicken, um Inhaltsverzeichnis anzuzeigen >>

  Daten mathematisch analysieren > Referenz > FPScript-Funktionen > Datenmanipulationen >

PhaseUnwrap (FPScript)

Entfaltet Phasenwinkel zur Erzeugung glatterer Phasenverläufe.

Syntax

PhaseUnwrap(Phase, [ Jump ] [ , Tolerance ])

 

Die Syntax der PhaseUnwrap-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

Phase

Der zu korrigierende Phasenwinkelverlauf.

Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix, Signal, Signalreihe und Signalreihe mit zweidimensionaler X-Komponente. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

Jump

Die Sprunghöhe zur Entfaltung des Phasenwinkelverlaufs. Der (unstetige) Phasenwinkelverlauf wird dabei durch Addition bzw. Subtraktion von Vielfachen von Jump korrigiert. Wenn das Argument nicht angegeben wird, wird es auf den Wert 360 gesetzt falls Phase die Einheit ° besitzt, andernfalls wird es auf den Wert TWO_PI gesetzt.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne. Die Einheit des Arguments wird ignoriert.

Der Wert muss größer 0 sein.

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

Tolerance

Der minimal erforderliche Toleranzwert zur Entfaltung des Phasenwinkelverlaufs. Die Korrektur eines Phasenwinkelwerts wird nur erfolgen, wenn die absolute Differenz zweier aufeinanderfolgender Phasenwinkelwerte größer als Tolerance ist. Wenn das Argument nicht angegeben wird, wird es auf die Hälfte des Wertes vom Argument Jump gesetzt.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne. Die Einheit des Arguments wird ignoriert.

Der Wert muss größer 0 sein.

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

Anmerkungen

Der Datentyp des Ergebnisses ist immer 64-Bit Fließkomma.

Die Struktur des Ergebnisses entspricht der des Arguments Phase.

Bei zusammengesetzten Datenstrukturen wird nur die Y-Komponente verrechnet. Die X- bzw. Z-Komponenten werden, falls vorhanden, unverändert in das Ergebnis übernommen.

Bei Datenmatrizen und Signalreihen erfolgt die Berechnung spaltenweise. Die Werte werden vor der Berechnung in 64-Bit Fließkommazahlen gewandelt.

Mittels dem Befehl PhaseUnwrap(Phase) kann beispielsweise der Phasenverlauf eines Filters wie folgt entfaltet werden:

Der in diesem Diagramm dargestellte Phasenverlauf entspricht dem Phasenverlauf eines IIR-Bandpass Butterworth-Filters 5ter Ordnung (mit Eckfrequenzen 0.15 und 0.35). Der zugehörige FPScript Code ist gegeben als: Dim coefficients = IIRFilter(FILTER_BUTTERWORTH, FILTER_BANDPASS, 5, {0.15, 0.35}) PhaseResponse(coefficients, , ,False)

Hinweis        Wenn Tolerance einen Wert kleiner als die Hälfte von Jump besitzen würde, so würde eine Phasenkorrektur durch Addition bzw. Subtraktion von Vielfachen von Jump die Unstetigkeit nur zusätzlich vergrößern. Wenn also für das Argument Tolerance ein Wert kleiner als die Hälfte von Jump angegeben wird, so wird Tolerance automatisch vom Algorithmus auf die Hälfte des Wertes von Jump korrigiert.

Verfügbarkeit

FlexPro Standard, Professional, Developer Suite

Beispiele

 
PhaseUnwrap({38, 44, 50, 416, 422}, 360)
 

Ergibt die Datenreihe {38, 44, 50, 56, 62}. Tolerance wird auf den Wert 360/2 = 180 gesetzt, da das Argument nicht angegeben wurde.

 
PhaseUnwrap({38, 44, 50, 416, 422}, 360, 140)
 

Ergibt die Datenreihe {38, 44, 50, 56, 62}. Tolerance wird auf den Wert 180 korrigiert, da 140 kleiner als 360/2 = 180 ist.

 
PhaseUnwrap({38, 44, 50, 416, 422} * 1 °)
 

Ergibt die Datenreihe {38 °, 44 °, 50 °, 56 °, 62 °}. Das Argument Jump wurde automatisch auf den Wert 360 gesetzt, da das Argument Phase die Einheit ° besitzt.

 
PhaseUnwrap(Phase(AnalyticSignal(realSig)))
 

Entwrappt die Phase eines analytischen Signals, welches aus einem reellen Signal berechnet wird. Das Argument Jump wurde automatisch auf den Wert TWO_PI gesetzt, da die Funktion Phase entweder keine Einheit oder die Einheit rad seinem Ergebnis übergibt.

Siehe auch

AnalyticSignal-Funktion

Hilbert-Funktion

Phase-Funktion

PhaseResponse-Funktion

Analyseobjekt Momentangröße

Share article or send as email:

You might be interested in these articles