Professional Documents
Culture Documents
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
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
Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012
C
C
s
s 2 + C 2 C 1
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
-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
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
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
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
frecuenciasbajas),frecuencianatural0yfactordemritoQ
0
Q
s2 +
0
Q
+ 02
quecorrespondeaunfiltropasabandadeorden2,degananciaunitaria(ala
frecuencianatural),frecuencianatural0yfactordemritoQ
s2
s2 +
0
Q
+ 02
frecuenciasaltas),frecuencianatural0yfactordemritoQ
s 2 + 02
s2 +
0
Q
+ 02
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.
Chebyshev2
[z,p,k]=cheb2ap(n,Rs)
n:ordendelfiltro
Rs[dB]:atenuacinmnimapermitidaenlabandadeatenuacin,enestecasocoincideconla
ondulacin.
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)
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
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
[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
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
=
=
=
=
2000;
30000;
2;
60;
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)
-30
-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;
Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012
25
ResultadosqueaparecenenlaventanadecomandosdelMatlab
Resultadosqueaparecenenlasdiversasfiguras
Figura1
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
x 10
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
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
x 10
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
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
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
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
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
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
=
=
=
=
2000;
9000;
1;
80;
Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012
36
ResultadosqueaparecenenlaventanadecomandosdelMatlab
Figuras
4
2.5
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
-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
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
limite en Hz
limite en radianes
paso [dB]
supresin [dB]
ResultadosqueaparecenenlaventanadecomandosdelMatlab
Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012
39
Resultadosqueaparecenenladiversasfiguras
Figure1
5
1.5
x 10
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
ResultadosqueaparecenenlaventanadecomandosdelMatlab
Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012
42
Figuras
6
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
-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.
44
Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012
3.8Ejemplo7
Seaquesedeseadisearunfiltrosegnlasespecificacionesqueseencuentranenlosprimeroscomentarios
dellistadoquesigue,yquecorrespondeaunarchivodenominadocheby2_sb.m
ResultadosqueaparecenenlaventanadecomandosdelMatlab
Diseo de filtros analgicos con Matlab - Susana Canel y Jorge Sinderman junio 2012
45
Figuras
6
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
-20
Magnitude (dB)
-40
-60
-80
-100
-120
2
10
10
10
Frequency (Hz)
10
10
ComentariosyObservaciones
Laimplementacindeestafuncintransferencia,comoellectorpodrcomprobar,requieredelaconexin
encascadade4etapas,dosdeellasmuescapasabajosylasotrasdosmuescaspasaaltos.