7
UNIVERSIDAD POLITECNICA SALESIANA INGENIERIA ELECTRONICA TRABAJO PROCESAMIENTO DIGITAL DE SEÑALES TEMA DIEÑO DE UN FILTRO DE BUTTHERWOTH UTILIZANDO MATLAB INTEGRANTES FRANCISCO JURADO JORGE MORALES ALEX MORENO ALEJANDRO VALENCIA CRISTIAN ZAPATA

Trabajo dsp Filtro de Butterworth

Embed Size (px)

Citation preview

Page 1: Trabajo dsp Filtro de Butterworth

UNIVERSIDAD POLITECNICA SALESIANA

INGENIERIA ELECTRONICA

TRABAJO

PROCESAMIENTO DIGITAL DE SEÑALES

TEMA

DIEÑO DE UN FILTRO DE BUTTHERWOTH UTILIZANDO MATLAB

INTEGRANTES

FRANCISCO JURADO

JORGE MORALES

ALEX MORENO

ALEJANDRO VALENCIA

CRISTIAN ZAPATA

PERIODO LECTIVO

2010 – 2011

Page 2: Trabajo dsp Filtro de Butterworth

Objetivo

- Mostrar la forma de diseñar un filtro pasabandas de Butterworth con la ayuda del software Matlab.

Introducción

Es muy común el uso de filtros en el procesamiento de señales, es por ello que hay que aprender a utilizar paquetes que faciliten el diseño de filtros analógicos y digitales. En el presente trabajo nos enfocaremos a la implementación de una clase de filtro el pasabanda de Butterworth.

Matlab

Filtros analógicos Butterworth

En Matlab podemos encontrar la instrucción Butter, este comando diseña filtros Butterwoth pasa-bajas, pasa-altas, pasa-bandas y rechaza bandas tanto en forma digital como analógica. Este filtro se caracteriza por una respuesta plana en la banda de transición.

En el dominio analógico tenemos dos opciones:

La instrucción para generar un filtro del grado que el usuario desee, así como la manipulación de la frecuencia de corte.(esta instrucción genera los polos y ceros necesarios)

El comando para que a partir del grado, tipo y amortiguamiento, se obtengan los polos, zeros y ganancia que pueda tener el filtro.

Ambas opciones generan los coeficientes de s de la función de transferencia:

A continuación diseñaremos un filtro pasabanda de 4 Hz a 6 Hz y el resultado de ingresar una señal y pasarla por el filtro.

Código en Matlab

Primero definimos las características que va a tener la señal y el filtro en tiempo, frecuencia atenuación.

% Definimos el periodo de la señal en un valor de 0.01 segpas=0.01;t=0:pas:10;% Definimos la frecuencia de muestreo que es el inverso del periodo de la señal adema de la frecuencia de corte que es el inverso de la frecuencia de muestreo la cual va a ser utilizada en nuestro filtro y resulta el inverso del periodo de la señal.fm=1/pas;fs=fm/2;% Definimos la banda de paso y de corte de nuestro filtrowp=[5 20]/fs;ws=[1 24]/fs;

Page 3: Trabajo dsp Filtro de Butterworth

% Establecemos los valores de rp (valor de la tolerancia de nuestro filtro) y de rs (valor de la atenuación de la banda eliminada) rp=2;rs=10;% Definimos la señal la cual vamos a utilizar para pasar por el filtro de butterworth senal=sin(10*pi*t)+cos(15*t+t.^2);

% Graficamos la señal de muestra% Definimos el eje de tiempo de nuestra señalejet=[0:pas:(length(senal)-1).*pas];subplot(4,1,1);plot(ejet,senal);axis([ min(ejet) max(ejet) min(senal) max(senal)]);xlabel('t (s)');ylabel('Inpunt(s)')title('Grafico de la senal0')

% Graficamos el espectro de la amplitud de la señal de muestrasubplot(4,1,2);dim=length(senal).*pas;% Definimos el eje de frecuencia para la gráfica del espectro señalejefrec=[0:1/dim:(length(senal)-1)/dim];spectr=abs(fft(senal));% Obtenemos la amplitud del espectro de la señalspectr=spectr/max(spectr);plot(ejefrec,spectr);axis([0 10 0 max(spectr)]);xlabel('frecuencia (Hz)');title('Espectro de amplitud de la senal')

% Obtenemos el orden del filtro de butterwort y la frecuencia normalizada con la ayuda del comando buttord[n,wn]=buttord(wp,ws,rp,rs);% Con los datos anteriores y con la ayuda del comando butter obtenemos los coeficientes de la función de transferencia para el filtro de butterworth[b,a]=butter(n,Wn);[h,f]=freqz(b,a,[],fm);subplot(4,1,3);plot(f,abs(h));axis([0 10 0 max(spectr)]);xlabel('frecuencia (Hz)');ylabel('|H(z)|');title('Filtro')

% Para poder observar el resultado de filtrar nuestra señal de muestra la convolucionamos con el filtro con la ayuda del comando filter.y obtenemos el resultado de la señal filtradaysig=filter(b,a,senal);subplot(4,1,4);plot(ejefrec,abs(fft(ysig)));axis([0 10 0 500]);xlabel('Frecuencia (Hz)');ylabel('Senal Filtrada (Hz)');title('Senal Filtrada')

Page 4: Trabajo dsp Filtro de Butterworth

Resultados Obtenidos

- El primer gráfico nos muestra la señal que creamos como prueba- El segundo grad¡fico nos muestra el espectro de amplitud de la señal.- El tercer grafico nos muestra el filtro de buttrerworth.- El cuarto grafico nos muestra el resultado de la señal filtrada.

Comandos Utilizados

Buttord.- con la ayuda de este comando nos es factible calcular el mínimo orden del filtro digital o analógico de Butterworth requerido para satisfacer las especificaciones de diseño del filtro.

Dominio DigitalSintaxis[n,Wn] = buttord(Wp,Ws,Rp,Rs)[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')

Descripción de los parámetros para el uso del comando

Page 5: Trabajo dsp Filtro de Butterworth

Butter.- este comando nos sirve para el diseño de filtros de orden n.

Dominio Digital

[z,p,k] = butter(n,Wn)

Sintaxis

[z,p,k] = butter(n,Wn)[z,p,k] = butter(n,Wn,'ftype')[b,a] = butter(n,Wn)[b,a] = butter(n,Wn,'ftype')[A,B,C,D] = butter(n,Wn)[A,B,C,D] = butter(n,Wn,'ftype')[z,p,k] = butter(n,Wn,'s')[z,p,k] = butter(n,Wn,'ftype','s')[b,a] = butter(n,Wn,'s')[b,a] = butter(n,Wn,'ftype','s')[A,B,C,D] = butter(n,Wn,'s')[A,B,C,D] = butter(n,Wn,'ftype','s')

Filter.- esta función nos permite obtener una secuencia de datos utilizando un filtro digital que funciona tanto para la parte real y compleja. El filtro es una forma directa aplicación.

Sintaxis

y = filter(b,a,X)[y,zf] = filter(b,a,X)[y,zf] = filter(b,a,X,zi)y = filter(b,a,X,zi,dim)[...] = filter(b,a,X,[],dim)

Freqz.- devuelve la respuesta de frecuencia del vector h, y el correspondiente vector angular wn frecuencia normalizada para el filtro digital cuya función de transferencia está determinada por los polinomios (reales o complejos) numerador y el denominador representados en la b vectores y uno, respectivamente.

Sintaxis

[h,w] = freqz(b,a,l)h = freqz(b,a,w)

Page 6: Trabajo dsp Filtro de Butterworth

[h,w] = freqz(b,a,l,'whole')[h,f] = freqz(b,a,l,fs)h = freqz(b,a,f,fs)[h,f] = freqz(b,a,l,'whole',fs)freqz(b,a,...)freqz(Hd)

Conclusion:

En la actualidad existen diversos paquetes para simular sistemas y es necesario saber utilizar los más usados. En fin con este proyecto llegamos a la conclusión que matlab es ideal para ver el comportamiento del filtro sin importar los valores de las resistencias o capacitores que debe llevar el filtro, es más diríamos que es muy fácil diseñar filtros con esta herramienta. Hablando de Simulink concluimos que es una mezcla o correlación entre un software de procesamiento de señales y otro de electrónica, en fin es muy útil cuando se tiene la función de transferencia específica para el filtro deseado.

Es útil para simular que componentes debe tener el filtro para su trabajo óptimo, en sí es fácil de usar y de simular.

Los tres programas van ligados y la forma de correlacionarlos sería la siguiente:

Referencia

Manual de procesamiento de señales Toolbox del paquete Matlab