You are on page 1of 47

Filtrado Digital

Lectura 1: Diseo de Filtros FIR

Diseo de Filtros
Objetivo: Obtener una funcin de transferencia H(z) realizable aproximndola a una respuesta en frecuencia deseable. El diseo de filtros digitales es el proceso de obtener esta funcin de transferencia. Normalmente la respuesta en magnitud ( y algunas veces la fase) del filtro deseado es especificada. Recuerde que hay 4 tipos bsicos de filtros digitales ideales, basados en la respuesta en magnitud.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Especificaciones del Filtro


, con un error en la banda de paso:

, con un error en la banda de rechazo:

Asumiremos que estamos tratando con filtros con coeficientes reales, de aqu que la respuesta en frecuencia es peridica (2), y simtrica alrededor de 0 y .
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Especificaciones del Filtro


Las especificaciones del filtro son frecuentemente dadas en decibeles,

con rizos en las bandas de paso y rechazo de banda dadas en dB como:

Las especificaciones en magnitud pueden tambin ser dadas en forma normalizada, donde el valor pasa banda mximo es normalizado a 1 (0 dB). Entonces, tenemos una desviacin pasa banda mxima y una magnitud en la banda de rechazo mxima.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Detalles a Recordar
Lo siguiente debe ser tomado en consideracin cuando se disee un filtro.
H(z) satisface las especificaciones de que la respuesta en frecuencia debe ser causal y estable ( los polos ______________, la ROC incluye ____________). Si el filtro es FIR, entonces H(z) es un polinomio en con coeficientes reales.

Si una fase lineal es deseada, los coeficientes del filtro h[n] (tambin la respuesta al impulso) deben de satisfacer las restricciones de simetra: h[n]=+/- h[M-n]. Para eficiencia computacional, el orden mnimo del filtro M que satisface los criterios de diseo deben de ser usados.

Si el filtro es IIR, entonces H(z) es una funcin real racional de

La estabilidad debe ser asegurada. El mnimo (M,N) que satisface los criterios de diseo deben de ser usados.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

FIR o IIR
Los filtros FIR e IIR tienes varias ventajas. Las ventajas de los filtros FIR (desventajas de los filtros IIR):
Pueden ser diseados con fase lineal exacta, La estructura del filtro siempre es estable con coeficientes cuantizados, Los transitorios iniciales del filtro tienen duracin finita.

Desventajas de los filtros FIR ( ventajas de los filtros IIR):


El orden del filtro FIR es normalmente mucho mas alto que el orden de un filtro equivalente IIR que satisfacen las mismas especificaciones; por lo tanto, tienen una complejidad computacional mayor. De echo, la razn de ordenes de un filtro tpico IIR a la de un filtro FIR es del orden de 10.

La fase no lineal de un filtro IIR puede ser minimizada usando un apropiado filtro pasa todo, sin embargo, esto provoca que se pierda la ventaja computacional que tena el filtro IIR. Sin embargo, en la mayora de las aplicaciones que no requieren operacin en tiempo real, la fase no es un problema.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Aproximaciones de Diseo Bsicas


Diseo de filtros IIR:
1. 2. 3.

Convierta las especificaciones del filtro digital a especificaciones de un filtro anlogo pasa bajas prototipo. Determine la funcin de transferencia del filtro pasa bajas anlogo Transforme a una funcin de transferencia deseada H(z)
Las tcnicas de aproximacin anlogas son altamente avanzadas. Estas normalmente nos conducen a soluciones en forma cerrada. Tablas estn disponibles para el diseo de filtros anlogos. Muchas aplicaciones requieren simulacin digital de sistemas anlogos.

El diseo del filtro FIR esta basado en una aproximacin directa de la respuesta en magnitud especificada, con los requerimientos frecuentemente agregados de que la fase sea lineal (o algunas veces, mnima).
El diseo de un filtro FIR de orden M puede ser realizada ya sea encontrando la longitud (M+1) de la respuesta al impulso de h[n] o las (N+1) muestras de su respuesta en frecuencia H().

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de Filtros FIR


Comenzaremos con el filtro pasa bajas ideal.
Sabemos que hay dos problemas con este filtro: longitud infinita y es no causal.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de Filtros FIR

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de Filtros FIR


Esta es la aproximacin directa y bsica para el diseo de filtros FIR:
Comience con un filtro ideal que satisfaga los criterios de diseo, digamos un filtro H(). Tomamos la DTFT inversa de esta H() para obtener h[n].
Esta h[n] ser doblemente infinita y no causal; por lo que no ser realizable.

La truncamos usando una ventana, digamos rectangular, de tal forma que M+1 coeficientes de h[n] sean retenidos, y todos los otros sean descartados.
Ahora tenemos un filtro de longitud finita (orden M), ht[n], sin embargo es aun no causal.

Desplazamos la secuencia truncada h[n] a la derecha (aplicar retardos) en M/2 muestras, de tal forma que la primera muestra ocurre ahora en n=0.
La respuesta al impulso resultante ht[n-M/2] es un filtro FIR causal y estable, el cual tiene una respuesta en magnitud y en fase casi idntica que el filtro original.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de Filtros FIR Pasa Bajas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de Filtro FIR Pasa Altas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de BPF y BSF FIR

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Sin embargo.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Fenmeno de Gibbs
Truncar la respuesta al impulso de un filtro ideal para obtener un filtro realizable, crea oscilaciones en el dominio de la frecuencia, estas oscilaciones son conocidas como El fenmeno de Gibbs. Podemos observar lo siguiente:
As como M se incrementa, el nmero de ondulaciones se incrementa, sin embargo el ancho de las ondulaciones disminuye. La altura de las ondulaciones mayores permanece constante, independiente de la longitud del filtro. As como M se incrementa, la altura de las otras ondulaciones disminuye. El lbulo principal se hace ms angosto conforme M se incrementa, es decir la cada llega a ser mas aguda. Funcionamiento oscilatorio similar puede ser observado en cualquier tipo de filtro truncado.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Fenmeno de Gibbs
Que es lo que sucede?
El fenmeno de Gibbs es simplemente un resultado de la operacin de ventaneo. Multiplicando la respuesta al impulso del filtro ideal con una funcin ventana regular es equivalente a convolucionar la ventana con una funcin sinc.

Sin embargo, nosotros queremos sea similar tanto como sea posible a , lo cual nicamente puede ser posible si la cual es una ventana infinita.
Por lo cual tenemos conflictos de requerimientos: De un lado, queremos una ventana angosta, es decir queremos un filtro pequeo; pero del otro lado, queremos truncar el filtro tanto como sea posible igualar la respuesta en frecuencia del filtro ideal, el cual sin embargo requiere una ventana infinitamente larga.

Esta convolucin es la que produce las ondulaciones, especialmente en los bordes.


Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Fenmeno de Gibbs

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Demostracin del fenmeno de Gibbs


% Filtro FIR Pasa Bajas M=input('Introduzca el orden del filtro:'); wc=input('Introduzca la frecuencia de corte en radianes:'); n=0:M; h_LP=sin(wc*(n-M/2))./(pi*(n-M/2)); h_LP(ceil(M/2+1))=wc/pi; subplot(211) stem(n, h_LP) axis([0 M min(h_LP) max(h_LP)]) title(['Respuesta al impulso de el ',num2str(M), 'th orden del filtro']); subplot(212) H_LP=fft(h_LP, 1024); w=linspace(-pi, pi, 1024); plot(w/pi, abs(fftshift(H_LP))) title(['Respuesta en frecuencia del filtro ventaneado de ', num2str(M), 'th orden']); grid axis([-1 1 0 max(abs(H_LP))])

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Efectos de la longitud del filtro

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de filtros FIR usando ventanas


Esto es lo que necesitamos en un filtro:
Cada rpida, es decir una bande de transicin angosta.
El lbulo principal es angosto. Incrementar la atenuacin en la banda de rechazo.

Reducir la altura del lbulo lateral el cual causa las ondulaciones. Reducir el fenmeno de Gibbs. Minimizar el orden del filtro.

El fenmeno de Gibbs puede ser reducido (pero no eliminado) usando una ventana suavizadora que disminuye a zero, suavizando las ondulaciones de la seal.
Varias funciones ventana son posibles, las cuales reducen el ancho del lbulo y la banda de rechazo.
La ventana rectangular tiene el acho ms angosto del lbulo principal, pero una pobre atenuacin en lbulo lateral. Ventanas afiladas causan que la altura de los lbulos laterales disminuyan, pero con un correspondiente incremento en el ancho del lbulo principal, lo que causa una transicin mas amplia en la frecuencia de corte.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Ventanas comnmente usadas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Ventanas comnmente usadas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Comparacin de las ventanas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Comparacin de las ventanas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Comparacin de las ventanas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Funciones de Ventanas Fijas


Todas las ventanas que hemos visto hasta ahora han sido funciones ventana fijas.
El espectro de magnitud de cada ventana es caracterizado por un lbulo principal que esta centrado en =0 seguido por una serie de lbulos con amplitud decreciente. Los parmetros que predicen el rendimiento de una ventana en el diseo de un filtro son:
El ancho del lbulo principal lbulo principal Nivel relativo del lbulo lateral ms grande y el lbulo principal. : Es la distancia entre los cruces por cero en ambos lados del : Es la diferencia en dB, entre las amplitudes del lbulo lateral

Para una ventana dada, ambos parmetros quedaran determinados una vez que el orden del filtro sea establecido.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Funciones de Ventanas Fijas

Como disear:
Dejar Escoger el tipo de ventana basados en las especificaciones de atenuacin del lbulo lateral (As1) o la atenuacin mnima en la banda de paso (s). Escoger M deacuerdo al ancho de la banda de transicin () y/o el ancho del lbulo principal (ML). Note que este es el nico parmetro que puede ser ajustado para funciones de ventanas fijas. Una vez que el tipo de ventana y el orden M son elegidos, as lo sern tambin As1, s y ML.
Las amplitudes de los rizos no pueden ser diseadas libremente.

Las ventanas ajustables tienen un parmetro que puede ser variado para compensar entre la anchura del lbulo principal y la atenuacin del lbulo lateral.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Ventana Kaiser
Es la ventana ajustable ms popular.

donde es un parmetro ajustable para compensar entre la anchura del lbulo principal y la atenuacin del lbulo lateral, y I0{x} es la funcin modificada de Bessel de orden cero de primer tipo:

En la practica, estas series infinitas pueden ser calculadas para un nmero finito de trminos hasta una deseada exactitud. En general, 20 trminos son adecuados.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de filtros FIR usando la ventana Kaiser


Dado lo siguiente:
p frecuencia de corte en la banda de paso y s frecuencia de corte en la banda de paro. p Valor pico del rizo en la banda de paso y s valor pico del rizo en la banda de paro.

Calculamos:
Rizo mnimo en dB: 2. Ancho de banda de la transicin normalizada:
1.

3.

Parmetros de la ventana: Longitud del filtro, M+1:

4.

5.

Determinar la correspondiente ventana Kaiser Obtener el filtro multiplicando el filtro ideal hI[n] con w[n].
Facultad de Ingeniera Mecnica, Elctrica y Electrnica

6.

Filtrado Digital

Ejemplo
Disee un filtro FIR con las siguientes caractersticas:

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de filtros FIR usando ventanas- Resumen


Dependiendo de sus especificaciones, determinemos que tipo de ventanas deseamos usar.
Para todos los tipos de ventanas, excepto kaiser, una vez que hayamos elegido la ventana, el otro nico parmetro a escoger es la longitud M del filtro.
Para ventanas kaiser, determinamos M y beta, basados en las especificaciones usando las expresiones dadas.

Calcule los coeficientes de la ventana w[n] para la ventana elegida. Calcule los coeficientes del filtro (taps).
Determine la respuesta al impulso ideal hI[n] de las ecuaciones dadas para el tipo de respuesta en magnitud que necesitamos (pasa bajas, pasa altas, etc.). Multiplique los coeficientes de la ventana y el filtro ideal para obtener los coeficientes del filtro realizable (tambin llamados taps o weights): h[n]= hI[n].w[n]

Convolucione su seal con los nuevos coeficientes del filtro y[n]=x[n]*h[n]

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Funciones en Matlab
Las siguientes funciones crean ventanas de N puntos para las funciones correspondientes:
rectwin(N) hamming(N) hanning(N) bartlet(N) kaiser(N, beta) blackman(N)

Por ejemplo, pruebe lo siguiente: h=hamming(40); [H w]=freqz(h,1,1024); plot(w, abs(H))


Comprelas con otras ventanas. Grafique tambin la ganancia en decibeles.

La funcin window es una herramienta de anlisis y diseo de ventanas que proporciona una interfaz grafica para el diseo de varias funciones ventana. La funcin fdatool es una herramienta de anlisis y diseo de filtros que proporciona una interfaz grafica para el diseo de varios tipos de filtros desde las especificaciones que se proporcionen. La funcin sptool es una herramienta para el procesamiento de seales, que proporciona una interfaz grafica para el diseo, vista y aplicacin de seales creadas. Tambin proporciona una interfaz grafica para el anlisis espectral.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Herramienta de Anlisis y Diseo de Ventanas

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Herramienta de Anlisis y Diseo de Filtros

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Funciones en Matlab
fir1 Diseo de filtros FIR usando el mtodo de la ventana.
b=fir1(N,Wn): Disea un filtro digital FIR pasa bajas de orden N y retorna los coeficientes del filtro en un vector b de longitud N+1. La frecuencia de corte Wn debe de estar entre 0<Wn<1.0 lo cual corresponde a la mitad de la razn de muestreo. El filtro b es real y tiene una fase lineal. La ganancia normalizada del filtro en Wn es -6 dB.

b=fir1(N, Wn, high): Disea un filtro FIR pasa altas de orden N. Tambin puede usar b=fir1(N,Wn,low) tambin para disear un filtro pasa bajas.
Si Wn es un vector de 2 elementos, Wn=[W1 W2], FIR1 retorna un filtro pasa banda de orden N con banda de paso W1<W<W2. Tambin puede especificar b=fir1(N, Wn, bandpass). Si Wn=[W1 W2] , b=fir1(N, Wn, stop) diseara un filtro rechazo de banda. Si Wn es un vector con mltiples elementos, Wn=[W1 W2 W3Wn], FIR1 retorna un filtro multi-banda de orden N con bandas 0<W<W1, W1<W<W2, Wn<W<1. b=fir1(N,Wn, DC-1) hace que la primera banda sea un pasa banda. b=fir1(N,Wn, DC-0) hace que la primera banda se un rechazo de banda. b=fir1(N, Wn, WIN) disea un filtro FIR de orden N usando el vector WIN de longitud N+1, para aplicar una ventana a la respuesta al impulso. Si se deja vaco o es omitido, entonces FIR1 usa una ventana Hamming de longitud N+1. Si se usa una ventana kaiser, use la siguiente instruccin: b=fir1(N, Wn, kaiser(n+1, beta))
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Funciones en Matlab
A continuacin se muestra el procedimiento completo:
Obtenga las especificaciones: frecuencia de corte, frecuencias de los bordes en las bandas de paso y de rechazo, el mximo rizo permitido, orden del filtro.
Note que para el filtro kaiser no necesita el orden del filtro (el orden ser determinado), y no necesita las frecuencias de los bordes pero si la cantidad de rizo para las dems.

Disee el filtro usando el comando fir1( ). La ventana default es Hamming. Para todos lo tipos de ventanas, excepto kaiser, se debe de proporcionar el orden del filtro N y normalizar la frecuencia de corte (entre 0 y 1).
Para ventana kaiser, determine la beta y M manualmente de las ecuaciones dadas antes de proporcionrselas al comando fir1 con kaiser como tipo de filtro. Tambin puede usar kaiserord( ) para estimar el orden del filtro. Esta le proporcionar los coeficientes b, o en otras palabras , la respuesta al impulso h[n].

Use este filtro con el comando filter( ) de la siguiente forma y=filter(b, a, x), donde b son los coeficientes obtenidos de fir1( ), a=1 desde que es un filtro FIR, x es la seal a ser filtrada y y es la seal filtrada.

O use sptool para el proceso de diseo completo.

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de filtros FIR a travs de la frecuencia de muestreo


Un diseo alterno de filtros FIR es basado en el uso de la IDFT de un filtro normal. Diferente a la tcnica del ventaneo, esta tcnica puede disear un filtro con una respuesta en frecuencia arbitraria, no solo pasa bajos, pasa altos, etc.
La respuesta del filtro deseada es especificada en N puntos igualmente espaciados en el intervalo de [0 2]. Esto constituye el espectro de magnitud:

Un trmino de fase es agregado para asegurar una fase lineal: ()=j(1)/2 para obtener los coeficientes de la DFT del filtro deseado Hdes[k]

La DFT inversa del filtro es tomada para obtener la respuesta al impulso del filtro deseado, h[n].
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo con la frecuencia de muestreo

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Funciones en Matlab: fir2


fir2 Diseo de filtros FIR de forma arbitraria. Usa el mtodo de muestreo en frecuencia. B=fir2(N, F, A, NPT, window) disea un filtro FIR de orden N con la respuesta en frecuencia especificada por los vectores F (frecuencias) y A (amplitudes), y retorna los coeficientes del filtro en el vector B de longitud B+1. La respuesta en frecuencia deseada es interpolada en una rejilla espaciada igualmente con una longitud de NPT puntos (512 es el default). Los coeficientes del filtro son entonces obtenidos aplicando la DFT inversa y los multiplicndolos por la ventana (default, Hamming). Los vectores F y A especifican los limites de frecuencia y magnitud para el filtro, de tal forma que al graficar ( plot(F, A) ) estos vectores mostrara la respuesta en frecuencia deseada. Las frecuencias en F deben de estar entre 0.0<F<1.0, donde 1.0 corresponde a la mitad de la razn de muestreo. Estas deben estar en orden de incrementos, de tal forma que debe comenzar en 0.0 y terminar en 1.0. El filtro B es real y tiene una fase real, es decir sus coeficientes simtricos que obedecen b(k)=B(N+2-k], K=1, 2, , N+1. Por default FIR2, ventanea la respuesta al impulso con una ventana Hamming. Otras ventanas disponibles , incluyen Boxcar, Hann, Barlett, Blackman, Kaiser y Chebwin, las cuales pueden ser especificadas con un argumento opcional final. Por ejemplo, B=fir2(N, F, A, barlett(N+1)) usa una ventana Barlett. Para filtros con una ganancia diferente de cero en Fs/2, por ejemplo los filtros pasa altas y rechazo de banda, N debe ser par. En este caso la longitud de la ventana deber ser especificada como N+2.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Ejemplo
freq=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1] amp=[0 0.5 1 0.8 0.6 0 0.5 0.5 1 0 0] b=fir2(100, freq, amp, 1024); subplot(211) [H w]=freqz(b, 1, 1024); plot(w/pi, abs(H)); hold on plot(freq, amp, 'r*') grid xlabel('Frecuencia, \omega/\pi') title(' Respuesta en Magnitud del filtro y los puntos correspondientes') subplot(212) plot(w/pi, unwrap(angle(H))); xlabel('Frecuencia, \omega/\pi') title(' Respuesta en fase del filtro diseado') grid

Usted necesitara determinar el orden del filtro por prueba y error. Puede necesitar ordenes superiores si los puntos especificados requieren una transicin afilada.
Filtrado Digital Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Otros mtodos de diseo de filtros FIR


Mientras que los mtodos de las ventanas y muestreo en frecuencia son simples y poderosos, estos no permiten un control preciso de las frecuencias criticas ni proporcionan ondulaciones iguales en las bandas de paso y de rechazo. Varias tcnicas de diseo en computadora existen, y que permiten control optimo de todas las bandas y rizos. El algoritmo de Parks-McClellan (algoritmo de intercambio Remez)
En Matlab, lea el archivo de ayuda para la funcin firpm( ).

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Algoritmo Parks McClellan


%Ejemplo - Diseo de filtros FIR usando el algoritmo de Parks McClellan clear close all N=input('Por favor introduzca el orden del filtro: '); %intente N = 10, 50, 100 f = [0 0.3 0.4 0.6 0.7 1]; a = [0 0 1 1 0 0]; b = firpm(N,f,a); [h,w] = freqz(b,1,512); plot(f,a,w/pi,abs(h)) grid title(['Diseo de filtros FIR usando el algoritmo de Parks McClellan, N=' num2str(N)]) xlabel('Frecuencia Normalizada') legend('Ideal','Diseo firpm')

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Diseo de un filtro de fase lineal de 4 orden

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Exportar los coeficientes


File, Export

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

Edit, convert structure

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

FIN

Filtrado Digital

Facultad de Ingeniera Mecnica, Elctrica y Electrnica

You might also like