Filtros digitales
Filtros
Los filtros son fundamentales en el procesamiento digital de se帽ales y son los filtros digitales los m谩s ampliamente usados en este campo. Los filtros sirven para operar en distintas frecuencias sobre distintos fines. Los tipos de filtros m谩s comunes son los siguientes:
- Filtros pasa bajas: Aten煤an frecuencias altas.
- Filtros pasa altas: Aten煤an frecuencias bajas.
- Filtros pasa bandas: Aten煤an frecuencias fuera de un rango.
- Filtros rechaza bandas: Aten煤an frecuencias dentro de un rango.
- Filtros de peine: Aten煤an una cierta frecuencia y todos sus arm贸nicos.
- Filtros pasa todo: No aten煤an ninguna frecuencia pero puede modificar la fase.
Todos estos tipos de filtros pueden ser implementados de forma anal贸gica o digital. Los filtros anal贸gicos han sido muy estudiados y se consiguen resultados muy buenos en su implementaci贸n, sin embargo, al ser sistemas anal贸gicos, como desventaja que su comportamiento var铆a con la temperatura y el tiempo. En procesamiento digital de se帽ales por lo general se ocupan filtros digitales porque tienen las siguientes ventajas:
- Son programables, no es necesario cambiar el circuito, s贸lo el programa
- Dos filtros id茅nticos se compartan id茅ntico
- Su comportamiento no var铆a con el tiempo y la temperatura
En los filtros digitales existen 2 tipos, los filtros de respuesta finita al impulso FIR y los filtros de respuesta infinita al impulso IIR.
Funcionamiento de un filtro digital
Se parte de la respuesta discreta al impulso, por medio de la suma de convoluci贸n:
\[y[n] = \sum^\infty_{k=0} b[k]x[n-k]\]Donde:
$y$ es la salida
$x$ es la entrada
$b$ es la respuesta al impulso
Transformando esta forma, en una parte finita y otra infinita $O(u,n)$:
\[y[n] = \sum^N_{k=0} b[k]x[n-k] + O(u,n)\]Filtro de respuesta infinita al impulso IIR
$O(u,n)$ debe ser una funci贸n computable, ya que en realidad no es posible con sistemas digitales obtener una respuesta que tiende a infinito. Por ejemplo, la siguiente funci贸n no es computable:
\[O(x,n) = \sum^\infty_{k=N+1} b[k]x[n-k]\]As铆 que se busca otra funci贸n, como:
\[O(y,n) = - \sum^M_{k=1}a[k]y[n-k]\]Entonces se tiene retroalimentaci贸n de la salida, lo que permite tener un acercamiento al comportamiento en infinito y es computable. La forma del filtro IIR es la siguiente:
\[\boxed{y[n] = \sum^N_{k=0} b[k]x[n-k] - \sum^M_{k=1}a[k]y[n-k]}\]Sin embargo, ya que el sistema tiene retroalimentaci贸n, esto conlleva a problemas de estabilidad y entonces los coeficientes $a[n]$ se vuelven importantes, puesto que de no calcularlos bien, el filtro no sirve.
Su funci贸n de transferencia es la siguiente:
\[G(z) = \frac{b_0 + b_1z^{-1} + b_2z^{-2} + \cdots + b_Nz^{-N}}{1 + a_1z^{-1} + a_2z^{-2} + \cdots + a_Mz^{-M}}\]Su implementaci贸n en Simulink para un filtro IIR de orden 2 es la siguiente:
Y su salida es la siguiente:
Filtro de respuesta finita al impulso FIR
El filtro FIR es un filtro no recursivo, o sea que se utilizan las entradas previas en el filtro s贸lamente. Es decir, se suponen los coeficientes $a[n] = 0$ y tiene la siguiente forma:
\[\boxed{y[n] = \sum^N_{k=0} b[k]x[n-k]}\]Su implementaci贸n en Simulink es la siguiente:
Como se puede ver, tiene un retardo de la se帽al, en este caso, 3 retardos, que luego se suman, ponderando una ganancia de 1. La salida es la siguiente:
Como se puede ver, en la se帽al de salida (out) es m谩s f谩cil ver la tendencia de la se帽al.
En este caso el filtro FIR implementado es de orden 3, pues hay 3 retardos. Pero pueden ser de orden $n$ y la expresi贸n de su funci贸n de transferencia es la siguiente:
\[T(z) = a_0 + a_1z^{-1} + a_2z^{-1} + \ldots + a_nz^{-1}\]