timeFilters

filterDesign

Descripción

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ámetros
ParámetroDescripción
casOutEspecifica la tabla de salida opcional para los parámetros del filtro.
filterCutoff1Especifica 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.
filterCutoff2Especifica la frecuencia de corte alta del filtro. Requerido solo si filterType es 'bandpass' o 'bandstop'. Valor entre 0 y 1.
filterNameNombre del filtro a diseñar. Valores posibles: 'butter' (o 'butterworth'), 'cheby1' (o 'chebyshev1'), 'cheby2' (o 'chebyshev2').
filterOrderOrden del filtro a diseñar. Debe ser un entero positivo con un valor máximo de 200.
filterOutTableEspecifica la tabla de salida que contendrá los coeficientes del filtro diseñado.
filterRpEspecifica la ondulación de la banda pasante en decibelios (dB). Requerido solo para el filtro Chebyshev Tipo I.
filterRsEspecifica la atenuación de la banda de parada en decibelios (dB). Requerido solo para el filtro Chebyshev Tipo II.
filterTypeTipo de filtro a diseñar. Valores posibles: 'lowpass' (paso bajo), 'highpass' (paso alto), 'bandpass' (paso banda), 'bandstop' (rechazo de banda).
inputVarNameNombre de la variable de entrada para el filtro. El valor predeterminado es 'signal'.
smoothedVarNameNombre de la variable de salida suavizada. El valor predeterminado es 'output'.
Preparación del entorno

Carga del conjunto de acciones necesario para ejecutar el diseño de filtros.

¡Copiado!
1PROC CAS;
2 SESSION casauto;
3 LOADACTIONSET "timeFilters";
4RUN;

Ejemplos

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.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 timeFilters.filterDesign /
3 filterName="butter"
4 filterType="lowpass"
5 filterOrder=4
6 filterCutoff1=0.5
7 filterOutTable={name="butter_filter", replace=true};
8RUN;
Resultado :
Se genera la tabla 'butter_filter' en la biblioteca activa con los coeficientes del diseño del filtro.

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.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC 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";
13RUN;
Resultado :
Se crea la tabla 'cheby1_bandpass' conteniendo los coeficientes del filtro. La acción table.fetch muestra estos coeficientes en el log/salida.

FAQ

¿Cuál es el objetivo principal de la acción filterDesign?
¿Qué parámetros son obligatorios al usar esta acción?
¿Qué define el parámetro filterCutoff1?
¿En qué casos se debe especificar el parámetro filterCutoff2?
¿Qué valores son válidos para el parámetro filterName?
¿Cuál es el valor máximo permitido para filterOrder?
¿Para qué sirve el parámetro filterRp?
¿Cuál es la función del parámetro filterRs?
¿Qué tipos de filtros se pueden configurar en filterType?
¿Qué se almacena en la tabla especificada por filterOutTable?