2. Fundamento Teórico
En el procesamiento de señales, la función de un filtro es remover partes no deseadas de la señal, como ser ruido randómico, o extraer
partes útiles de la señal, tales como los componentes que están dentro de un rango de frecuencias.
Existen dos tipos principales de filtros, analógicos y digitales. Son bastante diferentes en su implementación física y en la manera en que
trabajan.
Un filtro análogo usa circuitos electrónicos analógicos como ser resistencias, capacitores y amplificadores operacionales para producir
el efecto de filtrado requerido. Tales circuitos de filtrado son ampliamente usados en aplicaciones como ser la reducción del ruido,
mejoramiento de la señal de video, ecualizadores gráficos en sistemas de alta fidelidad, etc.
Existen técnicas estándar bien establecidas para el diseño de los de filtros analógicos para un requerimiento dado. En todos los pasos, la
señal que está siendo filtrada es un voltaje o corriente eléctrica que es un análogo directo de la cantidad física involucrada (por ejemplo
una señal de sonido o video).
Un filtro digital utiliza un procesador digital para realizar cálculos numéricos en valores muestreados de la señal. El procesador podría
ser un computador de propósito general como ser un PC, o un circuito integrado especializado DSP (Digital Signal Processor).
La señal de entrada analógica debe ser primero muestreada y digitalizada usando un conversor análogo digital ADC. Los números
binarios resultantes, que representan los valores muestreados sucesivos de la señal de entrada, son transferidos al procesador, el cual
realiza cálculos numéricos sobre estos. Estos cálculos típicamente involucran multiplicaciones de los valores de entrada por constantes y
sumas de los productos. Si es necesario, los resultados de estos cálculos, son sacados a través de un conversor digital a análogo DAC
para convertir la señal a la forma analógica.
Note que un filtro digital, la señal está representada por una secuencia de números, en vez de un voltaje o corriente. El siguiente
diagrama muestra la configuración básica de tal sistema:
Ventajas del uso de filtros digitales
La siguiente lista muestra algunas de las ventajas principales de los filtros digitales sobre los filtros análogos:
1. Un filtro digital es programable, es decir su operación está determinada por un programa guardado en la memoria del
procesador. Esto significa que filtro digital puede ser fácilmente cambiado sin afectar el hardware. Un filtro analógico puede ser
cambiado solamente rediseñando el circuito del filtro.
2. Los filtros digitales son fácilmente diseñados, probados e implementados en un computador de propósito general usando
software específico.
3. Las características de los circuitos de filtros analógicos (particularmente aquellos que contienen componentes activos) son
sujetos a cambios en el tiemp y son dependientes de la temperatura. Los filtros digitales no sufren de estos problemas, son
extremadamente estables con respecto al tiempo y a la temperatura.
4. Contrariamente a los filtros analógicos, los filtros digitales pueden manejar señales de baja frecuencia con precisión. A medida
que la velocidad en la tecnología DSP continúa incrementándose, los filtros digitales están siendo aplicados a señales de alta
frecuencia en el dominio de RF, que en el pasado estaban exclusivamente reservadas a la tecnología analógica.
5. Los filtros digitales son mucho más versátiles en su habilidad para procesar señales de distintas maneras, esto incluye la
habilidad de algunos tipos de filtros digitales para adaptarse a los cambios en las características de la señal.
6. Los procesadores DSP rápidos pueden manejar combinaciones complejas de filtros en paralelo o cascada (serie), haciendo que
los requisitos de hardware sea relativamente simples y compactos en comparación con la circuitería analógica equivalente.
Supóngase que la señal que vamos a digitalizar tiene la forma de onda de voltaje descrita por la función:
V = x(t)
Donde t es el tiempo.
Esta señal es muestreada en intervalos de tiempo h (el intervalo de muestreo). El valor muestreado en un tiempo t = ih es:
Por lo tanto los valores digitales transferidos desde el conversor ADC al procesador pueden ser representados por la secuencia:
En el tiempo t = nh (donde n es un entero positivo), los valores disponibles al procesador, guardados en memoria, son:
Note que los valores muestreados xn+1, xn+2 etc. no están disponibles, porque no han sucedido aún.
En general, el valor de yn se calcula de los valores x0, x1, x2, x3, ... , xn. La forma en que los valores „y’ son calculados a partir de los valores
„x’ determina la acción de filtrado de un filtro digital.
Este es un caso trivial en el cual el filtro no tiene efecto sobre la señal de entrada.
Donde K = constante
Si K > 1, el filtro es un amplificador. Si K está entre 0 y 1, es un atenuador. K < 0 corresponde a un filtro inversor. El filtro de
ganancia unidad es un caso especial donde K = 1.
3. Filtro de retardo:
El valor de salida en el tiempo t = nh es simplemente el valor de entrada en el tiempo t = (n-1)h, es decir la señal está retardada
por un tiempo h:
Nótese que, como se asume que el muestreado comienza en tiempo t = 0, el valor de entrada x-1 en t = -h está indefinido. Es
usual tomar este valor (y cualquier otro valor de x previo a t = 0) como cero.
El valor de salida en t = nh es igual a la diferencia entre la entrada actual xn y la entrada previa xn-1:
Es decir la salida es el cambio en la entrada sobre el intervalo de muestreo más reciente h. El efecto de este filtro es similar al de
un circuito análogo diferenciador.
Este filtro es similar al ejemplo previo ya que el promedio se toma del valor actual y de los dos valores previos:
Este filtro es similar en su efecto al ejemplo (4). La salida es igual a la mitad del cambio en la señal de entrada sobre los dos
intervalos de muestreo previos:
Por lo tanto:
1. Los ejemplos (1) y (2) son filtros de orden cero ya que la salida actual yn depende solamente de la entrada actual xn y no de
ninguna entrada previa
2. Los ejemplos (3), (4) y (5) son todos de primer orden ya que se requiere una entrada previa (xn-1) para calcular la salida yn
3. En los ejemplos (6) y (7), dos entradas previas (xn-1 y xn-2) se requieren de tal forma que estos filtros son de segundo orden
Los filtros pueden ser de cualquier orden desde cero hacia arriba.
Orden cero:
Primer orden:
Segundo orden:
Las constantes a0, a1, a2,… que aparecen en estas expresiones se denominan coeficientes del filtro. Son los valores de estos coeficientes
que determinan las características de un filtro en particular.
La siguiente tabla da a los valores de los coeficientes de cada uno de los filtros mostrados anteriormente:
Un filtro recursivo es aquel en el que, además de usar valores de entrada actual y valores previos, también se requieren valores de salida
previos. Estos valores deben ser almacenados en la memoria del procesador.
Estos filtros también se denominan retroalimentados, y se refieren al hecho de que una salida previamente calculada ingresa nuevamente
par el cálculo de una nueva salida. Por lo tanto la expresión para un filtro recursivo contiene no solamente los términos que involucran
los valores de entrada (xn, xn-1, xn-2, ...) sino también términos de salida (yn-1, yn-2, ...)
A partir de esta explicación, podría parecer que los filtros recursivos requieren más cálculos computacionales, ya que existen términos de
salida previa y también términos de entradas previos en la expresión del filtro. En realidad, el caso es generalmente inverso: para lograr
una característica de respuesta de frecuencia usando un filtro recursivo generalmente se quiere un orden del filtro bastante inferior (y por
lo tanto menos términos a ser evaluados por el procesador) que un filtro no-recursivo equivalente. Esto se demostrará luego.
Nota:
Algunos textos prefieren una terminología alternativa llamando a los filtros no-recursivos, filtros FIR (Finite Impulse
Response) y a los filtros recursivos, IIR (Infinite Impulse Response).
Estos términos se refieren a las distintas respuestas al impulso de ambos tipos de filtros. La respuesta al impulso de un filtro
digital es la secuencia de salida del filtro cuando un impulso unitario se aplica a la entrada. (Un impulso unitario es una
secuencia de entrada muy simple consistente en un único valor de 1 en tiempo t=0, seguida de ceros en todas los instantes de
muestreo subsecuentes).
Un filtro FIR es aquel cuya respuesta al impulso tiene una duración finita. Un filtro IIR es aquel cuya respuesta al impulso
teóricamente continúa para siempre debido a la retroalimentación. El término IIR no es muy preciso porque las verdaderas
respuestas al impulso, para casi todos los filtros IIR, se reducen virtualmente a cero en un tiempo finito. Aun así estos dos
términos se usan ampliamente.
En otras palabras, el filtro determina la salida actual (yn) sumando la entrada actual (xn) a la salida previa (yn-1):
Note que y-1 (al igual que x-1) están indefinidos, y usualmente toman el valor cero.
Consideremos el efecto de este filtro en más detalle. Si en cada una de las expresiones de arriba sustituimos por yn-1el valor dado por la
expresión previa, obtenemos lo siguiente:
Por lo tanto podemos ver que yn, la salida en el tiempo t = nh, es igual a la suma de la entrada actual xn y todas las entradas previas.
Entonces este filtro suma o integra los valores de entrada, es así que tiene un efecto similar al de un circuito integrador análogo.
Este ejemplo demuestra una característica importante y útil de los filtros recursivos: la economía computacional con la cual los valores
de salida son calculados, comparados con un filtro equivalente no-recursivo. En este ejemplo, cada salida está determinada simplemente
por la adición de dos números. Por ejemplo, para calcular la salida en el tiempo t = 10h, el filtro recursivo usa la expresión:
Para lograr el mismo efecto en un filtro no recursivo (es decir sin usar valores de salida previos guardados en la memoria) se requiere la
siguiente expresión:
Esto requeriría muchas más operaciones de adición así como muchos valores adicionales almacenados en memoria.
El orden de un filtro recursivo es el número mayor de entradas previas o de valores de salidas, requeridas para calcular la
salida actual.
Esta definición puede ser usada de manera general: se aplica tanto a filtros FIR como IIR.
En la práctica, los filtros recursivos usualmente requieren el mismo número de entradas y salidas previas. Por lo tanto, un filtro recursivo
de primer orden generalmente requiere una entrada previa y una salida previa, mientras que un filtro de segundo orden requiere dos
entradas previas y dos salidas previas y así sucesivamente para los demás casos.
Note que un filtro recursivo IIR debe ser, por definición, por lo menos de primer orden.
Note el signo menos delante del término “recursivo” b1yn-1, y el factor (1/b0) aplicado a todos los coeficientes. La razón para expresar el
filtro de esta manera es que permite reescribir la expresión de la siguiente forma simétrica:
Note la convención de los coeficientes de las entradas (las x) están denotados por a, mientras que los coeficientes de las salidas (las y)
están derrotados por b.
En esta sección, introducimos lo que se denomina la función de transferencia del filtro digital. Ésta función se obtiene de la forma
simétrica de la expresión del filtro, y nos permite describir un filtro por medio de una expresión compacta y conveniente. También
podemos usar la función de transferencia de un filtro para encontrar su respuesta de frecuencia.
Cuando se aplica a una secuencia de valores digitales, este operador entrega el valor previo de la secuencia. Por lo tanto el efecto es
introducir un retardo de un intervalo de muestreo.
Si aplicamos el operador z-1 a un valor de entrada (xn) obtenemos la entrada previa (xn-1):
y así sucesivamente. Note que z-1 x0 sería x-1, el cual es desconocido (y usualmente se toma como cero).
De manera similar, aplicando el operador z-1 a una salida nos entrega la salida previa:
Si aplicamos el operador z-1 dos veces, se produce un retardo de dos intervalos de muestreo:
Esta anotación puede ser extendida a retardos de tres o más intervalos de muestreo.
Usaremos ahora esta anotación en la descripción de un filtro digital. Considere, por ejemplo, un filtro general de segundo orden, dado en
su forma simétrica por la expresión:
Reordenando esta expresión, para darnos una relación directa entre la salida y la entrada, obtenemos:
Esta es la forma general de la función de transferencia para un filtro recursivo de segundo orden (IIR).
Para un filtro de primer orden, los términos en z-2 se omiten. Para filtros de orden superior a 2, términos adicionales que involucren
potencias más altas de z-1 son añadidos tanto al numerador como denominador de la función de transferencia.
Un filtro no-recursivo (FIR) tiene una función de transferencia más simple pues no contiene ningún término en el denominador. El
coeficiente b0 usualmente se toma igual a 1, y todos los otros coeficientes b son cero. La función de transferencia para un filtro de
segundo orden FIR puede ser expresada de la siguiente forma:
La forma general de la función de transferencia para un filtro recursivo de primer orden puede ser escrito como:
Consideremos, por ejemplo, el filtro simple recursivo de primer orden que discutimos anteriormente:
Para encontrar la función de transferencia para este filtro, re-escribimos la expresión del filtro usando el operador z-1:
Ordenando los términos de salida en la izquierda y los términos de entrada en la derecha para obtener la forma “simétrica” de la
expresión del filtro, obtenemos: