Vous êtes sur la page 1sur 14

2 Diseo de filtros de interpolacin

2 Diseo de filtros de interpolacin


Una parte fundamental de un interpolador es el filtro de interpolacin paso baja. Dicho filtro se encarga de filtrar las imgenes que se forman al realizar el proceso de sobremuestreo, como se ver en el captulo 3. Estos filtros pueden ser de muchas clases, pero principalmente se dividen entre filtros IIR (respuesta impulsiva infinita) y filtros FIR (respuesta impulsiva finita). Las ventajas de cada uno de ellos se discutirn a continuacin

2.1 Filtro IIR


En los filtros IIR se permite una libre distribucin tanto de los polos como de los ceros. Un filtro IIR de orden N tiene N ceros y N polos. En comparacin con los filtro FIR generalmente se requieren rdenes menores para alcanzar las mismas especificaciones, pero a cambio, no podremos conseguir respuestas de fase lineales como en algunos filtros FIR. Como ya se ver mas tarde, la descomposicin polifsica solo se puede aplicar a la parte FIR de un filtro IIR, es decir, a su numerador, por lo que no se podrn explotar en su totalidad las ventajas de esta tcnica. Los filtros que se contemplan son los siguientes: Butterworth Chebyshev tipo 1 y tipo 2 Elptico

20

2 Diseo de filtros de interpolacin

Matlab tiene una serie de funciones para el clculo de los rdenes que estos filtros necesitan para cumplir unas determinadas especificaciones como son buttord.m, cheb1ord.m, cheb2ord.m, y ellipord.m. Estas rdenes necesitan como parmetros las frecuencias que delimitan la banda de transicin, expresadas en frecuencia normalizada, donde 2 representa a la frecuencia de muestreo, y las especificaciones de atenuacin en cada banda. Tambin existen funciones para el diseo completo como butter.m, cheb1.m, cheb2.m y ellip.m, pero en determinadas ocasiones muestran problemas. Cuando intentamos hallar los coeficientes de un filtro de un orden muy alto, o con frecuencias de corte muy cercanas a 0 o a la frecuencia de Nyquist, el resultado no es el de esperar. Veamos lo que pasa al intentar disear un filtro de Butterworth con la orden butter.m con las siguientes especificaciones: p = 0.38 , s = 0.4 , R p = 0.2dB y Rs = 30dB .

Diagrama polo-cero 2.5 1 2 1.5 0.8 Respuesta en magnitud Imaginary Part 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Frecuencia normalizada (/) 0.8 0.9 1 1 0.5 0 -0.5 -1 0.2 -1.5 -2 0 -2.5 -4 -3 -2 -1 Real Part 0 1

0.6

0.4

Ilustracin 2-1: Resultado errneo obtenido con la orden butter.m

Se observa claramente que el resultado es errneo, pues la respuesta en magnitud no presenta la caracterstica montona de los filtros de Butterworth y no cumple especificaciones. Si miramos el diagrama polo-cero se deduce que incluso el filtro es inestable, al tener algunos polos fuera del crculo unidad, y que sus ceros estn lejos de z = 1 , donde deberan estar. Estos efectos se advierten para rdenes altos como es este caso ( N = 75 ), e incluso para rdenes no tan altos ( N 20 ).

21

2 Diseo de filtros de interpolacin

La causa de este efecto es la forma en la que la orden butter.m halla los coeficientes. Primero halla la funcin de transferencia del filtro analgico equivalente, y despus la pasa al dominio digital mediante una transformacin bilineal, y es aqu donde se producen los errores debido a la precisin finita de la mquina. Una forma alternativa es no aplicar la transformacin bilineal a toda la funcin de transferencia, sino a cada uno de los polos y los ceros, e implementar el filtro IIR en forma de cascada, con secciones de segundo orden, agrupando parejas de polos y ceros cercanos. Es por ello que en lo que sigue, en el diseo de los filtros IIR no se utilizan las rdenes disponibles en Matlab para tal propsito, sino que se disearn unas propias que se mostrarn a continuacin. Al disear el filtro anterior con dichas funciones observamos que ya no existen problemas y el resultado es el esperado.

Diagrama polo-cero 1 1 0.8 0.6 0.8 Respuesta en magnitud 0.4 Imaginary Part 0.2 0 -0.2 -0.4 -0.6 0.2 -0.8 -1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Frecuencia normalizada (/) 0.8 0.9 1 -1 -0.5 0 Real Part 0.5 1 75 0.6

0.4

Ilustracin 2-2: Resultado sin utilizar la orden butter.m

2.1.1 Filtros de Butterworth


Los filtros de Butterworth se caracterizan por una respuesta montona en frecuencia. Un filtro Butterworth paso de baja (los que utilizaremos) posee todos sus polos dentro del crculo unidad, distribuidos como se observa en la ilustracin 2-3 y todos sus ceros situados en z = 1 . De todos los filtros IIR es el que requiere mayor orden para cumplir especificaciones. A continuacin se ilustra un ejemplo.

22

2 Diseo de filtros de interpolacin

Diagrama polo-cero 1 1 0.8 0.6 0.8 Respuesta en magnitud 0.4 Imaginary Part 0.2 0 -0.2 -0.4 -0.6 0.2 -0.8 -1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Frecuencia normalizada (/) 0.8 0.9 1 -1 -0.5 0 Real Part 0.5 1 9 0.6

0.4

Ilustracin 2-3: Filtro de Butterworth paso baja

El cdigo de Matlab que se ha usado para disear el filtro de Butterworth se incluye como anexo con el nombre de mibutter.m.

2.1.2 Filtros de Chebyshev


Existen dos tipos de filtros de Chebyshev, tipo 1 y tipo 2, dependiendo donde se localice el rizado. El orden requerido para cada uno de los tipos es el mismo, por lo que a efectos de comparacin con otros los consideraremos como uno solo.

2.1.2.1 Filtros de Chebyshev tipo 1


Estos filtros se caracterizan por tener una caracterstica de igual rizado en la banda de paso. Un filtro de Chebyshev tipo 1 de orden N tiene exactamente N ceros en z = 1 y N polos situados dentro del crculo unidad. Se ilustra en una figura un ejemplo:

23

2 Diseo de filtros de interpolacin

Diagrama polo-cero 1 1 0.8 0.6 0.8 Respuesta en magnitud 0.4 Imaginary Part 0.2 0 -0.2 -0.4 -0.6 0.2 -0.8 -1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Frecuencia normalizada (/) 0.8 0.9 1 -1 -0.5 0 Real Part 0.5 1 5 0.6

0.4

Ilustracin 2-4: Filtro de Chebyshev tipo 1 paso baja

El cdigo de Matlab se incluye en el anexo con el nombre de micheb1.m

2.1.2.2 Filtros de Chebyshev tipo 2


Estos filtros poseen una caracterstica de igual rizado en la banda de rechazo. Un filtro de Chebyshev tipo 2 de orden N tiene exactamente N polos distribuidos como se observa en la ilustracin 2-5 y N ceros situados en la parte del crculo unidad correspondiente con la banda de rechazo. Se muestra un ejemplo.
Diagrama polo-cero 1 0.8
1

0.6 0.4

0.8

Imaginary Part

Respuesta en magnitud

0.2 0 -0.2 -0.4 -0.6

0.6

0.4

0.2

-0.8 -1

0.1

0.2

0.3 0.4 0.5 0.6 0.7 Frecuencia normalizada (/)

0.8

0.9

-1

-0.5

0 Real Part

0.5

Ilustracin 2-5: Filtro de Chebyshev tipo 2 paso baja

Se incluye en el anexo el cdigo de Matlab para este tipo de filtro como micheb2.m

24

2 Diseo de filtros de interpolacin

2.1.3 Filtros elpticos


Los filtros elpticos poseen una caracterstica de igual rizado tanto en la banda de paso como en la banda de rechazo, alcanzando los rdenes ms bajos de los filtros IIR que hemos visto. El rizado en la banda de paso se consigue situando los polos dentro del crculo unidad como se observa en la figura 2-6, y el rizado en la banda de rechazo es debido a los ceros distribuidos en la parte del crculo unidad correspondiente a la bande de rechazo. Para hallar la posicin de los polos y ceros es necesario resolver unas ecuaciones numricas (integrales elpticas). En su lugar utilizaremos la orden de Matlab ellipap.m, que para unas determinadas especificaciones nos calcula los ceros y polos del filtro analgico equivalente normalizado. Solo tendremos que desnormalizarlos y pasarlos al dominio z . Se muestra un ejemplo.
Diagrama polo-cero 1 0.8
1

0.6 0.4

0.8

Imaginary Part

Respuesta en magnitud

0.2 0 -0.2 -0.4 -0.6

0.6

0.4

0.2

-0.8 -1

0.1

0.2

0.3 0.4 0.5 0.6 0.7 Frecuencia normalizada (/)

0.8

0.9

-1

-0.5

0 Real Part

0.5

Ilustracin 2-6: Filtro elptico paso baja

Se incluye en el anexo el cdigo de Matlab que implementa este tipo de filtros como miellip.m

2.2 Filtros FIR


Los filtros FIR causales se caracterizan por tener todos sus polos en z = 0 , lo que implica simplemente un retraso de la seal de salida que no aumenta el coste computacional requerido. Si adems nos interesa que el filtro tenga fase lineal, se deber cumplir que todos sus ceros tengan simetra respecto al crculo unidad, o estn situados exactamente en dicho crculo. Esta caracterstica de fase lineal es especialmente interesante en aplicaciones como procesamiento de

25

2 Diseo de filtros de interpolacin

audio o transmisin de datos. Adems, los filtros FIR son siempre estables, al estar todos sus polos en z = 0 , dentro del crculo unidad. Si es cierto que con los filtros FIR podemos conseguir respuestas lineales en fase, los rdenes requeridos en comparacin con los filtros IIR son mayores. No obstante los filtros FIR admiten la implementacin polifsica por lo que, aunque necesiten rdenes mayores, el coste computacional ser comparable al obtenidos con los filtros IIR. Los filtros que se contemplan son los siguientes: Filtros de Kaiser Filtros de Parks-McClellan Filtros de fase mnima, obtenidos mediante la factorizacin de Schuessler

Es interesante comentar el hecho de que no existen mtodos que obtengan el orden exacto que necesitan estos filtros para cumplir especificaciones, tan solo obtenemos una aproximacin. As, es necesario disear el filtro con la estimacin del orden y comprobar si cumple especificaciones. Si no es as, probaremos con rdenes superiores hasta encontrar el mnimo orden necesario. Esta bsqueda se realiza de forma adaptativa, es decir, los saltos en los que incrementamos el orden empiezan siendo grandes hasta que nos pasamos, entonces volvemos atrs, probamos con un salto menor y as sucesivamente. Si no se implementara de esta forma el tiempo de ejecucin del programa sera mucho mayor, debido a la gran carga computacional que requiere el diseo y comprobacin de estos filtros.

2.2.1 Filtros de Kaiser


Estos filtros de disean mediante el mtodo del enventanado, usando la familia de ventanas de Kaiser. Estas ventanas se crean mediante las funciones de Bessel, y tienen dos parmetros, el nmero de muestras M y el factor de forma Las rdenes de Matlab asociadas a los filtros de Kaiser son las siguientes:

26

2 Diseo de filtros de interpolacin

kaiserord.m: Nos devuelve la estimacin del orden N , la frecuencia normalizada Wn , la longitud de la ventana M y el factor de forma . Necesita como parmetros las especificaciones del filtro. Es posible que el filtro diseado con este orden no cumpla las especificaciones, pues solo es una estimacin.

kaiser.m: Disea una ventana de Kaiser con los parmetros M y . fir1.m: Disea el filtro objetivo por el mtodo de enventanado. Los argumentos de entrada son la ventana de Kaiser obtenida con la orden Kaiser, N y Wn .

Un ejemplo se ilustra a continuacin.


Diagrama polo-cero 1 1 0.8 0.6 respuesta en magnitud 0.8 Imaginary Part 0.4 0.2 0 -0.2 -0.4 -0.6 0.2 -0.8 -1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 frecuencia normalizada (w) 0.8 0.9 1 -1 -0.5 0 Real Part 0.5 1 1.5 20

0.6

0.4

Ilustracin 2-7: Filtro de Kaiser paso baja

En cdigo de Matlab mikaiser.m se implementa la realizacin de este tipo de filtros.

2.2.2 Filtros de Parks-McClellan


El algoritmo de Parks-McClellan, es un mtodo iterativo para el diseo ptimo de filtros FIR. Este algoritmo necesita como parmetros el orden del filtro N , las frecuencias de paso y de rechazo, f p y f r , y la relacin entre los rizados permitidos en la banda de paso y rechazo

p / r , obteniendo la aproximacin para dichas especificaciones.


Las rdenes de Matlab relacionadas con estos filtros son las siguientes:

27

2 Diseo de filtros de interpolacin

firpmord.m: Nos devuelve la estimacin del orden N . Necesita como parmetros las especificaciones del filtro. Es posible que el filtro diseado con este orden no cumpla las especificaciones, pues solo es una estimacin.

firpm.m: Devuelve los coeficientes del filtro diseado. Sus parmetros son el orden del filtro N , y las especificaciones del filtro.

Un ejemplo se muestra a continuacin.


Diagrama polo-cero

1 1

respuesta en magnitud

0.8 Imaginary Part

0.5

0.6

15

0.4

-0.5

0.2 -1 0

0.1

0.2

0.3 0.4 0.5 0.6 0.7 frecuencia normalizada (w)

0.8

0.9

-1.5

-1

-0.5

0 Real Part

0.5

Ilustracin 2-8: Filtro de Parks-McClellan paso baja

Se incluye como anexo el archivo miparks.m, donde se implementa el diseo de este tipo de filtros

2.2.3 Filtros de Schuessler


En algunas aplicaciones no se requiere la caracterstica de fase lineal de los filtros FIR estudiados anteriormente, o es especialmente interesante una caracterstica de fase mnima. En estos casos resulta til el uso de filtros equivalentes de fase mnima que requieren un menor orden para cumplir idnticas especificaciones. Parece lgico que consigamos una disminucin del orden requerido, pues la condicin de fase lineal no es ms que una restriccin en la posicin de los ceros del filtro. W.Schuessler propuso un mtodo para transformar filtros FIR paso baja con fase lineal en filtros FIR de fase mnima con un orden igual a la mitad del original. En el proceso, se

28

2 Diseo de filtros de interpolacin

mantienen las frecuencias de corte de la banda de paso y de rechazo, pero no el rizado en cada una de sus bandas. A este proceso se le denomina descomposicin de Schuessler y al filtro obtenido, filtro de Schuessler. Los filtros FIR de fase lineal de los que se partir para realizar la descomposicin de Schuessler sern los filtros de Parks-McClellan estudiados anteriormente.

2.2.3.1 La descomposicin de Schuessler


En primer lugar, para el diseo de los filtros de Schuessler necesitamos partir de un filtro FIR de fase mnima de Parks-McClellan de orden N par con unas determinadas especificaciones que se estudiarn ms adelante. Una vez que tenemos diseado el filtro FIR de fase lineal, el proceso de diseo de los filtros de Schuessler consta de varios pasos. Primero elevamos la respuesta en frecuencia del filtro FIR de fase lineal del que partimos, con el objetivo de conseguir ceros dobles en el crculo unidad. El segundo paso es factorizar el filtro que hemos modificado en el primer paso para llegar al filtro de fase mnima. Por ltimo este filtro se normaliza para conseguir ganancia unidad en la banda de paso.

Elevando la respuesta en frecuencia


En el siguiente paso factorizaremos el filtro FIR de fase lineal en dos filtros, cada uno de ellos con un orden igual a la mitad, uno de fase mnima y otro de fase mxima, ambos de igual mdulo. Para conseguir esto, cada cero debe tener simetra respecto al crculo unidad, y en el caso de que se encuentre situado justo en el crculo unidad, dichos ceros deben ser dobles. El objetivo de esta fase es provocar dichos ceros dobles, ya que el filtro del que partimos no presenta esta propiedad. Esto se consigue elevando la respuesta frecuencial del filtro hasta hacer coincidir parejas de ceros simples en el mismo lugar del crculo unidad. Veamos un ejemplo:

29

2 Diseo de filtros de interpolacin

Diagrama polo-cero

1+1
1

1-1
respuesta en magnitud 0.8 Imaginary Part

0.5

0.6

38

0.4

-0.5 0.2

0 0 0.1 0.2 0.3

2 -2
0.4 0.5 0.6 frecuencia(/) 0.7 0.8 0.9 1

-1 -1.5 -1 -0.5 Real Part 0 0.5 1

Ilustracin 2-9: Respuesta en magnitud y diagrama polo-cero del filtro


Diagrama polo-cero

H 0 (e j )

1+ 1+ 2
1

1- 1+ 2
respuesta en magnitud 0.8 Imaginary Part

0.5

0.6

38

0.4

-0.5

0.2

2 2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 frecuencia normalizada (/) 0.8 0.9 1

-1 -1.5 -1 -0.5 Real Part 0

0.5

Ilustracin 2-10: Respuesta en magnitud y diagrama polo-cero del filtro H1 (e

Para elevar la respuesta en frecuencia del filtro, consideremos un filtro FIR de fase lineal

H (e j ) con una respuesta impulsiva h[n] simtrica respecto a n = n0 = N / 2 . Se define la


funcin real H 0 (e j ) = e
j n0

H (e j ) que tiene un rizado mximo de 1 alrededor de 1 en la

banda de paso y de 2 alrededor de 0 en la banda de rechazo. Definimos una nueva funcin de transferencia H1 (e j ) = H 0 (e j ) + 2 , que nos es ms que el filtro anterior con una respuesta en frecuencia elevada un valor constante 2 . Como el filtro

H 0 (e j ) tenia un rizado en la banda de rechazo de 2 , el nuevo filtro H1 (e j ) ya no oscila


sobre 0 sino sobre 2 y sus cruces por cero se ven reducidos a la mitad. Con esto se ha conseguido convertir los ceros simples del filtro original en ceros dobles.

30

2 Diseo de filtros de interpolacin

Factorizacin
Con el filtro modificado como se ha comentado en el paso anterior, somos capaces de factorizarlo en dos filtros de igual modulo, uno de fase mnima y otro de fase mxima. H1 ( z ) puede ser factorizado como H1 ( z ) = z
n0

H 2 ( z ) H 2 (1/ z ) donde H 2 ( z ) posee uno de cada

pareja de ceros dobles en el crculo unidad y el resto de ceros que estn situados dentro del crculo unidad y por la tanto, es de fase mnima. Adems, el nuevo filtro H 2 ( z ) tiene exactamente un orden igual a N / 2 Se muestra a continuacin el filtro H 2 (e j ) correspondiente al ejemplo anterior.
Diagrama polo-cero 1 1

sqrt(1+ 1+ 2) sqrt(1- 1+ 2)

0.8 0.6 0.4 Imaginary Part 0.2 0 -0.2 -0.4 19

respuesta en magnitud

0.8

0.6

0.4

0.2

sqrt(2 2)

-0.6 -0.8 -1

0.1

0.2

0.3 0.4 0.5 0.6 0.7 frecuencia normalizada (/)

0.8

0.9

-1

-0.5

0 Real Part

0.5

Ilustracin 2-11: Respuesta en magnitud y diagrama polo-cero del filtro

H 2 (e j )

Como se observa en las ilustraciones, el nuevo filtro H 2 (e j ) mantiene las mismas frecuencias de corte de la banda de paso y de rechazo, pero no las atenuaciones en cada una de ellas.

Normalizacin
La banda de paso del filtro H1 (e j ) oscilaba alrededor de 1 + 2 , debido a la modificacin que realizamos en el primer paso. Como se cumple que H1 (e j ) = H 2 (e j ) , el filtro de fase mnima H 2 (e j ) oscila alrededor de 1 + 2 . Si queremos normalizar el filtro para que oscile sobre la unidad, deberemos dividirlo entre
2

1 + 2 , obteniendo H min (e j ) = H 2 (e j ) / 1 + 2

31

2 Diseo de filtros de interpolacin

respuesta en magnitud

0.8

0.6

0.4

0.2

0.1

0.2

0.3

0.4 0.5 0.6 frecuencia(/)

0.7

0.8

0.9

Ilustracin 2-12: Respuesta en magnitud del filtro H 2 (e

Llegados a este momento, resulta fcil deducir la relacin entre las especificaciones del filtro FIR de fase lineal del que partimos H 0 (e j ) y las del filtro FIR de fase mnima que obtenemos

H min (e j ) . Una vez normalizado, el filtro H min (e j ) , oscilar alrededor de la unidad, entre 1 1 /(1 + 2 ) y 1 + 1 /(1 + 2 ) en la banda de paso. La atenuacin mnima en la banda de
rechazo ser de

2 2 /(1 + 2 ) . Si llamamos 1' y 2 ' a las nuevas especificaciones, las

relaciones son las siguientes.

1' = 1 +

1 1 1+ 2

2' =

2 2 1+ 2

Despejando de este par de ecuaciones 1 y 2 podemos hallar las especificaciones que debe cumplir el filtro de Parks-McClellan del que partimos para que el filtro H min (e j ) alcance unas determinadas especificaciones.

2 =

2' 2 2 '2

1 =

2 1'2 + 4 1' 2 2 '2

2.2.3.2 Implementacin
En la prctica, la implementacin de los filtros de Schuessler presenta algunos aspectos que han de tratarse con cuidado.

32

2 Diseo de filtros de interpolacin

En el primer paso, cuando elevamos la respuesta frecuencial del filtro H 0 (e j ) , ste no tiene un rizado exactamente de 2 , pues esto es solo una restriccin. As, si elevamos la respuesta frecuencial un valor 2 , el filtro quedar un poco elevado sobre 0 y los ceros no coincidirn en el crculo unidad. En lugar de elevarlo un valor 2 , lo que hacemos es buscar el mnimo valor en la banda de rechazo y elevarlo justamente ese valor. Este efecto no es muy notable para rdenes alto, pero para rdenes bajos, puede ocurrir que las especificaciones se cumplan holgadamente y llegar a un resultado errneo. Tericamente conseguamos coincidir exactamente en el mismo lugar los ceros dobles del crculo unidad, pero en la prctica no es as. Debido a esto, nos encontramos con otro problema a la hora de separar la componente de fase mnima del filtro. Seleccionaremos todos los ceros que se encuentran dentro del crculo unidad, y tericamente, uno de cada pareja de ceros dobles. Pero en la prctica esta pareja de ceros estn relativamente cerca pero no en el mismo lugar. La solucin particular que se le ha dado a este problema es elegir el lugar intermedio entre cada pareja de ceros. Se halla la fase de cada uno de la pareja de ceros y se promedia, el cero que formar parte de H min (e j ) tendr esta fase promediada y mdulo unidad. Se adjunta en el anexo el cdigo de Matlab que implementa el diseo de los filtros de Schuessler con el nombre de mischuessler.m

33

Vous aimerez peut-être aussi