La acción filterDesign diseña un filtro digital basado en especificaciones como el tipo de filtro, el nombre, el orden y las frecuencias de corte. Esta acción genera coeficientes de filtro que se pueden almacenar en una tabla de salida para su uso posterior en el procesamiento de señales o análisis de series temporales. Soporta filtros Butterworth y Chebyshev (Tipo I y II).
| Parámetro | Descripción |
|---|---|
| casOut | Especifica la tabla de salida opcional para los parámetros del filtro. |
| filterCutoff1 | Especifica la frecuencia de corte baja del filtro. El valor debe estar entre 0 y 1, donde 1 corresponde a la frecuencia de Nyquist normalizada. Es obligatorio. |
| filterCutoff2 | Especifica la frecuencia de corte alta del filtro. Requerido solo si filterType es 'bandpass' o 'bandstop'. Valor entre 0 y 1. |
| filterName | Nombre del filtro a diseñar. Valores posibles: 'butter' (o 'butterworth'), 'cheby1' (o 'chebyshev1'), 'cheby2' (o 'chebyshev2'). |
| filterOrder | Orden del filtro a diseñar. Debe ser un entero positivo con un valor máximo de 200. |
| filterOutTable | Especifica la tabla de salida que contendrá los coeficientes del filtro diseñado. |
| filterRp | Especifica la ondulación de la banda pasante en decibelios (dB). Requerido solo para el filtro Chebyshev Tipo I. |
| filterRs | Especifica la atenuación de la banda de parada en decibelios (dB). Requerido solo para el filtro Chebyshev Tipo II. |
| filterType | Tipo de filtro a diseñar. Valores posibles: 'lowpass' (paso bajo), 'highpass' (paso alto), 'bandpass' (paso banda), 'bandstop' (rechazo de banda). |
| inputVarName | Nombre de la variable de entrada para el filtro. El valor predeterminado es 'signal'. |
| smoothedVarName | Nombre de la variable de salida suavizada. El valor predeterminado es 'output'. |
Carga del conjunto de acciones necesario para ejecutar el diseño de filtros.
| 1 | PROC CAS; |
| 2 | SESSION casauto; |
| 3 | LOADACTIONSET "timeFilters"; |
| 4 | RUN; |
Diseña un filtro de paso bajo Butterworth de orden 4 con una frecuencia de corte de 0.5 y guarda el resultado en una tabla.
| 1 | PROC CAS; |
| 2 | timeFilters.filterDesign / |
| 3 | filterName="butter" |
| 4 | filterType="lowpass" |
| 5 | filterOrder=4 |
| 6 | filterCutoff1=0.5 |
| 7 | filterOutTable={name="butter_filter", replace=true}; |
| 8 | RUN; |
Diseña un filtro Chebyshev Tipo I de paso banda de orden 5. Se especifican ambas frecuencias de corte (baja y alta) y la ondulación de la banda pasante.
| 1 | PROC CAS; |
| 2 | timeFilters.filterDesign / |
| 3 | filterName="cheby1" |
| 4 | filterType="bandpass" |
| 5 | filterOrder=5 |
| 6 | filterCutoff1=0.2 |
| 7 | filterCutoff2=0.6 |
| 8 | filterRp=0.5 |
| 9 | filterOutTable={name="cheby1_bandpass", replace=true}; |
| 10 | |
| 11 | /* Imprimir la tabla de salida para verificar los coeficientes */ |
| 12 | TABLE.fetch / TABLE="cheby1_bandpass"; |
| 13 | RUN; |