Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Filtros Dig PDF
Filtros Dig PDF
La mayora de los textos sobre procesamiento digital de seales dedican un espacio sus-
tancial a la teora de diseo de filtros incluyendo especialmente los mtodos de aproxi-
macin tipo Butterworth, Chebyshev, elptico, Cauer, etc. lo que refleja no slo el formi-
dable esfuerzo de investigacin destinado a desarrollar mtodos tiles para el clculo de
los coeficientes de los filtros, sino tambin los avances significativos que se han logra-
do en este campo. En este captulo, basado en (Ifeachor y Jarvis, 1993) se presenta un
panorama global del proceso de diseo, postergando los aspectos tericos a los captulos
siguientes. Se describe paso a paso el proceso de diseo de filtros desde las especifica-
ciones hasta la implementacin, y se detallan las opciones de que dispone el diseador, y
los factores que pueden influir en sus decisiones.
Un filtro es un sistema o una red que cambia selectivamente la forma de onda, o las
caractersticas amplitud-frecuencia o fase-frecuencia de una manera deseada. Los obje-
tivos comunes del proceso de filtrado son mejorar la calidad de la seal, por ejemplo
removiendo o atenuando el nivel de ruido, extrayendo informacin de dos o ms seales
previamente combinadas para hacer uso eficiente de un canal de comunicacin, etc.
Un filtro digital es un algoritmo implementado en hardware y/o software que opera so-
bre una seal de entrada digital (discreta en tiempo y cuantizada en amplitud) y genera
una seal digital de salida, con la finalidad de efectuar un proceso de filtrado. El trmino
filtro digital se refiere al hardware o software especfico que ejecuta el algoritmo. Los
filtros digitales trabajan sobre valores numricos asociados a muestras de esas seales
analgicas previamente digitalizadas por conversores A/D o simplemente sobre un con-
junto de nmeros almacenados en la memoria de una computadora o microprocesador.
En la Fig. 7.1 se muestra un diagrama bloque simplificado de un filtro digital que opera
en tiempo real, con entradas y salidas analgicas. La seal de entrada, limitada en banda,
se muestrea peridicamente y se convierte en una serie de muestras x [n], n = 0, 1, ... El
procesador digital convierte la sucesin de entrada x [n] en una sucesin de salida y[n]
de acuerdo al algoritmo de cmputo. El conversor digital-analgico convierte la salida
1
2 7. Diseo de filtros digitales
digital y[n] a valores continuos en tiempo que son procesados por un filtro analgico
para suavizar la forma de onda y remover componentes no deseadas de alta frecuencia.
Los filtros digitales juegan un papel muy importante en el procesamiento digital de
seales. En gran nmero de aplicaciones, como compresin de datos, procesamiento de
seales biomdicas, procesamiento de seales de voz, procesamiento de imgenes, trans-
misin de datos, audio digital, cancelamiento de ecos telefnicos, se prefieren por sobre
los filtros analgicos por uno o ms de los siguientes motivos:
Los filtros digitales pueden tener caractersticas que son imposibles de conseguir
con filtros analgicos, como por ejemplo una respuesta de fase exactamente lineal.
El desempeo de los filtros digitales no vara con las condiciones ambientales (tem-
peratura, humedad, etc.) como s ocurre con los filtros analgicos, lo que elimina la
necesidad de calibrarlos peridicamente.
El mismo filtro puede procesar varias seales o canales de entrada sin necesidad de
replicar el hardware.
Las seales filtradas y sin filtrar pueden almacenarse para uso o anlisis posterior.
Los avances en las tcnicas de integracin VLSI hacen que sea posible fabricar filtros
digitales pequeos, de bajo consumo, y de muy bajo costo.
La precisin con que un filtro digital verifica las especificaciones de diseo est
limitada solamente por la longitud de palabra (bits) utilizada para representar los
coeficientes del filtro y ejecutar las operaciones aritmticas; con los filtros analgicos
es difcil lograr atenuaciones que excedan los 60 o 70 dB en la banda de rechazo
(utilizando componentes convencionales).
Los filtros digitales pueden utilizarse a muy bajas frecuencias, como las que se en-
cuentran en aplicaciones biomdicas, donde el empleo de filtros analgicos es poco
prctico por los valores muy elevados de los componentes pasivos involucrados
(capacitores, inductancias). Adems, los filtros digitales pueden trabajar sobre un
amplio rango de frecuencias simplemente cambiando la frecuencia de muestreo.
Sin embargo, los filtros digitales tambin presentan una serie de desventajas respecto a
los filtros analgicos:
Efectos de longitud finita de palabra. En general, los coeficientes del filtro implementa-
do sern distintos de los calculados tericamente si la representacin numrica que
se utiliza para implementar el filtro no es de precisin infinita (punto flotante). No s-
lo influye la cuantizacin de los coeficientes del filtro, sino tambin el redondeo de
las operaciones numricas, la cuantizacin del conversor A/D y D/A, la truncacin
que ocurre al almacenar los contenidos del acumulador en memoria, etc. Estos efec-
tos, que se modelan como fuentes de ruido de distribucin uniforme, pueden lim-
itar seriamente el desempeo de los filtros digitales: variaciones de ganancia en la
banda de paso, menor atenuacin en la banda de rechazo, y hasta pueden conducir
a la inestabilidad en filtros recursivos de orden elevado.
Del anlisis de estas dos ecuaciones es evidente que, mientras que la suma convolucin
puede ser una forma apropiada para implementar un filtro FIR, no es adecuada para
los filtros IIR debido a que la respuesta impulsiva es muy larga (en teora, infinitamente
larga). Por ello, los filtros IIR se implementan con ecuaciones a diferencia que permiten
calcular las muestras de salida en forma recursiva
N M
y[n] = ak y[n k] + bk x [ n k ], (7.3)
k =1 k =0
para filtros FIR e IIR, respectivamente, y resultan convenientes para el anlisis de estabil-
idad, respuesta en frecuencia, etc.
Los factores que influencian la eleccin entre distintas alternativas en cada etapa del dis-
eo de filtro tienen mucho que ver con que el filtro sea FIR o IIR. Por ello resulta impor-
tante apreciar las diferencias entre ambos tipos de filtros, las caractersticas peculiares de
cada uno, y, lo ms importante, cmo elegir entre uno y otro.
La eleccin entre una implementacin FIR e IIR depende de las ventajas relativas de cada
uno de estos dos tipos de filtros.
1. Los filtros FIR se pueden disear para tener una respuesta de fase estrictamente
lineal (distorsin de fase nula), lo que es importante en muchas aplicaciones, como
transmisin de datos, audio digital y procesamiento de imgenes. La respuesta de
fase de filtros IIR no es lineal, en especial en cercanas de la zona de transicin.
2. Los filtros FIR implementados de forma no recursiva, por ejemplo aplicando (7.2),
son inherentemente estables. En cambio, la estabilidad de los filtros IIR siempre
debe comprobarse, ya que son sistemas realimentados.
3. Los efectos causados por la implementacin con aritmtica de punto fijo, tales como
los errores de cuantizacin de los coeficientes y los errores por redondeo en las
operaciones aritmticas, son mucho ms severos en los filtros IIR que en los FIR.
4. Para satisfacer unas especificaciones dadas los filtros FIR necesitan un mayor nmero
de coeficientes que los filtros IIR, sobre todo si las bandas de transicin son estre-
chas. En consecuencia, los requerimientos de memoria, el nmero de operaciones
y los tiempos de procesamiento son mayores para los FIR que para los IIR. Sin em-
bargo, la posibilidad de implementar los FIR mediante la tcnica de convolucin
rpida usando FFT y tambin el empleo de tcnicas multirate permiten aumentar
significativamente la eficiencia de las implementaciones.
Fig. 7.2. Representacin en diagrama bloque del ltro IIR del Ejemplo 7.1.
Fig. 7.3. Respuesta en frecuencia del ltro IIR (7.4): mdulo ( a) , fase (b) y retardo de grupo (c).
Fig. 7.4. Representacin en diagrama bloque del ltro FIR del Ejemplo 7.1.
Fig. 7.5. Respuesta en frecuencia del ltro FIR (7.5): mdulo ( a) , fase (b) y retardo de grupo (c) .
La Fig. 7.4 muestra el esquema de una posible implementacin, cuya ecuacin a diferencias es
FIR IIR
Nmero de multiplicaciones: 12 5
Nmero de sumas: 11 4
Lugares de memoria (coeficientes y datos): 24 8
Las caractersticas generales de los filtros recursivos (IIR) y no recursivos (FIR) han vari-
ado desde la dcada del 70 hasta la actualidad, como muestra la Tabla 7.1. En 1970 la
aplicacin fundamental era el filtrado selectivo en frecuencia y los filtros IIR ofrecan
mayores ventajas, sobre todo porque se haban obtenido mtodos de diseo analticos,
ptimos, en forma cerrada.
Cuando la aplicacin de los filtros digitales se extendi a otros campos (filtros acopla-
dos y filtros adaptivos) el diseo ptimo de los IIR dej de ser prctico, y los FIR se
volvieron una eleccin natural, en especial porque la teora y las tcnicas de diseo de los
filtros adaptivos estn bien desarrolladas solamente para filtros FIR. Tambin aparecieron
nuevas aplicaciones en las que era necesario preservar la forma de onda de la seal de
salida, lo que impone que el filtro tenga una respuesta de fase lineal. Este requisito se
satisface ms fcilmente usando filtros FIR. En general, los factores que contribuyeron a
la mayor utilizacin de filtros no recursivos fueron:
Tabla 7.1: Comparacin entre filtros recursivos (IIR) y no recursivos (FIR) a lo largo
del tiempo. Las zonas grisadas indican las reas donde una de las implementa-
ciones es superior a la otra.
aparicin de tcnicas para trabajar con filtros FIR con respuesta impulsiva de gran
longitud (mtodo de convolucin rpida, propuesto por Stockham en 1966);
Como resultado de esta evolucin, para 1980 las preferencias se haban volcado hacia los
filtros no recursivos (FIR). Pero como muestra la Tabla 7.1, algunas de las caractersticas
que favorecieron a los FIR durante 1980 se neutralizaron en la dcada del 90. Lo que
cambi para los IIR es que en la actualidad se pueden disear para ser siempre estables
y tambin para tener una respuesta de fase lineal. Las implementaciones recientes son
En alguna literatura se considera que los filtros IIR tienen problemas de inestabilidad,
respuesta de fase no lineal, paralelismo limitado, y que son inapropiados para ciertas
aplicaciones. Sin embargo, la mayora de estas limitaciones pueden salvarse si se efec-
ta procesamiento por bloques, y se acepta el error despreciable de truncar la respuesta
impulsiva. Un filtro recursivo puede aproximar una respuesta impulsiva deseada con er-
ror arbitrariamente pequeo. En teora, la respuesta impulsiva de un filtro recursivo es
infinitamente larga (de ah el nombre IIR), pero en la prctica la respuesta decae expo-
nencialmente rpido a cero y se la puede truncar despus de algunos cientos de muestras
cuando ha decado a valores insignificantes, manteniendo la cota de error. El compor-
tamiento es equivalente a filtrar la seal con un filtro FIR de orden elevado, pero con
muchas menos operaciones por muestra que las que seran necesarias para un filtro FIR
de la misma longitud.
La seal de entrada se parte en bloques de longitud L, mucho mayor que la longitud P
de la respuesta impulsiva (truncada) del filtro. Cada bloque de entrada se filtra usando la
ecuacin a diferencias recursiva, y el resultado se trunca a longitud L + P 1. Los bloques
de salida sucesivos se concatenan como en el mtodo overlap-add solapando las primeras
P 1 muestras de la etapa actual con las ltimas P 1 muestras de la etapa anterior.
La eficiencia computacional aumenta, pues mientras que el clculo de cada muestra de
salida necesita P operaciones en un FIR de longitud P, la aproximacin de su respuesta
impulsiva con un filtro IIR de orden N se consigue con N P. De esta forma el clculo
de cada muestra de salida necesita a lo sumo 2N P operaciones.
El procesamiento por bloques permite adems solucionar otro tipo de problemas:
1. Estabilidad: El procesamiento por bloques permite que los filtros no sean necesari-
amente causales. En los filtros causales, los polos fuera del crculo unitario repre-
sentan inestabilidad, pero si cada bloque de salida se computa iterando la ecuacin
a diferencias hacia atrs en el tiempo, los polos que estn fuera del crculo no im-
plican inestabilidad. De esta forma se pueden tener filtros recursivos con polos en
cualquier lugar del plano complejo, excepto sobre el crculo unitario.
pueden implementar fcilmente como IIR an usando el esquema de filtrado por blo-
ques.
2. las caractersticas del filtro: la respuesta en mdulo y/o fase deseadas y sus toler-
ancias, la velocidad de operacin, el modo de filtrado (en lnea o fuera de lnea);
Fig. 7.7. Bandas de tolerancia para el ltro pasabanda del Ejemplo 7.2.
IIR FIR
invariacin al impulso ventanas
transformada bilineal bandas de transicin suaves
ubicacin directa de polos y ceros muestreo en frecuencia
ptimos ptimos
cillo y flexible pero no permite un control muy preciso sobre los parmetros del filtro.
La tcnica de las bandas de transicin suaves permite atenuar el efecto Gibbs, a costa de
una pequea complejidad adicional. El mtodo de muestreo en frecuencia permite una
implementacin particularmente eficiente (y recursiva) de filtros FIR, pero puede tener
problemas cuando se usa aritmtica de punto fijo. Con la disponibilidad de programas
de diseo eficientes y con buena interfaz con el usuario, los mtodos ptimos son am-
pliamente utilizados hoy en da, y para la mayora de las aplicaciones permiten obtener
rpidamente el filtro FIR deseado.
Los mtodos tpicos para el clculo de los coeficientes de los filtros se resumen en la Tabla
7.2. El mtodo de diseo se elige de acuerdo a la aplicacin en particular. Si bien influyen
varios factores, el ms importante es qu tan crticas son las especificaciones. La decisin
difcil es optar entre FIR o IIR. En aquellos casos en que las propiedades de los FIR (re-
spuesta de fase estrictamente lineal, estabilidad inherente) son imprescindibles, la mejor
eleccin puede ser el diseo por mtodos ptimos, o usando ventanas (generalmente la
de Kaiser). Si, en cambio, son deseables las caractersticas de los IIR (menor cantidad
de coeficientes para especificaciones similares) el mtodo de la transformada bilineal es
apropiado para la mayora de los casos.
7.5.3. Realizacin
Por realizacin se entiende convertir una funcin de sistema H (z) en un conjunto de ecua-
ciones a diferencias que se ejecutarn como un algoritmo en un procesador. El conjunto
de ecuaciones tambin se conoce como la estructura del filtro. Existen infinitas formas
de escribir la ecuacin a diferencias, de modo que existen infinitos tipos de estructuras.
Matemticamente las distintas realizaciones producen el mismo resultado sobre la seal
a filtrar; sin embargo en el momento de la implementacin la sensibilidad a la variacin
de los coeficientes, propagacin del ruido de redondeo o de truncacin, organizacin y/o
requerimientos de memoria en un procesador en particular, etc., suelen decidir la elec-
cin de una estructura particular. Cada realizacin se asocia a un diagrama bloque como
los de las Figs. 7.2 y 7.4, que revela la cantidad de lugares de memoria necesarios para el
almacenamiento de los datos y los coeficientes, nmero de operaciones requeridas, etc.
Es frecuente utilizar distintas estructuras para implementar filtros IIR o FIR. Para filtros
IIR, las tres estructuras tpicas son las formas directa, cascada y paralelo; el diagrama bloque
de una forma directa, denominada de tipo II es la que se muestra en la Fig. 7.2 para un
sistema de segundo orden. En este caso, la funcin transferencia (9.4) se implementa con
el conjunto de ecuaciones a diferencia (9.5); la Fig. 7.2 muestra que se necesitan dos lu-
gares de memoria para almacenar la historia del filtro (los cuadrados sealados con z 1 )
Fig. 7.8. Comparacin de los patrones de polos y ceros de una implementacin en forma directa I ( a)
y en secciones de segundo orden, cada una de ellas en forma directa I (b) .
da resultados muy diferentes, como se puede ver en la Fig. 7.8( a) . Por efecto de los (pequeos)
errores numricos, los 30 ceros que deberan estar ubicados en z = 1, se esparcen en un entorno,
no necesariamente pequeo, de este punto. La implementacin como secciones de segundo orden,
que se disea con los comandos
[z,p,k] = butter(30,0.5);
[sos,g] = zp2sos(z,p,k);
hsos = dfilt.df1sos(sos,g);
zplane(hsos);
tiene la distribucin de polos y ceros prevista por la teora, como se observa en la Fig. 7.8(b).
Para los filtros FIR (7.2) la forma ms utilizada es la directa, Fig. 7.4, porque es sencil-
la de implementar y aprovecha al mximo la arquitectura del hardware de la mayora
de los procesadores digitales de seales (DSP). Esta estructura tambin se conoce co-
mo filtro transversal o lnea de retardo (tappered delay line) pues almacena los valores
pasados de las muestras de la seal de entrada. Como se estudiar ms adelante, esta
implementacin es mucho menos sensible a la cuantizacin de los coeficientes que la for-
ma directa de los filtros IIR. Otras estructuras de uso frecuente son las de muestreo en
frecuencia y la de convolucin rpida, que se estudiarn en el Captulo 13.
de la facilidad de implementacin;
Los pasos de diseo referidos a la aproximacin y a la realizacin suponen que las opera-
ciones que especifican los algoritmos se realizan con precisin infinita, o al menos muy
alta. Sin embargo, en muchas aplicaciones donde el bajo costo es decisivo, es necesario
representar los coeficientes del filtro utilizando un nmero finito de bits (tpicamente 8,
16 o ms), y realizar las operaciones indicadas por las ecuaciones a diferencia utilizando
aritmtica de precisin finita.
El uso de un nmero finito de bits degrada el desempeo del filtro, y en algunos casos
puede inutilizarlo por completo. El diseador debe tener en cuenta estos efectos, y elegir
longitudes de palabra apropiados para los coeficientes del filtro, las variables de entrada
y salida, y las operaciones aritmticas. En general, el ancho en bits de las palabras de
entrada y salida (que se leen o se escriben en los conversores A/D y D/A, respectiva-
mente) son mucho menores que la longitud de palabra utilizado para los coeficientes y
los cmputos (10 o 16 bits, frente a 25 o 32 bits).
Las principales causas de la disminucin del desempeo en los filtros digitales debido a
la longitud finita de palabra son:
Cuantizacin de las seales de entrada y salida, debido a la resolucin finita de los
conversores A/D y D/A. Este efecto se suele modelar como un fenmeno aleatorio
(ruido), tal como se estudi en el Captulo 7.
Errores aritmticos por redondeo. Los procesadores con longitud de palabra finita tienen
un acumulador con bits adicionales para mantener la precisin (por ejemplo, el re-
sultado de la multiplicacin de dos nmeros de B bits es un nmero de 2B bits).
Cuando estos resultados se almacenan en memoria se truncan a la longitud de pal-
abra adoptada. El error resultante, denominado ruido de redondeo, altera la respuesta
del filtro. En los filtros IIR puede causar inestabilidad, y tambin dar lugar oscila-
ciones de pequea amplitud de la salida an con entrada nula.
Desborde (overflow), que ocurre cuando el resultado de una suma excede el ancho
de palabra adoptado, resultando en errores de las muestras de salida, que pueden
causar inestabilidad, u oscilaciones de gran amplitud en los filtros IIR.
La degradacin del desempeo depende de:
la longitud de palabra y tipo de aritmtica utilizada para efectuar los clculos;
el mtodo adoptado para cuantizar las variables y los coeficientes del filtro a la
longitud de palabra elegida;
Fig. 7.9. Respuesta en frecuencia del ltro del Ejemplo 7.4 implementado con una estructura
tipo forma directa II. ( ) ltro prototipo; (- -) ltro con coecientes cuantizados.
Fig. 7.10. Respuesta en frecuencia del ltro del Ejemplo 7.4 implementado con una cascada
de dos bloques de segundo orden. ( ) ltro prototipo; (- -) ltro con coecientes
cuantizados.
Conociendo estos factores, el diseador puede analizar los efectos de la longitud de pal-
abra finita en el desempeo del filtro, y efectuar las correcciones que sean necesarias.
b0 = 0,01588232577583, a0 = 0,57816706294199,
b1 = 0,04509870267465, a1 = 1,00000000000000,
b2 = 0,06160127928264, a2 = 0,98785160189871,
b3 = 0,04509870267465, a3 = 0,49030269551500,
b4 = 0,01588232577583, a4 = 0,10997293011303.
El mdulo de la respuesta en frecuencia del ltro se muestra con lnea de trazo continuo en la
Fig. 7.9. Si el ltro se implementa en un procesador de 8 bits, utilizando una estructura tipo forma
directa II se deben truncar los coecientes, que resultan
b0 = 0,0156250, a0 = 0,5781250,
b1 = 0,0468750, a1 = 1,0000000,
b2 = 0,0625000, a2 = 0,9843750,
b3 = 0,0468750, a3 = 0,4921875,
b4 = 0,0156250, a4 = 0,1093750.
El mdulo de la respuesta en frecuencia del ltro con los coecientes cuantizados, gracada con lnea
de trazos en Fig. 7.9, revela que se violan las especicaciones de diseo. Sin embargo, la eleccin
de una estructura diferente puede solucionar el problema. En la Fig. 7.10 se muestra el mdulo de
la respuesta en frecuencia del mismo ltro, implementado como una cascada de dos secciones de
segundo orden, con ganancia C = 0,0274701, y cuyos coecientes cuantizados a 8 bits son
La gura revela que los requisitos de diseo se satisfacen sin necesidad de cambiar la resolucin en
bits de los coecientes.
El ejemplo anterior muestra que los efectos de la cuantizacin de los coeficientes pueden
atenuarse cambiando la estructura del filtro. Dependiendo de la implementacin, al-
gunos de los errores mencionados pueden ser insignificantes. Por ejemplo, si el filtro se
calcula en un lenguaje de alto nivel que se ejecuta en computadoras ms o menos mod-
ernas, por ejemplo con M ATLAB en una PC, los errores de cuantizacin de coeficientes
y redondeo no siempre son importantes. En aplicaciones de tiempo real las seales de
entrada y salida se cuantizan a 8, 12 o 16 bits, segn el tipo de conversor A/D y D/A
utilizado. Si el ancho de palabra elegido para efectuar la operaciones y el redondeo es de
esta magnitud, es casi obligatorio analizar los efectos de la cuantizacin en las caracters-
ticas del filtro.
7.5.5. Implementacin
Una vez que se han calculado los coeficientes del filtro, elegido una estructura adecuada,
y verificado que las especificaciones se satisfacen despus de considerar la degradacin
causada por la cuantizacin de coeficientes y de las variables a la longitud de palabra
elegida, la ecuacin a diferencias debe implementarse como una rutina de software o en
hardware. Cualquiera sea el mtodo de implementacin, cada muestra de la salida y[n]
del filtro debe calcularse de acuerdo a la ecuacin a diferencias que involucra multiplica-
ciones, sumas y restas, y retardos. De modo que para implementar un filtro se necesitan
los siguientes bloques bsicos:
memoria RAM para almacenar las muestras actuales y pasadas de la entrada x [n],
x [n 1], ..., x [n M], y la salida y[n], y[n 1], ..., y[n N ];
7.6. Referencias
Ifeachor, E., Jervis, B. (1993) Digital Signal Processing: a practical approach, Addison-Wesley
Longman Ltd, Edingburg Gate, Harlow, England.
Powell, S. R., Chau, P. M. (1990) The reversed filtering in real time, Proc. IEEE Int. Symp.
Circuits Systems, May 1990, Vol. 2, pp. 1239-1243.
Rader, C. M., Gold, B. (1967) Digital filter design in the frequency domain, Proc. IEEE,
Vol. 55, No. 2, pp. 149-171.
Rader, C. M. (1984) A simple method for sampling in-phase and quadrature components,
IEEE Trans. Aerospace Electr. Syst.,Vol. AES 20, No. 6, pp. 821-824.
Rader, C. M. (2006) The rise and fall of recursive digital filters, IEEE Signal Proc. Maga-
zine, Vol. 23, No. 6, pp. 46-49.
Stockham, T. G. (1966) High speed convolution and correlation, Proc. AFIPS, No. 28,
pp. 229-233.