Você está na página 1de 4

1

Juan Rodrguez Pacheco, Estudiante maestra Ingeniera elctrica, pacheco2882@hotmail.com

Diseo de filtros digitales mediante Matlab

Abstractthe signal processing deals with the representation,


processing and handling of signals and information they contain.
For example, we might want to separate two or more signals to be
combined in some way, or might want to enhance a signal
component or a parameter of a signal model. This processing
may be performed by technology in continuous time analog, or as
it has been spreading increasingly through discrete-time
processing through programs and processors. Much of signal
processing involves the process of a signal for another signal: the
case of the digital filter.
ndice de trminos Convolucin,
Ecuacin, Frecuencia Filtro, Modelo,
Transformada, Salida, Sistema, Seal.

Digital, Entrada,
Tiempo, Proceso,

I. INTRODUCCIN

S posible definir de manera general a un filtro como un


sistema o una red que cambia selectivamente la forma
de onda, amplitudfrecuencia y/o frecuencia de fase
caracterstica de una seal, en una forma deseada. Los
objetivos comunes del proceso de filtrado son mejorar la
calidad de las seales, por ejemplo removiendo o atenuando el
nivel de ruido, extrayendo informacin de dos o ms seales
previamente combinadas para hacer uso eficiente de un canal
de comunicacin, etc.
Un filtro digital es un algoritmo implementado en hardware
y/o software que opera sobre una seal de entrada seal digital
de salida digital y genera un con la finalidad de efectuar un
procesos de filtrado. El trmino filtro digital se refiere al
hardware o software especfico que ejecuta el algoritmo.
El anlisis de un filtro digital es el proceso de determinar la
respuesta de un filtro ante una dada excitacin. El diseo de
un filtro digital es el proceso de sintetizar e implementar un
filtro digital de tal manera que cumpla con las especificaciones
prescriptas.
Los filtros digitales se caracterizan, en trminos generales,
por ser sistemas predecibles, flexibles, simulables,
consistentes y precisos. Por una parte, es posible cambiar sus
especificaciones mediante la reprogramacin, sin la adicin de
componentes discretos como capacitores, resistores o bobinas
(normalmente con un tamao considerable y con variaciones
en el funcionamiento dependiente de la temperatura o la
humedad).

Una amplia variedad de filtros digitales es descrita por


medio de una ecuacin de diferencias lineal de coeficientes
constantes, que relaciona la secuencia de entrada del filtro x(n)
y la secuencia de salida del mismo y(n):

Estos sistemas pueden ser representados por su secuencia


de respuesta al impulso h(k) donde k=0,1,2,.., y la seal de
salida se obtiene a partir de operaciones de suma y
convolucin de dicha secuencia con la seal digital de entrada.
En trminos de su repuesta al impulso los filtros digitales se
clasifican de dos formas: FIR (Finite Impulse Response) o
filtros de respuesta finita al impulso; e IIR (Infinite Impulse
Response) o filtros de respuesta infinita al impulso, que deben
su comportamiento a la existencia de lazos de realimentacin
en su estructura.
Filtros FIR.
El modelo matemtico de los filtros FIR tambin se
fundamenta la ecuacin de diferencias descrita anteriormente,
pero con la particularidad de que todos los coeficientes ak son
iguales a cero. Se tiene entonces que la ecuacin que los
describe es funcin del conjunto de coeficientes bk y de la
secuencia de entrada x(n).

Donde M+1 corresponde a la longitud del filtro. Este sistema


considera slo las ltimas M+1 muestras de la seal de entrada
y las pondera mediante los coeficientes bk. A este sistema se le
denomina FIR, ya que su respuesta al impulso unitario (dada
por los coeficientes bk) es finita.
La salida del filtro es una suma finita de la entrada presente
y las M entradas previas al filtro. En los sistemas lineales se
tiene que la salida y[n] puede expresarse como la convolucin
de la seal de entrada con la funcin de respuesta al impulso
del filtro.

Filtros IIR
Los conceptos utilizados en el estudio de los filtros FIR
pueden ser aprovechados para los filtros IIR. El punto de
partida nuevamente es la ecuacin de diferencias lineal de
coeficientes constantes:

Pero en este caso por lo menos uno de los coeficientes ak


no es cero. As, se tiene que la transformada z de la respuesta
al impulso unitario de la funcin de transferencia es:
Que una vez ya capturada en cdigo se define como:

Siendo x(n) la entrada, y(n) la salida h(n) la funcin de


respuesta al impulso y X(z) , Y(z) y H(z) sus respectivas
transformadas Z. La ecuacin (5-9) puede ser implementada
de diferentes formas. Las ms utilizadas y estudiadas son la
Forma Directa, la Forma de Cascada y la Forma Paralela.
II. DESARROLLO
En esta seccin y en las siguientes, se presenta el proceso
de diseo de filtros digitales, atendiendo a su comportamiento
en el dominio de la frecuencia como objetivo principal de
diseo.
En el dominio de la frecuencia, las especificaciones que
determinan el objetivo de diseo de los filtros son bsicamente
de dos tipos: el comportamiento de la respuesta en frecuencia
del filtro en la banda de paso (especificaciones en la banda de
paso), y el comportamiento de la respuesta en frecuencia del
filtro en la banda de rechazo (especificaciones en la banda de
rechazo).
En la generacin de cdigo, que dara lugar a la creacin de
una toolbox en el software matlab, orientada hacia el diseo
de filtros digitales, la primera parte por atacar fueron los
algoritmos de funciones para calcular los llamados filtros FIR
Diseo de filtros FIR
Para el diseo de filtros FIR existen varios mtodos, los
cuales son el mtodo de ventanas, el de muestreo en
frecuencia y otros mtodos que se basan en tcnicas iterativas
de optimizacin para minimizar el error entre la respuesta en
frecuencia deseada y la del filtro generado por computadora.
Aqu nos ocuparemos nicamente del mtodo de las ventanas.
Este mtodo se basa en obtener la respuesta en frecuencia
del filtro H como una aproximacin a la respuesta en
frecuencia ideal deseada Hd, mediante una determinada
respuesta al impulso unitario h(n) en el dominio temporal
A manera de ejemplificar el proceso para la generacin del
cdigo tomaremos el diseo de un filtro Pasa-bajas mediante
una ventana Hamming.
El primer paso es definir la ecuacin que representa la
respuesta al impulso en frecuencia ideal, que para este caso, la
ecuacin de un filtro pasa-bajas es la siguiente:

n=-M:M;
h=2*(Fc/Fsamp)*sinc(2*(Fc/Fsamp)*n);
figure; stem(n,h); grid on;
Donde M es el orden del filtro, y se grafica la respuesta
ideal del filtro en el dominio temporal n. El siguiente paso es
generar la respuesta en frecuencia ideal H:
F=-Fsamp/2:Fsamp/4999:Fsamp/2;
H=h*exp(-1j*2*pi*n'*F/Fsamp);
figure; plot(F,20*log10(abs(H)));grid on;
F es la frecuencia contra la cual se grafica nuestra respuesta
ideal. Seguido de esto definimos la ecuacin de nuestra
ventana, que para este ejemplo en particular usaremos una
ventana del tipo Hamming, pero tambin son definidas en la
toolbox las ventanas rectangular y Hanning.
w=0.54+0.46*cos(2*pi*n/(2*M+1));
figure; stem(n,w);
hw=h.*w;
figure; stem(n,hw);grid on;
La ecuacion de la ventana w es graficada contra el dominio
del tiempo, despus se obtiene el producto de nuestra h, que es
nuestra ecuacin del filtro y w, que es nuestra ventana, as
obtenemos la respuesta al impulso ideal. Finalmente
generamos nuestra respuesta en frecuencia de nuestro filtro y
graficamos:
Hw=hw*exp(-1j*2*pi*n'*F/Fsamp);
figure; plot(F,20*log10(abs(Hw))); grid on;
As es como queda finalizado nuestro cdigo para la
generacin de un filtro pasa-bajo por medio de una ventana
Hammig; El mtodo a seguir con los diversos tipos de filtros
(HPF, BPF, RBF) y las diferentes ventanas es muy similar al
seguido en este cdigo, con la excepcin del cambio de las
diferentes ecuaciones correspondientes a cada filtro y ventana.

Diseo de filtros IIR

Para filtros IIR, el mtodo de diseo ms usado se basa en


el diseo de los filtros analgicos. Las especificaciones del
filtro digital se convierten a especificaciones de un filtro
analgico pasa-bajo prototipo, se determina la funcin de
transferencia del filtro analgico que satisface las
especificaciones, y finalmente se transforma a la funcin de
transferencia del filtro digital.
Para la transformacin del filtro analgico en el filtro digital
deseado, se propone un mtodo basado en el mapeo entre los
dominios s de la Transformada de Laplace y z de la
Transformada Z, de tal manera que se mantengan las
propiedades fundamentales de la respuesta en frecuencia. Las
transformaciones ms comunes entre los filtros analgicos y
digitales son:

La invarianza al impulso

La transformacin bilineal

Para el diseo de un filtro IIR pasa-bajo G( z ) basado en un


filtro analgico pasa-bajo, el orden del filtro digital G( z )
depende del orden del filtro analgico H (s) a en que se basa.
Al transformar H (s) a G( z ) se obtiene el orden de G( z ). El
orden de H (s) depende de las especificaciones del filtro y del
tipo de respuesta del filtro deseado, que puede ser
Butterworth, Chebyshev, Bessel, Elptico, etc.
El diseo de un filtro IRR sigue el siguiente orden:
1.

Definicin de parmetros de entrada

2.

Predeformado de frecuencias

3.

Normalizacin a filtro pasa bajas

4.

Calculo de la aproximacin

5.

Desnormalizacin

6.

Transformacin bilineal

Y a continuacin se muestra el extracto de cdigo para cada


una de esas funciones, comenzando por el predeformado de
las frecuencias:
[Fs1,Fc1,Fs2,Fc2]=PreDef_frec(fs1,fc1,fs2,fc2,Fsamp)
Fs1=(Fsamp/pi)*tan(fs1*pi/Fsamp);
Fc1=(Fsamp/pi)*tan(fc1*pi/Fsamp);

Fs2=(Fsamp/pi)*tan(fs2*pi/Fsamp);
Fc2=(Fsamp/pi)*tan(fc2*pi/Fsamp);
Una vez optenidas estas frecuncias ahora se contina con la
normalizacin, donde nuestros filtros son convertidos a un
filtro pasa-bajas analgico. A continuacin se mostrara el
extracto de cdigo en con el cual se pasa de un paso de banda
al pasa-bajas analgico:
if strcmp(TipoFiltro,'BPF')==1;
Apn=Ap1;
Asn=max(As1,As2);
B=Fc1/Fs1;
C=Fs2/Fc2;
if B>C;
Fs11=(Fc1*Fc2)/Fs2;
Fs22=Fs2;
else
Fs11=Fs1;
Fs22=(Fc1*Fc2)/Fs1;
end
Fsn=(Fs22-Fs11)/(Fc2-Fc1);
End
Terminado esto y obtenindo los valores de Apn, Asn y Fsn se
continua con el calculo de la aproximacin, que como se haba
ya hablado anteriormente puede ser del tipo Butterworth,
Chebyshev, Bessel o Elptico, que para este caso se calculara
una Butterworth:
function [Nu,D]=AproxButter(Apn,Asn,Fsn)
E=sqrt((10^(Apn/10))-1);
alpha=sqrt((10^(Asn/10))-1);
n=log(alpha/E)/log(Fsn);
N=round(n);
Fa=E^(1/N);
k=Fa^-N;
if rem(N,2)==0
i=(N/2)+1;
a=(2/Fa)*abs(cos((2*i-1)*pi/(2*N)));
b=Fa^-2;
Nu=k;
D=[1, a, b];

else
i=(N+3)/2;
a=(2/Fa)*abs(cos((i-1)*pi/N));
b=Fa^-2;
Nu=k;
D=[1, (a+1/Fa), (b+a/Fa), b/Fa];

%Esta funcion aplica la transformacion bilineal a nuestra


funcion de filtro
%[Nz,DZ]=ApliBiline(Ns,Ds;Fsamp)
[Nz,Dz]=bilinear(Ns,Ds,Fsamp);

End
end
freqs(Nu,D);

Y as obtenemos el denominado y numerador de una funcin


de transferencia en el dominio discreto y tambin graficamos
con respecto a la frecuencia.

end
Esta funcin entregara los valores de los coeficientes del
denominador y numerador de la funcin de transferencia del
filtro en el dominio de S. el siguiente paso consiste en la
desnormalizacin, que bsicamente es convertir nuestra
funcin de un filtro pasa-bajos en una funcin de nuestro filtro
original. El codigo para la conversin a un BPF es el
siguiente:

if strcmp(TipoFiltro,'BPF')==1;
U=size(D,2);
a=4*(pi^2)*Fc1*Fc2;
b=2*pi*(Fc2-Fc1);

III. CONCLUSIONES
Existen dos maneras de implementar filtros digitales: mediante
software y mediante hardware. La implementacin mediante
hardware tiene como ventaja principal la rpida velocidad con
que se ejecuta la etapa de filtrado y como principal desventaja
el costo alto que implica. En cambio para la implementacin
mediante software sucede lo contrario: el costo es menor pero
el tiempo que toma en realizar la etapa de filtrado es
relativamente mayor.
El filtraje digital constituye una herramienta muy importante
para el tratamiento de una seal analgica, porque se pueden
variar los parmetros del filtro digital (frecuencia de corte,
ancho de banda, etc.), lo cual no puede hacerse con un filtro
activo (analgico) donde hay que variar parmetros
(condensadores, resistencias, etc.).

if rem(U,2)==0;
n=[N*b^3,0,0,0];
d=[1, b*D(1,2), (3*a+D(1,3)*b^2),
(2*b*a*D(1,2)+D(1,4)*b^3), 3*a^2+a*D(1,3)*b^2,
b*D(1,2)*a^2, a^3];
else
n=[N*b^2, 0, 0];
d=[1, D(1,2)*b^2, 2*a+D(1,3)*b^2, D(1,2)*a*b^2, a^2];
end
end
Y ya finalmente se realiza el ltimo paso que es el mapeo por
medio de la transformacin binomial, para pasar del dominio
de S al dominio de Z con este simple cdigo:
function [Nz,Dz]=ApliBiline(Ns,Ds,Fsamp)

Validando el algoritmo de un filtro digital, se puede


implementar un sistema basado en un proceso digital de
seales (DSP). Aqu radica la importancia
de la
implementacin y validacin de los filtros digitales.

IV. REFERENCIAS
[1] Hamming, R.W; Editorial Prentince Hall, 1977
[2] Hovanessian, S.A;Pipes, Luis A.; Digital Computer
Methods in Engineering.
[3] McClelan, James H.; Computer-Based Excercises for
signal processing; Editorial Prentice Hall, 1990.

Você também pode gostar