Diseño de Filtros Analogicos Con Matlab

Share Embed Donate


Short Description

Diseño de filtros analógicos con Matlab por Susana Canel y Jorge Sinderman...

Description

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

1

 

Diseño de filtros analógicos con Matlab  Ing. Susana Canel (*) e Ing. Jorge Sinderman (**)(*)  * Universidad Tecnológica Nacional, Facultad Regional Buenos Aires  * * Universidad Nacional de San Martín, Escuela de Ciencia y Tecnología    Diseño de filtros analógicos con Matlab by Susana Canel y Jorge Sinderman is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0) License

http://creativecommons.org/licenses/by-nc/3.0/  

1. Introducción  1.1 Conceptos básicos  Un filtro eléctrico es un cuadripolo, es decir, un circuito con un par de terminales de entrada y otro  par  de  salida,  tal  que  a  la  salida  aparecen  selectivamente  ciertas  frecuencias  presentes  a  la  entrada, excluyendo otras.    La  gama  de  frecuencias  que  el  filtro  deja  pasar  con  poca  (idealmente,  ninguna)  atenuación  se  conoce  con  el  nombre  de  banda  pasante.  La  gama  de  frecuencias  que  el  filtro  deja  pasar  con  elevada (idealmente, total) atenuación se denomina banda de rechazo o de supresión. Siendo que  la transición entre la banda pasante y la de supresión suele ser gradual, a la zona intermedia se la  conoce como banda de transición.    Existen diferentes clases de filtros, que corresponde consignar:  • Los filtros pasa‐bajos, en los cuales la banda pasante es la gama de frecuencias bajas.  • Los filtros pasa‐altos, en los cuales la banda pasante es la gama de frecuencias altas.  • Los  filtros  pasa‐banda,  en  los  cuales  la  banda  pasante  es  una  gama  intermedia  de  frecuencias  • Los filtros suprime‐banda, en los cuales la banda de supresión es una gama intermedia de  frecuencias. En muchos casos esta gama intermedia rechazada es muy estrecha y el filtro  recibe el nombre de muesca (en inglés, notch)    Un filtro ideal debería cumplir con las siguientes condiciones.  Respecto a la atenuación:  1) La atenuación en la banda pasante debería ser nula.  2) La atenuación en la banda de supresión debería ser total.  3) La banda de transición no debería existir  Respecto al desfasaje.  4) En  la  banda  pasante  el  desfase  introducido  debería  ser  proporcional  a  la  frecuencia,  de  manera  que  el  mismo  se  presente  como  un  atraso  de  tiempo  igualitario  para  todas  las  frecuencias de la banda pasante. Este retraso de tiempo se denomina retardo de grupo.  Puede  demostrarse  que  un  filtro  ideal  es  irrealizable,  no  sólo  por  no  poderse  satisfacerse   simultáneamente  las  cuatro  condiciones  antedichas,  sino  que  tampoco  son  realizables  por  separado.    Es por ello que en la práctica se realizan distintos tipos de filtros que buscan aproximarse al ideal,  al menos en una de las condiciones mencionadas. Así encontramos los siguientes tipos de filtros  según la “aproximación” buscada:  a) filtros Butterworth, si deseamos una banda pasante de máxima planicidad  

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

2

b) filtros  Chebyshev    del  tipo  1    si  deseamos  una  máxima  atenuación  en  la  banda  de  supresión (tolerando una ondulación en la banda de paso)  c) filtros  Bessel  (o  de  Thomson)  si  deseamos  que  en  la  banda  pasante  la  fase  sea  aproximadamente lineal para tener un retardo de grupo prácticamente constante en esa  banda.  d) filtros  Chebyshev  del  tipo  2  (o  Chebyshev  inverso)  si  deseamos  una  banda  de  transición  estrecha, tolerando ondulaciones en la banda de supresión  e) filtros  elípticos  (o  de  Cauer),  si  deseamos  una  banda  de  transición  aún  más  estrecha,  tolerando ondulaciones tanto en la banda de paso como en la de supresión  Todas estas aproximaciones de denominan racionales pues consisten en sistemas cuya función de  transferencia es un cociente entre dos polinomios en s.  Se define como orden de un filtro al grado  del polinomio denominador.    1.2 Diseño de filtros  La  presente  publicación  trata  sobre  el  diseño  de  filtros,  de  las  diversas  clases  y  de  los  distintos  tipos  que  se  mencionaron  en  el  apartado  anterior,  para  los  que  determinaremos  su  función  transferencia.  Sin perder generalidad, nos limitaremos a los filtros que tengan ganancia unitaria,  ya  que  en  el  caso  de  desear  otra  ganancia,  bastará  multiplicar  la  función  transferencia  que  aquí  hallemos por el factor deseado de ganancia.    Definida la clase de filtro que se ha de diseñar y adoptado el tipo de filtro que mejor se aproxima a  nuestro ideal, el diseño del filtro puede continuar de dos maneras distintas.  A. Adoptando un orden para el filtro, lo que se hace sobre la base de que la aproximación al  ideal es tanto mejor cuanto mayor sea el orden adoptado.   B. Adoptando una plantilla con los limitaciones a las atenuaciones que podrá tener el filtro en  sus  bandas  pasante  y  de  supresión  (como  consecuencia  de  la  cual,  surgirá  del  cálculo  el  orden a utilizar).    A) Caso en el que se fija el orden del filtro.  El procedimiento de diseño es el siguiente:  • Habiendo  ya  elegido  el  orden  y  el  tipo  de  filtro  a  diseñar  (a  lo  largo  de  este  apartado  usaremos como ejemplo un filtro Chebyshev del tipo 1 con una ondulación de 1 dB en la  banda pasante, de orden 3), y cualquiera sea la clase del filtro a realizar (por ejemplo un  pasa‐altos),  se  parte  de  la  función  transferencia  del  llamado  prototipo  normalizado  (un  filtro  pasa‐bajos  de  ganancia  unitaria,  del  mismo  tipo  y  orden  que  el  que  queremos  realizar, y de frecuencia de corte unitaria). Las funciones transferencia de estos prototipos  normalizados se encuentran tabuladas en la literatura sobre el tema. En nuestro ejemplo,  la función transferencia de un filtro prototipo normalizado Chebyshev de orden 3 con una  ondulación  de  1  dB  en  la  banda  pasante  (ejemplo  que  continuaremos  desarrollando  en  este apartado) es la siguiente: 

H (S ) =



0,4913   S + 0,9883S 2 + 1,238S + 0,4913 3

Es  buena  costumbre  escribir  la  variable  s  de  los  filtros  prototipos  normalizados  con  S  mayúscula, para evitar errores al efectuar el próximo paso.  definida  la  o  las  frecuencias  de  corte  del  filtro  a  realizar  (un  pasa‐bajos  y  un  pasa‐altos  tienen una única frecuencia de corte, pero un pasa‐banda y un suprime banda tienen dos),  se parte de la función transferencia del prototipo normalizado y se utilizan ciertas fórmulas  de  transformación  que  más  abajo  se  dan  ‐  y  que  toman  en  cuenta  la(s)  frecuencia(s)  de  corte buscada(s) ‐ para determinar la función transferencia del filtro deseado.  

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

Para el filtro pasa‐bajos:                hágase la sustitución S ⇒ Para el filtro pasa‐altos:                hágase la sustitución S ⇒

3

s

ωC ωC

   

s s 2 + ω C 2ω C 1   Para el filtro pasa‐banda:              hágase la sustitución S ⇒ s (ω C 2 − ω C1 ) Para el filtro suprime banda:         hágase la sustitución S ⇒

s (ω C 2 − ω C1 ) s 2 + ω C 2ω C 1

 

Siguiendo con nuestro ejemplo, para el caso de un pasa‐altos con una frecuencia angular  de corte de 1000 radianes por segundo, la transformación a utilizar es: 

S=

10 3   s

Y resulta: 

0,4913

H (S ) =

3

2

⎛ 10 3 ⎞ ⎛ 10 3 ⎞ ⎛ 10 3 ⎞ ⎜⎜ ⎟⎟ + 0,9883⎜⎜ ⎟⎟ + 1,238⎜⎜ ⎟⎟ + 0,4913 s s s ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ 3 s = = 0,9883 3 2 1 3 2 1, 238 3 3 3 s +s 10 + s 10 + 10 0,4913 0,4913 0,4913

( )

=

=

( )

s3 s 3 + 2519,8s 2 + 2,0116 × 10 6 s + 2,0354 × 10 9

Cuyo diagrama de Bode (de magnitudes) es el que sigue, comprobándose que satisface lo requerido: Bode Diagram 0

-10

Magnitude (dB)

-20

-30

-40

-50

-60 2 10

3

4

10

10 Frequency (rad/sec)

Figura 1 – Diagrama de Bode del ejemplo   

5

10

 

4

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

Este  método  de  diseño  fue  el  preferido  cuando  la  no  disponibilidad  de  herramental  matemático  hacía deseable partir de un prediseño establecido (el prototipo normalizado) que ya incorpora la  realización de un cierto cálculo para establecerlo y minimiza el esfuerzo de cálculo (posterior) del  diseñador. Pero modernamente la disponibilidad de Matlab vuelve innecesario partir de este filtro  intermediario.  Pero este método mantiene aún cierta vigencia porque las tablas con los valores de  los filtros prototipos normalizados para diferentes tipos de filtros están ampliamente disponibles  en la literatura sobre el tema.    De  todos  modos,  para  apoyar  el  empleo  de  este  método,  Matlab  dispone  de  instrucciones  específicas para:  a) Funciones  para  obtener  ceros,  polos  y  ganancia  de  los  distintos  filtros  prototipo  normalizados, y a partir de ellas su función transferencia. Ver el apartado 2.1  b) Funciones  para  transformar  filtros    prototipo  normalizados  a  pasa‐bajos,  pasa‐altos,  pasa‐bando y suprime‐banda Ver el apartado 2.3  c) La  función  besself  (ver  el  apartado  2.5)  que  permite  obtener  los  ceros,  polos  y  ganancia de de un filtro Bessel pasa‐bajos a partir del número de orden deseado para  el filtro y su frecuencia de corte.  La  última  función  descripta  se  justifica  porque  da  soporte  al  diseño  de  filtros  Bessel  que  son  siempre  pasa‐bajos  y  como  los  mismos  están  focalizados  en  el  comportamiento  de  la  fase  de  la  función transferencia, y no tanto en su módulo, no es aplicable para los mismos  el método de la  plantilla  que  se  describe  a  continuación.  Volveremos  en  el  siguiente  apartado  para  ampliar  este  tema y considerar al llamado retardo de grupo.     B) Caso en el que se fija la platilla del filtro.    La plantilla es el gráfico (o el conjunto de valores) que muestra la atenuación máxima tolerada en  la banda pasante, la atenuación mínima exigida en la banda de supresión, y las frecuencias límites  de cada una de dichas bandas.    Así,  la  figura  2  muestra  una  plantilla  genérica  (en  el  habitual  gráfico  semilogarítmico  con  que  se  representa la respuesta en frecuencia) para el caso de un filtro pasa‐bajos, donde se destacan sus  4 parámetros definitorios:  Rp = atenuación máxima permitida en la banda de paso (en decibeles)  Rs   = atenuación mínima requerida en la banda de atenuación (en decibeles)  ωp = frecuencia angular límite de la banda pasante (en radianes por segundo)   ωs = frecuencia angular límite de la banda de supresión (en radianes por segundo)  |H(jω)| en dB 0 Rp

Rs ω ωp

ωs

Figura 2 – Plantilla de un filtro pasa‐bajos    A su vez, la figura 3 muestra la plantilla de un pasa‐altos 

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

5

|H(jω)| en dB 0 Rp

Rs ω ωs

ωp

Figura 3 – Plantilla de un filtro pasa‐altos 

 

  Las  plantillas  se  pueden  realizar  también  para  los  filtros  pasa‐banda  y  suprime‐banda,  siendo  la  figura 4 el caso correspondiente a un filtro pasa‐banda (el trazado de la plantilla de un suprime‐ banda es dejado al lector)  Nótese la existencia de dos frecuencias (y no una) que fijan los límites  de la banda pasante, e idéntica cantidad para la banda de supresión. 

|H(jω)| en dB 0 Rp

Rs ωs1

ωp1

ω ωp2

ωs2

Figura 4 – Plantilla de un filtro pasa‐banda 

 

  Cuando se parte de la plantilla, el método de diseño reconoce tres pasos:    1) Cálculo del orden necesario para el filtro  2) Cálculo de la(s) frecuencia(s) de corte (en singular para el caso de los filtros pasa‐bajos y  pasa‐altos, pero que son dos en el caso de los pasa‐banda y suprime‐banda)  3) Obtención de los polos, ceros y constante (p, z y k) para el filtro deseado.  4) Obtención de la función transferencia zpk del filtro buscado.    Matlab tiene funciones para:  a) realizar los pasos 1 y 2 simultáneamente. Ver el apartado 2.4  b) realizar el paso 3. Ver el apartado 2.5  c) realizar  el  paso  4.  El  lector  ya  debe  estar  familiarizado  con  el  uso  de  Matlab  para  este  propósito, pero igualmente la información sobre cómo realizar este paso se encuentra en  el apartado 2.2.    Sin embargo, merece un comentario aclaratorio el cálculo que hace de la frecuencia de corte, a la  que  denomina  wn  (por  ser  la  frecuencia  que  emplea  en  la  desnormalización  del  prototipo  normalizado). Para esta aclaración conviene destacar que la definición de “frecuencia de corte” de  un filtro se define en forma diferente según la aproximación de que se trate. A saber:  a) En los filtros Butterworth, la frecuencia de corte es aquella para la cual la respuesta cae 3 

6

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

dB respecto a las frecuencias bajas.   b) En los filtros Chebyshev 1,  la frecuencia de corte es wp.  c) En los filtros Chebyshev 2,  la frecuencia de corte es ws  d) En filtros elípticos, la frecuencia de corte es wp    Adviértase una dificultad en el caso de los filtros con aproximación Butterworth: la plantilla no nos  da  información  sobre  la  frecuencia  de  corte  (como  ocurre  en  el  caso  de  las  aproximaciones  Chebyshev  y  elípticas).  La  frecuencia  de  corte  puede  deducirse  de  los  valores  de  plantilla  sólo  después  de  saber  el  orden  del  filtro.  Además,  hay  todo  un  rango  de  valores  aceptables  para  la  frecuencia  de  corte.  Por  ejemplo,  para  el  caso  de  un  filtro  pasa‐bajos  esos  valores  límites  están  dados por la siguiente fórmula.      

(10

ωp

Rp / 10

)

−1

0,5 / n

≤ ωC ≤

(10

ωs Rs / 10

)

−1

0 ,5 / n

 

La existencia de toda una gama de valores posibles para la frecuencia de corte se debe a que el  cálculo  del  número  de  orden  necesario  para  el  filtro  suele  arrojar  un  resultado  fraccionario,  y  la  adopción  del  orden  es  por  el  entero  inmediato  superior.  Esto  hace  que  la  zona  de  transición  resulte  más  estrecha  en  la  realidad  que  lo  que  exige  la  plantilla.  Es  así  que  la  adopción  para  la  frecuencia de corte de un valor igual al límite inferior que fija la fórmula anterior hace que el filtro  pasa‐bajos resultante cumpla con justeza lo que exige la platilla en el límite superior de la banda  de  paso,  y  con  holgura  los  requerimientos    en  el  límite  inferior  de  la  banda  de  supresión.  Por  el  contrario,  la  adopción  como  valor  de  la  frecuencia  de  corte    del  límite  superior  de  la  fórmula  anterior  hace  que  el  filtro  cumpla  con  justeza    lo  que  exige  la  platilla  en  el  límite  inferior  de  la  banda de supresión, y con holgura los requerimientos  en el límite superior de la banda de paso.    Algo similar ocurre para las otras aproximaciones. Ya hemos señalado que   • En los filtros Chebyshev 1 la frecuencia de corte es wp.  • En los filtros Chebyshev 2 la frecuencia de corte es ws  • En filtros elípticos, la frecuencia de corte es wp  Si  bien  la  propia  plantilla  nos  proporciona  directamente  en  estos  casos  la  frecuencia  de  corte,  Matlab  igualmente  calcula  la  frecuencia  wn  que  fija  un  valor  alternativo  (y  límite)  para  esa  frecuencia.  En  los  ejemplos  con  que  se  cierra  esta  publicación  aceptaremos  la  propuesta  de  Matlab, pero el lector podrá fácilmente cambiar el listado para optar por  otra alternativa.    1.3 Retardo de grupo y filtros Bessel  Si se desea que un filtro pasa‐bajos suprima las componentes de frecuencia elevada de una señal,  pero tratando de introducir la mínima distorsión en la forma de onda, se requiere que idealmente  la transferencia en la banda pasante sea uniforme en magnitud, y que el desfasaje temporal que  sufren las distintas componentes de interés sea el mismo para todas. Este desfasaje temporal se  denomina retardo de grupo.  Si  se  aplica  una  onda  senoidal  de  amplitud  unitaria  a  la  entrada  de  un  filtro  cuya  función  transferencia a esa frecuencia tiene una magnitud unitaria pero un desfasaje ϕ, la expresión de la  salida admite ser escrita :  sen (ωt + ϕ ) = sen[ω (t + ϕ / ω )] = sen[ω (t + τ )]   Se  observa  que  para  que  el  retardo  τ  sea  una  constante  independiente  de  la  frecuencia,  el  desfasaje  debe  ser  proporcional  a  la  frecuencia.  Esto  exige  que  la  función  transferencia  de  este  filtro en la banda pasante deba ser est, una expresión trascendente que es irrealizable porque no  se trata de una expresión racional.  En  los  filtros  prácticos,  sólo  puede  alcanzarse  una  aproximación  al  comportamiento  ideal.  El  retardo  de  grupo  se  define  como  la  derivada  de  la  fase  con  relación  a  la  frecuencia  angular, 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

7

cambiada de signo. El mismo puede fácilmente determinarse a partir de los polos y los ceros de la  transferencia, como se muestra a continuación. Se notará que siempre es una función racional de  la frecuencia   

∏ (s − z ) H ( s) = k ∏ (s − p ) m

1 n

i

1

i

con zi = α zi + jβ zi y pi = α pi + jβ pi

Hallando la fase de H ( jω ) : ⎛ ω − β pi ⎞ ⎛ ω − β zi ⎞ n m ⎟ ⎟ + ∑ atan⎜ ϕ (ω ) = −∑1 atan⎜⎜ 1 ⎟ ⎜ ⎟ α α pi zi ⎝ ⎠ ⎝ ⎠ Tg = −

α pi α zi dϕ (ω ) n m = ∑1 2 − ∑ 1 dω α z i + (ω − β z i )2 α 2p + ω − β p i i

(

 

)

2

De  realizar  con  Matlab  el  cálculo  y  la  graficación  de  este  retardo,  los  valores  de  m  y  n  pueden  determinarse simplemente haciendo m=length(z) y n=length(p)    Existen varios tipos de filtro diseñados para que su función transferencia racional se aproxime a la  ideal trascendente. Por ejemplo, los filtros Bessel, gaussianos, de fase lineal, etc. Por todo lo visto  hasta acá, estos filtros sólo se justifican si se usan como pasa‐bajos.  Una  forma  de  evaluar  el  desempeño  de  un  filtro  en  lo  relativo  a  su  retardo  de  grupo,  que  no  requiere  calcular  éste,  es  observar  la  respuesta  del  filtro  a  un  escalón.  Debido  al  recorte  de  las  frecuencias altas, la respuesta será también un escalón pero los bruscos cambios de pendiente del  escalón de entrada serán reemplazados por suaves codos. Y si el retardo de grupo es satisfactorio,  la respuesta será monótona o con un pequeño sobre impulso.    Nos  limitaremos  acá  a  considerar  los  filtros  Bessel.  En  ellos  el  retardo  de  grupo  es  bastante  constante  en  la  banda  pasante,  y  la  planicidad  de  su  graficación  en  función  de  la  frecuencia  se  extiende tanto más cuanto más elevado sea el orden del filtro. Su diseño no se hace a partir de la  plantilla  sino  del  orden  deseado  para  el  filtro  según  la  extensión  de  la  planicidad  deseada  en  el  retardo  de  grupo.  Para  estos  filtros  también  cabe  definir  una  frecuencia  de  corte.  La  misma  es   aquella  en  la  que  se  interceptan  las  asíntotas  horizontal  y  oblicua  de  su  gráfica  de  Bode  de  magnitudes en decibeles. Y sólo se corresponde con una atenuación de 3dB cuando el orden del  filtro es n=1. La atenuación a esa frecuencia crece a medida que n aumenta. Por ejemplo, ya es de  4,77 dB para n=2 y asciende a 10,12 dB para n=6.  Esto  se  ilustra  en  las  dos  figuras  que  siguen,  que  muestran  la  respuesta  en  frecuencia  de  filtros  Bessel prototipos normalizados de diferente orden y su retardo de grupo.   

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

8

Diagrama de Bode de filtros Bessel prototipos normalizados de orden n 10 n=2 n=3 n=4 n=5 n=6

0 -10 -20

Magnitud (dB)

-30 -40 -50 -60 -70 -80 -90 -100 -1 10

0

1

10

2

10

10

Frecuencia (rad/sec)

Figura 5 – Bode de filtros Bessel prototipo normalizados 

 

  5 n=2 n=3 n=4 n=5 n=6

4.5 4

t en segundos

3.5 3 2.5 2 1.5 1 0.5 0 -2 10

-1

10

0

10 w en rad/s

1

10

2

10

  Figura 6 – Retardo de grupo de filtros Bessel prototipo normalizados    1.4 Ubicación de los polos y ceros en la función transferencia de los filtros que utilizaremos  Ye  hemos  mencionado  que  las  funciones  transferencia  de  los  filtros,  dada  las  aproximaciones  racionales que empleamos, están dadas como cociente entre dos polinomios en s, la que sabemos  que puede ser llevada a la forma zpk que pone en evidencia sus ceros y polos.   Claro está que los filtros no escapan a las restricciones que existen, en general, para las funciones  transferencia racionales. A saber: 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

9

1) Para que el sistema sea estable, el polinomio denominador solo puede tener raíces (polos)  reales negativas y/o raíces complejas conjugadas con parte real negativa. Los polinomios  que  cumplen  esta  propiedad  se  denominan  de  “Horowitz  estricto”  y  se  caracterizan  porque todos los coeficientes del polinomio existen  (no hay ninguno nulo, decimos que es  un polinomio completo) y son todos del mismo signo. Nótese que un polinomio cualquiera  que cumpla estas condiciones no necesariamente es un polinomio Horowitz estricto, pero  el no cumplimiento de las mismas lo descarta como tal.  2) Para que el sistema sea de fase mínima, el polinomio numerador debe  carecer de raíces  (ceros)  complejas  conjugadas  con  parte  real  positiva.  Pero  puede  tener  raíces  en  el  eje  imaginario,  incluyendo  el  origen.  Los  polinomios  que  cumplen  esta  propiedad  se  denominan  de  “Horowitz”  y  se  caracterizan  porque  están  completos  todos  sus  coeficientes,  o  están  sólo  los  de  orden  par  (y  completos)  o  sólo  los  de  orden  impar  (y  completos) y además son todos del mismo signo. Nótese que un polinomio cualquiera que  cumpla  estas  condiciones  no  necesariamente  es  un  polinomio  Horowitz,  pero  el  no  cumplimiento de las mismas lo descarta como tal.  Pero en el caso de los filtros, encontramos restricciones adicionales. Vale lo siguiente:  1) los  ceros  (raíces  del  numerador),  si  existen,  sólo  pueden  estar  en  el  origen  o  ser  pares  imaginarios conjugados.   2) los polos (raíces del numerador) son siempre  pares  de complejos conjugados  salvo en el  caso de filtros pasa‐bajos y pasa‐altos de orden impar que poseen un único polo real.  La  demostración,  que  no  veremos,  parte  de  observar  que  los  filtros  Butterworth,  Bessel  y  Chebyshev  del  tipo  1  son  denominados  filtros  sin  ceros  porque  en  su  versión  pasa‐bajos  el  numerador de la función transferencia es una constante. Además, si el polinomio denominador es  de orden par todos sus polos son complejos conjugados. Y si es de orden impar hay un único polo  real. Por su parte, los filtros Chebyshev del tipo 2 y elípticos, tienen una estructura similar pero,  aún  en  su  versión  pasa‐bajos,  tienen  pares  de  ceros  imaginarios  conjugados.  Si  se  aplican  las  transformaciones  que  permiten  pasar  de  un  filtro  pasa‐bajos  a  un  filtro  de  otro  tipo,  se  llega,  laboriosamente, a demostrar las dos restricciones adicionales mencionadas.    1.4 Implementación del diseño de un filtro  En  realidad,  el  proceso  de  diseño  de  un  filtro  no  termina  con  la  determinación  de  su  función  transferencia. Porque falta la implementación práctica del mismo. Nos interesa particularmente la  realización  de  filtros  activos  empleando  amplificadores  operacionales,  resistencias  y  capacitores  (pero no inductores). Podemos pensar que, aún sin pasar a la parte material, quedan varios pasos  de diseño por realizar. A saber:  a) procesar  la  función  transferencia  de  forma  que  quede  como  un  producto  de  formas  bicuadráticas, con la posible inclusión de un único factor bilineal pero sólo si se trata de un  filtro pasa‐bajos o pasa‐altos de orden impar.  b) diseñar un filtro apropiado para cada uno de los factores recién determinados, los que se  colocarán  en  cascada  para  alcanzar  la  función  transferencia  global  deseada.  No  son  muy  variadas  las  posibilidades  circuitales  para  implementar  una  expresión  bilineal,  pero  son  muchas las formas de implementar una bicuadrática. entre ellas las llamadas Sallen‐Key y  Rauch (que emplean un único amplificador operacional), Fliege (que emplea 2), Ackerberg‐ Mossberg (usa 3 amplificadores operacionales), filtros universales (requieren 4 o más), etc.  Esta  diversidad,  y  el  hecho  que  cada  una  de  estas  topologías  presenta  ventajas  y  desventajas,  justifican  una  publicación  separada  para  presentarlas  por  lo  que  no  se  dará  acá mayor detalle.  c) simular  la  operación  del  circuito  antes  de  su  construcción  con  el  fin  de  determinar  si  satisface efectivamente los requerimientos, y si se usa apropiadamente el rango de salida  de  cada  amplificador  evitando  que  el  mismo  entre  en  saturación  o,  por  el  contrario,  trabaje  con  un  nivel  tan  bajo  de  señal  que  cobren  importancia  los  ruidos.  Si  no  resulta 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

10

apropiado  el  uso  del  rango  de  salida  de  los  amplificadores,  quedan  aún  posibilidades  de  mejora  porque  en  los  dos  pasos  anteriores  hubo  que  adoptar  varias  decisiones  que  pueden reverse.  A saber: cómo realizar el agrupamiento de los ceros con los polos para  lograr las expresiones bicuadráticas (o la eventual bilineal), alterar el orden de las mismas  al  ponerlas  en  cascada,  y  reasignar  con  otro  criterio  el  factor  k  entre  los  términos  bicuadráticos.    Téngase en cuenta que los términos bilineal y bicuadráticos que pueden aparecer, según lo visto  en el apartado anterior,  tendrán siempre el polinomio numerador incompleto. Efectivamente, un  listado completo de los términos factibles son los siguientes:    Factores bilineales: 

ωC s + ωC

 que corresponde a un filtro pasa‐bajos de orden 1, de ganancia unitaria (a frecuencias  bajas) y frecuencia de corte (3dB) ωC 

s s + ωC

 que corresponde a un filtro pasa‐altos de orden 1, de ganancia unitaria (a frecuencias 

altas)  y frecuencia de corte (3dB) ωC    Factores bicuadráticos: 

s2 +

ω 02 ω0 Q

+ ω 02

  que  corresponde  a  un  filtro  pasa‐bajos  de  orden  2,  de  ganancia  unitaria  (a 

frecuencias bajas), frecuencia natural  ω0 y factor de mérito Q   

ω0 Q

s2 +

ω0 Q

+ ω 02

 que corresponde a un filtro pasa‐banda de orden 2, de ganancia unitaria (a la 

frecuencia natural), frecuencia natural ω0 y factor de mérito Q   

s2 s2 +

ω0 Q

+ ω 02

  que  corresponde  a  un  filtro  pasa‐altos  de  orden  2,  de  ganancia  unitaria  (a 

frecuencias altas), frecuencia natural  ω0 y factor de mérito Q   

s 2 + ω 02 s2 +

ω0 Q

+ ω 02

  que  corresponde  a  un  filtro  muesca  rechaza‐banda  de  orden  2,  de  ganancia 

unitaria (a frecuencias bajas y altas), frecuencia natural  ω0 y factor de mérito Q    Todas  las  expresiones  anteriores  se  suponen  conocidas  por  el  lector,  pero  falta  aún  mencionar 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

11

otras dos, que merecen algunos comentarios:   

s 2 + ω Z2 s + 2

ω0 Q

con



2 0

ω Z < ω0  

Esta función transferencia corresponde a un filtro con una muesca a la frecuencia angular ωZ, pero  que  a  frecuencias  altas  tiene  una  transferencia  unitaria,  mientras  que  a  frecuencias  bajas  tiene  una transferencia menor que 1. Y tanto menor cuanto más baja sea   ωZ  con respecto a  ω0. Este  tipo de filtro se denomina muesca pasa‐altos. 

s 2 + ω Z2 s + 2

ω0 Q

con



2 0

ω Z > ω0  

Esta función transferencia corresponde a un filtro con una muesca a la frecuencia angular ωZ, pero  que  a  frecuencias  altas  tiene  una  transferencia  unitaria,  mientras  que  a  frecuencias  bajas  tiene  una transferencia mayor que 1. Y tanto mayor cuanto más alta sea  ωZ con respecto a ω0. Este tipo  de filtro se denomina muesca pasa‐bajos. Y si se necesita su empleo, suele preferirse sacar factor  común  (ωZ / ω0)2 (que pasa a integrar el factor k) y dejar como expresión bicuadrática la siguiente,  que es un filtro muesca pasa‐bajos de ganancia unitaria a frecuencias bajas:   

(ω 0 / ω Z ) 2 s 2 + ω 02 s + 2

ω0 Q



2 0

con

ωZ > ω0  

  1.5 Filtros pasa‐todo  Cuando  vimos  las  diferentes  clases  de  filtro,  omitimos  intencionalmente  la  existencia  de  filtros  pasa‐todo, a los que no dedicaremos en esta publicación más detalle que los que presentaremos  en  este  apartado.  Son  filtros  cuya  transferencia  es  unitaria  para  todas  las  frecuencias  (de  allí  su  denominación)  y  el  cambio  de  frecuencia  sólo  afecta  a  la  fase  de  la  transferencia,  y  no  a  su  magnitud.  No  son  sistemas  de  fase  mínima,  y  se  caracterizan  por  tener  ceros  en  el  semiplano  derecho  del  plano  s  que  son  simétricos  de  los  polos  que  posee  en  el  semiplano  izquierdo.  Su  expresión general es:   

A( − s ) A( s ) por ejemplo :   s−k s+k H (s) = ±

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

12

2. Funciones Matlab para filtros analógicos   

  Las funciones de Matlab que se presentan en esta publicación no son todas las funciones para filtros  que el programa posee ni están cada una de ellas explicada acá con todas las alternativas sintácticas  que  Matlab  acepta.  Por  ello,  es  recomendable  consultar  la  herramienta  Filter  Design  Tool  Box del  Matlab y para cada una de las funciones explicadas consultar los argumentos y posibilidades usando el  comando help. En particular, no se han incluido las funciones aplicables a los filtros digitales, sino sólo  a los analógicos. 

  2.1  Funciones  para  obtener  ceros,  polos  y  ganancia  de  los  distintos  filtros  prototipo  normalizados 

   

   

   

Matlab tiene funciones para calcular los ceros, polos y ganancia de filtros prototipos normalizados  tanto Butterworth como Chebyshev (tipos 1 y 2), Bessel y Elípticos. Los polos son pares de complejos  conjugados,  que  están  acompañados  de  un  polo  real  si  el  orden  del  filtro  es  impar.  Los  filtros  prototipo  normalizados  Butterworth,  Bessel  y  Chebyshev  tipo  1  carecen  de  ceros.  Y  los  Chevyshev  tipo  2    y  los  elípticos  tienen  ceros  imaginarios  que  se  presentan  como  pares  conjugados.  Matlab  suministra los ceros y los polos como vectores, en un orden que no puede asegurarse. Muchas veces  es  deseable  que,  por  ejemplo,  los  polos  estén  ordenados  en  orden  decreciente  de  parte  real.  Para  ello,  al  vector  con  los  polos  se  lo  puede  procesar  con  la  siguiente  sentencia  para  lograr  el  orden  deseado:            p=esort(p)      Butterworth      [z,p,k] = buttap (n)     n: orden del filtro    Tratándose de un filtro Butterworth prototipo normalizado, k=1 y no tendrá ceros      Chebyshev 1       [z,p,k] = cheb1ap (n,Rp)    n: orden del filtro  Rp  [dB]: atenuación  máxima  permitida  en  la  banda  de  paso,  en  este  caso  coincide  con  la  ondulación.    Tratándose  de  un  filtro  Chebyshev  1    prototipo  normalizado  k  es  un  número  real  y  positivo,  igual al producto de todos los polos (cambiado de signo) si n es impar, e igual a dicho producto  dividido por 10Rp/20 si n es par. No habrá ceros.      Chebyshev 2      [z,p,k] = cheb2ap (n,Rs)   

n: orden del filtro  Rs [dB]: atenuación mínima permitida en la banda de atenuación, en este caso coincide con la  ondulación.   

Tratándose  de  un  filtro  Chebyshev  2    prototipo  normalizado,  k  es  un  número  real  y  positivo, 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

 

 

 

 

13

igual al producto de todos los polos, aunque cambiado de signo si n es impar. Los ceros serán  pares imaginarios conjugados    Elíptico    [z,p,k] = ellipap (n,Rp,Rs)     Rp [dB]: atenuación máxima permitida en la banda de paso, en este caso coincide con el valor  pico de la ondulación.  Rs [dB]: atenuación mínima admisible en la banda de atenuación.   

   

Tratándose de un filtro Elíptico prototipo normalizado k es un número real y positivo, igual al  cociente  entre  el  producto  de  todos  los  polos  dividido  por  el  producto  de  todos  los  ceros  (cambiado de signo) si n es impar, e igual a dicho cociente dividido por 10Rp/20  si n es par. Los  ceros serán pares imaginarios conjugados    Bessel    [z,p,k] = besselap (n)     Tratándose de un filtro Bessel prototipo normalizado, k=1. No tendrá ceros. 

   

 

 

2.2  Función  para  obtener  la  función  transferencia  a  partir  de  los  ceros,  polos  y  constante de un filtro 

 

 

  H= zpk (z, p, k)    

 

 

2.3  Transformaciones  de  filtros    prototipo  normalizados  a  pasa‐bajos,  pasa‐altos,  pasa‐bando y suprime‐banda 

   

   

Prototipo normalizado a pasa bajo (lowpass to lowpass)    [num2, den2] = lp2lp (num1, den1, wc)    Transforma el prototipo del filtro pasa bajos num1(S)/den1(S) con frecuencia de corte unitaria a  un filtro pasa bajos con frecuencia angular de corte wc.  Realiza la transformación: 

S⇒  

 

 

 

s

ωC

 

  Prototipo normalizado a pasa alto (lowpass to highpass)    [num2, den2] = lp2hp (num1, den1, wc)    Transforma el prototipo del filtro pasa bajos num1(S)/den1(S) con frecuencia de corte unitaria a  un filtro pasa altos con frecuencia angular de corte wc.  Realiza la transformación: 

S⇒

ωC s

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

14

   

   

Prototipo normalizado a pasa banda (lowpass to bandpass)    [num2, den2] = lp2bp(num1, den1, wo, B)    Transforma el prototipo del filtro pasa bajos num1(S)/den1(S) con frecuencia de corte unitaria a  un filtro pasa banda con frecuencia central  ω 0 = ω c1 .ω c 2  y ancho de banda  B = ω c 2 − ω c1 .  Realiza la transformación: 

S⇒  

 

 

 

sB   s + ω 02 2

  Prototipo normalizado a suprime‐banda (lowpass to bandstop)    [num2, den2] = lp2bs(num1, den1, wo, B)    Transforma el prototipo del filtro pasa bajos num1(S)/den1(S) con frecuencia de corte unitaria a  un  filtro  elimina  banda  con  frecuencia  central  ω 0 = ω c1 .ω c 2   y  ancho  de  banda 

B = ω c 2 − ω c1 .  Realiza la transformación: 

S⇒

s 2 + ω 02   sB

ƒ 2.4  Funciones  que  permiten  obtener  el  orden  de  los  filtros para  las  distintas  aproximaciones y tomando en consideración la plantilla adoptada   

 

 

 

  Butterworth    [n, wn] = buttord (wp, ws, Rp, Rs, 's')  Devuelve  el  mínimo  orden  n  y  una  posible  frecuencia  normalizadora  (el  valor  extremo  que  puede tomar la frecuencia de corte para caída de 3dB) para obtener las especificaciones que  necesita la función butter(), que se ve más adelante.    Es importante reconocer 4 casos diferenciados:    Si wp y ws son escalares, y wpws se trata de un filtro pasa‐altos.   wn es también un escalar    Si  wp=[wp1  wp2]  y  ws=[ws1  ws2]  y  ws1 R ⇒ω < = ω C2 s C Rs / 10 ⎟ (10 − 1) ( 0,5 / n ) ⎠

∴ ω C1 < ω C < ω C2  

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

Listado Matlab    % Diseña un filtro pasa bajos Butterworth, con un atenuación máxima de 2db % para las pulsaciones de hasta 2000 r/s y una atenuación mínima de 60dB % para las pulsaciones superiores a 30000 r/s %-------------------------------------------------------------------------% 2.06.12 Susana Canel y Jorge Sinderman ejemplo_0.m %-------------------------------------------------------------------------clc %borra la ventana de comandos clear %borra variables de la memoria clf %borra las figuras wp ws Rp Rs

= = = =

2000; 30000; 2; 60;

%límite de la banda pasante [r/s] %límite de la banda de atenuación [r/s] %atenuación máxima en la banda de paso [dB] %atenuación mínima en la banda de supr.[dB]

%Determinación del orden n nmin=.5*(log10(10^(Rs/10)-1)-log10(10^(Rp/10)-1))/log10(ws/wp); n=ceil(nmin) % redondeamos al entero superior

%Determinación de la gama en que se debe encontrar la frecuencia de corte wc1=wp/(10^(Rp/10)-1)^(.5/n) wc2=ws/(10^(Rs/10)-1)^(.5/n) %Determinación de la ubicación de los polos % en caso de frecuencia de corte unitaria. k=1:n; fi=pi*(2*k-1)/(2*n); p=-sin(fi) + j*cos(fi); p=esort(p).'; % los ordena en orden decreciente de parte real y los encolumna if mod(n,2)==1; % si n es impar p(n)=real(p(n)); % el último polo es real end % Determinación de la función transferencia en los dos casos extremos. % la constante k es el producto de todos los polos, si su número es par % y el producto cambiado de signo si es impar. z=[]; p1= wc1*p; k1=abs(prod(p1)); p2= wc2*p; k2=abs(prod(p2)); disp('transferencia en el caso de usar wc1 como frecuencia de corte'); H1 = zpk(z,p1,k1) disp('transferencia en el caso de usar wc2 como frecuencia de corte'); H2 = zpk(z,p2,k2) %graficación de la magnitud [dB] de las transferencias % comprobando que ambas satisfacen la plantilla Href1=tf(1,10^(Rp/20)); Href2=tf(1,10^(Rs/20)); bodemag(H1,H2,Href1,Href2); legend('min. frec. de corte','max. frec. de corte','Rp max a 2000 rad/s', 'Rs min a 30000 rad/s') grid on;

21

22

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

Resultados que aparecen en la ventana de comandos del Matlab   

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

23

Resultado de la figura   Bode Diagram 0 -10

Magnitude (dB)

min. frec. de corte -20

max. frec. de corte Rp max a 2000 rad/s

-30

Rs min a 30000 rad/s

-40 -50 -60 -70 -80 -90 -100 1 10

2

10

3

10

4

10

Frequency (rad/sec)

Observación:  Se nota que ambas soluciones (y cualquiera intermedia) satisfacen la plantilla. 

5

10

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

24

3.2 Ejemplo 1  Se  desea  diseñar  un  filtro  según  las  especificaciones  que  se  encuentran  en  los  primeros  comentarios  del  listado que sigue., y que corresponde a un archivo denominado butterworth_lp.m

  Listado Matlab  % Diseña un filtro pasa bajos Butterworth, con un atenuación máxima de 2db % para las pulsaciones de hasta 2000 r/s y una atenuación mínima de 60dB % para las pulsaciones superiores a 30000 r/s %-------------------------------------------------------------------------% 2.06.12 Susana Canel y Jorge Sinderman butterworth_lp.m %-------------------------------------------------------------------------clc %borra la ventana de comandos clear %borra variables de la memoria clf %borra las figuras wp ws Rp Rs

= = = =

2000; 30000; 2; 60;

%límite de la banda pasante [r/s] %límite de la banda de atenuación [r/s] %atenuación máxima en la banda de paso [dB] %atenuación mínima en la banda de supr.[dB]

%Determinación del orden n y de la frecuencia normalizadora wn [n, wn] = buttord (wp, ws, Rp, Rs, 's') % determinación de polos y ceros [z,p,k] = butter (n, wn, 'low','s'); % transferencia H = zpk(z,p,k) figure(1) pzmap(H,'r') %singularidades en rojo title('Polos y ceros del filtro pasa-bajos Butterworth [r/s]'); sgrid; figure(2) bodemag(H) %grafica la magnitud [dB] de la transferencia title('Respuesta en frecuencia del filtro pasabajos Butterworth'); grid on W=xlim; % valores extremos del eje de frecuencias, que en seguida usaremos % calcula y grafica (con 400 puntos y la misma escala horizontal que bode) % el retardo de grupo y la respuesta al escalón w=logspace(log10(W(1)), log10(W(2)), 400); Tg=zeros(1,400); for i=1:1:n; % cubrimos los n polos; no hay ceros Tg=Tg - real(p(i))./(real(p(i))^2+(w-imag(p(i))).^2); end figure (3) subplot(2,1,1) semilogx(w,Tg) grid on xlabel ('Frecuencia [r/s]'); ylabel ('Retardo de grupo [s]'); title('Retardo de grupo del filtro pasa-bajos Butterworth [s]'); subplot(2,1,2) step (H) grid on

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

25

Resultados que aparecen en la ventana de comandos del Matlab 

 

Resultados que aparecen en las diversas figuras  Figura 1 

Polos y ceros del filtro pasa-bajos Butterw orth [r/s] 3000 0.7

0.56

0.44

0.32

0.2

0.1

0.84 2000

Imaginary Axis

1000

0.95

3e+003

0

-1000

2.5e+003

2e+003

1.5e+003

1e+003

500

0.95

-2000 0.84 0.7 -3000 -3500

-3000

0.56 -2500

-2000

0.44 -1500

0.32 -1000

0.2 -500

0.1 0

Real Axis

 

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

26

Figura 2  Respuesta en frecuencia del filtro pasabajos Butterw orth 0 -10 -20 -30 Magnitude (dB)

-40 -50 -60 -70 -80 -90 -100 2 10

3

4

10

5

10

10

Frequency (rad/sec)

 

Figure 3    -3

Retardo de grupo [s]

1

x 10

Retardo de grupo del filtro pasa-bajos Butterworth [s]

0.5

0 2 10

3

4

10

5

10

10

Frecuencia [r/s] Step Response

Amplitude

1.5

1

0.5

0

0

0.5

1

1.5 Time (sec)

 

2

2.5

3

3.5 -3

x 10

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

27

Comentarios y Observaciones  1) Se observa que Matlab adopta como valor de la frecuencia de corte (o normalizadora) el valor de wc2 del  ejemplo 0 (3000 radianes/s).   

2) El mapeo de los polos y ceros muestra que los polos están ubicados en una “circunferencia” cuyo radio es  el valor absoluto de los polos (los 3000  radianes/s de wn)   

3) La graficación del retardo de grupo muestra que los filtros Butterworth son deficientes en mantener un  retardo de grupo constante en la banda de paso, circunstancia que queda evidenciada en la respuesta a un  escalón  unitario,  donde  se  observa  la  presencia  de  un  sobreimpulso.  Los  filtros  Chebyshev  tienen  un  comportamiento  en  este  sentido  aún  más  deficiente.  Son  los  filtros  Bessel  los  recomendados  cuando  se  requiere un retardo de grupo constante a lo largo de la banda pasante  y una respuesta al escalón sin (o con  mínimo) sobreimpulso, como se verá en el ejemplo 2.   

4) Por lo visto en el apartado 1.4  conviene procesar la función transferencia que brinda el Matlab. En este  caso,  y  luego  de  algún  redondeo  para  suprimir  cifras  no  significativas  derivadas  de  la  imprecisión  de  las  operaciones se llega a:   

H (s) ≅

27000000000 3000 9000000 = × 2   2 (s + 3000) (s + 3000s + 9000000) s + 3000 s + 3000s + 9000000

  Se concluye que se requiere un filtro pasa‐bajos de orden 1, ganancia unitaria y frecuencia de corte 3000  rad/s y  un filtro pasa‐bajos de orden 2, ganancia unitaria, frecuencia natural 3000 rad/s y Q= 1. 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

28

  3.3 Ejemplo 2  Se  desea  diseñar  un  filtro  según  las  especificaciones  que  se  encuentran  en  los  primeros  comentarios  del  listado que sigue, y que corresponde a un archivo denominado bessel_lp.m 

  Listado Matlab    % Diseña un filtro pasa bajos Bessel, con wo=3000 [r/s] y de orden 3. % Grafica la respuesta en frecuencia, el retardo de grupo y la respuesta al % escalon unitario %-------------------------------------------------------------------------% 2.06.12 Susana Canel y Jorge Sinderman bessel_lp.m %-------------------------------------------------------------------------clc clear clf wo = 3000; n = 3;

% borra la pantalla de comandos %borra variables en la memoria %borra gráficos %frecuencia de corte en [r/s] %orden

%Transferencia usando la función besself [num,den] = besself(n, wo); disp('Función transferencia hallada usando la función besself') [z,p,k] = tf2zp(num,den); H = zpk(z,p,k) %expresión en forma factorizada figure(1) pzmap(H,'r') %singularidades en rojo title('Polos y ceros del filtro pasa-bajos Bessel'); grid on; figure(2) bodemag(H) %grafica módulo en [dB] title('Respuesta en frecuencia del filtro pasa-bajos Bessel'); grid on W=xlim; % valores extremos del eje de frecuencias, que en seguida usaremos % calcula y grafica (con 400 puntos y la misma escala horizontal que bode) % el retardo de grupo y la respuesta al escalón w=logspace(log10(W(1)), log10(W(2)), 400); Tg=zeros(1,400); for i=1:1:n; % cubrimos los n polos; no hay ceros Tg=Tg - real(p(i))./(real(p(i))^2+(w-imag(p(i))).^2); end figure (3) subplot(2,1,1) semilogx(w,Tg) grid on xlabel ('Frecuencia [r/s]'); ylabel ('Retardo de grupo [s]'); title('Retardo de grupo del filtro pasa-bajos Bessel de orden 3'); subplot(2,1,2) step (H) axis([0 .003 0 1.2]) grid on

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

29

Resultados que aparecen en la ventana de comandos del Matlab   

  Resultados que aparecen en la diversas figuras   Figure 1  Polos y ceros del filtro pasa-bajos Bessel 2500 0.72

0.58

0.44

0.32

1.5e+003

1e+003

0.58

0.44

0.22

0.1

2000 0.86 1500

Imaginary Axis

1000

0.96

500 2.5e+003

0

2e+003

500

-500 -1000

0.96

-1500 0.86 -2000 0.72 -2500 -3000

-2500

-2000

-1500 Real Axis

 

0.32 -1000

0.22 -500

0.1 0

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

30

Figure 2  Respuesta en frecuencia del filtro pasa-bajos Bessel 0 -10 -20 -30 Magnitude (dB)

-40 -50 -60 -70 -80 -90 -100 2 10

3

4

10

5

10

10

Frequency (rad/sec)

 

Figure 3  -3

Retardo de grupo [s]

1

x 10

Retardo de grupo del filtro pasa-bajos Bessel de orden 3

0.5

0 2 10

3

4

10 Frecuencia [r/s]

10

Step Response

Amplitude

1

0.5

0

0

0.5

1

1.5 Time (sec)

  Comentarios y Observaciones 

2

2.5

3 -3

x 10

 

1) Se observa el muy  buen comportamiento  de  este  filtro en lo que al retardo de grupo se  refiere. Ello se  evidencia  tanto  en  la  planicidad  del  gráfico  que  lo  representa  como  en  el  escasamente  advertible  sobreimpulso que tiene la respuesta al escalón, prácticamente monótona.    2) Procesando la función transferencia dada por Matlab como se recomienda en el apartado 1.4 se llega a: 

H (s) =  

2825 9558000   × 2 s + 2825 s + 4474s + 9558000

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

31

Compruebe el lector que la implementación de este filtro requiere de una etapa pasa‐bajos de orden 1 con  frecuencia  de  corte  2825  radianes/s  y  una  etapa  pasa‐bajos  de  orden  2  con  frecuencia  natural  de  3092  radianes/s con un Q=0,691   

 

32

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

3.4 Ejemplo 3  Se  desea  diseñar  un  filtro  según  las  especificaciones  que  se  encuentran  en  los  primeros  comentarios  del  listado que sigue, y que corresponde a un archivo denominado chevyshev1_hp.m 

  Listado Matlab  % Halla y grafica la función transferencia % de un filtro Chebyshev tipo 1, pasa-altos, % con una ondulación máxima de 1 db desde 10 kHz, % y con una atenuación mayor que 80 dB a frecuencias hasta 2000 Hz. % %-------------------------------------------------------------------------% 2.06.12 Susana Canel y Jorge Sinderman chebyshev1_hp.m %-------------------------------------------------------------------------clc clear clf

%borra la ventana de comandos %borra variables en la memoria %borra gráficos

fs =2e3; fp =1e4; %frecuencias limite en Hz ws = 2*pi*fs ; wp = 2*pi*fp ; %pulsaciones limite en radianes Rp = 1; %ondulación máxima en la banda de paso [dB] Rs = 80; %atenuación mínima en la banda de supresión [dB] % Hallazgo de la función transferencia [n, wn] = cheb1ord(wp, ws, Rp, Rs, 's'); [z, p, k] = cheby1(n, Rp, wn, 'high', 's'); H = zpk(z,p,k) figure(1) pzmap(H,'r') %singularidades en rojo title('Polos y ceros del filtro pasa-banda Chebyshev tipo 1'); grid on; figure(2) bodemag(H) h=gcr; h.AxesGrid.XUnits='Hz'; grid on axis([1e3 1e5 -100 0]) title('Respuesta en frecuencia del filtro pasa-alto Chebyshev tipo 1');

  Resultado que aparecen en la ventana de comandos del Matlab   

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

33

Figura 1  5

1

Polos y ceros del filtro pasa-banda Chebyshev tipo 1

x 10

0.91

0.83

0.72

0.58

0.4

0.2

0.4

0.2

0.8 0.96 0.6

Imaginary Axis

0.4

0.99

0.2 2e+005

0

1.5e+005

1e+005

5e+004

-0.2 -0.4

0.99

-0.6 0.96 -0.8 0.91 -1 -2.5

0.83 -2

0.72

-1.5

-1

0.58

-0.5

Real Axis

0 5

x 10

 

Figura 2    Respuesta en frecuencia del filtro pasa-alto Chebyshev tipo 1 0 -10 -20

Magnitude (dB)

-30 -40 -50 -60 -70 -80 -90 -100 3 10

4

10

Frequency (Hz)

 

5

10

 

34

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

  Comentarios y observaciones    1) En el mapa de polos y ceros no queda claro (porque se produce una superposición) que en el origen de  coordenadas hay un cero quíntuple.     2) Procesando la función transferencia   

H (s) =

s s2 s2 × 2 ×   s + 217000 s + 11370s + 3995 × 10 6 s 2 + 68560s + 9196 × 10 6

  La función transferencia se puede implementar con un filtro pasa‐altos de orden 1, y dos filtros pasa‐altos  de orden 2. Todos de ganancia unitaria a frecuencias altas. Se deja a cargo del lector la determinación de  los otros parámetros de cada una de estas etapas 

     

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

35

3.5 Ejemplo 4  Sea que se desea diseñar un filtro según las especificaciones que se encuentran en los primeros comentarios  del listado que sigue, y que corresponde a un archivo denominado ellip_lp.m  

% Diseña un filtro pasa bajos Butterworth, con un atenuación máxima de 1 db % para las pulsaciones de hasta 2000 r/s y una atenuación mínima de 80dB % para las pulsaciones superiores a 9000 r/s %-------------------------------------------------------------------------% 2.06.12 Susana Canel y Jorge Sinderman ellip_lp.m %-------------------------------------------------------------------------clc %borra la ventana de comandos clear %borra variables de la memoria clf %borra las figuras wp ws Rp Rs

= = = =

2000; 9000; 1; 80;

%límite de la banda pasante [r/s] %límite de la banda de atenuación [r/s] %atenuación máxima en la banda de paso [dB] %atenuación mínima en la banda de supr.[dB]

%Determinación del orden n y de la frecuencia normalizadora wn [n, wn] = ellipord (wp, ws, Rp, Rs, 's') % determinación de polos y ceros [z,p,k] = ellip (n, Rp, Rs, wn, 'low','s') z=j*imag(z); % suprimimos todo vestigio real en los ceros, que son imaginarios % transferencia H = zpk(z,p,k) figure(1) pzmap(H,'r') %singularidades en rojo title('Polos y ceros del filtro pasa-bajos elíptico [r/s]'); sgrid; figure(2) bodemag(H) %grafica la magnitud [dB] de la transferencia title('Respuesta en frecuencia del filtro pasa-bajos elíptico'); grid on axis([100 100000 -120 0]);

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

36

Resultados que aparecen en la ventana de comandos del Matlab 

Figuras  4

2.5

Polos y ceros del filtro pasa-bajos elíptico [r/s]

x 10

0.024

0.017

0.0115

0.008

2

0.005 0.0025 2e+004

0.038 1.5e+004

1.5

Imaginary Axis

1

1e+004 0.08 5e+003

0.5 0 -0.5 -1

5e+003 0.08 1e+004

-1.5

1.5e+004 0.038

-2 0.024 -2.5 -700

-600

0.017 -500

0.0115

-400

-300

Real Axis

0.008 -200

2e+004 0.005 0.0025 -1002

004 0

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

37

Respuesta en frecuencia del filtro pasa-bajos elíptico 0

-20

Magnitude (dB)

-40

-60

-80

-100

-120 2 10

3

4

10

10 Frequency (rad/sec)

5

10

 

Comentarios y Observaciones    1) Se observará que este filtro tiene una banda de transición mucho más estrecha que la del ejemplo 1. Esto  es en parte porque es filtro es de mayor orden (4 en vez de 3) pero fundamentalmente a la presencia de una  muesca en la banda de rechazo, próxima a la banda pasante, característica del filtro elíptico pasa‐bajos.    2) Procesando la función transferencia, queda:   

H ( s ) = 0,8913 ×

0,01364s 2 + 1,148 × 10 6 8223,5 × 10 -3 s 2 + 3,952 × 10 6   × 2 s 2 + 1359s + 1,148 × 10 6 s + 543,3s + 3,952 × 10 6

  Esta  función  transferencia  se  puede  implementar  con  dos  filtros  muesca  pasa‐bajos,  uno  de  ganancia  unitaria a frecuencias bajas y el otro con una ganancia de 0,8913 a dichas frecuencias. Se deja a cargo del  lector  la  determinación  de  los  otros  parámetros  de  cada  una  de  estas  etapas.    El  factor  constante  que  presenta la función transferencia (y que hemos optado por asignarlo como ganancia de una de las etapas)  toma  en  cuenta  que,  debido  a  la  ondulación  a  frecuencias  bajas,  la  magnitud  de  la  transferencia  a  frecuencias cero no es unitaria sino 0,8913 (equivalente a ‐1dB, el valor de Rp)     

38

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

3.6 Ejemplo 5  Se  desea  diseñar  un  filtro  según  las  especificaciones  que  se  encuentran  en  los  primeros  comentarios  del  listado que sigue, y que corresponde a un archivo denominado chevyshev1_bp.m 

  Listado Matlab    % Diseña un filtro Chebyshev, tipo 1, pasa-banda, % con una ondulación máxima de 1 db entre 5000 y 20000 Hz, % y que presente una atenuación de 80 dB a frecuencias de 500 Hz y 1 MHz. % Grafica la respuesta en frecuencia, y el mapa de polos y ceros %-------------------------------------------------------------------------% 2.05.12 Susana Canel y Jorge Sinderman chebyshev1_bp.m %-------------------------------------------------------------------------clc clear clf

%borra la ventana de comandos %borra variables en la memoria %borra gráficos

fs =[5e2 1e6]; fp =[5e3 2e4]; %frecuencias ws = 2*pi*fs ; wp = 2*pi*fp ; %pulsaciones Rp = 1; %ondulación máxima en la banda de Rs = 80; %atenuación mínima en la banda de

limite en Hz limite en radianes paso [dB] supresión [dB]

[n, wn] = cheb1ord(wp, ws, Rp, Rs, 's'); [z,p,k,] = cheby1(n, Rp, wn, 'bandpass', 's'); H = zpk(z,p,k) %expresión en forma factorizada figure(1) pzmap(H,'r') %singularidades en rojo title('Polos y ceros del filtro pasa-banda Chebyshev tipo 1'); grid on; figure(2) bodemag(H) h=gcr; h.AxesGrid.XUnits='Hz'; grid on axis([1e2 1e6 -120 0]) title('Respuesta en frecuencia del filtro pasa-banda Chebyshev tipo 1');

Resultados que aparecen en la ventana de comandos del Matlab 

 

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

39

Resultados que aparecen en la diversas figuras   Figure 1  5

1.5

x 10

Polos y ceros del filtro pasa-banda Chebyshev tipo 1 0.14

1

0.1

0.068

0.048

0.03

0.22

1.4e+005 0.014 1.2e+005 1e+005 8e+004 6e+004

Imaginary Axis

0.5

0.4 4e+004 2e+004

0 2e+004 -0.5

4e+004 0.4 6e+004 8e+004

-1

1e+005

0.22 0.14

-1.5 -2.5

0.1

-2

0.068

-1.5

0.048

0.03

-1

1.2e+005 0.014 1.4e+005

-0.5

0 4

Real Axis

x 10

 

  Figure 2  Respuesta en frecuencia del filtro pasa-banda Chebyshev tipo 1 0

-20

Magnitude (dB)

-40

-60

-80

-100

-120 2 10

3

10

4

10

Frequency (Hz)

5

10

6

10

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

40

Comentarios y Observaciones    1) En el mapa de polos y ceros no queda claro (porque se produce una superposición) que en el origen  de coordenadas hay un cero cuádruple.     2)  La  función  transferencia  de  este  filtro  se  puede  implementar  de  distintas  formas.  Dos  de  las  varias  posibles son:  a) transformando la función transferencia en otra del tipo:  

ω 01 Q1

H (s) = k s +s 2

ω 02

s

ω 01 Q1

Q2

× +ω

s +s

2 01

2

ω 02 Q2

ω 03

s

Q3

× +ω

s +s

2 02

2

ω 03 Q3

ω 04

s

Q4

× +ω

s +s

2 03

2

ω 04 Q4

s  



2 04

Esta transferencia se corresponde con la conexión serie de 4 filtros de ganancia unitaria pasa‐banda de  sintonía  escalonada,  con  el  agregado  de  una  constante  k  para  lograr  que  el  filtro  total  alcance  la  función transferencia deseada, con ganancia unitaria.  b) transformando la función transferencia en otra del tipo:  

ω 02

ω ω 01 2 01

H (s) = k s +s 2

Q1

Q2

× +ω

2 01

s +s 2

ω 02 Q2

ω 03

s

Q3

× +ω

2 02

s +s 2

ω 03 Q3

s

s2

× +ω

2 03

s +s 2

ω 04 Q4

 



2 04

Esta transferencia se corresponde con la conexión serie de 4 filtros de ganancia unitaria (un pasa‐bajos,  2 pasa‐banda y un pasa‐altos), con el agregado de una constante k (distinta que la del caso anterior)   para lograr que el filtro total alcance la función transferencia deseada, con ganancia unitaria. 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

41

3.7 Ejemplo 6  Sea que se desea diseñar un filtro según las especificaciones que se encuentran en los primeros comentarios  del listado que sigue., y que corresponde a un archivo denominado elip_sb.m

  Listado Matlab    % Obtiene y grafica la funcion transferencia de un filtro elíptico suprimebanda, % con una ondulación máxima de 1 db hasta 500 Hz y desde 200 kHz, % y que presenta una atenuación >100dB a frecuencias entre 5 kHz y 20 kHz. %-------------------------------------------------------------------------% 2.06.12 Susana Canel y Jorge Sinderman elip_sb.m %-------------------------------------------------------------------------clc clear clf

%borra la ventana de comandos %borra variables en la memoria %borra gráficos

fp = [5e2 2e5]; fs = [5e3 2e4] ; % frecuencias límite [Hz] wp = 2*pi*fp ; ws = 2*pi*fs ; %pulsaciones límite [r/s] Rp = 1; %ondulación máxima admisible en la banda de paso [dB] Rs = 100; %atenuación mínima admisible en la banda de atenuación [dB] [n, wn] = ellipord(wp, ws, Rp, Rs, 's'); [z,p,k] = ellip(n, Rp, Rs, wn, 'stop', 's'); z=j*imag(z); % suprime la eventual parte real residual H = zpk(z,p,k) %transferencia factorizada figure(1) pzmap(H,'r') %singularidades en rojo title('Polos y ceros del filtro suprime-banda elíptico [r/s]'); sgrid; figure(2) bodemag(H) h=gcr; h.AxesGrid.XUnits='Hz'; grid on axis([1e2 1e6 -140 0]) title('Respuesta en frecuencia del filtro suprime-banda elíptico');

Resultados que aparecen en la ventana de comandos del Matlab   

 

 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

42

Figuras  6

2

Polos y ceros del filtro suprime-banda elíptico [r/s]

x 10

0.56

0.42

0.32

0.22

0.14 1.75e+006 0.07 1.5e+006

1.5 0.74

1.25e+006 1e+006

1

7.5e+005

0.9

5e+005

Imaginary Axis

0.5

2.5e+005 0 2.5e+005 -0.5

5e+005 0.9

7.5e+005

-1

1e+006 1.25e+006

-1.5 0.74

1.5e+006 0.56

-2 -16

-14

0.42 -12

-10

0.32 -8

-6

0.14 1.75e+006 0.07

0.22

-2 2

-4

006 0 5

Real Axis

x 10

 

Respuesta en frecuencia del filtro suprime-banda elíptico 0

-20

Magnitude (dB)

-40

-60

-80

-100

-120

-140 2 10

3

10

4

10

Frequency (Hz)

Comentarios y Observaciones 

5

10

6

10

 

  1) Cuatro de los polos están muy cerca del origen, y no se alcanzan a distinguir en el mapa de polos y ceros. 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

43

2)  Este  filtro  se  caracteriza  por  tener  ceros  imaginarios,  causantes  de  las  muescas.  Como  el  proceso  de  cálculo puede hacer que resulte algún cero con una componente real mínima, fruto de imprecisiones en las  operaciones, se ha optado (ver listado del archivo m) por tomar de los ceros sólo su parte imaginaria.    3)  La  implementación  de  esta  función  transferencia,  como  el  lector  podrá  comprobar,  requiere  de  la  conexión en cascada de 4 etapas, dos de ellas muesca pasa‐bajos y las otras dos muescas pasa‐altos.  El factor constante que presenta la función transferencia  toma en cuenta que debido a la ondulación en la  banda pasante, la magnitud de la transferencia a frecuencias cero e infinita no es unitaria sino ‐1dB o, en  valores absolutos, 0,8913 

44

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

3.8 Ejemplo 7  Sea que se desea diseñar un filtro según las especificaciones que se encuentran en los primeros comentarios  del listado que sigue, y que corresponde a un archivo denominado cheby2_sb.m    

% Obtiene y grafica la funcion transferencia % de un filtro chebyshev inverso suprime-banda, % con una atenuación máxima de 1 db hasta 500 Hz y desde 200 kHz, % y que presenta una atenuación >80dB a frecuencias entre 5 kHz y 20 kHz. %-------------------------------------------------------------------------% 2.06.12 Susana Canel y Jorge Sinderman cheby2_sb.m %-------------------------------------------------------------------------clc clear clf

%borra la ventana de comandos %borra las variables en la memoria %borra las figuras

fp = [5e2 2e5]; fs = [5e3 2e4] wp = 2*pi*fp ; ws = 2*pi*fs Rp = 1; %atenuación máxima Rs = 80; %atenuación mínima

; % frecuencias límite [Hz] ; %pulsaciones límite [r/s] admisible en la banda de paso [dB] admisible en la banda de atenuación [dB]

[n, wn] = cheb2ord(wp, ws, Rp, Rs, 's'); [z,p,k] = cheby2(n, Rs, wn, 'stop', 's'); z=j*imag(z); % suprimimos todo vestigio real en los ceros, que son imaginarios % transferencia H = zpk(z,p,k) figure(1) pzmap(H,'r') %singularidades en rojo title('Polos y ceros del filtro Chebyshev inverso suprime-banda [r/s]'); sgrid; figure(2) bodemag(H) h=gcr; h.AxesGrid.XUnits='Hz'; grid on axis([1e2 1e6 -120 0]) title('Respuesta en frecuencia del filtro Chebyshev inverso suprime-banda');

    Resultados que aparecen en la ventana de comandos del Matlab 

Diseño de filtros analógicos con Matlab - Susana Canel y Jorge Sinderman – junio 2012

45

Figuras  6

1

Polos y ceros del filtro pasa-bajos elíptico [r/s]

x 10

0.64 0.8

0.5

0.38

0.28

0.17

0.8 6e+005

0.6

Imaginary Axis

0.4

0.08 8e+005

4e+005 0.94 2e+005

0.2 0 -0.2 -0.4

2e+005 0.94 4e+005

-0.6 -0.8

6e+005 0.8 0.64

-1 -10

-9

0.5

-8

-7

-6

0.38 -5

-4

0.28 -3

0.17 -2

8e+005 0.08 -1

0 5

Real Axis

x 10

 

Respuesta en frecuencia del filtro Chebyshev inverso suprime-banda 0

-20

Magnitude (dB)

-40

-60

-80

-100

-120 2 10

3

10

4

10

Frequency (Hz)

   

5

10

6

10

 

Comentarios y Observaciones    La implementación de esta función transferencia, como el lector podrá comprobar,  requiere de la conexión  en cascada de 4 etapas, dos de ellas muesca pasa‐bajos y las otras dos muescas pasa‐altos. 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF