ParametricSpline (FPScript)

21.09.2021

Interpoliert einen Datensatz durch eine parametrische Spline-Kurve und tastet diese an vorgebbaren Stellen ab.

Syntax

ParametricSpline(DataSet, N, SamplingMode, [ VX1 = 0 ], [ VXn = 0 ], [ VY1 = 0 ] [ , VYn = 0 ])

 

Die Syntax der ParametricSpline-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

DataSet

Der Datensatz mit konstantem Abtastintervall, welcher interpoliert wird. Wenn Sie eine Datenreihe angeben, wird die X-Komponente automatisch generiert.

Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix, Signal, Signalreihe und Signalreihe mit zweidimensionaler X-Komponente. Es sind alle numerischen Datentypen erlaubt.

Bei komplexen Datentypen erfolgt eine Betragsbildung.

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

N

Gibt die Anzahl der Punkte insgesamt bzw. pro X-Intervall an.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle ganzzahligen Datentypen erlaubt.

Der Wert muss größer gleich 0 sein.

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

SamplingMode

Gibt an, wie die berechnete Spline-Kurve abgetastet werden soll und welche Randbedingungen verwendet werden.

Das Argument SamplingMode kann folgende Werte haben:

Konstante

Bedeutung

SPLINE_EQUIDISTANT

N Werte äquidistant abgetastet.

SPLINE_INTERVAL

N Werte pro ursprünglichem X-Intervall. Die Werteanzahl des Ergebnisses ist (NumberOfRows(DataSet) - 1) * N + 1.

...plus einer Konstante, die die Randbedingungen bestimmt.

Konstante

Bedeutung

+ SPLINE_NOTAKNOT

"Not-A-Knot" Randbedingung (VX1, VY1, VXn und VYn werden ignoriert).

+ SPLINE_1DERIVATIVE

VX1, VY1, VXn und VYn werden als 1. Ableitung von x(T) bzw. y(T) im ersten bzw. letzten Knotenpunkt interpretiert.

+ SPLINE_2DERIVATIVE

VX1, VY1, VXn und VYn werden als 2. Ableitung von x(T) bzw. y(T) im ersten bzw. letzten Knotenpunkt interpretiert.

+ SPLINE_3DERIVATIVE

VX1, VY1, VXn und VYn werden als 3. Ableitung von x(T) bzw. y(T) im ersten bzw. letzten Knotenpunkt interpretiert.

+ SPLINE_YXDERIVATIVE

VX1 bzw. VXn werden als Ableitung von y(x) im ersten bzw. letzten Knotenpunkt interpretiert, VY1 und VYn werden in diesem Fall ignoriert.

+ SPLINE_PERIODIC

Periodische Spline-Interpolation, der erste und letzte Punkt in Datensatz müssen in diesem Fall identisch sein. Ist dies nicht der Fall wird der letzte Punkt ignoriert und stattdessen der erste an dieser Stelle verwendet. Die Werte VX1, VXn, VY1 und VYn werden ignoriert.

+ SPLINE_PERIODICAPPEND

Periodische Spline-Interpolation. Sind der erste und letzte Punkt in Datensatz nicht identisch, dann wird in diesem Fall der erste Punkt an das Ende von DataSet angehängt. Die Werte VX1, VXn, VY1 und VYn werden ignoriert.

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

VX1

Bestimmt die X-Randbedingung am Anfang der Spline-Kurve.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt.

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.

VXn

Bestimmt die X-Randbedingung am Ende der Spline-Kurve.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt.

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.

VY1

Bestimmt die Y-Randbedingung am Anfang der Spline-Kurve.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt.

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.

VYn

Bestimmt die Y-Randbedingung am Ende der Spline-Kurve.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt.

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 ist immer vom Datentyp 64-Bit Fließkomma.

Das Ergebnis hat die gleiche Einheit wie das Argument DataSet.

Die parametrische Spline-Interpolation kann Signale interpolieren, deren X-Werte weder monoton wachsend noch äquidistant sind. Zur Berechnung der Spline-Funktion werden zunächst Parameterwerte T erzeugt und dann zwei Spline-Interpolationen für x(T) und y(T) durchgeführt. Jede Spline-Kurve besteht aus kubischen Polynomen, die in den Knotenpunkten der Funktion y(T) bzw. x(T) so aneinander gehängt werden, dass ein möglichst glatter Verlauf entsteht. Für die Randbedingungen SPLINE_PERIODIC und SPLINE_PERIODICAPPEND muss der zu interpolierende Datensatz mindestens vier Werte und für alle anderen Randbedingungen mindestens drei Werte enthalten. Vor der Spline-Interpolation werden ungültige Werte in der X- und Y-Komponente durch lineare Interpolation eliminiert.

Eine natürliche Spline-Kurve erhalten Sie mit VX1, VY1, VXn und VYn als 2. Ableitungen gleich Null.

Die folgende Grafik zeigt parametrische Spline-Kurven mit verschiedenen Randbedingungen. Die Werte VX1, VY1, VXn und VYn sind jeweils gleich Null:

Die periodische parametrische Spline-Interpolation erzeugt geschlossene Kurvenzüge. Der Datensatz sollte in diesem Fall am Anfang und am Ende den gleichen Punkt aufweisen. Ist dies nicht der Fall, erzwingt FlexPro die Periodizität, indem entweder der letzte Punkt durch den ersten ersetzt oder indem der erste Punkt an das Ende des Datensatzes angehängt wird.

Die folgende Grafik zeigt eine Schar von periodischen parametrischen Spline-Kurven:

Verfügbarkeit

FlexPro Basic, Professional, Developer Suite

Beispiele

ParametricSpline({0, 1, 0}, 100, SPLINE_EQUIDISTANT)
 

 

ParametricSpline({0, 1, 0}, 100, SPLINE_EQUIDISTANT + SPLINE_1DERIVATIVE, 0, 0, -5, 5)
 

 

ParametricSpline({0, 1, 0}, 100, SPLINE_EQUIDISTANT + SPLINE_PERIODICAPPEND)
 

Da der erste und der letzte Punkt nicht identisch sind, wird für die Periodische Spline-Interpolation der erste Punkt an das Ende der Datenreihe angehängt. Damit ergeben sich vier Werte, die interpoliert werden.

Die folgende Grafik zeigt die parametrischen Spline-Kurven der drei Beispiele:

Siehe auch

BicubicSpline-Funktion

CompensatingSpline-Funktion

CompensatingSpline2D-Funktion

PeriodicSpline-Funktion

Spline-Funktion

Spline2D-Funktion

Analyseobjekt Spline-Interpolation

Analyseobjekt Oberflächeninterpolation

Literatur

[1] "Carl de Boor": "A Practical Guide to Splines, Revised Edition". "Springer-Verlag, New York",2001.ISBN 0-387-95366-3.

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren