DataLab ist ein kompaktes Statistikprogramm zur explorativen Datenanalyse. Weitere Informationen finden Sie auf den DataLab Webseiten ....



Skriptbefehl Filter

Skriptbefehl: Filter (Mode, Width, Direction, Storage, Range)

Der Skriptbefehl "Filter" erlaubt die Anwendung eines Filters auf die ausgewählten Daten in Abhängigkeit der Parameter Mode, Width, Direction, Storage und , Range. Die Parameter sind wie folgt definiert:
Mode Der Parameter Mode bestimmt welche Typ von Filter angewendet wird. Es sind folgende 7 Werte erlaubt:
fir: wendet das FIR-Filter an, das durch die Koeffizienten ai bestimmt ist (die bi werden automatisch auf null gesetzt). Die Koeffizienten müssen zuvor durch das Kommando "filtercoeffs" definiert werden.
iir: wendet das IIR-Filter mit den Koeffizienten ai und bi, wie sie zuvor durch das Kommando "filtercoeffs" definiert worden sind.
mavg: erzeugt eine gleitende Mittelwertsglättung
wavg: erzeugt eine gewichtete Mittelwertsglättung
median: erzeugt eine gleitende Medianglättung
savgol: berechnet die Savitzky-Golay-Glättung 2. Grades
deriv1: berechnet die geglättete erste Ableitung
deriv2: berechnet die geglättete zweite Ableitung
Width Gibt die Breite des Filterfensters an. Für das FIR und das IIR-Filter können die Werte zwischen 1 und 100 liegen, für alle anderen Filter muss die Breite eine ungerade Zahl sein und zwischen 5 und 25 liegen.
Direction Spezifiziert ob das Filter zeilenweise oder spaltenweise angewendet und welche Spalten bzw. Zeilen bearbeitet werden sollen. Es sind die Werte cols und rows erlaubt, gefolgt von einem '=' und der Liste der Spalten/Zeilen in eckigen Klammern. Die Spalten- bzw. Zeilennummern müssen durch Beistriche getrennt werden, Bereiche können durch Doppelpunkte angegeben werden (siehe Beispiele unten).
Storage "Storage" bestimmt, wie die Ergebnisse abgespeichert werden, es sind die Werte overwrite, append, und auxmat erlaubt. Im ersten Fall werden die Ergebnisse über die Originaldaten geschrieben, im zweiten Fall werden sie an die Datenmatrix angehängt (die Datenmatrix wird dafür um die entsprechende Zahl an Spalten bzw. Zeilen erweitert), und im dritten Fall wird das Ergebnis in die entsprechende Hilfsmatrix des Matrix-Clipboards geschrieben. Die Nummer der Hilfsmatrix (gültig sind 1 bis 8) muss durch ein '=' getrennt nach den Bezeichner auxmat angegeben werde (siehe Beispiel unten).
Range Beschränkt den Bereich auf den das Filter angewendet wird. Falls die Filterung spaltenweise erfolgt (Parameter Direction) gibt der Bereich die erste und letzte Zeile an, bei zeilenweiser Filterung bezieht sich der Bereich auf die erste und letzte Spalte. Der Bereich muss durch den Bezeichner "range" gefolgt von einem Gleichheitszeichen und dem Bereich in eckigen Klammern angegeben werden. Die erste und letzte Spalte/Zeile wird durch einen Doppelpunkt getrennt. Um die Filterung auf die gesamte Zeile bzw. Spalte anzuwenden ohne explizit die Endpunkte anzugeben, kann man den Bereich durch range=[0:0] definieren.

Beispiele:

filter (deriv1, 15, rows=[1:225], overwrite, range=[0:0])
Der Befehl berechnet für die Zeilen 1 bis 255 die geglätteten ersten Ableitungen mit einer Fensterbreite von 15 und schreibt die Ergebnisse über die Originaldaten. Der Bereich der Berechnung ist nicht eingeschränkt.

filter (mavg, 7, cols=[2,9:13,17], append, range=[100:800])
Der Befehl berechnet den gleitenden Mittelwert der Spalten 2, 9 bis 13 und 17 mit einer Fensterbreite von 7 und hängt die Ergebnisse an die Datenmatrix an. Die Berechnung ist auf den Bereich zwischen Zeile 100 und Zeile 800 beschränkt. Es werden dadurch sieben neue Spalten erzeugt in denen die Ergebnisse gespeichert werden; die Originaldaten bleiben erhalten.

filter (savgol, 11, cols=[1:10], auxmat=4, range=[0:0])
Der Befehl berechnet die Saviztzky-Golay-Glättung der Spalten 1 bis 10 mit 11 Koeffizienten und schreibt das Ergebnis in die Hilfsmatrix 4 (eventuell bereits vorhandene Werte in Hilfsmatrix 4 werden überschrieben). Der Bereich der Berechnung ist nicht eingeschränkt.


Last Update: 2013-Feb-13