Filtrado Digital Lectura 1: Conceptos de Filtrado Respuesta en Frecuencia La salida de un sistema LTI en el dominio de la frecuencia es: Donde H(ω) es llamada la respuesta en frecuencia del sistema, la cual relaciona la entrada y la salida de un sistema LTI en el dominio de la frecuencia. La respuesta en frecuencia también puede ser representada en términos de ecuaciones de diferencias: Una generalización de la respuesta en frecuencia es la función de transferencia, calculada en el dominio-z. La función H(z), la cual es la transformada Z de la respuesta al impulso h[n] del sistema LTI, es llamada la función de transferencia o la función del sistema: Usando la representación en ecuaciones de diferencias: Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Respuesta en Frecuencia Función de transferencia Si la ROC de la función de transferencia H(z) incluye el circulo unitario, entonces la respuesta en frecuencia H(ω) del filtro digital LTI puede ser obtenida de la siguiente forma: Asumiendo que la DTFT existe, comenzaremos con la transformada Z factorizada, podemos escribir la respuesta en frecuencia de un sistema LTI típico como: De la cual podemos obtener las respuestas en magnitud y fase: Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Interpretación de la respuesta en frecuencia Una grafica aproximada de las respuestas de magnitud y fase de la función de transferencia de un filtro LTI digital puede ser realizada examinando la localización de los polos y zeros. Ahora, la respuesta en frecuencia tiene la magnitud más pequeña alrededor de ω=ζ, y la magnitud más grande alrededor de ω=p. Por supuesto, en ω=p la respuesta es infinitamente larga y en ω=ζ , la respuesta es zero. Por lo tanto: Para provocar la atenuación de la señal en un rango especificado de frecuencia, necesitamos colocar los zeros muy cerca a o sobre el circulo unitario, en este rango. En cambio, para amplificar componentes de la señal en un rango especifico de frecuencias, necesitamos colocar los polos muy cercas a o sobre el circulo unitario en este rango. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Ejemplo Considere el filtro FIR de promedio móvil con respuesta al impulso: Observamos lo siguiente: La función de transferencia tiene M zeros en el circulo unitario en , Hay M-1 polos en z=0 y un polo sencillo en z=1. El polo en z=1 exactamente cancela el zero en z=1. La ROC es todo el plano Z, excepto en z=0. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtro de Promedio Móvil b1=1/5*[1 1 1 1 1]; a1=1; b2=1/9*[1 1 1 1 1 1 1 1 1]; a2=1; [H1 w]=freqz(b1, 1, 512); [H2 w]=freqz(b2, 1, 512); [z1,p1,k1] = tf2zpk(b1,a1); [z2,p2,k2] = tf2zpk(b2,a2); subplot(221) plot(w/pi, abs(H1)); grid title('Funcion de transferencia del FPM de 5 puntos') subplot(222) zplane(b1,a1); title('Diagrama de Polos-zeros del FPM de 5 puntos') subplot(223) plot(w/pi, abs(H2)); grid title('Funcion de transferencia del FPM de 9 puntos') subplot(224) zplane(b2,a2); title('Diagrama de Polos-zeros del FPM de 9 puntos') Observe los efectos de los polos y los zeros Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Tipos de funciones de transferencia La clasificación en el dominio del tiempo de una función de transferencia de una secuencia LTI esta basada en la longitud de su respuesta al impulso: Función de transferencia de Respuesta Finita al Impulso (FIR). Función de transferencia de Respuesta Infinita al Impulso (IIR). Muchas otras clasificaciones son usadas Para funciones de transferencia digital con respuestas de frecuencia selectivas a la frecuencia, una clasificación esta basada en la forma de la grafica de la función de magnitud |H(ω)| o la forma de la función de fase θ(ω). Basada en el espectro de magnitud, 4 tipos de filtros ideales son usualmente definidos: Pasa Bajas, Pasa Altas, Pasa Banda, Rechazo de Banda. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtro Ideal Un filtro ideal es un filtro digital diseñado para pasar componentes de la señal de ciertas frecuencias sin distorsión, por lo cual tiene una respuesta en frecuencia igual a 1 en esas frecuencias, y tiene una respuesta en frecuencia igual a 0 en las demás frecuencias. El rango de frecuencias donde la respuesta en frecuencia toma el valor de 1, es llamado la banda de paso. El rango de frecuencias donde la respuesta en frecuencia toma el valor de 0, es llamado la banda de rechazo. La frecuencia de transición de una banda de paso a una región de banda de rechazo es llamada la frecuencia de corte. Hay que notar que un filtro digital ideal no puede ser realizado, por que? Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros Ideales Las respuestas en frecuencia de los 4 filtros ideales en el rango de [-π π] son: Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros Ideales Recuerde que la DTFT de un pulso rectangular es una función sinc. Del teorema de dualidad, la DTFT inversa de un pulso rectangular es también una función sinc. Desde que el filtro ideal (pasa bajos) tiene una figura rectangular, su respuesta al impulso debe de ser sinc también. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros Ideales Podemos mencionar lo siguiente acerca de la respuesta al impulso de un filtro ideal. no es absolutamente sumable. no es causal, y es de doble longitud infinita Los otros tres filtros también son caracterizados por ser doble mente infinitos, con respuesta al impulso no causal y estos tampoco son absolutamente sumables. Por lo tanto, los filtros ideales con respuestas en frecuencia de forma rectangular no pueden ser realizados con un filtro LTI de dimensiones finitas. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros Realizables Los detalles para diseñar un filtro cuya función de transferencia sea estable y realizable son: Las especificaciones de respuesta en frecuencia ideal son relajadas con la inclusión de una banda de transición entre la banda de paso y la banda de rechazo. Esto permite que la respuesta en magnitud decaiga lentamente de su valor máximo en la banda de paso hasta cero en la banda de rechazo. Además la respuesta en magnitud es permitido que cambie muy poco en las bandas de paso y rechazo de banda. Las especificaciones de respuesta en magnitud típicas de un filtro pasa bajas se muestran en la figura de al lado. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Tipos de Funciones de Transferencia Hasta ahora hemos visto funciones de transferencia caracterizadas inicialmente deacuerdo a su: Longitud de respuesta al impulso (FIR/IIR). Características de los espectros de magnitud. Una tercera clasificación de las funciones de transferencia es con respecto a sus características de fase. Fase cero. Fase lineal. Fase lineal generalizados. Fase no lineal. En muchas aplicaciones, es necesario que el filtro digital diseñado no distorsione la fase de los componentes de la señal de entrada con frecuencias en la banda de paso. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros de Fase Cero Una forma de evitar cualquier distorsión en fase, es estando seguros que la respuesta en frecuencia del filtro no retarda a ninguna de las componentes espectrales. Dicha función de transferencia, se dice que tiene una característica de fase-cero. Una función de transferencia de fase-cero no tiene componente de fase, esto es, el espectro es puramente real (es decir no contiene parte imaginaria) y no negativo. Sin embargo, NO ES POSIBLE diseñar un filtro digital causal con una fase cero. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros de Fase Cero Ahora, si consideramos el procesamiento en tiempo no real de señales de entrada de longitud finita con valores reales, el filtrado de fase cero puede ser implementado relajando los requerimiento de causalidad. Un esquema de filtrado de fase cero puede ser obtenido con el siguiente procedimiento: Procesar los datos de entrada (de longitud finita) con un filtro causal de coeficientes reales H(z). Invertir en tiempo la salida de este filtro y procesarla con el mismo filtro. Invertirlo en tiempo una vez más la salida del segundo filtro. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Implementación en Matlab La función filtfilt() implementa el esquema de filtrado de fase cero filtfilt( ) - Filtrado digital de fase cero y=filtfilt(b,a,x) realiza el filtrado digital de fase cero procesando los datos de entrada en ambas direcciones (hacia delante y hacia atrás). Después de filtrarlo en la dirección hacia delante, invierte la secuencia filtrada y vuelve a ejecutar el proceso de filtrado nuevamente. La secuencia resultante, tiene precisamente una distorsión de fase de cero y dobla el orden del filtro. Esta función minimiza los transitorios al inicio y al final, y funciona también para entradas reales y complejas. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Ejemplo de filtro de fase cero clear; close all t = 0:0.001:1; x=4*cos(2*pi*5*t)+cos(2*pi*21*t); Fs=1/0.001; cuadros={'Frec. de corte en banda de paso (en Hz)', 'Frec. de supresión en banda de rechazo (en Hz)',... 'Rizo en banda de paso(en dB)', 'Rizo en banda de rechazo (en dB)'}; nombre='Parametros de diseño del filtro Butterworth'; num_de_lineas=1; defaults={'10','14', '3','25'}; parametros_de_diseno=inputdlg(cuadros,nombre,num_de_lineas,defaults, 'on'); Frec_paso=str2num(parametros_de_diseno{1})/(Fs/2); % Frec. de corte en banda de paso , normalizada a Fs/2 Frec_rechazo=str2num(parametros_de_diseno{2})/(Fs/2); % Frec. de supresión en banda de rechazo , normalizada a Fs/2 Rizo_paso=str2num(parametros_de_diseno{3}); % Rizo en banda de paso(en dB) Rizo_rechazo=str2num(parametros_de_diseno{4}); % Rizo en banda de rechazo (en dB) [orden_filtro,Frec_natural] = buttord(Frec_paso,Frec_rechazo,Rizo_paso,Rizo_rechazo) [b,a] = butter(orden_filtro,Frec_natural); % Usamos butter para obtener el filtro; [Respuesta_en_frec Frec_base] = freqz(b,a, 1024, Fs); %calculamos la respuesta en frecuencia digital y el vector de frecuencias retardo_fase= -angle(Respuesta_en_frec)./(2*pi*(Frec_base)); figure('Name','Respuesta en Frecuencia del Filtro Butterworth','NumberTitle','off') subplot(411); plot(Frec_base(1:103), abs(Respuesta_en_frec(1:103))); %Graficamos hasta 50 Hz xlabel('Frecuencia, Hz.'); grid title(['Respuesta en Magnitud con frecuencia de corte = ', num2str(Frec_natural*Fs/2), 'Hz, y orden N=', num2str(orden_filtro)]) subplot(412); plot(Frec_base(1:103), unwrap(angle(Respuesta_en_frec(1:103)))); grid xlabel('Frecuencia, Hz.'); ylabel('Respuesta de Fase en rad.'); title('Respuesta en fase del filtro Butterworth') subplot(413); plot(Frec_base(1:103), retardo_fase(1:103)); grid xlabel('Frecuencia, Hz'); ylabel('Retardos en fase'); title('Retardo en fase del filtro') subplot(414) ; impz(b,a); title('Respuesta al impulso del filtro Butterworth') figure x1 = filter(b, a, x); %Filtramos la señal con el Filtro Butterworth de fase no lineal x2 = filtfilt(b,a,x); %Noncausalzero phase filtering plot(t, x, 'b', t, x1, 'r', t, x2, 'g','LineWidth', 3) grid legend('Señal original', 'Señal filtrada IIR', 'Señal filtrada de fase cero') Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Fase lineal Si el espectro de fase es lineal, entonces el retardo de fase es independiente de la frecuencia, y es la misma constante α para todas las frecuencias. En otras palabras, todas las frecuencias son retrazadas por α segundos, o en forma equivalente, la señal completa es retrazada por α segundos. Desde que la señal completa es retrazada por una cantidad constante, no hay distorsión. Si el filtro no tiene fase lineal, entonces diferentes componentes de frecuencia son retrazadas en diferentes cantidades, causando una distorsión significante. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Fase lineal Si se desea pasar una señal de entrada con componentes en un cierto rango de frecuencias, sin distorsión, entonces la función de transferencia deberá exhibir una respuesta en magnitud unitaria y una respuesta en fase lineal en las bandas de interés. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros de fase lineal Es prácticamente imposible diseñar un filtro IIR de fase lineal, sin embargo, diseñar filtros FIR con fase lineal precisa es muy fácil: Consideremos un filtro FIR causal de longitud M+1 (orden M). Esta función de transferencia tiene fase lineal, si su respuesta al impulso h[n] es simétrica: o antisimétrica . Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Filtros de Fase lineal Tenemos cuatro posibles escenarios: Filtros de longitud par o impar, y respuesta al impulso ya sea simétrica o antisimétrica. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Tipos FIR I y FIR II Para coeficientes simétricos, podemos mostrar que la respuesta en frecuencia es de la siguiente forma: FIR II (M es impar, la secuencia es simétrica y de longitud par) Note que esta en la forma de , donde α=M/2, y G(ω) es la parte real (el termino que incluye la sumatoria). La salida es retrazada por M/2 muestras. FIR I (M es par, la secuencia es simétrica y de longitud impar) Nuevamente, este sistema tiene fase lineal (la cantidad dentro del paréntesis es una cantidad real) y el retardo de fase es M/2 muestras. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Tipos FIR III y FIR IV Para secuencias antisimétricas, tenemos que h[n]=-n[M-n], la cual nos da términos seno en la ecuación de la sumatoria: FIR IV (M es impar, la secuencia es antisimétrica y de longitud par). FIR III (M es par, la secuencia es antisimétrica y de longitud impar) En ambos casos, la respuesta en fase es de la forma θ(ω)=−(Μ/2)ω+π/2, lo cual representa una fase lineal generalizada. Nuevamente, en todos estos casos, la salida del filtro es retrazada por M/2 muestras. También, para todos los casos, si G(ω)<0, un término adicional π es agregado a la fase, lo cual causa que las muestras sean invertidas. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Ejemplo en Matlab h1=[1 2 3 4 3 2 1]; % FIR 1 h2=[1 2 3 4 4 3 2 1]; % FIR 2 h3=[-1 -2 -3 0 3 2 1]; %FIR 3 h4=[-1 -2 -3 -4 4 3 2 1] ; % FIR 4 [H1 w]=freqz(h1, 1, 512); [H2 w]=freqz(h2, 1, 512); [H3 w]=freqz(h3, 1, 512); [H4 w]=freqz(h4, 1, 512); % Grafica las respuestas en magnitud y fase % en frecuencia angular de 0 a pi subplot(421); plot(w/pi, abs(H1));grid; ylabel('FIR 1') subplot(422); plot(w/pi, unwrap(angle(H1)));grid; subplot(423); plot(w/pi, abs(H2));grid; ylabel('FIR 2') subplot(424); plot(w/pi, unwrap(angle(H2)));grid; subplot(425); plot(w/pi, abs(H3));grid; ylabel('FIR 3') subplot(426); plot(w/pi, unwrap(angle(H3)));grid; subplot(427); plot(w/pi, abs(H4));grid xlabel('Frecuencia, \omega/\pi'); ylabel('FIR 4') subplot(428); plot(w/pi, unwrap(angle(H4)));grid xlabel('Frecuencia, \omega/\pi') Procesamiento Digital de Señales (PDS) %Grafica de los zeros figure subplot(221) zplane(h1,1); grid title('FIR 1') subplot(222) zplane(h2,1);grid title('FIR 2') subplot(223) zplane(h3,1);grid title('FIR 3') subplot(224) zplane(h4,1);grid title('FIR 4') Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Ejemplo de Polos y Zeros de un Filtro FIR Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica Localización de zeros en los filtros de fase lineal El filtro FIR tipo 1: Puede tener un número par o no tener zeros en z=1 y z=-1. El filtro FIR tipo 2: Puede tener un número par o no tener zeros en z=1, y un número impar de zeros en z=-1. El filtro FIR tipo 3: Tiene un número impar de zeros en z=1 y z=-1. El filtro FIR tipo 4: Tiene un número impar de zeros en z=1, y puede tener un número par o no tener zeros en z=-1. Un filtro FIR tipo 2 no puede ser usado para diseñar un filtro pasa altas desde que siempre tiene un zero en z=-1. Un filtro FIR tipo 3 tiene zeros en z=1 y z=-1 y por lo tanto no puede ser usado para diseñar filtros pasa bajas, pasa altas ni tampoco un rechazo de banda. Un filtro FIR tipo 4 no es apropiado para diseñar un filtro pasa bajas debido a la presencia de un zero en z=1. El filtro FIR tipo 1 no tiene estas restricciones y puede ser usado para diseñar casi cualquier tipo de filtro. La presencia de zeros en z=+/- 1 nos produce limitaciones en el uso de funciones de transferencia de fase lineal en el diseño de filtros. Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica FIN Procesamiento Digital de Señales (PDS) Facultad de Ingeniería Mecánica, Eléctrica y Electrónica