Resample (FPScript)
Erhöht oder vermindert die Abtastrate eines Datensatzes.
Syntax
Resample(DataSet, Factor [ , Method = RESAMPLE_FFT ])
Die Syntax der Resample-Funktion besteht aus folgenden Teilen:
Teil |
Beschreibung |
||||||
---|---|---|---|---|---|---|---|
DataSet |
Der Datensatz, dessen Werteanzahl vermindert werden soll. Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix, Signal und Signalreihe. Es sind alle numerischen Datentypen erlaubt. Für die X-Komponente gelten zusätzliche Beschränkungen.Die Werte müssen einen konstanten Abstand haben. Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste. |
||||||
Factor |
Gibt den Faktor an, um den die Abtastrate und damit die Werteanzahl im Ergebnis verändert werden soll. Werte kleiner als Eins vermindern die Abtastrate und Werte größer als Eins erhöhen diese. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne. 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. |
||||||
Method |
Bestimmt die zum Umabtasten zu verwendende Methode. Das Argument Method kann folgende Werte haben:
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 RESAMPLE_FFT gesetzt. |
Anmerkungen
Wenn DataSet keine X-Komponente enthält, dann werden automatisch X-Werte mit Null beginnend und mit Schrittweite Eins erzeugt. Enthält er eine X-Komponente, dann muss diese ein konstantes Inkrement aufweisen, d. h. die Daten müssen mit konstanter Rate abgetastet sein. Das Ergebnis ist immer ein Signal oder eine Signalreihe.
Bei der Umabtastung mittels FFT wird das Zeitsignal zunächst in den Frequenzbereich transformiert. Zur Erhöhung der Abtastrate werden dann Nullen an das Spektrum angehängt und zur Verminderung wird entsprechend ein Teil vom Spektrum abgeschnitten. Anschließend wird wieder in den Zeitbereich rücktransformiert. Die Umabtastung mittels Fourier-Transformation führt zu einem nahezu idealen Ergebnis, da bei der Erhöhung der Abtastrate keine hochfrequenten Signalanteile hinzugefügt werden und bei der Verminderung alle Spektralanteile bis zur neuen Nyquist-Frequenz erhalten bleiben. Eine exakte Rekonstruktion des ursprünglichen Zeitsignals ist jedoch wegen des Leckeffekts der FFT nicht immer möglich.
Im Idealfall ist die neue Werteanzahl (NumberOfRows(DataSet)-1) * Factor + 1, auf die nächste Ganzzahl gerundet. Bei der FFT-Methode ist dies jedoch nicht immer möglich (für nicht-ganzzahlige Werte von Factor).
Verfügbarkeit
FlexPro Basic, Professional, Developer Suite
Beispiele
Resample(Signal, 2) |
Verdoppelt die Abtastrate eines Signals mittels der FFT-Methode. |
Resample(Signal, 0.5, RESAMPLE_LINEAR) |
Halbiert die Abtastrate eines Signals mittels linearer Interpolation. |