Filter (FPScript)

07.02.2018
 Daten mathematisch analysieren > Referenz > FPScript-Funktionen > Filtern und Glätten > Filter

Filter (FPScript)

<< Klicken, um Inhaltsverzeichnis anzuzeigen >>

  Daten mathematisch analysieren > Referenz > FPScript-Funktionen > Filtern und Glätten >

Filter (FPScript)

Filtert einen Datensatz mit einem Finite Impulse Response (FIR) oder Infinite Impulse Response (IIR) Filter.

Syntax

Filter(DataSet, b, [ a ] [ , PhaseCorrection = FALSE ])
oder
Filter(DataSet, FilterCoefficients [ , PhaseCorrection = FALSE ])

 

Die Syntax der Filter-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

DataSet

Der zu filternde Datensatz.

Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix, Signal und Signalreihe. 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.

b

Eine Datenreihe mit den Zählerkoeffizienten der Übertragungsfunktion des Filters.

Erlaubte Datenstrukturen sind Datenreihe und Liste. Es sind alle numerischen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

a

Eine Datenreihe mit den Nennerkoeffizienten der Übertragungsfunktion des Filters.

Erlaubte Datenstrukturen sind Datenreihe und Liste. Es sind alle numerischen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

FilterCoefficients

Eine Liste mit den Zähler- und Nennerkoeffizienten der Übertragungsfunktion des Filters. Die Listenelemente sollten Sie mit "b" und "a" benennen. Wenn Sie keine Namen angeben, wird das erste Listenelement als "b" und das zweite als "a" verwendet. Wenn DataSet eine Liste ist, dann kann dieses Argument optional als Liste von Listen übergeben werden.

Erlaubte Datenstrukturen sind Liste. Es sind alle numerischen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

PhaseCorrection

Der Wert TRUE gibt an, dass nach der Filterung eine Phasenkorrektur erfolgt. Dazu wird bei Infinite-Impulse-Response (IIR) Filtern zweimal gefiltert, einmal vorwärts und einmal rückwärts. Bei Finite-Impulse-Response (FIR) Filtern erfolgt eine Phasenkorrektur über die Formel t = T/2 (L - 1), falls das Filter ungerade bzw. t = LT/2, falls das Filter gerade (L = Filterlänge) ist.

Erlaubte Datenstrukturen sind Einzelwert. Unterstützte Datentypen sind Wahrheitswert.

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 FALSE gesetzt.

Anmerkungen

Das Ergebnis hat die gleiche Struktur und Einheit wie das Argument DataSet.

Vor der Filterung werden die Werte in reelle bzw. komplexe 64-Bit Fließkommazahlen gewandelt. Das Ergebnis hat immer den Datentyp reelle oder komplexe 64-Bit Fließkommazahl. Wenn Nennerkoeffizienten a angegeben werden, sollte der erste Wert dieser Datenreihe gleich Eins sein. Ist dies nicht der Fall, dann werden die Filterkoeffizienten mit dem angegebenen Wert normiert. Der erste Wert von a darf nicht Null sein. Die Funktion implementiert den Filter als LTI-System mit "transposed direct form II" gemäß folgendem Blockschaltbild:

Diese Struktur entspricht folgendem Differenzengleichungssystem:

Verfügbarkeit

FlexPro Standard, Professional, Developer Suite

Beispiele

Filter(Signal, 0.25 # 4)

Glättet ein Signal mit einem gleitenden Mittelwert mit Glättungsbreite 4.

Filter(Signal, [ {-0.245, -0.245},  {-1, 0.509} ])

Führt eine Tiefpassfilterung mit einem ein-poligen IIR-Filter durch.

Siehe auch

Filter-Funktion

FIRFilterEquiripple-Funktion

FIRFilterWindow-Funktion

IIRFilter-Funktion

Clip-Funktion

Analyseobjekt IIRFilter

Analyseobjekt FIR-Filter (Equiripple-Methode)

Analyseobjekt FIR-Filter (Fenster-Methode)

Tutorial Filter

Literatur

 [1] "Oppenheim, A. V. and Schafer, R. W.": "Discrete-Time Signal Processing, 2nd Edition". "Prentice Hall, New Jersey", 1999. ISBN 0-13-754920-2.

Share article or send as email:

You might be interested in these articles