timeFilters

filterDesign

Beschreibung

Die Aktion filterDesign entwirft einen digitalen Filter. Sie unterstützt verschiedene Filtertypen wie Butterworth, Chebyshev Typ I und Chebyshev Typ II sowie verschiedene Filterarten wie Tiefpass, Hochpass, Bandpass und Bandsperre. Die Aktion berechnet die Filterkoeffizienten und speichert sie in einer Ausgabetabelle.

timeFilters.filterDesign <result=results> <status=rc> / casOut={caslib="string", compress=TRUE | FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, * filterCutoff1=double, filterCutoff2=double, * filterName="string", * filterOrder=double, filterOutTable={caslib="string", label="string", lifetime=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", promote=TRUE | FALSE, replace=TRUE | FALSE, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE"}, filterRp=double, filterRs=double, * filterType="string", inputVarName="string", smoothedVarName="string";
Einstellungen
ParameterBeschreibung
casOutGibt die optionale Ausgabetabelle für die Filterparameter an.
filterCutoff1Gibt die untere Grenzfrequenz des Filters an. Dieser Parameter ist für alle Typen digitaler Filter erforderlich. Der Wert der Grenzfrequenz liegt zwischen 0 und 1, wobei 1 der normalisierten Nyquist-Frequenz entspricht.
filterCutoff2Gibt die obere Grenzfrequenz des Filters an. Dieser Parameter ist nur erforderlich, wenn 'bandpass' oder 'bandstop' für den Parameter filterType angegeben wird. Der Wert liegt zwischen 0 und 1.
filterNameGibt den Namen des zu entwerfenden Filters an. Der Eingabestring unterscheidet nicht zwischen Groß- und Kleinschreibung. Mögliche Werte: 'butter' oder 'butterworth' (Butterworth-Filter), 'cheby1' oder 'chebyshev1' (Chebyshev-Filter Typ I), 'cheby2' oder 'chebyshev2' (Chebyshev-Filter Typ II).
filterOrderGibt die Ordnung des zu entwerfenden Filters an; der Wert ist eine positive Ganzzahl. Die maximale Filterordnung beträgt 200.
filterOutTableGibt die Ausgabetabelle an, die den entworfenen Filter enthalten soll.
filterRpGibt die Welligkeit im Durchlassbereich des Filters in Dezibel (dB) an; der Wert ist ein Skalar ungleich Null. Dieser Parameter ist nur für den Entwurf des Chebyshev-Filters Typ I erforderlich.
filterRsGibt die Dämpfung im Sperrbereich des Filters in Dezibel (dB) an; der Wert ist ein Skalar ungleich Null. Dieser Parameter ist nur für den Entwurf des Chebyshev-Filters Typ II erforderlich.
filterTypeGibt den Typ des zu entwerfenden Filters an. Der Eingabestring unterscheidet nicht zwischen Groß- und Kleinschreibung und akzeptiert folgende Werte: 'lowpass' (Tiefpass), 'highpass' (Hochpass), 'bandpass' (Bandpass) oder 'bandstop' (Bandsperre).
inputVarNameGibt den Namen der Eingabevariablen für den Filter an. Der Standardwert ist 'signal'.
smoothedVarNameGibt den Namen der geglätteten Ausgabevariablen für den Filter an. Der Standardwert ist 'output'.
Erstellung einer Signaltabelle

Erzeugt eine Tabelle mit Zeitreihendaten, die für den Filterentwurf verwendet werden können.

Kopiert!
1 
2DATA casuser.timeseries;
3DO t=1 to 100;
4signal = sin(t/5) + rand('normal');
5OUTPUT;
6END;
7 
8RUN;
9 

Beispiele

Entwirft einen Butterworth-Tiefpassfilter 4. Ordnung mit einer Grenzfrequenz von 0.2.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3timeFilters.filterDesign / filterName="butter", filterType="lowpass", filterOrder=4, filterCutoff1=0.2, filterOutTable={name="butter_low_specs", replace=TRUE};
4 
5RUN;
6 
Ergebnis :
Eine Ausgabetabelle 'butter_low_specs' wird erstellt, die die Koeffizienten des entworfenen Butterworth-Tiefpassfilters enthält.

Entwirft einen Chebyshev-Filter Typ I (Bandpass) 5. Ordnung mit spezifischen Grenzfrequenzen und Welligkeit.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3timeFilters.filterDesign / filterName="cheby1", filterType="bandpass", filterOrder=5, filterCutoff1=0.1, filterCutoff2=0.4, filterRp=0.5, filterOutTable={name="cheby_band_specs", replace=TRUE};
4 
5RUN;
6 
Ergebnis :
Die Aktion generiert die Tabelle 'cheby_band_specs', welche die Filterparameter für den spezifizierten Bandpassfilter mit den definierten Grenzfrequenzen und der Welligkeit enthält.

FAQ

Was ist der Hauptzweck der Aktion filterDesign?
Welche Filtertypen können mit dem Parameter filterType spezifiziert werden?
Welche Parameter sind für die Ausführung der Aktion zwingend erforderlich?
Wann muss der Parameter filterCutoff2 angegeben werden?
Welche Werte werden für den Parameter filterName akzeptiert?
Was ist die maximale erlaubte Filterordnung?
Welche spezifischen Parameter werden für Chebyshev-Filter benötigt?
Wie lauten die Standardnamen für die Eingabe- und Ausgabevariablen?