Está en la página 1de 6

UNIVERSIDAD POLITECNICA

SALESIANA
INGENIERIA ELECTRONICA

TRABAJO
PROCESAMIENTO DIGITAL DE SEALES

TEMA
DIEO DE UN FILTRO DE BUTTHERWOTH UTILIZANDO
MATLAB

INTEGRANTES
FRANCISCO JURADO
JORGE MORALES
ALEX MORENO
ALEJANDRO VALENCIA
CRISTIAN ZAPATA
PERIODO LECTIVO
2010 2011
Objetivo

Mostrar la forma de disear un filtro pasabandas de Butterworth con la ayuda del


software Matlab.

Introduccin
Es muy comn el uso de filtros en el procesamiento de seales, es por ello que hay
que aprender a utilizar paquetes que faciliten el diseo de filtros analgicos y digitales.
En el presente trabajo nos enfocaremos a la implementacin de una clase de filtro el
pasabanda de Butterworth.
Matlab

Filtros analgicos Butterworth


En Matlab podemos encontrar la instruccin Butter, este comando disea filtros
Butterwoth pasa-bajas, pasa-altas, pasa-bandas y rechaza bandas tanto en forma
digital como analgica. Este filtro se caracteriza por una respuesta plana en la banda
de transicin.
En el dominio analgico tenemos dos opciones:

La instruccin para generar un filtro del grado que el usuario desee, as como
la manipulacin de la frecuencia de corte.(esta instruccin 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 funcin de transferencia:

A continuacin disearemos un filtro pasabanda de 4 Hz a 6 Hz y el resultado de


ingresar una seal y pasarla por el filtro.
Cdigo en Matlab
Primero definimos las caractersticas que va a tener la seal y el filtro en tiempo,
frecuencia atenuacin.
% Definimos el periodo de la seal en un valor de 0.01 seg
pas=0.01;
t=0:pas:10;
% Definimos la frecuencia de muestreo que es el inverso del periodo de la seal 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 seal.

fm=1/pas;
fs=fm/2;
% Definimos la banda de paso y de corte de nuestro filtro
wp=[5 20]/fs;
ws=[1 24]/fs;

% Establecemos los valores de rp (valor de la tolerancia de nuestro filtro) y de rs (valor


de la atenuacin de la banda eliminada)
rp=2;
rs=10;
% Definimos la seal la cual vamos a utilizar para pasar por el filtro de butterworth
senal=sin(10*pi*t)+cos(15*t+t.^2);
% Graficamos la seal de muestra
% Definimos el eje de tiempo de nuestra seal
ejet=[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 seal de muestra
subplot(4,1,2);
dim=length(senal).*pas;
% Definimos el eje de frecuencia para la grfica del espectro seal
ejefrec=[0:1/dim:(length(senal)-1)/dim];
spectr=abs(fft(senal));
% Obtenemos la amplitud del espectro de la seal
spectr=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 funcin 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 seal de muestra la
convolucionamos con el filtro con la ayuda del comando filter.y obtenemos el resultado
de la seal filtrada
ysig=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')

Resultados Obtenidos

El primer grfico nos muestra la seal que creamos como prueba


El segundo gradfico nos muestra el espectro de amplitud de la seal.
El tercer grafico nos muestra el filtro de buttrerworth.
El cuarto grafico nos muestra el resultado de la seal filtrada.

Comandos Utilizados
Buttord.- con la ayuda de este comando nos es factible calcular el mnimo orden del
filtro digital o analgico de Butterworth requerido para satisfacer las especificaciones
de diseo del filtro.
Dominio Digital
Sintaxis
[n,Wn] = buttord(Wp,Ws,Rp,Rs)
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')
Descripcin de los parmetros para el uso del comando

Butter.- este comando nos sirve para el diseo 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 funcin 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
aplicacin.
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 funcin 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)
[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 ms usados. En fin con este proyecto llegamos a la conclusin 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 ms diramos que es muy fcil

disear filtros con esta herramienta. Hablando de Simulink concluimos que es una
mezcla o correlacin entre un software de procesamiento de seales y otro de
electrnica, en fin es muy til cuando se tiene la funcin de transferencia especfica
para el filtro deseado.
Es til para simular que componentes debe tener el filtro para su trabajo ptimo, en s
es fcil de usar y de simular.
Los tres programas van ligados y la forma de correlacionarlos sera la siguiente:
Referencia
Manual de procesamiento de seales Toolbox del paquete Matlab

También podría gustarte