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.
| Parameter | Beschreibung |
|---|---|
| casOut | Gibt die optionale Ausgabetabelle für die Filterparameter an. |
| filterCutoff1 | Gibt 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. |
| filterCutoff2 | Gibt 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. |
| filterName | Gibt 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). |
| filterOrder | Gibt die Ordnung des zu entwerfenden Filters an; der Wert ist eine positive Ganzzahl. Die maximale Filterordnung beträgt 200. |
| filterOutTable | Gibt die Ausgabetabelle an, die den entworfenen Filter enthalten soll. |
| filterRp | Gibt 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. |
| filterRs | Gibt 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. |
| filterType | Gibt 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). |
| inputVarName | Gibt den Namen der Eingabevariablen für den Filter an. Der Standardwert ist 'signal'. |
| smoothedVarName | Gibt den Namen der geglätteten Ausgabevariablen für den Filter an. Der Standardwert ist 'output'. |
Erzeugt eine Tabelle mit Zeitreihendaten, die für den Filterentwurf verwendet werden können.
| 1 | |
| 2 | DATA casuser.timeseries; |
| 3 | DO t=1 to 100; |
| 4 | signal = sin(t/5) + rand('normal'); |
| 5 | OUTPUT; |
| 6 | END; |
| 7 | |
| 8 | RUN; |
| 9 |
Entwirft einen Butterworth-Tiefpassfilter 4. Ordnung mit einer Grenzfrequenz von 0.2.
| 1 | |
| 2 | PROC CAS; |
| 3 | timeFilters.filterDesign / filterName="butter", filterType="lowpass", filterOrder=4, filterCutoff1=0.2, filterOutTable={name="butter_low_specs", replace=TRUE}; |
| 4 | |
| 5 | RUN; |
| 6 |
Entwirft einen Chebyshev-Filter Typ I (Bandpass) 5. Ordnung mit spezifischen Grenzfrequenzen und Welligkeit.
| 1 | |
| 2 | PROC CAS; |
| 3 | timeFilters.filterDesign / filterName="cheby1", filterType="bandpass", filterOrder=5, filterCutoff1=0.1, filterCutoff2=0.4, filterRp=0.5, filterOutTable={name="cheby_band_specs", replace=TRUE}; |
| 4 | |
| 5 | RUN; |
| 6 |