Vous êtes sur la page 1sur 45

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

DiseodefiltrosanalgicosconMatlab
Ing.SusanaCanel(*)eIng.JorgeSinderman(**)(*)
*UniversidadTecnolgicaNacional,FacultadRegionalBuenosAires
**UniversidadNacionaldeSanMartn,EscueladeCienciayTecnologa

Diseo de filtros analgicos 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. Introduccin
1.1Conceptosbsicos
Unfiltroelctricoesuncuadripolo,esdecir,uncircuitoconunpardeterminalesdeentradayotro
par de salida, tal que a la salida aparecen selectivamente ciertas frecuencias presentes a la
entrada,excluyendootras.

La gama de frecuencias que el filtro deja pasar con poca (idealmente, ninguna) atenuacin se
conoce con el nombre de banda pasante. La gama de frecuencias que el filtro deja pasar con
elevada(idealmente,total)atenuacinsedenominabandaderechazoodesupresin.Siendoque
latransicinentrelabandapasanteyladesupresinsuelesergradual,alazonaintermediasela
conocecomobandadetransicin.

Existendiferentesclasesdefiltros,quecorrespondeconsignar:
Losfiltrospasabajos,enloscualeslabandapasanteeslagamadefrecuenciasbajas.
Losfiltrospasaaltos,enloscualeslabandapasanteeslagamadefrecuenciasaltas.
Los filtros pasabanda, en los cuales la banda pasante es una gama intermedia de
frecuencias
Losfiltrossuprimebanda,enloscualeslabandadesupresinesunagamaintermediade
frecuencias.Enmuchoscasosestagamaintermediarechazadaesmuyestrechayelfiltro
recibeelnombredemuesca(eningls,notch)

Unfiltroidealdeberacumplirconlassiguientescondiciones.
Respectoalaatenuacin:
1) Laatenuacinenlabandapasantedeberasernula.
2) Laatenuacinenlabandadesupresindeberasertotal.
3) Labandadetransicinnodeberaexistir
Respectoaldesfasaje.
4) En la banda pasante el desfase introducido debera ser proporcional a la frecuencia, de
manera que el mismo se presente como un atraso de tiempo igualitario para todas las
frecuenciasdelabandapasante.Esteretrasodetiemposedenominaretardodegrupo.
Puede demostrarse que un filtro ideal es irrealizable, no slo por no poderse satisfacerse
simultneamente las cuatro condiciones antedichas, sino que tampoco son realizables por
separado.

Esporelloqueenlaprcticaserealizandistintostiposdefiltrosquebuscanaproximarsealideal,
almenosenunadelascondicionesmencionadas.Asencontramoslossiguientestiposdefiltros
segnlaaproximacinbuscada:
a) filtrosButterworth,sideseamosunabandapasantedemximaplanicidad

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

b) filtros Chebyshev del tipo 1 si deseamos una mxima atenuacin en la banda de


supresin(tolerandounaondulacinenlabandadepaso)
c) filtros Bessel (o de Thomson) si deseamos que en la banda pasante la fase sea
aproximadamentelinealparatenerunretardodegrupoprcticamenteconstanteenesa
banda.
d) filtros Chebyshev del tipo 2 (o Chebyshev inverso) si deseamos una banda de transicin
estrecha,tolerandoondulacionesenlabandadesupresin
e) filtros elpticos (o de Cauer), si deseamos una banda de transicin an ms estrecha,
tolerandoondulacionestantoenlabandadepasocomoenladesupresin
Todasestasaproximacionesdedenominanracionalespuesconsistenensistemascuyafuncinde
transferenciaesuncocienteentredospolinomiosens.Sedefinecomoordendeunfiltroalgrado
delpolinomiodenominador.

1.2Diseodefiltros
La presente publicacin trata sobre el diseo de filtros, de las diversas clases y de los distintos
tipos que se mencionaron en el apartado anterior, para los que determinaremos su funcin
transferencia.Sinperdergeneralidad,noslimitaremosalosfiltrosquetengangananciaunitaria,
ya que en el caso de desear otra ganancia, bastar multiplicar la funcin transferencia que aqu
hallemosporelfactordeseadodeganancia.

Definidalaclasedefiltroquesehadedisearyadoptadoeltipodefiltroquemejorseaproximaa
nuestroideal,eldiseodelfiltropuedecontinuardedosmanerasdistintas.
A. Adoptandounordenparaelfiltro,loquesehacesobrelabasedequelaaproximacinal
idealestantomejorcuantomayorseaelordenadoptado.
B. Adoptandounaplantillaconloslimitacionesalasatenuacionesquepodrtenerelfiltroen
sus bandas pasante y de supresin (como consecuencia de la cual, surgir del clculo el
ordenautilizar).

A)Casoenelquesefijaelordendelfiltro.
Elprocedimientodediseoeselsiguiente:
Habiendo ya elegido el orden y el tipo de filtro a disear (a lo largo de este apartado
usaremoscomoejemplounfiltroChebyshevdeltipo1conunaondulacinde1dBenla
bandapasante,deorden3),ycualquierasealaclasedelfiltroarealizar(porejemploun
pasaaltos), se parte de la funcin transferencia del llamado prototipo normalizado (un
filtro pasabajos de ganancia unitaria, del mismo tipo y orden que el que queremos
realizar,ydefrecuenciadecorteunitaria).Lasfuncionestransferenciadeestosprototipos
normalizadosseencuentrantabuladasenlaliteraturasobreeltema.Ennuestroejemplo,
lafuncintransferenciadeunfiltroprototiponormalizadoChebyshevdeorden3conuna
ondulacin de 1 dB en la banda pasante (ejemplo que continuaremos desarrollando en
esteapartado)eslasiguiente:

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


mayscula,paraevitarerroresalefectuarelprximopaso.
definida la o las frecuencias de corte del filtro a realizar (un pasabajos y un pasaaltos
tienenunanicafrecuenciadecorte,perounpasabandayunsuprimebandatienendos),
separtedelafuncintransferenciadelprototiponormalizadoyseutilizanciertasfrmulas
de transformacin que ms abajo se dan y que toman en cuenta la(s) frecuencia(s) de
cortebuscada(s)paradeterminarlafuncintransferenciadelfiltrodeseado.

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

Paraelfiltropasabajos: hgase la sustitucin S


Paraelfiltropasaaltos: hgase la sustitucin S

C
C

s
s 2 + C 2 C 1

Paraelfiltropasabanda: hgase la sustitucin S


s ( C 2 C1 )
Paraelfiltrosuprimebanda: hgase la sustitucin S

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

Siguiendoconnuestroejemplo,paraelcasodeunpasaaltosconunafrecuenciaangular
decortede1000radianesporsegundo,latransformacinautilizares:

S=

10 3

Yresulta:

0,4913

H (S ) =

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, comprobndose que


satisface lo requerido:
Bode Diagram
0

-10

Magnitude (dB)

-20

-30

-40

-50

-60
2
10

10

10
Frequency (rad/sec)

Figura1DiagramadeBodedelejemplo

10

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

Este mtodo de diseo fue el preferido cuando la no disponibilidad de herramental matemtico


hacadeseablepartirdeunprediseoestablecido(elprototiponormalizado)queyaincorporala
realizacindeunciertoclculoparaestablecerloyminimizaelesfuerzodeclculo(posterior)del
diseador.PeromodernamenteladisponibilidaddeMatlabvuelveinnecesariopartirdeestefiltro
intermediario.Peroestemtodomantieneanciertavigenciaporquelastablasconlosvaloresde
losfiltrosprototiposnormalizadosparadiferentestiposdefiltrosestnampliamentedisponibles
enlaliteraturasobreeltema.

De todos modos, para apoyar el empleo de este mtodo, Matlab dispone de instrucciones
especficaspara:
a) Funciones para obtener ceros, polos y ganancia de los distintos filtros prototipo
normalizados,yapartirdeellassufuncintransferencia.Verelapartado2.1
b) Funciones para transformar filtros prototipo normalizados a pasabajos, pasaaltos,
pasabandoysuprimebandaVerelapartado2.3
c) La funcin besself (ver el apartado 2.5) que permite obtener los ceros, polos y
gananciadedeunfiltroBesselpasabajosapartirdelnmerodeordendeseadopara
elfiltroysufrecuenciadecorte.
La ltima funcin descripta se justifica porque da soporte al diseo de filtros Bessel que son
siempre pasabajos y como los mismos estn focalizados en el comportamiento de la fase de la
funcintransferencia,ynotantoensumdulo,noesaplicableparalosmismoselmtododela
plantilla que se describe a continuacin. Volveremos en el siguiente apartado para ampliar este
temayconsideraralllamadoretardodegrupo.

B)Casoenelquesefijalaplatilladelfiltro.

Laplantillaeselgrfico(oelconjuntodevalores)quemuestralaatenuacinmximatoleradaen
labandapasante,laatenuacinmnimaexigidaenlabandadesupresin,ylasfrecuenciaslmites
decadaunadedichasbandas.

As, la figura 2 muestra una plantilla genrica (en el habitual grfico semilogartmico con que se
representalarespuestaenfrecuencia)paraelcasodeunfiltropasabajos,dondesedestacansus
4parmetrosdefinitorios:
Rp=atenuacinmximapermitidaenlabandadepaso(endecibeles)
Rs=atenuacinmnimarequeridaenlabandadeatenuacin(endecibeles)
p=frecuenciaangularlmitedelabandapasante(enradianesporsegundo)
s=frecuenciaangularlmitedelabandadesupresin(enradianesporsegundo)
|H(j)| en dB
0
Rp

Rs

Figura2Plantilladeunfiltropasabajos

Asuvez,lafigura3muestralaplantilladeunpasaaltos

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

|H(j)| en dB
0
Rp

Rs

Figura3Plantilladeunfiltropasaaltos

Las plantillas se pueden realizar tambin para los filtros pasabanda y suprimebanda, siendo la
figura4elcasocorrespondienteaunfiltropasabanda(eltrazadodelaplantilladeunsuprime
bandaesdejadoallector)Nteselaexistenciadedosfrecuencias(ynouna)quefijanloslmites
delabandapasante,eidnticacantidadparalabandadesupresin.

|H(j)| en dB
0
Rp

Rs
s1

p1

p2

s2

Figura4Plantilladeunfiltropasabanda

Cuandosepartedelaplantilla,elmtododediseoreconocetrespasos:

1) Clculodelordennecesarioparaelfiltro
2) Clculodela(s)frecuencia(s)decorte(ensingularparaelcasodelosfiltrospasabajosy
pasaaltos,peroquesondosenelcasodelospasabandaysuprimebanda)
3) Obtencindelospolos,cerosyconstante(p,zyk)paraelfiltrodeseado.
4) Obtencindelafuncintransferenciazpkdelfiltrobuscado.

Matlabtienefuncionespara:
a) realizarlospasos1y2simultneamente.Verelapartado2.4
b) realizarelpaso3.Verelapartado2.5
c) realizar el paso 4. El lector ya debe estar familiarizado con el uso de Matlab para este
propsito,peroigualmentelainformacinsobrecmorealizarestepasoseencuentraen
elapartado2.2.

Sinembargo,mereceuncomentarioaclaratorioelclculoquehacedelafrecuenciadecorte,ala
que denomina wn (por ser la frecuencia que emplea en la desnormalizacin del prototipo
normalizado).Paraestaaclaracinconvienedestacarqueladefinicindefrecuenciadecortede
unfiltrosedefineenformadiferentesegnlaaproximacindequesetrate.Asaber:
a) EnlosfiltrosButterworth,lafrecuenciadecorteesaquellaparalacuallarespuestacae3

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

dBrespectoalasfrecuenciasbajas.
b) EnlosfiltrosChebyshev1,lafrecuenciadecorteeswp.
c) EnlosfiltrosChebyshev2,lafrecuenciadecorteesws
d) Enfiltroselpticos,lafrecuenciadecorteeswp

AdvirtaseunadificultadenelcasodelosfiltrosconaproximacinButterworth:laplantillanonos
da informacin sobre la frecuencia de corte (como ocurre en el caso de las aproximaciones
Chebyshev y elpticas). La frecuencia de corte puede deducirse de los valores de plantilla slo
despus de saber el orden del filtro. Adems, hay todo un rango de valores aceptables para la
frecuencia de corte. Por ejemplo, para el caso de un filtro pasabajos esos valores lmites estn
dadosporlasiguientefrmula.

(10

Rp / 10

0,5 / n

(10

s
Rs / 10

0 ,5 / n

Laexistenciadetodaunagamadevaloresposiblesparalafrecuenciadecortesedebeaqueel
clculo del nmero de orden necesario para el filtro suele arrojar un resultado fraccionario, y la
adopcin del orden es por el entero inmediato superior. Esto hace que la zona de transicin
resulte ms estrecha en la realidad que lo que exige la plantilla. Es as que la adopcin para la
frecuenciadecortedeunvalorigualallmiteinferiorquefijalafrmulaanteriorhacequeelfiltro
pasabajosresultantecumplaconjustezaloqueexigelaplatillaenellmitesuperiordelabanda
de paso, y con holgura los requerimientos en el lmite inferior de la banda de supresin. Por el
contrario, la adopcin como valor de la frecuencia de corte del lmite superior de la frmula
anterior hace que el filtro cumpla con justeza lo que exige la platilla en el lmite inferior de la
bandadesupresin,yconholguralosrequerimientosenellmitesuperiordelabandadepaso.

Algosimilarocurreparalasotrasaproximaciones.Yahemossealadoque
EnlosfiltrosChebyshev1lafrecuenciadecorteeswp.
EnlosfiltrosChebyshev2lafrecuenciadecorteesws
Enfiltroselpticos,lafrecuenciadecorteeswp
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 lmite) para esa
frecuencia. En los ejemplos con que se cierra esta publicacin aceptaremos la propuesta de
Matlab,peroellectorpodrfcilmentecambiarellistadoparaoptarporotraalternativa.

1.3 RetardodegrupoyfiltrosBessel
Sisedeseaqueunfiltropasabajossuprimalascomponentesdefrecuenciaelevadadeunaseal,
perotratandodeintroducirlamnimadistorsinenlaformadeonda,serequierequeidealmente
latransferenciaenlabandapasanteseauniformeenmagnitud,yqueeldesfasajetemporalque
sufrenlasdistintascomponentesdeintersseaelmismoparatodas.Estedesfasajetemporalse
denominaretardodegrupo.
Si se aplica una onda senoidal de amplitud unitaria a la entrada de un filtro cuya funcin
transferenciaaesafrecuenciatieneunamagnitudunitariaperoundesfasaje,laexpresindela
salidaadmiteserescrita:
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 funcin transferencia de este
filtroenlabandapasantedebaserest,unaexpresintrascendentequeesirrealizableporqueno
setratadeunaexpresinracional.
En los filtros prcticos, slo puede alcanzarse una aproximacin al comportamiento ideal. El
retardo de grupo se define como la derivada de la fase con relacin a la frecuencia angular,

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

cambiadadesigno.Elmismopuedefcilmentedeterminarseapartirdelospolosyloscerosdela
transferencia,comosemuestraacontinuacin.Senotarquesiempreesunafuncinracionalde
lafrecuencia

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

1
n

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

De realizar con Matlab el clculo y la graficacin de este retardo, los valores de m y n pueden
determinarsesimplementehaciendom=length(z)yn=length(p)

Existenvariostiposdefiltrodiseadosparaquesufuncintransferenciaracionalseaproximeala
idealtrascendente.Porejemplo,losfiltrosBessel,gaussianos,defaselineal,etc.Portodolovisto
hastaac,estosfiltrosslosejustificansiseusancomopasabajos.
Una forma de evaluar el desempeo de un filtro en lo relativo a su retardo de grupo, que no
requiere calcular ste, es observar la respuesta del filtro a un escaln. Debido al recorte de las
frecuenciasaltas,larespuestasertambinunescalnperolosbruscoscambiosdependientedel
escalndeentradasernreemplazadosporsuavescodos.Ysielretardodegrupoessatisfactorio,
larespuestasermontonaoconunpequeosobreimpulso.

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 graficacin en funcin de la frecuencia se
extiendetantomscuantomselevadoseaelordendelfiltro.Sudiseonosehaceapartirdela
plantilla sino del orden deseado para el filtro segn la extensin de la planicidad deseada en el
retardo de grupo. Para estos filtros tambin cabe definir una frecuencia de corte. La misma es
aquella en la que se interceptan las asntotas horizontal y oblicua de su grfica de Bode de
magnitudesendecibeles.Yslosecorrespondeconunaatenuacinde3dBcuandoelordendel
filtroesn=1.Laatenuacinaesafrecuenciacreceamedidaquenaumenta.Porejemplo,yaesde
4,77dBparan=2yasciendea10,12dBparan=6.
Esto se ilustra en las dos figuras que siguen, que muestran la respuesta en frecuencia de filtros
Besselprototiposnormalizadosdediferenteordenysuretardodegrupo.

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

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

10

10

10

Frecuencia (rad/sec)

Figura5BodedefiltrosBesselprototiponormalizados

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

10
w en rad/s

10

10

Figura6RetardodegrupodefiltrosBesselprototiponormalizados

1.4 Ubicacindelospolosycerosenlafuncintransferenciadelosfiltrosqueutilizaremos
Ye hemos mencionado que las funciones transferencia de los filtros, dada las aproximaciones
racionalesqueempleamos,estndadascomococienteentredospolinomiosens,laquesabemos
quepuedeserllevadaalaformazpkqueponeenevidenciasuscerosypolos.
Claroestquelosfiltrosnoescapanalasrestriccionesqueexisten,engeneral,paralasfunciones
transferenciaracionales.Asaber:

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

1) Paraqueelsistemaseaestable,elpolinomiodenominadorsolopuedetenerraces(polos)
realesnegativasy/oracescomplejasconjugadasconparterealnegativa.Lospolinomios
que cumplen esta propiedad se denominan de Horowitz estricto y se caracterizan
porquetodosloscoeficientesdelpolinomioexisten(nohayningunonulo,decimosquees
unpolinomiocompleto)ysontodosdelmismosigno.Ntesequeunpolinomiocualquiera
quecumplaestascondicionesnonecesariamenteesunpolinomioHorowitzestricto,pero
elnocumplimientodelasmismaslodescartacomotal.
2) Paraqueelsistemaseadefasemnima,elpolinomionumeradordebe carecerderaces
(ceros) complejas conjugadas con parte real positiva. Pero puede tener races en el eje
imaginario, incluyendo el origen. Los polinomios que cumplen esta propiedad se
denominan de Horowitz y se caracterizan porque estn completos todos sus
coeficientes, o estn slo los de orden par (y completos) o slo los de orden impar (y
completos)yademssontodosdelmismosigno.Ntesequeunpolinomiocualquieraque
cumpla estas condiciones no necesariamente es un polinomio Horowitz, pero el no
cumplimientodelasmismaslodescartacomotal.
Peroenelcasodelosfiltros,encontramosrestriccionesadicionales.Valelosiguiente:
1) los ceros (races del numerador), si existen, slo pueden estar en el origen o ser pares
imaginariosconjugados.
2) lospolos(racesdelnumerador)sonsiempre pares decomplejosconjugados salvoenel
casodefiltrospasabajosypasaaltosdeordenimparqueposeenunnicopoloreal.
La demostracin, que no veremos, parte de observar que los filtros Butterworth, Bessel y
Chebyshev del tipo 1 son denominados filtros sin ceros porque en su versin pasabajos el
numeradordelafuncintransferenciaesunaconstante.Adems,sielpolinomiodenominadores
deordenpartodossuspolossoncomplejosconjugados.Ysiesdeordenimparhayunnicopolo
real.Porsuparte,losfiltrosChebyshevdeltipo2yelpticos,tienenunaestructurasimilarpero,
an en su versin pasabajos, tienen pares de ceros imaginarios conjugados. Si se aplican las
transformaciones que permiten pasar de un filtro pasabajos a un filtro de otro tipo, se llega,
laboriosamente,ademostrarlasdosrestriccionesadicionalesmencionadas.

1.4Implementacindeldiseodeunfiltro
En realidad, el proceso de diseo de un filtro no termina con la determinacin de su funcin
transferencia.Porquefaltalaimplementacinprcticadelmismo.Nosinteresaparticularmentela
realizacin de filtros activos empleando amplificadores operacionales, resistencias y capacitores
(peronoinductores).Podemospensarque,ansinpasaralapartematerial,quedanvariospasos
dediseoporrealizar.Asaber:
a) procesar la funcin transferencia de forma que quede como un producto de formas
bicuadrticas,conlaposibleinclusindeunnicofactorbilinealperoslosisetratadeun
filtropasabajosopasaaltosdeordenimpar.
b) disearunfiltroapropiadoparacadaunodelosfactoresrecindeterminados,losquese
colocarn en cascada para alcanzar la funcin transferencia global deseada. No son muy
variadas las posibilidades circuitales para implementar una expresin bilineal, pero son
muchaslasformasdeimplementarunabicuadrtica.entreellaslasllamadasSallenKeyy
Rauch(queempleanunnicoamplificadoroperacional),Fliege(queemplea2),Ackerberg
Mossberg(usa3amplificadoresoperacionales),filtrosuniversales(requieren4oms),etc.
Esta diversidad, y el hecho que cada una de estas topologas presenta ventajas y
desventajas, justifican una publicacin separada para presentarlas por lo que no se dar
acmayordetalle.
c) simular la operacin del circuito antes de su construccin con el fin de determinar si
satisfaceefectivamentelosrequerimientos,ysiseusaapropiadamenteelrangodesalida
de cada amplificador evitando que el mismo entre en saturacin o, por el contrario,
trabaje con un nivel tan bajo de seal que cobren importancia los ruidos. Si no resulta

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

10

apropiado el uso del rango de salida de los amplificadores, quedan an posibilidades de


mejora porque en los dos pasos anteriores hubo que adoptar varias decisiones que
puedenreverse.Asaber:cmorealizarelagrupamientodeloscerosconlospolospara
lograrlasexpresionesbicuadrticas(olaeventualbilineal),alterarelordendelasmismas
al ponerlas en cascada, y reasignar con otro criterio el factor k entre los trminos
bicuadrticos.

Tngaseencuentaquelostrminosbilinealybicuadrticosquepuedenaparecer,segnlovisto
enelapartadoanterior,tendrnsiempreelpolinomionumeradorincompleto.Efectivamente,un
listadocompletodelostrminosfactiblessonlossiguientes:

Factoresbilineales:

C
s + C

quecorrespondeaunfiltropasabajosdeorden1,degananciaunitaria(afrecuencias
bajas)yfrecuenciadecorte(3dB)C

s
s + C

quecorrespondeaunfiltropasaaltosdeorden1,degananciaunitaria(afrecuencias

altas)yfrecuenciadecorte(3dB)C

Factoresbicuadrticos:

s2 +

02
0
Q

+ 02

que corresponde a un filtro pasabajos de orden 2, de ganancia unitaria (a

frecuenciasbajas),frecuencianatural0yfactordemritoQ

0
Q

s2 +

0
Q

+ 02

quecorrespondeaunfiltropasabandadeorden2,degananciaunitaria(ala

frecuencianatural),frecuencianatural0yfactordemritoQ

s2
s2 +

0
Q

+ 02

que corresponde a un filtro pasaaltos de orden 2, de ganancia unitaria (a

frecuenciasaltas),frecuencianatural0yfactordemritoQ

s 2 + 02
s2 +

0
Q

+ 02

que corresponde a un filtro muesca rechazabanda de orden 2, de ganancia

unitaria(afrecuenciasbajasyaltas),frecuencianatural0yfactordemritoQ

Todas las expresiones anteriores se suponen conocidas por el lector, pero falta an mencionar

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

11

otrasdos,quemerecenalgunoscomentarios:

s 2 + Z2
s +
2

0
Q

con

2
0

Z < 0

EstafuncintransferenciacorrespondeaunfiltroconunamuescaalafrecuenciaangularZ,pero
que a frecuencias altas tiene una transferencia unitaria, mientras que a frecuencias bajas tiene
unatransferenciamenorque1.Ytantomenorcuantomsbajasea Z conrespectoa 0.Este
tipodefiltrosedenominamuescapasaaltos.

s 2 + Z2
s +
2

0
Q

con

2
0

Z > 0

EstafuncintransferenciacorrespondeaunfiltroconunamuescaalafrecuenciaangularZ,pero
que a frecuencias altas tiene una transferencia unitaria, mientras que a frecuencias bajas tiene
unatransferenciamayorque1.YtantomayorcuantomsaltaseaZconrespectoa0.Estetipo
defiltrosedenominamuescapasabajos.Ysisenecesitasuempleo,suelepreferirsesacarfactor
comn(Z/0)2(quepasaaintegrarelfactork)ydejarcomoexpresinbicuadrticalasiguiente,
queesunfiltromuescapasabajosdegananciaunitariaafrecuenciasbajas:

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

0
Q

2
0

con

Z > 0

1.5 Filtrospasatodo
Cuando vimos las diferentes clases de filtro, omitimos intencionalmente la existencia de filtros
pasatodo,alosquenodedicaremosenestapublicacinmsdetallequelosquepresentaremos
en este apartado. Son filtros cuya transferencia es unitaria para todas las frecuencias (de all su
denominacin) y el cambio de frecuencia slo afecta a la fase de la transferencia, y no a su
magnitud. No son sistemas de fase mnima, y se caracterizan por tener ceros en el semiplano
derecho del plano s que son simtricos de los polos que posee en el semiplano izquierdo. Su
expresingenerales:

A( s )
A( s )
por ejemplo :

sk
s+k
H (s) =

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

12

2.FuncionesMatlabparafiltrosanalgicos

LasfuncionesdeMatlabquesepresentanenestapublicacinnosontodaslasfuncionesparafiltros
queelprogramaposeeniestncadaunadeellasexplicadaaccontodaslasalternativassintcticas
que Matlab acepta. Por ello, es recomendable consultar la herramienta Filter Design Tool Box del
Matlabyparacadaunadelasfuncionesexplicadasconsultarlosargumentosyposibilidadesusandoel
comandohelp.Enparticular,nosehanincluidolasfuncionesaplicablesalosfiltrosdigitales,sinoslo
alosanalgicos.

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

Matlabtienefuncionesparacalcularlosceros,polosygananciadefiltrosprototiposnormalizados
tantoButterworthcomoChebyshev(tipos1y2),BesselyElpticos.Lospolossonparesdecomplejos
conjugados, que estn acompaados 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 elpticos tienen ceros imaginarios que se presentan como pares conjugados. Matlab
suministraloscerosylospoloscomovectores,enunordenquenopuedeasegurarse.Muchasveces
es deseable que, por ejemplo, los polos estn 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:ordendelfiltro

TratndosedeunfiltroButterworthprototiponormalizado,k=1ynotendrceros

Chebyshev1

[z,p,k]=cheb1ap(n,Rp)

n:ordendelfiltro
Rp [dB]: atenuacin mxima permitida en la banda de paso, en este caso coincide con la
ondulacin.

Tratndose de un filtro Chebyshev 1 prototipo normalizado k es un nmero real y positivo,


igualalproductodetodoslospolos(cambiadodesigno)sinesimpar,eigualadichoproducto
divididopor10Rp/20sinespar.Nohabrceros.

Chebyshev2

[z,p,k]=cheb2ap(n,Rs)

n:ordendelfiltro
Rs[dB]:atenuacinmnimapermitidaenlabandadeatenuacin,enestecasocoincideconla
ondulacin.

Tratndose de un filtro Chebyshev 2 prototipo normalizado, k es un nmero real y positivo,

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

13

igualalproductodetodoslospolos,aunquecambiadodesignosinesimpar.Loscerossern
paresimaginariosconjugados

Elptico

[z,p,k]=ellipap(n,Rp,Rs)

Rp[dB]:atenuacinmximapermitidaenlabandadepaso,enestecasocoincideconelvalor
picodelaondulacin.
Rs[dB]:atenuacinmnimaadmisibleenlabandadeatenuacin.

TratndosedeunfiltroElpticoprototiponormalizadokesunnmerorealypositivo,igualal
cociente entre el producto de todos los polos dividido por el producto de todos los ceros
(cambiadodesigno)sinesimpar,eigualadichococientedivididopor10Rp/20 sinespar.Los
cerossernparesimaginariosconjugados

Bessel

[z,p,k]=besselap(n)

TratndosedeunfiltroBesselprototiponormalizado,k=1.Notendrceros.

2.2 Funcin para obtener la funcin transferencia a partir de los ceros, polos y
constantedeunfiltro

H=zpk(z,p,k)

2.3 Transformaciones de filtros prototipo normalizados a pasabajos, pasaaltos,


pasabandoysuprimebanda

Prototiponormalizadoapasabajo(lowpasstolowpass)

[num2,den2]=lp2lp(num1,den1,wc)

Transformaelprototipodelfiltropasabajosnum1(S)/den1(S)confrecuenciadecorteunitariaa
unfiltropasabajosconfrecuenciaangulardecortewc.
Realizalatransformacin:

Prototiponormalizadoapasaalto(lowpasstohighpass)

[num2,den2]=lp2hp(num1,den1,wc)

Transformaelprototipodelfiltropasabajosnum1(S)/den1(S)confrecuenciadecorteunitariaa
unfiltropasaaltosconfrecuenciaangulardecortewc.
Realizalatransformacin:

C
s

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

14

Prototiponormalizadoapasabanda(lowpasstobandpass)

[num2,den2]=lp2bp(num1,den1,wo,B)

Transformaelprototipodelfiltropasabajosnum1(S)/den1(S)confrecuenciadecorteunitariaa
unfiltropasabandaconfrecuenciacentral 0 = c1 . c 2 yanchodebanda B = c 2 c1 .
Realizalatransformacin:

sB

s + 02
2

Prototiponormalizadoasuprimebanda(lowpasstobandstop)

[num2,den2]=lp2bs(num1,den1,wo,B)

Transformaelprototipodelfiltropasabajosnum1(S)/den1(S)confrecuenciadecorteunitariaa
un filtro elimina banda con frecuencia central 0 = c1 . c 2 y ancho de banda

B = c 2 c1 .
Realizalatransformacin:

s 2 + 02

sB

2.4 Funciones que permiten obtener el orden de los filtros para las distintas
aproximacionesytomandoenconsideracinlaplantillaadoptada

Butterworth

[n,wn]=buttord(wp,ws,Rp,Rs,'s')
Devuelve el mnimo orden n y una posible frecuencia normalizadora (el valor extremo que
puedetomarlafrecuenciadecorteparacadade3dB)paraobtenerlasespecificacionesque
necesitalafuncinbutter(),quesevemsadelante.

Esimportantereconocer4casosdiferenciados:

Siwpywssonescalares,ywp<wssetratadeunfiltropasabajos.
wnestambinunescalar.

Siwpywssonescalares,ywp>wssetratadeunfiltropasaaltos.
wnestambinunescalar

Si wp=[wp1 wp2] y ws=[ws1 ws2] y ws1<wp1<wp2<ws2 se trata de un filtro pasabanda.


wn=[wn1wn2]

Siwp=[wp1wp2]yws=[ws1ws2]ywp1<ws1<ws2<wp2setratadeunfiltrosuprimebanda.
wn=[wn1wn2]

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

15

Chebyshev1

[n,wn]=cheb1ord(wp,ws,Rp,Rs,'s')
Devuelve el orden mnimo y la frecuencia normalizadora de Chebyshev 1 (wn=wp) para
obtenerlasespecificacionesquenecesitalafuncincheby1()quesevemsadelante.

Rp[dB]eslaatenuacinmximaenlabandadepaso
Rs[dB]eslaatenuacinmnimaenlabandadeatenuacin
wpywslaspulsacioneslmitescorrespondientesacadabanda,expresadasen[r/s]

Correspondetambinaqureconocerlos4casosaquesehahechoantesreferencia

Chebyshev2

[n,wn]=cheb2ord(wp,ws,Rp,Rs,'s')
Devuelve el orden mnimo y la frecuencia normalizadora de Chebyshev 2 (wn=ws) para
obtenerlasespecificacionesquenecesitalafuncincheby2()quesevemsadelante.

Rp[dB]eslaatenuacinmximaenlabandadepaso
Rs[dB]eslaatenuacinmnimaenlabandadeatenuacin
wpywslaspulsacioneslmitescorrespondientesacadabanda,expresadasen[r/s]

Correspondetambinaqureconocerlos4casosaquesehahechoantesreferencia

Elpticos

[n,wn]=ellipord(wp,ws,Rp,Rs,'s')
Devuelve el orden mnimo y la frecuencia normalizadora del filtro elptico (wn=wp) para
obtenerlasespecificacionesquenecesitalafuncinellip()quesevemsadelante.

Rp[dB]eslaatenuacinmximaenlabandadepaso
Rs[dB]eslaatenuacinmnimaenlabandadeatenuacin
wpywslaspulsacioneslmitescorrespondientesacadabanda,expresadasen[r/s]

Correspondetambinaqureconocerlos4casosaquesehahechoantesreferencia

2.5Funcionesparausarlasdistintasaproximacionesparaeldiseodefiltros

Butterworth
butter(n,wn,s)
butter(n,wn,low,s)

Loscomandosanterioresdesignanun filtroButterworth,wneslafrecuencianormalizadora
expresadaen[r/s],lowespasabajos(ypuedeomitirseyaqueeslaopcinpordefecto)ys
significa analgico. Esta funcin recibe el orden del filtro pasa bajos, n, y la frecuencia
normalizadorawnproporcionadasporlafuncinbuttordyavista.
Silosargumentosdelaizquierdasontres,devuelvelospolosyloscerosenvectorescolumna
delongitudnylagananciacomounescalark.Ejemplo:

[z,p,k]=butter(n,wn,low,s)

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

16

Si en cambio a la izquierda se especifican dos argumentos, stos correspondern a los


coeficientesdelospolinomiosnumeradorydenominadordelafuncintransferenciaH(s),en
vectoresfiladen+1elementosyenpotenciasdescendentesdes,

[num,den]=butter(n,wn,low,s)

Parafiltrospasaaltos,pasabandayeliminabandalasespecificacionessonhigh,bandpassy
stop,respectivamenteenreemplazodelow.

Chebyshev1
cheby1(n,Rp,wn,s)
cheby1(n,Rp,wn,low,s)

LoscomandosanterioresdesignanunfiltroChebyshevdetipo1,pasabajos(explcitamenteo
poromisin),deordenn,conRpondulacinpicoapicoenlabandadepasoywn(iguala
wp) expresada en [r/s]. Los datos n y wn le son provistos por el uso previo de la funcin
cheb1ordanalizadaanteriormente.

Expresiones:
[z, p, k]
= cheby1 (n, Rp, wn, low, s)
[num, den] = cheby1 (n, Rp, wn, low, s)

Puedeserlow,high,bandpassostop.

Chebyshev2
cheby2(n,Rs,wn,s)
cheby2(n,Rs,wn,low,s)

LoscomandosanterioresdesignanunfiltroChebyshevdetipo2,pasabajos(explcitamenteo
por omisin), de orden n, con Rs atenuacin mnima en la banda de atenuacin para la
pulsacinwn(igualaws)expresadaen[r/s].Losdatosnywnlesonprovistosporeluso
previodelafuncincheb1ordanalizadaanteriormente.

Expresiones:
[z, p, k]
= cheby2 (n, Rs, wn, low, s)
[num, den] = cheby2 (n, Rs, wn, low, s)

Puedeserlow,high,bandpassostop.

Elptico
ellip(n,Rp,Rs,wn,s)
ellip(n,Rp,Rs,wn,stop,s)

Loscomandosanterioresdesignanunfiltroelptico,pasabajos(explcitamenteoporomisin),
deordenn,conRpatenuacinmximaenlabandadepasoparalapulsacinwn(iguala
wp)expresadaen[r/s]yRsatenuacinmnimaenlabandadeatenuacin.Losdatosny
wnlesonprovistosporelusopreviodelafuncincheb1ordanalizadaanteriormente.

Expresiones:
[z, p, k]

= ellip(n,Rp,Rs,wn,low, s)

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

17

[num, den] = ellip(n,Rp,Rs,wn,low, s)

Puedeserlow,high,bandpassostop.

Bessel
besself(n,wc,s)

Este comando designa un filtro Bessel pasa bajos (nica opcin), de orden n, wc es la
frecuenciaangulardecortedelfiltro

Expresiones:
[z, p, k]
= besself(n,wc, s)
[num, den] = besself(n,wc,s)

2.6Conversionesentresistemaslineales

Conversindelaformazpkdelatransferenciaacocientedepolinomios

H=tf(H1)

DondeH1estenlaformazpkyHquedadelaformacocientedepolinomios

H (s) =

Conversindelaformacocientedepolinomiosdelatransferenciaazpk

H=zpk(H1)

DondeH1estenlaformacocientedepolinomios

H 1( s ) =

num( s )

den( s )

num( s )

den( s )

yHquedadelaformazpk

Conversindecerosypolosapolinomios

[num,den]=zp2tf(z,p,k)

Conversindepolinomiosacerosypolos)

[z,p,k]=tf2zp(num,den)

Extraccindelosparmetrosdeunafuncintransferenciadadacomococientedepolinomios

[num,den]=tfdata(H,v)

Para una funcin transferencia H devuelve los coeficientes del polinomio numerador y del
denominadorcomovectoresfila.

Extraccindelosparmetrosdeunafuncintransferenciaenlaformazpk

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

18

[z,p,k]=zpkdata(H,'v')

ParaunafuncintransferenciaH,devuelveloscerosypoloscomovectorescolumna(adems
delaconstantek).

2.7RespuestaenfrecuenciaDiagramadeBode

DiagramadeBode
Entre la funciones Matlab que grafican o determinan los valores de una grfica de Bode, se
puedencitar:

bode(H)
graficalamagnitud(expresadaendB)ylafase(engrados)deunafuncintransferenciaH,
adoptandoautomticamenteelrangoylosvaloresdelejehorizontal,enelquesellevala
frecuencia angular en radianes por segundo. Si se desea conocer los valores extremos
utilizadosendichoeje,losmismospuedendeterminarseconlasentenciaW=xlim,dondeW
serunvectorde2elementos.SisedeseaqueelejehorizontalmuestrelafrecuenciaenHz,
lamentablementeesto,enprincipio,nosepuedehacerdesdelalneadecomando(vernota
msabajo).SedebecliquearconelbotnderechodelmousesobreeldiagramadeBode,y
enelmencontextualqueapareceelegirProperties.YaenelPropertyeditorcliquearUnits,
yenFrequencyinseleccionarHz.
bodemag(H)
similaralaanterior,perograficaslolamagnitud.Estosueleserapropiadoparafiltros,en
losqueelretardodegrupopuedesermssignificativoquelafase
bode(H1,H2,...Hn)
grafica, superponindolas, la magnitud (expresada en dB) y la fase (en grados) de varias
funcionestransferenciaH,adoptandoautomticamenteenejehorizontal.
bodemag(H1,H2,...Hn)
similaralaanterior,perograficaslolamagnitud
mag=bodemag(H,w)
nografica,sinoqueproveeunvectorconlosvaloresdelamagnitudcorrespondientesalos
valores de frecuencia fijados por el vector w (usualmente un vector de no menos de 100
valores,creadoconunlogspace).

Nota:
Versiones recientes de Matlab incorporan una funcin bodeplot que permite elegir, desde la
lneadecomandos,quesloquesedebellevarenelejehorizontal.Dadoqueestafuncinno
escompatibleconversionesanterioresdelMatlab,nolausaremos.Enellaspuedehacerse,por
ejemplo:
h=bodeplot(H);
setoptions(h, 'FreqUnits','Hz','PhaseVisible','off')
loqueselimitaagraficarelBodedemagnitudesenfuncindelafrecuenciacclica

EnlasversionesdeMatlabquenoincluyenlafuncinbodeplotigualmentesepuedeintentar
ordenardesdelalneadecomandosqueenelejehorizontalaparezcalafrecuenciacclicaenHz
envezdelaangularenradianesporsegundoutilizandounacaractersticanodocumentadade
Matlab (el comando gcr), que generalmente funciona pero sin el aseguramiento de estar
debidamente soportada por el fabricante. En esas versiones anteriores, despus de ordenar
quesegrafiqueeldiagramadeBodesepuedenaplicar,porejemplo,lossiguientescomandos:

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

19

h=gcr;
h.AxesGrid.XUnits='Hz';

2.8Mapadepolosyceros

Lasfuncionespzmapysgrid

pzmap(H) calcula los polos y los ceros de una funcin transferencia, y los grafica en el plano
complejo s; los polos como x y los ceros como o. Las escalas del grfico son elegidas
automticamente

[p,z] = pzmap(H) devuelve los polos y los ceros en forma de vectores columna, sin efectuar
ningngrfico

sgrid coloca en el grfico lneas de mdulo constante, que se corresponden con frecuencia
naturalconstante(enprincipio,perodependiendodelaescala,circunferenciascentradasenel
origen) y de coeficiente de amortiguacin constante (o, lo que es lo mismo, factor Q=0,5/
constante),lneasrectasquepasanporelorigenytienenunapendientearccos().

A continuacin se ilustra el caso de una funcin que tiene un cero en 1, y polos complejos
conjugados en 1 2j. Las escalas fueron modificadas despus de la graficacin hecha por
Matlabparaponerenevidencialoscrculosdemduloconstante
Pole-Zero Map
2.5
0.86

0.76

0.64

0.5

0.34

0.16

0.34

0.16

2
0.94
1.5

Im a g in a r y A x is

0.985

0.5
4

-0.5
-1

0.985

-1.5
0.94
-2
0.86
-2.5
-5

-4.5

-4

0.76
-3.5

-3

0.64
-2.5

-2

0.5
-1.5

-1

-0.5

Real Axis

Figura6Ejemplodeunmapadepolosyceros

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

20

3.Ejemplosdeuso

3.1Ejemplo0
Se desea disear un filtro Butterworth pasabajos segn las especificaciones que se encuentran en los
primeroscomentariosdellistadoquesigue,yquecorrespondeaunarchivodenominadoejemplo_0.m. El
diseoserepetircomoEjemplo1enelapartado3.2.Ladiferenciaesqueenestecasonoharemosusode
loscomandosespecficosquetieneMatlabparadeterminar,apartirdelaplantilla,elordennecesariopara
elfiltro,lafrecuenciadecortedelmismoylaubicacindelospolos.Procederas,aunqueindudablemente
mslaborioso,servirparaponerenevidencialanaturalezadelosclculosarealizarylasalternativasque
sepresentanenlosmismos.
A continuacin se justifican las frmulas que proporcionan, para un filtro Butterworth y a partir de los
valoresdeplantilla,elordennecesarioylafrecuenciadecorte(3dB).


H (dB ) = 10 log1 +
C

p
10 log1 +
C


10 log1 + s
C

< R p < 10 R p / 10 1
p

C
s

n
n
s

p
Rs / 10
> Rs
> 10
1

C

Rs / 10

1
> 10
R
/
10

10 p 1

10 R p / 10 1
/ log( s / p )
n > log R / 10

10
1

p
10 log1 +
C

p
< R >
= C1
p
C

(10 Rp / 10 1) ( 0,5 / n )


10 log1 + s
C

s
> R <
= C2
s
C
Rs
/
10

(10
1) ( 0,5 / n )

C1 < C < C2

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

ListadoMatlab

% Disea un filtro pasa bajos Butterworth, con un atenuacin mxima de 2db


% para las pulsaciones de hasta 2000 r/s y una atenuacin mnima 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;

%lmite de la banda pasante [r/s]


%lmite de la banda de atenuacin [r/s]
%atenuacin mxima en la banda de paso [dB]
%atenuacin mnima en la banda de supr.[dB]

%Determinacin 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

%Determinacin 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)
%Determinacin de la ubicacin 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
% Determinacin de la funcin transferencia en los dos casos extremos.
% la constante k es el producto de todos los polos, si su nmero 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)
%graficacin 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

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

ResultadosqueaparecenenlaventanadecomandosdelMatlab

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

23

Resultadodelafigura
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

10

10

10

Frequency (rad/sec)

Observacin:
Senotaqueambassoluciones(ycualquieraintermedia)satisfacenlaplantilla.

10

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

24

3.2Ejemplo1
Se desea disear un filtro segn las especificaciones que se encuentran en los primeros comentarios del
listadoquesigue.,yquecorrespondeaunarchivodenominadobutterworth_lp.m

ListadoMatlab
% Disea un filtro pasa bajos Butterworth, con un atenuacin mxima de 2db
% para las pulsaciones de hasta 2000 r/s y una atenuacin mnima 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;

%lmite de la banda pasante [r/s]


%lmite de la banda de atenuacin [r/s]
%atenuacin mxima en la banda de paso [dB]
%atenuacin mnima en la banda de supr.[dB]

%Determinacin del orden n y de la frecuencia normalizadora wn


[n, wn]
= buttord (wp, ws, Rp, Rs, 's')
% determinacin 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 escaln
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

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

25

ResultadosqueaparecenenlaventanadecomandosdelMatlab

Resultadosqueaparecenenlasdiversasfiguras
Figura1

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

-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

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

26

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

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

10

10

10

Frequency (rad/sec)

Figure3

-3

Retardo de grupo [s]

x 10

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

0.5

0
2
10

10

10

10

Frecuencia [r/s]
Step Response

Amplitude

1.5

0.5

0.5

1.5
Time (sec)

2.5

3.5
-3

x 10

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

27

ComentariosyObservaciones
1) SeobservaqueMatlabadoptacomovalordelafrecuenciadecorte(onormalizadora)elvalordewc2del
ejemplo0(3000radianes/s).

2) Elmapeodelospolosycerosmuestraquelospolosestnubicadosenunacircunferenciacuyoradioes
elvalorabsolutodelospolos(los3000radianes/sdewn)

3) LagraficacindelretardodegrupomuestraquelosfiltrosButterworthsondeficientesenmantenerun
retardodegrupoconstanteenlabandadepaso,circunstanciaquequedaevidenciadaenlarespuestaaun
escaln unitario, donde se observa la presencia de un sobreimpulso. Los filtros Chebyshev tienen un
comportamiento en este sentido an ms deficiente. Son los filtros Bessel los recomendados cuando se
requiereunretardodegrupoconstantealolargodelabandapasanteyunarespuestaalescalnsin(ocon
mnimo)sobreimpulso,comoseverenelejemplo2.

4) Porlovistoenelapartado1.4convieneprocesarlafuncintransferenciaquebrindaelMatlab.Eneste
caso, y luego de algn redondeo para suprimir cifras no significativas derivadas de la imprecisin de las
operacionessellegaa:

H (s)

27000000000
3000
9000000
=
2

2
(s + 3000) (s + 3000s + 9000000) s + 3000 s + 3000s + 9000000

Seconcluyequeserequiereunfiltropasabajosdeorden1,gananciaunitariayfrecuenciadecorte3000
rad/syunfiltropasabajosdeorden2,gananciaunitaria,frecuencianatural3000rad/syQ=1.

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

28

3.3Ejemplo2
Se desea disear un filtro segn las especificaciones que se encuentran en los primeros comentarios del
listadoquesigue,yquecorrespondeaunarchivodenominadobessel_lp.m

ListadoMatlab

% Disea 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 grficos
%frecuencia de corte en [r/s]
%orden

%Transferencia usando la funcin besself


[num,den] = besself(n, wo);
disp('Funcin transferencia hallada usando la funcin besself')
[z,p,k] = tf2zp(num,den);
H
= zpk(z,p,k)
%expresin 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 mdulo 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 escaln
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

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

29

ResultadosqueaparecenenlaventanadecomandosdelMatlab

Resultadosqueaparecenenladiversasfiguras
Figure1
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

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

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

30

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

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

10

10

10

Frequency (rad/sec)

Figure3
-3

Retardo de grupo [s]

x 10

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

0.5

0
2
10

10
Frecuencia [r/s]

10

Step Response

Amplitude

0.5

0.5

1.5
Time (sec)

ComentariosyObservaciones

2.5

3
-3

x 10

1)Seobservaelmuy buencomportamiento de este filtroenloquealretardodegrupose refiere.Ellose


evidencia tanto en la planicidad del grfico que lo representa como en el escasamente advertible
sobreimpulsoquetienelarespuestaalescaln,prcticamentemontona.

2)ProcesandolafuncintransferenciadadaporMatlabcomoserecomiendaenelapartado1.4sellegaa:

H (s) =

2825
9558000

2
s + 2825 s + 4474s + 9558000

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

31

Compruebeellectorquelaimplementacindeestefiltrorequieredeunaetapapasabajosdeorden1con
frecuencia de corte 2825 radianes/s y una etapa pasabajos de orden 2 con frecuencia natural de 3092
radianes/sconunQ=0,691

32

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

3.4Ejemplo3
Se desea disear un filtro segn las especificaciones que se encuentran en los primeros comentarios del
listadoquesigue,yquecorrespondeaunarchivodenominadochevyshev1_hp.m

ListadoMatlab
% Halla y grafica la funcin transferencia
% de un filtro Chebyshev tipo 1, pasa-altos,
% con una ondulacin mxima de 1 db desde 10 kHz,
% y con una atenuacin 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 grficos

fs =2e3; fp =1e4;
%frecuencias limite en Hz
ws = 2*pi*fs ; wp = 2*pi*fp ;
%pulsaciones limite en radianes
Rp = 1;
%ondulacin mxima en la banda de paso [dB]
Rs = 80;
%atenuacin mnima en la banda de supresin [dB]
% Hallazgo de la funcin 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');

ResultadoqueaparecenenlaventanadecomandosdelMatlab

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

33

Figura1
5

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

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

Figura2

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

10

Frequency (Hz)

10

34

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

Comentariosyobservaciones

1)Enelmapadepolosycerosnoquedaclaro(porqueseproduceunasuperposicin)queenelorigende
coordenadashayunceroquntuple.

2)Procesandolafuncintransferencia

H (s) =

s
s2
s2
2

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

Lafuncintransferenciasepuedeimplementarconunfiltropasaaltosdeorden1,ydosfiltrospasaaltos
deorden2.Todosdegananciaunitariaafrecuenciasaltas.Sedejaacargodellectorladeterminacinde
losotrosparmetrosdecadaunadeestasetapas

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

35

3.5Ejemplo4
Seaquesedeseadisearunfiltrosegnlasespecificacionesqueseencuentranenlosprimeroscomentarios
dellistadoquesigue,yquecorrespondeaunarchivodenominadoellip_lp.m

% Disea un filtro pasa bajos Butterworth, con un atenuacin mxima de 1 db


% para las pulsaciones de hasta 2000 r/s y una atenuacin mnima 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;

%lmite de la banda pasante [r/s]


%lmite de la banda de atenuacin [r/s]
%atenuacin mxima en la banda de paso [dB]
%atenuacin mnima en la banda de supr.[dB]

%Determinacin del orden n y de la frecuencia normalizadora wn


[n, wn]
= ellipord (wp, ws, Rp, Rs, 's')
% determinacin 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 elptico [r/s]');
sgrid;
figure(2)
bodemag(H)
%grafica la magnitud [dB] de la transferencia
title('Respuesta en frecuencia del filtro pasa-bajos elptico');
grid on
axis([100 100000 -120 0]);

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

36

ResultadosqueaparecenenlaventanadecomandosdelMatlab

Figuras
4

2.5

Polos y ceros del filtro pasa-bajos elptico [r/s]

x 10

0.024

0.017

0.0115

0.008

0.005 0.0025
2e+004

0.038
1.5e+004

1.5

Imaginary Axis

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

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

37

Respuesta en frecuencia del filtro pasa-bajos elptico


0

-20

Magnitude (dB)

-40

-60

-80

-100

-120
2
10

10

10
Frequency (rad/sec)

10

ComentariosyObservaciones

1)Seobservarqueestefiltrotieneunabandadetransicinmuchomsestrechaqueladelejemplo1.Esto
esenparteporqueesfiltroesdemayororden(4envezde3)perofundamentalmentealapresenciadeuna
muescaenlabandaderechazo,prximaalabandapasante,caractersticadelfiltroelpticopasabajos.

2)Procesandolafuncintransferencia,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 funcin transferencia se puede implementar con dos filtros muesca pasabajos, uno de ganancia
unitariaafrecuenciasbajasyelotroconunagananciade0,8913adichasfrecuencias.Sedejaacargodel
lector la determinacin de los otros parmetros de cada una de estas etapas. El factor constante que
presentalafuncintransferencia(yquehemosoptadoporasignarlocomogananciadeunadelasetapas)
toma en cuenta que, debido a la ondulacin a frecuencias bajas, la magnitud de la transferencia a
frecuenciasceronoesunitariasino0,8913(equivalentea1dB,elvalordeRp)

38

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

3.6Ejemplo5
Se desea disear un filtro segn las especificaciones que se encuentran en los primeros comentarios del
listadoquesigue,yquecorrespondeaunarchivodenominadochevyshev1_bp.m

ListadoMatlab

% Disea un filtro Chebyshev, tipo 1, pasa-banda,


% con una ondulacin mxima de 1 db entre 5000 y 20000 Hz,
% y que presente una atenuacin 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 grficos

fs =[5e2 1e6]; fp =[5e3 2e4];


%frecuencias
ws = 2*pi*fs ; wp = 2*pi*fp ;
%pulsaciones
Rp = 1;
%ondulacin mxima en la banda de
Rs = 80;
%atenuacin mnima en la banda de

limite en Hz
limite en radianes
paso [dB]
supresin [dB]

[n, wn] = cheb1ord(wp, ws, Rp, Rs, 's');


[z,p,k,] = cheby1(n, Rp, wn, 'bandpass', 's');
H
= zpk(z,p,k)
%expresin 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');

ResultadosqueaparecenenlaventanadecomandosdelMatlab

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

39

Resultadosqueaparecenenladiversasfiguras
Figure1
5

1.5

x 10

Polos y ceros del filtro pasa-banda Chebyshev tipo 1


0.14

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

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

-20

Magnitude (dB)

-40

-60

-80

-100

-120
2
10

10

10

Frequency (Hz)

10

10

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

40

ComentariosyObservaciones

1) Enelmapadepolosycerosnoquedaclaro(porqueseproduceunasuperposicin)queenelorigen
decoordenadashayuncerocudruple.

2) La funcin transferencia de este filtro se puede implementar de distintas formas. Dos de las varias
posiblesson:
a)transformandolafuncintransferenciaenotradeltipo:

01
Q1

H (s) = k
s +s
2

02

01
Q1

Q2

s +s

2
01

02
Q2

03

Q3

s +s

2
02

03
Q3

04

Q4

s +s

2
03

04
Q4

2
04

Estatransferenciasecorrespondeconlaconexinseriede4filtrosdegananciaunitariapasabandade
sintona escalonada, con el agregado de una constante k para lograr que el filtro total alcance la
funcintransferenciadeseada,congananciaunitaria.
b)transformandolafuncintransferenciaenotradeltipo:

02

01
2
01

H (s) = k
s +s
2

Q1

Q2

2
01

s +s
2

02
Q2

03

Q3

2
02

s +s
2

03
Q3

s2

2
03

s +s
2

04
Q4

2
04

Estatransferenciasecorrespondeconlaconexinseriede4filtrosdegananciaunitaria(unpasabajos,
2pasabandayunpasaaltos),conelagregadodeunaconstantek(distintaqueladelcasoanterior)
paralograrqueelfiltrototalalcancelafuncintransferenciadeseada,congananciaunitaria.

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

41

3.7Ejemplo6
Seaquesedeseadisearunfiltrosegnlasespecificacionesqueseencuentranenlosprimeroscomentarios
dellistadoquesigue.,yquecorrespondeaunarchivodenominadoelip_sb.m

ListadoMatlab

% Obtiene y grafica la funcion transferencia de un filtro elptico suprimebanda,


% con una ondulacin mxima de 1 db hasta 500 Hz y desde 200 kHz,
% y que presenta una atenuacin >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 grficos

fp = [5e2 2e5]; fs = [5e3 2e4] ; % frecuencias lmite [Hz]


wp = 2*pi*fp ; ws = 2*pi*fs ; %pulsaciones lmite [r/s]
Rp = 1;
%ondulacin mxima admisible en la banda de paso [dB]
Rs = 100;
%atenuacin mnima admisible en la banda de atenuacin [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 elptico [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 elptico');

ResultadosqueaparecenenlaventanadecomandosdelMatlab

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

42

Figuras
6

Polos y ceros del filtro suprime-banda elptico [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

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 elptico


0

-20

Magnitude (dB)

-40

-60

-80

-100

-120

-140
2
10

10

10

Frequency (Hz)

ComentariosyObservaciones

10

10

1)Cuatrodelospolosestnmuycercadelorigen,ynosealcanzanadistinguirenelmapadepolosyceros.

Diseo de filtros analgicos 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
clculopuedehacerqueresultealgnceroconunacomponenterealmnima,frutodeimprecisionesenlas
operaciones,sehaoptado(verlistadodelarchivom)portomardeloscerosslosuparteimaginaria.

3) La implementacin de esta funcin transferencia, como el lector podr comprobar, requiere de la


conexinencascadade4etapas,dosdeellasmuescapasabajosylasotrasdosmuescaspasaaltos.
Elfactorconstantequepresentalafuncintransferenciatomaencuentaquedebidoalaondulacinenla
bandapasante,lamagnituddelatransferenciaafrecuenciasceroeinfinitanoesunitariasino1dBo,en
valoresabsolutos,0,8913

44

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

3.8Ejemplo7
Seaquesedeseadisearunfiltrosegnlasespecificacionesqueseencuentranenlosprimeroscomentarios
dellistadoquesigue,yquecorrespondeaunarchivodenominadocheby2_sb.m

% Obtiene y grafica la funcion transferencia


% de un filtro chebyshev inverso suprime-banda,
% con una atenuacin mxima de 1 db hasta 500 Hz y desde 200 kHz,
% y que presenta una atenuacin >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;
%atenuacin mxima
Rs = 80;
%atenuacin mnima

; % frecuencias lmite [Hz]


; %pulsaciones lmite [r/s]
admisible en la banda de paso [dB]
admisible en la banda de atenuacin [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');

ResultadosqueaparecenenlaventanadecomandosdelMatlab

Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012

45

Figuras
6

Polos y ceros del filtro pasa-bajos elptico [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

10

10

Frequency (Hz)

10

10

ComentariosyObservaciones

Laimplementacindeestafuncintransferencia,comoellectorpodrcomprobar,requieredelaconexin
encascadade4etapas,dosdeellasmuescapasabajosylasotrasdosmuescaspasaaltos.