Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NÚMERO 19
SEPTIEMBRE DE 2005
Volumen II
ISSN 1696-7208
En este artículo pretendemos mostrar cómo con ayuda de herramientas para cálculo numérico
podemos diseñar filtros digitales apropiados para una gran diversidad de aplicaciones. Aunque en
el curriculum para Técnicos Superiores en Desarrollo de Productos Electrónicos no se contemplan
estos contenidos, sí resulta de interés que conozcan los alumnos la existencia de herramientas no
específicas para diseño de circuitos pero que pueden facilitar mucho la labor de diseño, en este
caso de filtros.
Tal vez estamos comentiendo un error al decir “no específicas” ya que Matlab tiene una completa
gama de herramientas para diseño de filtros mediante esta utilidad. Pero también es cierto que
esta “toolbox” ha ido desarrollandose a lo largo de los años pues esas funciones especiales no son
1
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
más que scripts totalmente desarrollados y comprobados en base a los comandos matemáticos
básicos de Matlab. O, lo que es lo mismo, nosotros mismos podemos enriquecer la gama de
herramientas mediante el desarrollo de scripts propios para realizar determinadas tareas (por
ejemplo, para automatizar determinados diseños).
ser una herramienta estándar para muchos trabajos en las disciplinas de la ciencia y la
ingeniería, donde el cálculo asistido por ordenador siempre ha tenido vital importancia.
Entre otras muchas cosas, permite la realización de gráficos de forma sencilla tanto en
Matlab tiene dos modos diferentes para la ejecución de comandos: el modo interactivo y
comandos se salvan en un fichero de texto (usando para ello el editor propio de Matlab
con las funciones de depurado que posee o cualquier otro editor de textos) sin tener que
el editor de matlab, existen herramientas de depurado simples que pueden llegar a ser de
gran cuando el script (el archivo .m) comienza a ser grande y complicado.
2
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
3
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
El diseño de filtros
En el texto no tratamos de mostrar de forma teórica cuales son las técnicas más habituales
implementaciones.
como un filtro. Aquí se entiende por filtro aquel sistema lineal e invariante que permite el
elimina las demás. De forma ideal, el módulo de la respuesta frecuencial del filtro toma
aquella que se sitúa entre dos bandas cuyas atenuaciones están específicada, por tanto, se
dando libertad de esa forma al diseño del filtro siempre y cuando se cumplan los
requisitos impuestos en la banda de paso y de rechazo. Los cuatro filtros básicos, desde el
punto de vista ideal del comportamiento del módulo de la respuesta frecuencial, según
sea la posición relativa de bandas de paso y bandas atenuadas, reciben el nombre de paso
bajo, paso alto, paso banda y elimina banda, dependiendo de la parte del espectro de
frecuencias en la que se centra la banda de paso. Por ejemplo, el paso bajo se caracteriza
4
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
porque deja pasar todas las componentes frecuenciales de la señal en el rango bajo de las
una etapa previa al amplificador para que el ruido no se amplifique y llegue a saturar al
filtro paso banda cancela las bajas y las altas frecuencias (bandas atenuadas inferior y
intermedio.
Hasta el momento hemos hablado de características ideales, de ahí que a los filtros que
En este texto vamos a presentar cómo se puede obtener diseños de filtros que aproximen
la respuesta ideal del filtro en el dominio digital (o Z). Para ello obtenemos la respuesta
En el diseño de filtros digitales se pueden distinguir dos tipos básicos. Por un lado,
aquellos en la que la respuesta impulsional del filtro tiene un número finito L de muestras
5
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
orden es L-1. Esto implica que el filtro tiene L-1 ceros distribuidos en el plano complejo
z y todos los polos en el origen. Por ello suele hablarse de los filtros FIR como filtros
sólo ceros. Por otro lado, existen los llamados filtros recurrentes cuya respuesta
impulsional tiene longitud infinita o filtros IIR (Infinite Impulse Response). Un filtro IIR
Para que un sistema sea realizable debe ser causal y estable. En ningún caso el filtro
diseñado puede tener una respuesta frecuencial ideal. Por tanto, el filtro se diseña de
respuesta frecuencial en la banda de paso y sobre el valor nulo en la banda atenuada. Esas
tolerancias suelen recibir el nombre de rizado. Además, se acepta una banda de transición
6
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
banda de paso y la banda de rechazo, entre ellas se extiende la banda de paso. Las dos
últimas son las tolerancias permitidas tanto en la banda de paso como en la de rechazo.
Filtros FIR
Existen diversos métodos para el diseño de filtros FIR, entre ellos destacan tres. El más
caracterizadas porque al llevarlas al campo digital tenían una respuesta de tipo IIR.
respuesta impulsional h(n) y nos quedamos con una parte de ella, el resultado desde el
punto de vista de la función de filtrado del sistema sería el mismo. Aunque grosso modo
eso es así, desde el punto de vista frecuencial se producen una serie de deformaciones en
el espectro del filtro obtenido que nos llevarían a considerables errores a no ser por el uso
de ventanas pensadas para este uso. Esas ventanas no son más que secuencias de longitud
finita que tienen una respuesta frecuencial que permite que al ser multiplicadas por la
función de transferencia utilizada el error no sea muy grande. Esto es una descripción
intuitiva y nada rigurosa del sentido del enventanado. Básicamente se utilizan tres tipos
7
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
respuesta frecuencial ideal. El diseño por muestreo en frecuencia es muy popular dada su
directamente la amplitud del error. Tampoco se conoce un criterio estimativo del orden
del filtro. Para conseguir un comportamiento ajustado a una plantilla debe acudirse a una
estrategia de ensayo y error tediosa, que en la mayoría de los casos proporciona un filtro
aquellos con rizado de amplitud constante. La respuesta frecuencial que ofrecen los
presenta un error en las bandas de paso y atenuadas cuya amplitud crece en las
proximidades de las bandas de transición. La solución a ese problema que aporta esta
metodología es la de repartir el error por las diversas bandas usando una función que lo
Entre las propiedades que podremos comprobar en los resultados del enventanado para la
8
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
obtención de filtros FIR está, gracias al ajuste del orden del filtro por el método de
Remez, que la anchura de la banda de transición del filtro, que se corresponde con la
También descubriremos el por qué la ventana de Kaiser es una de las más utilizadas.
Sólo dos parámetros son necesarios para la obtención del filtro y dichos parámetros (beta
y N) son fácilmente obtenibles a partir de unas fórmulas fáciles de usar. Su sencillez, por
Y podremos observar que a diferencia del caso de los filtros IIR, el cumplimiento de los
requisitos del filtro no se realiza de una forma tan exacta e inmediata. Esta característica
notable sobrecumplimiento de los requerimientos para la banda de paso, debido a que los
máximos del error en la banda de paso y la banda atenuada son del mismo orden de
transformada de la ventana.
Por último, veremos que el orden del filtro FIR obtenido por el método de Remez es
menor que el obtenido usando la ventana de Kaiser. Como recordaremos más adelante,
del estudio del diseño de filtros analógicos la aproximación que menor orden requiere
para satisfacerlas es aquella en que los máximos del valor absoluto del error en la banda
que el error presente alternativamente máximos y mínimos. Es por tanto de esperar que el
9
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
caso de diseño de filtros FIR no sea distinto y este tipo de comportamiento resulte
óptimo. Esto se traduce en que para una selectividad y una discriminación dada no exista
un diseño de menor orden que el que presenta comportamiento con rizado de amplitud
obtenerse un diseño con menor discriminación, desde el punto de vista de los filtros FIR.
KAISER
El código Matlab para la obtención de una aproximación de este tipo es muy sencillo.
kw = KAISER(N,Beta);
hn=fir1(N-1,Wp,kw);
[Yz,w]=freqz(hn,1,512);
beta y el orden(N), que se obtienen mediante unas fórmulas relacionadas con el valor de
Por otro lado la función fir1 realiza la obtención del filtro(de la secuencia) hn mediante
señal. Lo importante es que la función de matlab fir1 requiere como entradas la ventana a
emplear(en nuestro caso kw), la frecuencia de corte de la banda de paso (Wp) y el orden
deseado.
diseñado.
El orden del filtro para cunplir las especificaciones que hemos tomado para el diseño es
10
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
Media
nte un
sencil
lo
zoom
para comprobar que el diseño cumple con las especificaciones. Como se observa, la
11
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
Otro parámetro importante es la respuesta de fase del filtro, que interesa sea
der
iva
da,
den
om
ina
da retardo de grupo. El hecho de que sea lo más lineal posible el retardo de fase implica
que el retardo de grupo sea constante. Esto implica que el filtro no influya ni distorsione
Como se observa el retardo de grupo es casi constante, lo cual es una caracteristica muy
buena de este tipo de filtros. Los filtros FIR tienen un mejor comportamiento desde el
12
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
punto de vista del retardo de grupo y de la distorsión de fase que provoque el filtro que
La obtención de esta aproximación es más compleja que la que hemos empleado con
La estimación del orden del filtro dada por la función remezord utilizada no era lo
diseños. Al ser el orden un factor muy crítico en una implementación pues marca los
recursos a emplear, existe ocasiones que las aproximaciones efectuadas para el cálculo
automático del orden no sean exactas, por lo que tendremos que modificar manualmente
deseada.
13
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
menor de 0.01). Por ello, hemos aumentado manualmente el orden del filtro desde los 42
dados por la estimación hasta los 47 para los que el filtro cumple las especificaciones.
La respuesta en magnitud de este filtro, tal como se observa en las figuras siguientes, es
de tipo oscilatorio o de igual rizado, en las bandas de interés. Esa característica es la que
La respuesta en magnitud en decibelios también nos muestra ese rizado en las bandas de
paso y de rechazo.
14
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
15
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
Filtros IIR
recursivas.
Una de las particularidades de estos filtros respecto a los tipo FIR es el hecho de que su
Elíptica.
requeriría es la Butterword mientras que la que menos (menor orden) es la elíptica. Por su
parte, tanto la implementación chebyshev directa como inversa son del mismo orden y,
por tanto, de igual complejidad computacional. Esto implica que para unas restricciones
dadas el orden (en definitiva, el coste computacional de nuestro sistema) será mayor con
Por otra parte, se comprueba en las mismas gráficas que se manifiestan las características
16
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
atenuada, al igual que la chebyshev inversa, que sin embargo presenta una banda de paso
plana.
Como ya hemos mencionado, la aproximación elíptica es, entre todas, la que requiere
menor orden, por lo que es comúnmente utilizada cuando el principal interés se centra en
minimizar el orden del filtro; sin embargo, veremos que su fase es la que más se aleja del
comportamiento lineal, tal como se observa en las gráficas, entre las diversas
aproximaciones.
fase más próxima al ideal para un orden dado, pero el orden que necesita para cumplir las
Butterworth
básicamente dos comandos. Por un lado buttord que, a partir de las especificaciones de
17
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
respectivas frecuencias de corte de cada una de las bandas, nos da el orden del filtro y la
frecuencia natural del filtro. Por otro lado, a partir del orden del filtro y de la frecuencia
medio de las funciones filter y freqz podemos obtener la respuesta en Z del filtro digital.
El orden del filtro obtenido mediante esta aproximación es de 11. Si bien en un primer
momento nos puede sugerir este orden que computacionalmente es más eficiente que las
implementaciones tipo FIR, debemos tener en cuenta que el error de fase implicita en este
tipo de filtros IIR hace no tan aconsejable este tipo de filtrado cuando la linealidad de la
La
respues
ta en
magnit
18
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
orden de este tipo de aproximación, orden que es superior a otras aproximaciones debido
La respuesta de fase de esta aproximación, sin embargo, es mejor que la del resto de
aproximaciones IIR como veremos, siendo algo más próxima a la ideal, pero nunca tan
Cheby
shev-I
Matlab
dispon
e de
funcio
El orden obtenido a partir de esa función, que requiere las mismas entradas de datos que
19
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
esta aproximación. Vemos que la banda de paso no es totalmente plana. Decimos que la
banda. Sin embargo, esa característica implica un coste en términos de orden que se
Al
observar la
La característica que más se ve afectada es la fase, como vemos en las gráficas, siendo la
20
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
Chebysh
ev-II
Mediante
las
funcione
s de
buscada. El orden es 7, igual que la anterior aproximación. Eso se debe a que la forma de
obtener una a partir de la otra es mediante una sencilla transformación matemática que
Butterword.
21
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
Elíptico
Ellipord y
ellip son
las
de paso y de rechazo de este filtro. Por un lado, mientras que la banda de paso del
Butterword es máximamente plana la del elíptico manifiesta un rizado, por otro, mientras
ocasionan que el orden del filtro sea incluso menor que la aproximación Chebyshev, tanto
22
Matlab y el diseño de filtros digitales. Ricardo Valerio Bautista Cuéllar
En
conclusión
BIBLIOGRAFÍA
• “Digital Signal Processing. A computer-based approach.” S.K. Mitra. Ed. Mc-Graw Hill
• “Digital communication systems”, P.Z. Preebles. Ed. Prentice Hall International.
• “Digital Signal Processing Handbook”, Madisetti y Williams. Ed. CRC Press.
• “Signals and Systems”, A.V. Oppenheim. Ed. Prentice-Hall.
23