Temario¶
Caracterización de los filtros
Pasa-bajos
Pasa-altos
Pasa-banda
Elimina-banda
Pasa-todo
Tipos de filtros con LTI. Butterworth, Chebyshev I y II, Elípticos (Cauer), Bessel
Obtención de la función transferencia con SciPy (
sicpy.signal)Simulación del filtro en Python
Presentación de herramienta web para diseño de filtros electrónicos activos: Web Bench Filter Design Tool.
Filtros analógicos¶
Vamos a describir las características de los tipos de filtros más habituales. Por otra parte, un cierto conocimiento de filtrado analógico es necesario para diseñar las etapas de adquisición (filtros antialising) y reproducción (filtros de reconstrucción) en sistemas de procesamiento digital. Se distinguen por la caída de la respuesta en frecuencia en la primera década, desde la frecuencia de corte y en el retardo de grupo. En la siguiente figura mostramos las respuestas en frecuencia que definen la los filtros analógicos más empleados. A continuación analizaremos cada uno de ellos con más detalle.
En general, para poder sintetizar un filtro análogico, primero vamos a obtener sunfunción transferencia. Según los objetivos del filtro existen distintos tipos entre los cuales podemos elegir para obtener la función transferencia.

Filtro de butterworth: Respuesta maximamente plana en la banda de paso y en la banda de eliminación.
Filtro de filtros Tchebyshev tipo I: consiguen una caída más abrupta a frecuencias bajas en base a permitir un rizado de la respuesta en frecuencia en alguna de las bandas:
Son filtros solo polos
Presentan rizado constante en la banda pasante
Presentan una caída monotónica en la banda no pasante
Filtro de filtros Tchebyshev tipo II: consiguen una caída más abrupta a frecuencias bajas en base a permitir un rizado de la respuesta en frecuencia en alguna de las bandas:
Son filtros polos y ceros
Presentan rizado constante en la banda atenuación
Presentan una caída monotónica en la banda de paso
Filtro de Cauer: consiguen una caída más abrupta en base a permitir rizados constantes en ambas bandas.
Filtro de Bessel: son filtros solo polos que no pretenden optimizar la anchura de la zona de transición sino asegurar fase lineal en toda la bandas pasante, ya que los filtros anteriores la degradaban progresivamente con la frecuencia.
Parámetros de los filtros¶
frecuencia de corte: frecuencia a la cual la ganancia cae 3 db respecto a la ganancia en la freuncia de paso: (frecuencia infinita para el pasa alto, frecuencia 0 para el pasa bajo y frecuencia media para el pasa banda)
ancho de banda: tiene sentido su definición para el pasa-banda y es la resta entre la frecuencia de corte superior y la inferior del filtro. En un pasa-bajos el ancho de banda es la frecuencia de corte del sistema.
atenuación mínima: en general se requiere una atenuación mínima en un rango de frecuencias determinado en la banda de rechazo. Por ejemplo para un filtro pasabajos de frecuencia de corte 100 Hz se le puede pedir una atenuación (inversa de la ganancia) mínima de 100 para frecuencias mayores a 500 Hz.
Tipos de filtros según su rango de frecuencias de paso¶
pasa-bajos: permite el paso de bajas frecuencias eliminando las altas
pasa-altos: permite el paso de las altes frecuencias elimando las altas
pasa-banda: permite el paso de un rango de frencuencias, elimando las altas y las bajas
elimina-banda: rechaza un rango de frecuencias, permitiendo el paso de frecuencias altas y bajas
pasa-todos: son filtro que lo que buscar es modificar la fase más que la ganancia del sistema.
Herramienta de diseño de filtro¶
El paquete de scipy de Python cuenta con varias herramientas para el diseño de filtros dentro del módulo signal.
Vamos a mostrar aquí las funciones para un filtro butterworth:
scipy.signal.buttord: sirve para obtener el orden del filtro de butterwoth que cumple con los requerimientos en la banda de paso y en la banda de rechazo. Toma como argumento las banda de paso de y rechazo y las ganancias de para esas bandas.scipy.signal.butt: sirve para obtener el filtro a partir de las frecuecnias de corte y el orden obtenido con la función anterior.
El mismo par de funciones anteriores se puede encontrar para los otros tipos de filtros: Cauer, Chebyshev I y II, y Bessel. Otras dos funciones útiles par el diseño de filtros pueden ser:
scipy.signal.iirdesignscipy.signal.iirfilter
Todas estas funciones están pensadas para calcular las mismas cosas, pero se utilizan de manera diferente. Siempre es conveniente chuequear la documentación de scipy.signal al respecto.
Ejemplo¶
Supongamos que queremos realizar un filtro pasa-banda con frecuencias de corte 100 y 500 rad/seg, con ganancia 1 en la banda de paso y una atenuación 10 para ganancias menores a 10 rad/seg y mayores 2500 rad/seg.
Para estudiar este filtro voy a utilizar el paquete de control instalado con las herramientas dadas.
from control import tf, bode
from scipy.signal import iirdesign, iirfilter
import matplotlib.pyplot as plt
%matplotlib widget
b,a= iirdesign([100, 500], [10, 2500], 3, 40, True, 'butter', 'ba')
G=tf(b,a)
G