Filtrado Digital

Lectura 1: Diseño de Filtros FIR

Diseño de Filtros
Objetivo: Obtener una función de transferencia H(z) realizable aproximándola a una respuesta en frecuencia deseable. El diseño de filtros digitales es el proceso de obtener esta función de transferencia. Normalmente la respuesta en magnitud ( y algunas veces la fase) del filtro deseado es especificada. Recuerde que hay 4 tipos básicos de filtros digitales ideales, basados en la respuesta en magnitud.

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

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 periódica (2π), y simétrica alrededor de 0 y π.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

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 también ser dadas en forma normalizada, donde el valor pasa banda máximo es normalizado a “1” (0 dB). Entonces, tenemos una desviación pasa banda máxima y una magnitud en la banda de rechazo máxima.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Detalles a Recordar
Lo siguiente debe ser tomado en consideración cuando se diseñe 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] (también la respuesta al impulso) deben de satisfacer las restricciones de simetría: h[n]=+/- h[M-n]. Para eficiencia computacional, el orden mínimo del filtro M que satisface los criterios de diseño deben de ser usados.

Si el filtro es IIR, entonces H(z) es una función real racional de

La estabilidad debe ser asegurada. El mínimo (M,N) que satisface los criterios de diseño deben de ser usados.

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

FIR o IIR
Los filtros FIR e IIR tienes varias ventajas. Las ventajas de los filtros FIR (desventajas de los filtros IIR):
Pueden ser diseñados con fase lineal exacta, La estructura del filtro siempre es estable con coeficientes cuantizados, Los transitorios iniciales del filtro tienen duración 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 razón de ordenes de un filtro típico 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 tenía el filtro IIR. Sin embargo, en la mayoría de las aplicaciones que no requieren operación en tiempo real, la fase no es un problema.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Aproximaciones de Diseño Básicas
Diseño de filtros IIR:
1. 2. 3.

Convierta las especificaciones del filtro digital a especificaciones de un filtro análogo pasa bajas prototipo. Determine la función de transferencia del filtro pasa bajas análogo Transforme a una función de transferencia deseada H(z)
Las técnicas de aproximación análogas son altamente avanzadas. Estas normalmente nos conducen a soluciones en forma cerrada. Tablas están disponibles para el diseño de filtros análogos. Muchas aplicaciones requieren simulación digital de sistemas análogos.

El diseño del filtro FIR esta basado en una aproximación directa de la respuesta en magnitud especificada, con los requerimientos frecuentemente agregados de que la fase sea lineal (o algunas veces, mínima).
El diseño 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 Ingeniería Mecánica, Eléctrica y Electrónica

Diseño 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 Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de Filtros FIR

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de Filtros FIR
Esta es la aproximación directa y básica para el diseño de filtros FIR:
Comience con un filtro ideal que satisfaga los criterios de diseño, 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 idéntica que el filtro original.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de Filtros FIR Pasa Bajas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de Filtro FIR Pasa Altas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de BPF y BSF FIR

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Sin embargo….

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Fenómeno 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 fenómeno de Gibbs. Podemos observar lo siguiente:
Así como M se incrementa, el número 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 lóbulo principal se hace más angosto conforme M se incrementa, es decir la caída llega a ser mas aguda. Funcionamiento oscilatorio similar puede ser observado en cualquier tipo de filtro truncado.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Fenómeno de Gibbs
Que es lo que sucede?
El fenómeno de Gibbs es simplemente un resultado de la operación de ventaneo. Multiplicando la respuesta al impulso del filtro ideal con una función ventana regular es equivalente a convolucionar la ventana con una función 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 pequeño; 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 convolución es la que produce las ondulaciones, especialmente en los bordes.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Fenómeno de Gibbs

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Demostración del fenómeno 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 Ingeniería Mecánica, Eléctrica y Electrónica

Efectos de la longitud del filtro

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de filtros FIR usando ventanas
Esto es lo que necesitamos en un filtro:
Caída rápida, es decir una bande de transición angosta.
El lóbulo principal es angosto. Incrementar la atenuación en la banda de rechazo.

Reducir la altura del lóbulo lateral el cual causa las ondulaciones. Reducir el fenómeno de Gibbs. Minimizar el orden del filtro.

El fenómeno de Gibbs puede ser reducido (pero no eliminado) usando una ventana suavizadora que disminuye a zero, suavizando las ondulaciones de la señal.
Varias funciones ventana son posibles, las cuales reducen el ancho del lóbulo y la banda de rechazo.
La ventana rectangular tiene el acho más angosto del lóbulo principal, pero una pobre atenuación en lóbulo lateral. Ventanas afiladas causan que la altura de los lóbulos laterales disminuyan, pero con un correspondiente incremento en el ancho del lóbulo principal, lo que causa una transición mas amplia en la frecuencia de corte.

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Ventanas comúnmente usadas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Ventanas comúnmente usadas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Comparación de las ventanas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Comparación de las ventanas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Comparación de las ventanas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

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 lóbulo principal que esta centrado en ω=0 seguido por una serie de lóbulos con amplitud decreciente. Los parámetros que predicen el rendimiento de una ventana en el diseño de un filtro son:
El ancho del lóbulo principal lóbulo principal Nivel relativo del lóbulo lateral más grande y el lóbulo principal. : Es la distancia entre los cruces por cero en ambos lados del : Es la diferencia en dB, entre las amplitudes del lóbulo lateral

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

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Funciones de Ventanas Fijas

Como diseñar:
Dejar Escoger el tipo de ventana basados en las especificaciones de atenuación del lóbulo lateral (As1) o la atenuación mínima en la banda de paso (αs). Escoger M deacuerdo al ancho de la banda de transición (Δω) y/o el ancho del lóbulo principal (ΔML). Note que este es el único parámetro que puede ser ajustado para funciones de ventanas fijas. Una vez que el tipo de ventana y el orden M son elegidos, así lo serán también As1, αs y ΔML.
Las amplitudes de los rizos no pueden ser diseñadas libremente.

Las ventanas ajustables tienen un parámetro que puede ser variado para compensar entre la anchura del lóbulo principal y la atenuación del lóbulo lateral.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Ventana Kaiser
Es la ventana ajustable más popular.

donde β es un parámetro ajustable para compensar entre la anchura del lóbulo principal y la atenuación del lóbulo lateral, y I0{x} es la función modificada de Bessel de orden cero de primer tipo:

En la practica, estas series infinitas pueden ser calculadas para un número finito de términos hasta una deseada exactitud. En general, 20 términos son adecuados.

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño 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 mínimo en dB: 2. Ancho de banda de la transición normalizada:
1.

3.

Parámetros 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 Ingeniería Mecánica, Eléctrica y Electrónica

6.

Filtrado Digital

Ejemplo
Diseñe un filtro FIR con las siguientes características:

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño 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 parámetro 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 (también llamados taps o weights): h[n]= hI[n].w[n]

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

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

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))
Compárelas con otras ventanas. Grafique también la ganancia en decibeles.

La función window es una herramienta de análisis y diseño de ventanas que proporciona una interfaz grafica para el diseño de varias funciones ventana. La función fdatool es una herramienta de análisis y diseño de filtros que proporciona una interfaz grafica para el diseño de varios tipos de filtros desde las especificaciones que se proporcionen. La función sptool es una herramienta para el procesamiento de señales, que proporciona una interfaz grafica para el diseño, vista y aplicación de señales creadas. También proporciona una interfaz grafica para el análisis espectral.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Herramienta de Análisis y Diseño de Ventanas

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Herramienta de Análisis y Diseño de Filtros

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Funciones en Matlab
fir1 Diseño de filtros FIR usando el método de la ventana.
b=fir1(N,Wn): Diseña 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 razón 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’): Diseña un filtro FIR pasa altas de orden N. También puede usar b=fir1(N,Wn,’low’) también para diseñar 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. También puede especificar b=fir1(N, Wn, ‘bandpass’). Si Wn=[W1 W2] , b=fir1(N, Wn, ‘stop’) diseñara un filtro rechazo de banda. Si Wn es un vector con múltiples elementos, Wn=[W1 W2 W3…Wn], 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) diseña 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 vacío o es omitido, entonces FIR1 usa una ventana Hamming de longitud N+1. Si se usa una ventana kaiser, use la siguiente instrucción: b=fir1(N, Wn, kaiser(n+1, beta))
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Funciones en Matlab
A continuación se muestra el procedimiento completo:
Obtenga las especificaciones: frecuencia de corte, frecuencias de los bordes en las bandas de paso y de rechazo, el máximo 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 demás.

Diseñe 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 proporcionárselas al comando fir1 con kaiser como tipo de filtro. También 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 señal a ser filtrada y y es la señal filtrada.

O use sptool para el proceso de diseño completo.

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de filtros FIR a través de la frecuencia de muestreo
Un diseño alterno de filtros FIR es basado en el uso de la IDFT de un filtro normal. Diferente a la técnica del ventaneo, esta técnica puede diseñar 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 término 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 Ingeniería Mecánica, Eléctrica y Electrónica

Diseño con la frecuencia de muestreo

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Funciones en Matlab: fir2
fir2 Diseño de filtros FIR de forma arbitraria. Usa el método de muestreo en frecuencia. B=fir2(N, F, A, NPT, window) diseña 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 multiplicándolos 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 razón 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 simétricos 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 Ingeniería Mecánica, Eléctrica y Electrónica

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 diseñado') grid

Usted necesitara determinar el orden del filtro por prueba y error. Puede necesitar ordenes superiores si los puntos especificados requieren una transición afilada.
Filtrado Digital Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Otros métodos de diseño de filtros FIR
Mientras que los métodos 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 técnicas de diseño 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 función firpm( ).

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Algoritmo Parks McClellan
%Ejemplo - Diseño 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(['Diseño de filtros FIR usando el algoritmo de Parks McClellan, N=' num2str(N)]) xlabel('Frecuencia Normalizada') legend('Ideal','Diseño firpm')

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Diseño de un filtro de fase lineal de 4 orden

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Exportar los coeficientes
File, Export

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Edit, convert structure

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

FIN

Filtrado Digital

Facultad de Ingeniería Mecánica, Eléctrica y Electrónica

Sign up to vote on this title
UsefulNot useful