You are on page 1of 12

FILTROS DIGITALES IIR

BUTTERWORTH
Carlos Enrique Falcn Zapata, Julio David Vilca Pizarro
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniera Electrnica y Elctrica
carlos15efz@gmail.com
11190025@unmsm.edu.pe

Resumen En el presente artculo nos


enfocaremos en el diseo de filtros digitales IIR, a
partir de prototipos analgicos Butterworth. Para
poder utilizar este tipo de mtodo de diseo
necesitaremos parmetros y condiciones de diseo.
Posteriormente se le realizar pequeas aplicaciones
bsicas de procesamiento de seales e imgenes
usando los filtros digitales diseados previamente.

Palabras claves Filtros digitales y analgicos,


Butterworth, IIR, Transformada de Laplace,
Transformada Z, Transformada de Fourier.

previsibles, poseen un ratio superior de coste de


fabricacin, no sufren por variaciones de fabricacin o
de la edad y otras ms [1].

II.

Filtros Digitales

Es el proceso computacional de un sistema discreto que


discrimina, segn algn atributo a la entrada.
En general un sistema LTI modifica el espectro de la
seal de entrada
, segn su respuesta en
frecuencia
, para dar lugar a una seal de salida
con espectro:

Abstract - In this paper we focus on the design of


digital IIR filters, from
Butterworth. To use this type
need
parameters
and
Subsequently we perform
processing applications and
filters previously designed.

analog prototypes
of design method we
design
conditions.
small basic signal
images using digital

Keywords

- Analog and Digital filters,


Butterworth IIR, Laplace Transform, Z Transform,
Fourier Transform.

(1)

Donde
actacomo funcin de ponderacin o
funcin de conformacin espectral para los diferentes
componentes de frecuencia de la seal de entrada [2].
1. FILTROS IDEALES
Los filtros ideales tienen una caracterstica de magnitud
constante y fase lineal dentro de la banda de paso. Los
filtros ideales no son realizables.
1.1 Filtro pasa bajo Ideal
Se define como:

I.

Introduccin

En esta era digital de las comunicaciones el tratamiento


digital de las seales se ha vuelto un proceso comn y a
su vez esencial, teniendo a los filtros uno de sus
herramientas vitales. El muestreo moderno y los
instrumentos para procesar seales digitales han hecho
posible el reemplazar los filtros analgicos por filtros
digitales en aplicaciones que requieren flexibilidad y
programabilidad. Estas aplicaciones incluyen audio,
imgenes,
telecomunicaciones,
geofsica
y
monitorizacin mdica. Las ventajas de los filtros
digitales frente a los analgicos son muchas y entre
ellas se encuentran que son software programable y
por ello son fciles de montar y testear, solo requieren
de operaciones aritmticas como la multiplicacin y la
suma/resta y as son ms fciles de implementar, son
estables (no cambian con el tiempo o la temperatura) y

| |
| |

(2)

Figura1. Filtro pasa bajo ideal.

1.2 Filtro pasa alto Ideal


Se define como:
{

| |
| |

(3)

III.

El filtro Butterworth es uno de los filtros electrnicos


ms bsicos, diseado para producir la respuesta ms
plana que sea posible hasta la frecuencia de corte. En
otras palabras, la salida se mantiene constante casi
hasta la frecuencia de corte, luego disminuye a razn de
20n dB por dcada, donde n es el nmero de polos del
filtro [3].
La funcin de transferencia para un filtro pasa bajo
Butterworth se define como:
|
|
(7)

Figura2. Filtro pasa alto ideal.

1.3 Filtro pasa banda Ideal

Donde

Se define como:
{

| |
| |

| |

Filtros Butterworth

es la frecuencia normalizada:
(8)

(4)

es la frecuencia de corte del filtro.

Figura3. Filtro pasa banda ideal.

1.4 Filtro rechaza banda Ideal


Figura6. Filtro Butterworth pasa bajo.

Se define como:
{

| |

| |
| |

(5)

Definindose
como un polinomio de grado n en
funcin del tipo de filtro que se elija sea Butterworth,
Chebyshev, Elptico, Bessel, etc.
Siendo para un filtro Butterworth pasa bajo el siguiente
polinomio:
(9)

Donde n es el grado del filtro y una variable que


depende de los rizados o constantes de atenuacin [4].

IV.
Figura4. Filtro rechaza banda ideal.

1.5 Filtro pasa todo Ideal


Se define como:
{

| |

Figura5. Filtro pasa todo ideal.

(6)

Filtros digitales IIR (Respuesta


Infinita al Impulso)

Son filtros digitales invariantes en el tiempo con fases


no lineales, no necesariamente estables y que tienen
una respuesta impulsional infinita.
Sea
la respuesta impulsional del filtro y
una
seal de entrada, entonces la salida de un filtro IIR se
define por la suma de convolucin de la siguiente
forma:

(10)
Los filtros IIR se implementan con ecuaciones en
diferencias que permiten calcular las muestras de salida
en forma recursiva.

(11)

Los valores de los coeficientes


, para los filtros
IIR son los objetivos en un problema de diseo, tal
como en nuestro caso. Una vez ya obtenidos los
coeficientes se puede analizar la respuesta del filtro
tanto en su funcin de transferencia en transformada Z
como en su respuesta en frecuencia ayudndonos en
algunos casos de herramientas de software matemticos
como MATLAB.
Vemos aqu la funcin de transferencia de un filtro IIR:

de los parmetros de diseo como la frecuencia de


corte, la banda de transicin, la frecuencia de
atenuacin y los rizados o constantes de atenuacin.

por

la

(13)

Entonces:

(12)

Vemos aqu un ejemplo de un diagrama de bloques de


un filtro IIR.

(14)

Entonces:

Figura7. Diagrama de bloques de un filtro IIR.

V.

Normalizamos las frecuencias


frecuencia de corte .

Diseo de filtros a partir de


prototipos analgicos

Usando la funcin de transferencia de un filtro


Butterworth y los rizados hallamos el orden
estimado para el filtro.

A partir de las ecuaciones (7), (9) y (13) se tiene:

(15)
Entonces:

A partir de las ecuaciones (7), (9), (14) y (15) se tiene:

(16)

Utilizando los conceptos previos ya expuestos


anteriormente, comenzamos el proceso de diseo de un
filtro Butterworth usando prototipos analgicos. Este
mtodo consiste en lograr obtener la funcin de
transferencia del filtro Butterworth en Transformada de
Laplace, para luego mediante un tcnica denominada
Transformaciones Invariantes al Respuesta (TIR),
podamos convertir la funcin de transferencia de
Laplace a Transformada Z, para esta tcnica nos
ayudaremos con el software MATLAB debido a que
son clculos demasiado grandes, una vez obtenida la
funcin de transferencia en Transformada Z y sus
correspondientes coeficientes podremos lograr obtener
la respuesta del filtro deseado.
Para esta etapa disearemos un filtro digital
Butterworth con las siguientes caractersticas:
Frecuencia de muestro:
Fm=1000Hz
Frecuencia de corte:
Fc=200Hz
Banda de Transicin:
Fs-Fc=100Hz
Rizado en la zona de Paso:
Rp=2dB
Rizado en la zona de Atenuacin:
Rs=40dB

1. Paso1: Aproximacin de Butterworth


Consiste en obtener la funcin de transferencia en
Laplace de un filtro analgico Butterworth en funcin

Entonces:

Por lo cual tomamos el valor entero inmediato superior:


n=13

Normalizamos la funcin de transferencia del


filtro Butterworth con respecto a una
frecuencia .
|
|
(17)
Entonces usando la ecuacin (17):
|

Normalizando:
|
|
|
|
(18)
Luego considerando
:
|
|
(19)
De ello obtenemos la siguiente ecuacin caracterstica:
(20)

Los polos obtenidos tienen la siguiente forma:


(21)

Dnde:
(22)

Utilizando las ecuaciones (25) y (26) en nuestro diseo:

Por lo que al ltimo tendremos la funcin de


transferencia del filtro Butterworth con la siguiente
estructura:
(23)

Luego reemplazando en la funcin desnormalizada:

Donde
se puede hallar de Tablas en funcin del
orden del filtro o mediante software MATLAB.

Para nuestro caso del filtro a disear:

2. Paso 2: Transformacin Invariante a la


Respuesta (TIR)
Consiste en llevar la funcin de transferencia del filtro
Butterworth (H(A)) de Laplace (s) a Transformada Z
(z), usando una tabla con las propiedades de
transformacin o usando el software MATLAB para
nuestro caso usamos el software, mediante el comando
impinvar.

Figura8. Ubicacin de los polos en el plano s.

De la ecuacin (22),

De la ecuacin (24),

De all se obtiene (23),

Figura9. Tabla de Transformaciones Invariantes al Impulso.

En nuestro caso, usamos el software MATLAB y este


es nuestra programacin y resultados:
Desnormalizando:
(25)
(26)

close all
clear all
clc
[orden,Wn]=buttord(200,300,2,40,'s');
orden

Q=1;
Ok=(pi/24)*[1 3 5 7 9 11];
for i=1:6
Q=Q*tf([1 2*sin(Ok(i)) 1],1);
end
Q=Q*tf([1 1],1);
v3=1.3075^(1/26)
fp=200;
W=2*pi*fp*v3;
HN=1/Q;
[num den]=tfdata(HN,'v');
[r p k]=residue(num,den);
figure(1)
rlocus(HN)
grid
for i=1:14
den(i)=den(i)/(W^(14-i));
end
HA=tf(num,den);
[r p k]=residue(num,den);
Fm=1000;
[BZ,AZ]=impinvar(num,den,Fm);

MATLAB para poder visualizar la respuesta en


frecuencia del filtro pasabajos Butterworth diseado.
La programacin en MATLAB es la siguiente:

Como vemos para esta etapa necesitamos la frecuencia


de muestreo Fm, que para nuetro diseo tiene un valor
de 1000Hz. De ello obtenemos los coeficientes
que son los coeficientes de la Transformada Z
del filtro Butterworth.
Estos son los resultados:

Figura10. Respuesta en frecuencia del filtro pasa bajos Butterworth.

N=1000;
[H,F]=freqz(BZ,AZ,N,Fm);
figure(2)
plot(F,abs(H))
grid

figure(3)
zplane(BZ,AZ)
grid

Coeficientes
BZ =
1.0e-41 *
Columns 1 through 9
-0.0000 0.0000 0.0001 0.0065 0.0550
0.1462 0.1510 0.0656 0.0120
Columns 10 through 14
0.0008 0.0000 0.0000 0.0000

Coeficientes
AZ =
1.0e-39 *
Figura11. Grfica en el plano Z de la estabilidad del filtro.

Columns 1 through 9
0.0449 -0.1526
0.2940 -0.3872
0.2834 0.1659 -0.0761 0.0272

0.3779

VI.

Columns 10 through 14
-0.0074 0.0015 -0.0002 0.0000 -0.0000

3. Paso 3: Diseo
Butterworth

final

del

filtro

En esta etapa usamos los coeficientes de la funcin de


transferencia en Transformada Z y el software

Aplicaciones en procesamiento
de seales

Para nuestro caso, hemos aplicado nuestro filtro para


una seal senoidal cualquiera x(t) con frecuencias de
200Hz y 450Hz.
n=0:1:1000;
Ts=1/1000;

x=cos(2*pi*450*n*Ts)+cos(2*pi*200*n*T
s);
plot(x)

grid

Figura12. Seal de prueba x(t).

hertz=n*(1/(N*Ts));
figure(4)
stem(hertz,abs(fft(x)))
title('Espectro de la seal de
entrada')
xlabel('Frecuencia f(Hz)');
ylabel('|X(f)|');
grid

Figura14. Seal filtrada y su espectro.

figure(6)
stem(hertz,abs(Y))
title('Espectro de la seal
filtrada')
xlabel('Frecuencia f(Hz)');
ylabel('|Y(f)|');
grid

Figura13. Espectro en Frecuencia de la seal de entrada x(t).

y=filter(BZ,AZ,x);
figure(5)
subplot(2,1,1)
plot(n,y)
title('Seal de salida filtrada')
xlabel('Tiempo');
ylabel('y(t)');
Y=fft(y);
subplot(2,1,2)
plot(n,abs(Y))
title('Espectro de la seal
filtrada')
ylabel('Y(f)');
xlabel('nmero de muestras N');

Figura15. Espectro en frecuencia de la seal filtrada.

VII.

Filtros Butterworth
variables

en

dos

Para el filtrado en dominio de frecuencia de dos


imgenes tenemos la siguiente expresin de la
transformada de Fourier [5].

para el tratamiento de imgenes usamos la


transformada discreta de fourier(TDF), que en una
variable es la siguiente expresion:

Y en coordenadas polares:

Dnde:

2. Procedimiento para filtrar


dominio de la frecuencia.

en

el

Se deben de seguir los siguientes pasos.


i)
Multiplicar la imagen de entrada por
para centrar la transformada,
como lo indica la ecuacin (2).
ii)
Calcular la TDF de la imagen, F(u,v),
mediante la ecuacin (1).
iii)
Multiplicar F(u,v) por una funcin H(u,v)
que acte como filtro.
iv)
Calcular la TDF inversa del resultado
hallado en (iii).
v)
Obtener la parte real del resultado de (iv).
vi)
Multiplicar el resultado de (v) por
.

Es llamado magnitud, y su fase ser:

3. Filtro Butterworth [6]


3.1 Pasa bajos
Y su transformada de Fourier inversa ser:

La funcin de transferencia de un filtro Butterworth


pasa-bajos de orden n, y con una frecuencia de corte a
una distancia D0 del origen, est definida por:

1. Transformada discreta bidireccional


Esta dada por la siguiente ecuacin:

f(x,y) es la funcin de la imagen , siendo MxN su


tamao.

Figura16. Filtro pasabajos Butterworth.

3.2 Pasa altos


u,v variables transformadas o de frecuencia y x,y
variables espaciales o de imagen
Es comn multiplicar la funcin f(x,y) por
,
antes de calcular la transformada de Fourier. Para que
la transformada se centre en el origen (F(0,0) en u=M/2
y v=N/2). Las que coinciden con el centro del rea de
MxN.

La funcin de transferencia de un filtro Butterworth


pasa-altos de orden n, y con una frecuencia de corte a
una distancia D0 del origen, est definida por:

VIII. Aplicaciones en procesamiento


de imgenes.
En el presente artculo hemos hecho una aplicacin de
los filtros Butterworth para el procesamiento de
imgenes en el que vamos a ver los efectos en la
imagen al filtrarlo tanto con un filtro pasa bajos como
un filtro pasa altos
Para ello hemos hecho de las herramientas de
MATLAB [7].
La imagen a utilizar es la siguiente:

Figura17. Imagen original a procesar.

La programacin y los resultados son lo siguiente:


clear all;
close all;
clc;
f=imread('D:\PDS\PDSTEORIA\TRABAJO\pa
isajes-de-japoneses-312254.jpg');
k=rgb2gray(f);
figure(1)
subplot(2,1,1)
imshow(f)
title('Imagen RGB a procesar')
subplot(2,1,2)
imshow(k)
title('Imagen en escala de grises')

Figura18. Imagen original e imagen en escala de grises.

f_R=f(:,:,1);
f_G=f(:,:,2);
f_B=f(:,:,3);
[m,n,p]=size(f)
P=2*m;
Q=2*n;
K=fft2(k);
figure(2)
modK=abs(K);
subplot(2,1,1)
imshow(modK)
title('Imagen de la DTF de la imagen
en escala de grises')
FA=fft2(k,P,Q);
subplot(2,1,2)
mesh(abs(log(FA+1)))
title('DTF de la imagen en escala de
grises')

Figura19. Imagen aplicando DTF.

figure(3)
subplot(3,1,1)
imshow(f_B)
title('Componente Azul de la imagen')
subplot(3,1,2)
imshow(f_R)
title('Componente Rojo de la imagen')
subplot(3,1,3)
imshow(f_G)
title('Componente Verde de la
imagen')

Figura20. Componentes Rojo, Verde y Azul.

figure(4)
FB=fft2(k,P,Q);
mesh(abs(FB))
title('DTF de la imagen |X(w)|')

FD=fftshift(FD);
figure(7)
mesh(abs(log(FD+1)))
title('DTF de la imagen log(|X(w)|+1)
desplazada')

Figura21 .Transformada Discreta de Fourier de la imagen.

figure(5)
FC=fft2(k,m,n);
mesh(abs(log(FC+1)))
title('DTF de la imagen log(|X(w)|+1)
sin tomar los bordes')
FC=fftshift(FC);

Figura24. DTF de la imagen desplazada al origen.

1. Aplicacin del filtro Butterworth pasa


bajos

Figura22. Logaritmo de la DTF de la imagen.

figure(6)
FD=fft2(k,P,Q);
mesh(abs(log(FD+1)))
title('DTF de la imagen log(|X(w)|+1)
tomando los bordes')

D0=m/1/15;
PasabajosIdeal=zeros(m,n);
for i=1:m
for j=1:n
D=sqrt((i-m/2).^2+(j-n/2).^2);%
Determino la distancia al centro del
% punto (i,j)
if D<D0
PasabajosIdeal(i,j)=1;
end
end
end
FDfiltrado=FC.*PasabajosIdeal;
imagenfiltrada=ifft2(FDfiltrado);
imagenfiltrada=abs(imagenfiltrada);
figure(8)
mesh(abs(log(FDfiltrado+1)))
title('Filtro pasa bajos Butterworth
H(u,v)')

Figura23. Logaritmo de la DTF de la imagen tomando los bordes.

figure(10)
mesh(abs(log(FDfiltrado+1)))
title('Filtro pasa altos Butterworth
H(u,v)')

Figura25. Espectro en frecuencia del filtro pasa bajos Butterworth.

figure(9)
imshow(uint8(imagenfiltrada))
title('Imagen filtrada - Filtro
Pasabajo')

Figura27. Espectro en frecuencia del filtro pasa altos Butterworth.

figure(11)
imshow(uint8(imagenfiltrada))
title('Imagen filtrada - Filtro
Pasaaltos')

Figura26. Imagen filtrada mediante el filtro pasa bajos Butterworth.

2. Aplicacin del filtro Butterworth pasa


altos
D0=m/1/15;
PasaaltosIdeal=zeros(m,n);
for i=1:m
for j=1:n
D=sqrt((i-m/2).^2+(j-n/2).^2);%
Determino la distancia al centro del
% punto (i,j)
if D<D0
PasaaltosIdeal(i,j)=1;
end
end
end
PasaaltosIdeal=1-PasaaltosIdeal;
FDfiltrado=FC.*PasaaltosIdeal;
imagenfiltrada=ifft2(FDfiltrado);
imagenfiltrada=abs(imagenfiltrada);

Figura28. Imagen filtrada mediante el filtro pasa altos Butterworth.

IX.

Conclusiones

Al disear los filtros butterworth solo se necesita las


caractersticas como atenuacin en banda de paso,
banda de corte, frecuencia de paso y frecuencia de
corte. En el diseo de este filtro IIR partimos de un
prototipo analgico
diseado a partir de las
condiciones requeridas, luego lo expresamos en la
variable de transformada de Laplace. Una vez
expresado en transforma de Laplace, convertimos la
variable de Laplace a la de transformada Z, por el

mtodo transformacin invariante al impulso. La


funcin H(z) expresa las caractersticas del filtro
digital.
A parte para el anlisis empleando el programa
MATLAB, hemos experimentado que no siempre es
fiable guiarse de este programa sin poner a prueba y
simular. Esto se experiment con el diseo de filtro por
donde por medio de la funcin buttord que nos
permita obtener el orden que resulto 13 luego lo
calculamos manualmente y obtuvimos el valor de 12.01
lo que significa elegir 13,en coincidencia con
MATLAB. Pero al simular la respuesta del filtro con
orden =12 obtuvimos una mejor respuesta con rizado
pequeo.
Con respecto al procesamiento de imgenes hemos
trabajado en aplicar filtros pasa bajos y pasa altos los
cuales no mejoran la seal sino tienen un efecto
negativo por ejemplo al aplicar un filtro pasa alto la
salida del filtro nos da una imagen que resalta ms los
grises y si aplicamos filtro pasa bajo suavizamos la
imagen.
Al momento de filtrar una imagen se recortaban los
bordes de la imagen, para solucionarlo ampliamos la
matriz MxN a una matriz PxQ de tal manera que el
filtro no afecte los bordes, as como tambin antes de
filtrar tuvimos que desplazar la imagen al
centro(multiplicando por (-1)^(x+y)) para que el
programa Matlab realice los clculos a mayor velocidad
y al momento de sacar la transformada inversa tambin
multiplicamos por el mismo factor y obtenemos la
imagen en la misma posicin original [8].

Figura29. Diagrama de bloques de procesamiento de imgenes en


frecuencia.

X.
[1]

Referencias

Ventaja de los filtros digitales frente a los filtros


analgicos

http://www.ehu.es/procesadoinsvirtual/T6_ventajas.html

Diapositivas del curso Procesamiento Digital de


seales. Filtros Digitales. FIEE-UNMSM.
[3] http://es.wikipedia.org/wiki/Filtro_de_Butterworth
[4] Diseo de Filtros Digitales.
http://www.tecnun.es/asignaturas/tratamiento%20digita
l/tema8.pdf
[5] Filtrado en el dominio de la frecuencia. Ingeniera
en automatizacin y control Industrial. Universidad
Nacional de Quilmes.
[6] Transformada de Fourier en aplicacin en el
diseo de filtros digitales para el procesamiento de
imgenes. Ph.D. Ramn Osvaldo Guardado
Medina1, Dr. Donato Valln Gonzlez. Centro
Universitario de la Costa Sur, Autln de Navarro
Jalisco, Mxico.
[7] Seales y Sistemas I. Filtros. Universidad
Politcnica de Catalunya.
http://ocw.upc.edu/sites/default/files/materials/1501190
6/tema3._filtros_v2.3-2742.pdf
[8] Procesamiento de imgenes con Matlab.
http://es.slideshare.net/lonely113/procesamientodigital-de-imgenes-con-matlab?related=1
[2]