22/5/14

Filtros FIR (parte 1)


Un filtro es un sistema que está diseñado para eliminar o modificar algún componente de una señal. Introduciremos en este capitulo los filtros FIR  (Finite Impulse Response). Estos filtros son sistemas para los cuales, cada sample de salida es una  suma finita y ponderada de la secuencia de entrada.



Un sistema en tiempo discreto es un proceso computacional que transforma cada secuencia de entrada en otra de salida. A diferencia del capítulo anterior, donde en el proceso de sampleado y reconstrucción, transformamos una señal continua en discreta o su inversa, en este capitulo nos centraremos en el dominio de la señal discreta.



The running average filter: Una de las más simples transformaciones de una señal discreta es computar un promedio o average de dos o más secuencias de entrada. Un filtro FIR es la generalización de esta idea.


Veamos un ejemplo: una secuencia de entrada es ponderada como un promedio de cada tres valores de entrada.

filtro no causal

Como vemos en el gráfico, la ecuación que relaciona la salida con la entrada viene expresada como:

 
A esta ecuación se le denomina ecuación diferencia. Si observamos detenidamente el gráfico nos damos cuenta que la secuencia de salida contiene más valores que la secuencia de entrada, es decir, contiene más valores no cero que la secuencia de entrada, y la salida es una versión suavizada de la entrada. Esta es una característica de un filtro FIR.



También podemos ver como la respuesta del filtro provee de un valor no cero antes de que la señal de entrada empiece.  Esto no es deseable en aplicaciones de audio directo, donde la señal viene directamente de un convertidor A/D. Como vemos, para la computación de salida el filtro está tomando dos valores futuros, es decir, el sistema está tomando un valor presente y dos futuros para producir su promedio. Estos filtros son denominados no causales, y no son aplicables en situaciones de tiempo real, ya que la entrada no está disponible cuando la salida ha sido computada.



A los filtros que únicamente utilizan valores presentes y pasados se les denomina causales. La ecuación diferencia para un filtro como el anterior, pero en este caso causal, es decir, que toma valores presentes y pasados es la siguiente:



Filtro causal

 
De este modo podemos generalizar la ecuación del filtro FIR, como:

 
Por lo tanto, un filtro queda definido si conocemos sus coeficientes (bk).



Pongamos un ejemplo: Imaginemos un filtro de longitud 4, es decir de orden M=3, cuyos coeficientes son: bk=[ 3, -1, 2, 1].


Como vemos en la ecuación, el orden del filtro viene determinado por la relación: Orden = longitud del filtro -1.



Para ilustrar estos conceptos podemos mostrar como se puede utilizar un filtro FIR para modificar las secuencias de una señal. Consideremos una señal de entrada en forma de onda sinusoidal que se ve afectada por un ruido aleatorio Gaussiano, tal como se muestra en la parte alta de la siguiente gráfica:


 
Podemos reducir la interferencia producida por el ruido, usando un Running Average de 3 puntos:
 
El resultado de la señal una vez aplicado el filtro se muestra en el medio de la gráfica. Como vemos, hemos reducido la interferencia producida por el ruido. El filtro está realizando una ponderación de cada tres samples de entrada consecutivos. 



Si queremos producir una mayor eliminación de la interferencia, podemos usar un filtro de mayor orden. En la parte baja del gráfico observamos la respuesta de un filtro de orden 6.

La utilización del filtro nos ha permitido minimizar el efecto del ruido en nuestra señal. Si observamos detenidamente el gráfico, se puede ver como las señales filtradas han aumentado la cantidad de samples de la señal, exactamente un numero de samples equivalente al orden del filtro.



Respuesta al impulso unitaria:



El impulso unitario, es la secuencia más simple que podemos encontrar, ya que únicamente contiene un valor no cero.



Su notación matemática es la función delta:

impulso desplazado 2 muestras



En el gráfico visualizamos un impulso que ha sido desplazado 2 muestras. Este es un concepto muy útil en señales y sistemas, ya que nos permite expresar una secuencia, como una suma de sus impulsos desplazados.

Secuencia de una señal

Así la secuencia discreta de una señal de entrada, como la del gráfico, puede ser expresada como la suma de sus impulsos de entrada:


 
Por lo tanto, cuando la entrada de un filtro FIR es una secuencia de impulso unitario, su salida es por definición la respuesta al impulso unitario h[n], es decir la respuesta al impulso del filtro no es más que los coeficientes de salida de su ecuación diferencia. La longitud de esta secuencia es finita.



Delay unitario:



Es el más simple de los filtros FIR, contiene un único coeficiente no cero. El filtro produce un desplazamiento temporal equivalente al desplazamiento de su coeficiente.

Convolución con un delay

La señal de entrada ha sido desplazada 2 samples a partir de un filtro Delay de amplitud unitaria. La respuesta a la salida mantendrá la misma señal, pero desplazada temporalmente.



Convolución y filtros FIR:



La respuesta de un filtro FIR puede ser expresada como la convolución de la secuencia de entrada y su respuesta al impulso:

 
En el gráfico anterior, la salida al sistema ha sido expresada como una convolución de la señal de entrada respecto de la respuesta al impulso, (en el ejemplo anterior un desplazamiento temporal de 2 samples)

Como vemos, la convolución es equivalente a una multiplicación polinomial.



Diagrama de bloques:

Diagrama de Bloques

Sin querer entrar en las demostraciones matemáticas, definimos un filtro FIR como un sistema lineal e invariante en el tiempo (LTI).



Básicamente estas propiedades son:



Invarianza en el tiempo: Cuando una señal de entrada es desplazada cierta cantidad de samples, su salida está retrasada por la misma suma.



Linealidad: Cuando la entrada consiste en la suma de varias secuencias escaladas, su correspondiente salida será la suma de los valores escalados de sus correspondientes entradas. Es decir, podemos encontrar la salida del sistema como la superposición de las salidas de los valores individuales.



La respuesta al impulso h[n] de un sistema LTI es simplemente la salida del sistema cuando a su entrada se ha introducido un impulso unitario d[n]. Por lo tanto podemos conocer la respuesta de cualquier sistema si conocemos su respuesta al impulso y la secuencia de entrada.



La convolución entre dos señales, en nuestro caso, la entrada x[n] y su respuesta al impulso h[n] se expresa como:

 
Cabe recordar que la convolución cumple la propiedad conmutativa y asociativa.













1 comentario:

  1. Bosco Lorente16 octubre, 2014

    Grande Pepe, gracias por hacerlo tan fácil!

    ResponderEliminar