prac7_dsp

16
Practica 7 Diseño de Filtros Digitales Reyes López Misael, González Arevalo Elfrich, Ruiz Pérez Christian ([email protected]). Resumen En esta práctica se realizaron varios tipos de filtros con funciones de Matlab específicas para ello, como por ejemplo, el "butter" que es un filtro Butterworth y la función "cheby1" que implementa un filtro Chebyshev en configuración de pasa altas, pasa bajas y pasabanda en ambos filtros obteniendo su respuesta al impulso y su diagrama de polos. Introducción El término filtro digital lo entenderemos como cualquier procesamiento realizado en una señal de entrada digital. Un filtro digital es la implementacion en hardware o software de una ecuacion en diferencia. Ventajas de los filtros digitales Alta inmunidad al ruido Alta precisión Fácil modificación de las caracteristicas del filtro Muy bajo coste [B,A]butter(N,Wn) B y A son los coeficientes del numerador y del denominador respectivamente, en orden decreciente de un filtro de Butterworth digital. N es el orden del filtro y Wn es la frecuencia de corte. El valor de Wn debe estar normalizado con la frecuencia de Nyquist. Para diseñar un filtro paso bajo Wn es un escalar entre (0,1). El pasa banda es (0,Wn). [B,A]cheby1(N,R,Wn) Diseño de filtros digitales de Chebyshev I. Se deben especificar el orden del filtro N, el rizado de pasabanda permitido R y la frecuencia de corte normalizada con respecto a la frecuencia de Nyquist.

Upload: elfrich

Post on 04-Jul-2015

246 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Prac7_DSP

Practica 7

Diseño de Filtros DigitalesReyes López Misael, González Arevalo Elfrich, Ruiz Pérez Christian

([email protected]).

ResumenEn esta práctica se realizaron varios tipos de filtros con funciones de Matlab

específicas para ello, como por ejemplo, el "butter" que es un filtro Butterworth y lafunción "cheby1" que implementa un filtro Chebyshev en configuración de pasa altas,pasa bajas y pasabanda en ambos filtros obteniendo su respuesta al impulso y sudiagrama de polos.

IntroducciónEl término filtro digital lo entenderemos como cualquier procesamiento realizado en

una señal de entrada digital.Un filtro digital es la implementacion en hardware o software de una ecuacion en

diferencia.Ventajas de los filtros digitalesAlta inmunidad al ruidoAlta precisiónFácil modificación de las caracteristicas del filtroMuy bajo coste

[B,A]=butter(N,Wn)B y A son los coeficientes del numerador y del denominador respectivamente, en

orden decreciente de un filtro de Butterworth digital. N es el orden del filtro y Wnes la frecuencia de corte. El valor de Wn debe estar normalizado con la frecuencia

de Nyquist. Para diseñar un filtro paso bajo Wn es un escalar entre (0,1). El pasabanda es (0,Wn).[B,A]=cheby1(N,R,Wn)Diseño de filtros digitales de Chebyshev I. Se deben especificar el orden del filtro N,

el rizado de pasabanda permitido R y la frecuencia de corte normalizada conrespecto a la frecuencia de Nyquist.

Page 2: Prac7_DSP

H = freqz(B,A,F,Fs)Devuelve el vector H de números complejos, que es la respuesta frecuencial al filtro

cuya función de transferencia en z viene dada por B y A. La respuesta frecuencialse evalúa en los puntos especificados por el vector F en Hz, siendo la frecucuencia

de muestreo Fs en Hz.

Problema 1Ralice un programa en Matlab para un filtro Butterworth pasabajas,pasa altas y pasa

banda.

Código

function y=filtros(N,R,Wn,Wn1,Wn2,F)[Bb,Ab] = butter(N,Wn,’high’);[Bb1,Ab1] = butter(N,Wn1,’low’);[Bb2,Ab2] = butter(N,Wn2,’bandpass’);[Hb,Wb] = FREQZ(Bb,Ab,F,N);[Hb1,Wb1] = FREQZ(Bb1,Ab1,F,N);[Hb2,Wb2] = FREQZ(Bb2,Ab2,F,N);figureFREQZ(Bb,Ab,F,N)title(’Butterworth Pasa Altas’)figureFREQZ(Bb1,Ab1,F,N)title(’Butterworth Pasa Bajas’)figureFREQZ(Bb2,Ab2,F,N)title(’Butterworth Pasa Banda’)

Ejemplos

Para el filtro butterworth con entrada filtros(1,.5,.7,.7,[.5 .9],50) tenemos:

Pasa bajas.

Page 3: Prac7_DSP

Figura 1. Respuesta en magnitud y fase del filtro pasa bajas butterworth.

Pasa altas.

Figura 2. Respuesta en magnitud y fase del filtro pasa altas butterworth.

Pasa banda.

Page 4: Prac7_DSP

Figura 3. Respuesta en magnitud y fase del filtro pasa banda butterworth.

Problema 2Ralice un programa en Matlab para un filtro Chebyshev pasabajas,pasa altas y pasa

banda.

Código

[B,A] = CHEBY1(N,R,Wn,’high’);[B1,A1] = CHEBY1(N,R,Wn1,’low’);[B2,A2] = CHEBY1(N,R,Wn2,’bandpass’);[H,W] = FREQZ(B,A,F,N);[H1,W1] = FREQZ(B1,A1,F,N);[H2,W2] = FREQZ(B2,A2,F,N);figureFREQZ(B,A,F,N)title(’Chebyshev Pasa Altas’)figureFREQZ(B1,A1,F,N)title(’Chebyshev Pasa Bajas’)figureFREQZ(B2,A2,F,N)title(’Chebyshev Pasa Banda’)figureH = tf(1,A2) % Transfer functionh = impulse(1,A2,F); % Impulse Responses = step(1,A2,F); % Step Responset = linspace(0,F,length(h));plot(t,h)

Page 5: Prac7_DSP

xlabel(’Tiempo’)ylabel(’Amplitud’)title(’Respuesta al impulso normalizada (Chevyshev)’)

Ejemplos

Para el filtro chebyshev con entrada filtros(1,.5,.7,.7,[.5 .9],50) tenemos:

Pasa bajas.

Figura 4. Respuesta en magnitud y fase del filtro pasa bajas chebyshev.

Pasa altas.

Figura 5. Respuesta en magnitud y fase del filtro pasa altas chebyshev.

Page 6: Prac7_DSP

Pasa banda.

Figura 6. Respuesta en magnitud y fase del filtro pasa banda chebyshev.

Problema 3.

Tomando el ejemplo anterios la respuesta al impulso para el filtro Butterworth se

describe como:

Pasa bajas.Codigo:

Hb = tf(1,Ab1) % Transfer functionhb = impulse(1,Ab1,F); % Impulse Responsesb = step(1,Ab1,F); % Step Responsetb = linspace(0,F,length(hb));plot(tb,hb)xlabel(’Tiempo’)ylabel(’Amplitud’)title(’Respuesta al impulso normalizada (Butterworth)’)

Page 7: Prac7_DSP

Figura 7. Respuesta impulsional del filtro butterworth pasa bajas

Pasa Altas.

Codigo:Hb = tf(1,Ab) % Transfer functionhb = impulse(1,Ab,F); % Impulse Responsesb = step(1,Ab,F); % Step Response

Figura 8. Respuesta impulsional del filtro butterworth pasa altas.

Pasa Banda.Codigo:

Hb = tf(1,Ab2) % Transfer functionhb = impulse(1,Ab2,F); % Impulse Response

Page 8: Prac7_DSP

sb = step(1,Ab2,F); % Step Response

Figura 9. Respuesta impulsional del filtro butterworth pasa banda.

Problema 4.Respuesta al impulso para el filtro Chebyshev

Pasa BajasCódigo

H = tf(1,A1) % Transfer functionh = impulse(1,A1,F); % Impulse Responses = step(1,A1,F); % Step Responset = linspace(0,F,length(h));plot(t,h)xlabel(’Tiempo’)ylabel(’Amplitud’)title(’Respuesta al impulso normalizada (Chevyshev)’)

Page 9: Prac7_DSP

Figura 10. Respuesta impulsional del filtro chebyshev pasa bajas.

Pasa AltasCódigo

H = tf(1,A) % Transfer functionh = impulse(1,A,F); % Impulse Responses = step(1,A,F); % Step Response

Figura 11. Respuesta impulsional del filtro chebyshev pasa altas.

Pasa BandaCódigo

H = tf(1,A2) % Transfer function

Page 10: Prac7_DSP

h = impulse(1,A2,F); % Impulse Responses = step(1,A2,F); % Step Response

Figura 12. Respuesta impulsional del filtro chebyshev pasa banda.

Problema 4.

*Respuesta al impulso para el filtro Butterworth

Pasa Bajas,Pasa Altas y Pasa Banda.Código

figurezplane(Bb1,Ab1)title(’Diagrama de polos y ceros (Pasa-Bajas)’)figurezplane(Bb,Ab)title(’Diagrama de polos y ceros (Pasa-Bajas)’)figurezplane(Bb2,Ab2)title(’Diagrama de polos y ceros (Pasa-Bajas)’)

Page 11: Prac7_DSP

Figura 13. Diagrama de polos y ceros del filtro Butterworth (Pasa-bajas).

Figura 14. Diagrama de polos y ceros del filtro Butterworth (Pasa-altas).

Page 12: Prac7_DSP

Figura 15. Diagrama de polos y ceros del filtro Butterworth (Pasa-altas).

*Respuesta al impulso para el filtro Chevyshev

Pasa Bajas,Pasa Altas y Pasa Banda.Código

figurezplane(B1,A1)title(’Diagrama de polos y ceros (Pasa-Bajas)’)figurezplane(B,A)title(’Diagrama de polos y ceros (Pasa-Altas)’)figurezplane(B2,A2)title(’Diagrama de polos y ceros (Pasa-Bandas)’)

Page 13: Prac7_DSP

Figura 16. Diagrama de polos y ceros del filtro chevyshev (Pasa-bajas).

Figura 17. Diagrama de polos y ceros del filtro chevyshev (Pasa-altas).

Page 14: Prac7_DSP

Figura 17. Diagrama de polos y ceros del filtro chevyshev (Pasa-bandas).

Conclusiones.El uso de filtros en señales discretas proporciona diferentes tipos de respuestas

dependiendo del tipo de filtro y características del mismo, como la ubicción de sus polosy ceros por lo que tener conocimiento de ellos y sus comportamientos ayuda en buenamedida en el diseño de sistemas y su implementación.

Así mismo observamos que aunque las frecuencias de corte en un filtro Chebyshevy en un Butterworth aunque sean iguales tienen comportamientos diferentes en el rizode la banda de paso y en la banda transición.

Bilbliografía.TRATAMIENTO DIGITAL DE SEÑALESPROAKIS, JOHN G. \ MANOLAKIS DIMITRIS G.1998

Anexos

Programa principal de los filtros.

function y=filtros(N,R,Wn,Wn1,Wn2,F)[B,A] = CHEBY1(N,R,Wn,’high’);[B1,A1] = CHEBY1(N,R,Wn1,’low’);[B2,A2] = CHEBY1(N,R,Wn2,’bandpass’);

Page 15: Prac7_DSP

[H,W] = FREQZ(B,A,F,N);[H1,W1] = FREQZ(B1,A1,F,N);[H2,W2] = FREQZ(B2,A2,F,N);

figureFREQZ(B,A,F,N)title(’Chebyshev Pasa Altas’)

figureFREQZ(B1,A1,F,N)title(’Chebyshev Pasa Bajas’)

figureFREQZ(B2,A2,F,N)title(’Chebyshev Pasa Banda’)

figurezplane(B1,A1)title(’Diagrama de polos y ceros (Pasa-Bajas)’)figurezplane(B,A)title(’Diagrama de polos y ceros (Pasa-Altas)’)figurezplane(B2,A2)title(’Diagrama de polos y ceros (Pasa-Bandas)’)

figureH = tf(1,A2) % Transfer functionh = impulse(1,A2,F); % Impulse Responses = step(1,A2,F); % Step Responset = linspace(0,F,length(h));plot(t,h)xlabel(’Tiempo’)ylabel(’Amplitud’)title(’Respuesta al impulso normalizada (Chevyshev)’)%/———Butterworth[Bb,Ab] = butter(N,Wn,’high’);[Bb1,Ab1] = butter(N,Wn1,’low’);[Bb2,Ab2] = butter(N,Wn2,’bandpass’);[Hb,Wb] = FREQZ(Bb,Ab,F,N);[Hb1,Wb1] = FREQZ(Bb1,Ab1,F,N);[Hb2,Wb2] = FREQZ(Bb2,Ab2,F,N);figureFREQZ(Bb,Ab,F,N)title(’Butterworth Pasa Altas’)

Page 16: Prac7_DSP

figureFREQZ(Bb1,Ab1,F,N)title(’Butterworth Pasa Bajas’)

figureFREQZ(Bb2,Ab2,F,N)title(’Butterworth Pasa Banda’)figurezplane(Bb1,Ab1)title(’Diagrama de polos y ceros (Pasa-Bajas)’)figurezplane(Bb,Ab)title(’Diagrama de polos y ceros (Pasa-Altas)’)figurezplane(Bb2,Ab2)title(’Diagrama de polos y ceros (Pasa-Bandas)’)

figureHb = tf(1,Ab2) % Transfer functionhb = impulse(1,Ab2,F); % Impulse Responsesb = step(1,Ab2,F); % Step Responsetb = linspace(0,F,length(hb));plot(tb,hb)xlabel(’Tiempo’)ylabel(’Amplitud’)title(’Respuesta al impulso normalizada (Butterworth)’)