Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Filtros
En esta seccin se presentan algunas rutinas de Matlab relativas al papel de los filtros.
Recurdese que, a fin de cuentas, cualquier circuito elctrico es un filtro, ya que no respon-
de de la misma forma a todas las frecuencias aplicadas a su entrada.
En el primer apartado presentamos los cuatro tipos bsicos de filtros: paso bajo, paso
alto, paso banda, y de banda rechazada (o eliminada). Se indica una rutina distinta para cada
tipo. En todos los casos el filtro est caracterizado por su funcin de transferencia, expresa-
da como el cociente de dos polinomios de la variable s. El usuario ha de definir esta funcin
en las primeras lneas de cada rutina.
Hay ligeras diferencias entre las cuatro rutinas, por lo que resulta conveniente elegir la
correspondiente al tipo de filtro que se desea considerar. Si no se sabe a priori a qu tipo de
filtro corresponde una determinada funcin de transferencia, el usuario puede hacer una es-
timacin preliminar usando la instruccin freqs. La inspeccin de la curva de variacin del
mdulo con la frecuencia proporcionada por esta instruccin nos indicar el tipo de filtro
del que se trata.
Las rutinas presentadas en el primer apartado estn bsicamente enfocadas a propor-
cionar representaciones grficas tiles sobre el comportamiento de filtros. En ese sentido
tienen mucho parecido con las presentadas en el apartado 2.3. Lo que aaden de novedoso
es la representacin de la atenuacin introducida por el filtro y, sobre todo, el clculo de fre-
cuencias importantes (frecuencia central, frecuencias que limitan la banda de paso) para des-
cribir el comportamiento de un filtro.
El segundo apartado concierne a los filtros con respuesta Butterworth o Chebyshev.
Las rutinas contenidas en l permiten disear un filtro en funcin de la respuesta deseada.
El diseo empieza siempre con el clculo del prototipo de filtro paso bajo normalizado. A
esta tarea se le dedican dos rutinas especficas, dependiendo de la respuesta elegida por el
usuario. En el apartado tambin se indica cmo pasar del prototipo normalizado al filtro re-
almente deseado.
Tipos de filtros
Seguidamente se muestran las rutinas (y los resultados que permiten obtener) corres-
pondientes a los cuatro tipos bsicos de filtros.
%%%%% F I LTRO PASO BAJO %%%%%
c l ea r a ll ; % E li m i na va r i ab l es u t i l i zadas en o t r as r u t i nas
% Rango de f r ecuenc i as
d1 = 0 ; d2 = 6 ; pun t os = 10000 ;
w = l ogspace ( d1 , d2 , pun t os ) ;
% C l cu l os
modu l o = abs ( H ) ;
a t enua c i on = - 20 * l og10 ( modu l o ) ;
f ase = ( 180 / p i ) * unw r ap ( ang l e ( H )) ;
Hc = max ( modu l o ) / sq r t ( 2 ) ;
bandapa so = f i nd ( modu l o>=Hc ) ; n = l eng t h ( bandapa so ) ; wc = w ( n ) ;
% Rep r esen t ac i n g r f i ca
subp l o t ( 3 , 1 , 1 ) ;
sem il ogx ( w , modu l o , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' Mdu l o ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , -( 1 / 4 ) * max ( modu l o ) , ( 3 / 2 ) * max ( modu l o ) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) wc w ( pun t os ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
se t ( gca , ' y t i ck ' , [ 0 Hc max ( modu l o ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
t i t l e ( ' F il t r o paso ba j o ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 24 ) ;
subp l o t ( 3 , 1 , 2 ) ;
sem il ogx ( w , a t enua c i on , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' a t enua c i on ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , m i n ( a t enua c i on ) , max ( a t enua c i on ) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) wc w ( pun t os ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
se t ( gca , ' y t i ck ' , [ 0 a t enua c i on ( n ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
subp l o t ( 3 , 1 , 3 ) ;
sem il ogx ( w , f ase , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' Fase ( ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , -( 3 / 2 ) * max ( abs ( f ase )) , ( 3 / 2 ) * max ( abs ( f ase )) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) wc w ( pun t os ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
c l ea r a ll ; % E li m i na l as va r i ab l es u t i l i zadas en es t a r u t i na
Ejercicios sencillos con Matlab 67
Mdulo
0.7071
0
1 999.3094 1000000
atenuacion
a = 1000
H(s) = a
s+a
3.0073
1 999.3094 1000000
Frecuencia angular (rad/s)
100
50
Fase ()
-50
-100
1 999.3094 1000000
Frecuencia angular (rad/s)
c l ea r a ll ; % E li m i na va r i ab l es u t i l i zadas en o t r as r u t i nas
% Rango de f r ecuenc i as
d1 = 0 ; d2 = 6 ; pun t os = 10000 ;
w = l ogspace ( d1 , d2 , pun t os ) ;
% C l cu l os
modu l o = abs ( H ) ;
a t enua c i on = - 20 * l og10 ( modu l o ) ;
f ase = ( 180 / p i ) * unw r ap ( ang l e ( H )) ;
Hc = max ( modu l o ) / sq r t ( 2 ) ;
bandapa so = f i nd ( modu l o<=Hc ) ; n = l eng t h ( bandapa so ) ; wc = w ( n ) ;
% Rep r esen t ac i n g r f i ca
subp l o t ( 3 , 1 , 1 ) ;
sem il ogx ( w , modu l o , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' Mdu l o ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , -( 1 / 4 ) * max ( modu l o ) , ( 3 / 2 ) * max ( modu l o ) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) wc w ( pun t os ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
se t ( gca , ' y t i ck ' , [ 0 Hc max ( modu l o ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
t i t l e ( ' F il t r o paso a l t o ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 24 ) ;
subp l o t ( 3 , 1 , 2 ) ;
sem il ogx ( w , a t enua c i on , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' a t enua c i on ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , m i n ( a t enua c i on ) , max ( a t enua c i on ) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) wc w ( pun t os ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
se t ( gca , ' y t i ck ' , [ 0 a t enua c i on ( n ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
subp l o t ( 3 , 1 , 3 ) ;
sem il ogx ( w , f ase , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' Fase ( ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , -( 3 / 2 ) * max ( abs ( f ase )) , ( 3 / 2 ) * max ( abs ( f ase )) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) wc w ( pun t os ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
c l ea r a ll ; % E li m i na l as va r i ab l es u t i l i zadas en es t a r u t i na
Ejercicios sencillos con Matlab 69
Mdulo
0.7071
0
1 999.3094 1000000
atenuacion
a = 1000
H(s) = s
s+a
3.0133
1 999.3094 1000000
Frecuencia angular (rad/s)
100
Fase ()
50
0
-50
-100
1 999.3094 1000000
Frecuencia angular (rad/s)
Con relacin a esta rutina pueden hacerse observaciones similares a las correspondien-
tes al caso del filtro paso bajo.
%%%%% F I LTRO PASO BANDA %%%%%
c l ea r a ll ; % E li m i na va r i ab l es u t i l i zadas en o t r as r u t i nas
% Rango de f r ecuenc i as
d1 = 1 ; d2 = 5 ; pun t os = 10000 ;
w = l ogspace ( d1 , d2 , pun t os ) ;
% C l cu l os
modu l o = abs ( H ) ;
a t enua c i on = - 20 * l og10 ( modu l o ) ;
f ase = ( 180 / p i ) * unw r ap ( ang l e ( H )) ;
Hc = max ( modu l o ) / sq r t ( 2 ) ; bandapa so = f i nd ( modu l o>=Hc ) ; n = l eng t h ( bandapa so ) ;
w1 = w ( bandapa so ( 1 )) ; w2 = w ( bandapa so ( n )) ; w0 = sq r t ( w1 * w2 ) ;
bandapa so0 = f i nd ( w<=w0 ) ; n0 = l eng t h ( bandapa so0 ) ;
% Rep r esen t ac i n g r f i ca
subp l o t ( 3 , 1 , 1 ) ;
sem il ogx ( w , modu l o , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' Mdu l o ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , -( 1 / 4 ) * max ( modu l o ) , ( 3 / 2 ) * max ( modu l o ) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) r ound ( w1 ) r ound ( w0 ) r ound ( w2 ) w ( pun t os ) ] ,
' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
se t ( gca , ' y t i ck ' , [ 0 Hc max ( modu l o ) ] , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
t i t l e ( ' F il t r o paso banda ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 24 ) ;
subp l o t ( 3 , 1 , 2 ) ;
sem il ogx ( w , a t enua c i on , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' a t enua c i on ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , m i n ( a t enua c i on ) , max ( a t enua c i on ) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) r ound ( w1 ) r ound ( w0 ) r ound ( w2 ) w ( pun t os ) ] ,
' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
se t ( gca , ' y t i ck ' , [ 0 a t enua c i on ( n0 ) a t enua c i on ( bandapa so ( 1 )) ] ,
' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
subp l o t ( 3 , 1 , 3 ) ;
sem il ogx ( w , f ase , ' b ' , ' L i neW i d t h ' , 2 ) ;
g r i d on ;
x l abe l ( ' F r ecuenc i a angu l a r (r ad / s ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
y l abe l ( ' Fase ( ) ' , ' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 14 ) ;
ax i s ( [ w ( 1 ) , w ( pun t os ) , -( 3 / 2 ) * max ( abs ( f ase )) , ( 3 / 2 ) * max ( abs ( f ase )) ] ) ;
se t ( gca , ' x t i ck ' , [ w ( 1 ) r ound ( w1 ) r ound ( w0 ) r ound ( w2 ) w ( pun t os ) ] ,
' Fon t Name ' , ' T i mes ' , ' Fon t s i ze ' , 12 ) ;
c l ea r a ll ; % E li m i na l as va r i ab l es u t i l i zadas en es t a r u t i na
Ejercicios sencillos con Matlab 71
Mdulo
0.7071
0
10 619 10001617 100000
atenuacion
a = 1000, b = 106
H(s) = as
s2 + as + b
3.0021
0
10 619 10001617 100000
Frecuencia angular (rad/s)
100
50
Fase ()
0
-50
-100
10 619 10001617 100000
Frecuencia angular (rad/s)
Obsrvese la forma particular en la que se especifican los puntos del eje de abscisas
que han de ser marcados especialmente; se utiliza la instruccin round (que redondea el ar-
gumento al entero ms prximo) con objeto de que los valores de las frecuencias particula-
res estn lo suficientemente separados como para ser ledos. Ntese tambin cmo se calcu-
lan las frecuencias que definen la banda de paso del filtro.
%%%%% FILTRO DE BANDA RECHAZADA %%%%%
% Rango de frecuencias
d1 = 1; d2 = 5; puntos = 10000;
w = logspace(d1, d2, puntos);
% Funcin de transferencia
R = 1; L = 0.001; C = 0.001;
s = i*w;
H = (s.^2 + 1/(L*C))./(s.^2 + (R/L)*s + 1/(L*C));
% Clculos
modulo = abs(H);
atenuacion = -20*log10(modulo);
fase = (180/pi)*unwrap(angle(H));
Hc = max(modulo)/sqrt(2); bandapaso = find(modulo<=Hc); n = length(bandapaso);
w1 = w(bandapaso(1)); w2 = w(bandapaso(n)); w0 = sqrt(w1*w2);
bandapaso0 = find(w<=w0); n0 = length(bandapaso0);
% Representacin grfica
subplot(3, 1, 1);
semilogx(w, modulo, 'b', 'LineWidth', 2);
grid on;
xlabel('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14);
ylabel('Mdulo', 'FontName', 'Times', 'Fontsize', 14);
axis([w(1), w(puntos), -(3/2)*min(modulo), (3/2)*max(modulo)]);
set(gca, 'xtick', [w(1) round(w1) round(w0) round(w2) w(puntos)],
'FontName', 'Times', 'Fontsize', 12);
set(gca, 'ytick', [0 min(modulo) Hc max(modulo)],
'FontName', 'Times', 'Fontsize', 12);
title ('Filtro de banda rechazada', 'FontName', 'Times', 'Fontsize', 24);
subplot(3, 1, 2);
semilogx(w, atenuacion, 'b', 'LineWidth', 2);
grid on;
xlabel('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14);
ylabel('atenuacion', 'FontName', 'Times', 'Fontsize', 14);
axis([w(1), w(puntos), min(atenuacion), max(atenuacion)]);
set(gca, 'xtick', [w(1) round(w1) round(w0) round(w2) w(puntos)],
'FontName', 'Times', 'Fontsize', 12);
set(gca, 'ytick', [0 atenuacion(bandapaso(1)) atenuacion(n0)],
'FontName', 'Times', 'Fontsize', 12);
subplot(3, 1, 3);
semilogx(w, fase, 'b', 'LineWidth', 2);
grid on;
xlabel('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14);
ylabel('Fase ()', 'FontName', 'Times', 'Fontsize', 14);
axis([w(1), w(puntos), -(3/2)*max(abs(fase)), (3/2)*max(abs(fase))]);
set(gca, 'xtick', [w(1) round(w1) round(w0) round(w2) w(puntos)],
'FontName', 'Times', 'Fontsize', 12);
Mdulo
0.9999
0.7071
0.000
10 619 10001617 100000
Frecuencia angular (rad/s)
60.7136
atenuacion
a = 1000, b = 106
H(s) = s2 + b
s2 + as + b
3.0185
10 619 10001617 100000
Frecuencia angular (rad/s)
100
50
Fase ()
0
-50
-100
10 619 10001617 100000
Frecuencia angular (rad/s)
Con respecto a esta rutina pueden hacerse observaciones similares a las correspondien-
tes a la rutina relativa al filtro paso banda.
4.1 Diseo de filtros
El diseo de filtros con respuestas Butterworth o Chebyshev (los nicos considerados
en este manual) comienza con el diseo de un prototipo de filtro paso bajo normalizado. Tal
diseo se efecta en funcin de las especificaciones del usuario sobre rangos de frecuencias,
atenuaciones a frecuencias dadas, y resistencias de generador y carga; naturalmente, tam-
bin es preciso especificar el tipo de filtro deseado (paso bajo, paso alto, paso banda y de
banda rechazada). Los resultados del diseo del prototipo son el nmero de elementos que
contiene aqul y los valores de tales elementos. El diseo conduce a resultados distintos
segn que la respuesta deseada sea Butterworth o Chebyshev.
Seguidamente se muestra una rutina que permite obtener el prototipo de filtro norma-
lizado. Como resultado intermedio, la rutina muestra la variacin de la atenuacin con la
frecuencia. La observacin de esta figura permite al usuario asegurar que se trata del tipo
de filtro en el que est interesado y que cumple las especificaciones sobre atenuacin
%%%%% PROTOTIPO DE FILTRO NORMALIZADO (Butterworth) %%%%%
% Rango de frecuencias
% Normalizacin de frecuencias
if tipo == 1
wnorm = ws/wc; wn = w/wc;
elseif tipo == 2
wnorm = wc/ws; wn = wc./w;
elseif tipo == 3
wnorm = ((ws/w0) - (w0/ws))/bwrel; wn = ((w/w0) - (w0./w))/bwrel;
else
wnorm = bwrel/((ws/w0) - (w0/ws)); wn = bwrel./((w/w0) - (w0./w));
end
Ejercicios sencillos con Matlab 75
if wnorm <= 1
disp('El filtro no es realizable con las especificaciones indicadas');
else
A = 10*log10(1 + wn.^(2*n));
semilogx (w, A, 'b', 'LineWidth', 2);
grid on;
xlabel('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14);
ylabel ('Atenuacin (dB)', 'FontName', 'Times', 'Fontsize', 14);
axis([w(1), w(puntos), min(A), (3/2)*max(A)]);
hold on;
end
200
Atenuacin (dB)
i=1 2 3
150
g=1 2 1
100
50
0 0 1 2 3 4 5 6
10 10 10 10 10 10 10
% Rango de frecuencias
% Normalizacin de frecuencias
if tipo == 1
wnorm = ws/wc; wn = w/wc;
elseif tipo == 2
wnorm = wc/ws; wn = wc./w;
elseif tipo == 3
wnorm = ((ws/w0) - (w0/ws))/bwrel; wn = ((w/w0) - (w0./w))/bwrel;
else
wnorm = bwrel/((ws/w0) - (w0/ws)); wn = bwrel./((w/w0) - (w0./w));
end
if wnorm <= 1
disp('El filtro no es realizable con las especificaciones indicadas');
else
rango1 = find(wn<=1);
A(rango1) = 10*log10(1 + amax*cos(n*acos(wn(rango1))).^2);
rango2 = find(wn>1);
A(rango2) = 10*log10(1 + amax*cosh(n*acosh(wn(rango2))).^2);
semilogx (w, A, 'b', 'LineWidth', 2);
grid on;
xlabel('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14);
ylabel ('Atenuacin (dB)', 'FontName', 'Times', 'Fontsize', 14);
axis([w(1), w(puntos), min(A), (3/2)*max(A)]);
hold on;
else
if Rg > Rl % Estructura del filtro
disp('El filtro empieza con un elemento en paralelo')
else
disp('El filtro empieza con un elemento en serie')
end
end
250
200
El filtro empieza con un elemento en serie
Atenuacin (dB)
i=1 2 3
g = 4.3069 0.5637 4.1090 150
100
50
0 1 2 3 4 5 6
10 10 10 10 10 10 10
Frecuencia angular (rad/s)
En las rutinas precedentes el usuario puede modificar los datos correspondientes para
que el clculo se ajuste a lo que realmente desea.
Una vez calculados los elementos del prototipo normalizado (sea cual sea la respuesta
deseada), lo que procede es obtener el filtro real; es decir, obtener los valores de las induc-
tancias y capacidades que realmente constituyen en el filtro. La rutina que sigue permite re-
alizar tal clculo.
Ejercicios sencillos con Matlab 79
% Inicializacin
for i = 1:n
L(i) = 0; C(i) = 0;
end
while i<=n
L(i) = Rg*g(i)/wc;
if i<n
C(i+1) = g(i+1)/(Rg*wc);
end
i = i + 2;
end
end
end
if tipo == 2
i = 1;
if est == 1
while i<=n
L(i) = Rg/(g(i)*wc);
if i<n
C(i+1) = 1/(Rg*g(i+1)*wc);
end
i = i + 2;
end
else
while i<=n
Ejercicios sencillos con Matlab 81
C(i) = 1/(Rg*g(i)*wc);
if i<n
L(i+1) = Rg/(g(i+1)*wc);
end
i = i + 2;
end
end
end
if tipo == 3
i = 1;
if est == 1
while i<=n
L(i) = Rg*bwrel/(g(i)*w0); C(i) = g(i)/(bwrel*Rg*w0);
if i<n
L(i+1) = Rg*g(i+1)/(bwrel*w0);
C(i+1) = bwrel/(Rg*g(i+1)*w0);
end
i = i + 2;
end
else
while i<=n
L(i) = Rg*g(i)/(bwrel*w0); C(i) = bwrel/(Rg*g(i)*w0);
if i<n
L(i+1) = Rg*bwrel/(g(i+1)*w0);
C(i+1) = g(i+1)/(bwrel*Rg*w0);
end
i = i + 2;
end
end
end
if tipo == 4
i = 1;
if est == 1
while i<=n
L(i) = Rg/(bwrel*g(i)*w0); C(i) = bwrel*g(i)/(Rg*w0);
if i<n
L(i+1) = bwrel*Rg*g(i+1)/w0;
C(i+1) = 1/(bwrel*Rg*g(i+1)*w0);
end
i = i + 2;
end
else
while i<=n
L(i) = bwrel*Rg*g(i)/w0; C(i) = 1/(bwrel*Rg*g(i)*w0);
if i<n
L(i+1) = Rg/(bwrel*g(i+1)*w0);
C(i+1) = bwrel*g(i+1)/(Rg*w0);
end
i = i + 2;
end
end
end
% Resu l t ados
i f es t == 1
d i sp ( ' E l f il t r o emp i eza con un e l emen t o en pa r a l e l o ' )
e l se
d i sp ( ' E l f il t r o emp i eza con un e l emen t o en se r i e ' )
end
c l ea r a ll ; % E li m i na l as va r i ab l es u t i l i zadas en es t a r u t i na
Los resultados que produce esta rutina son como los que se muestran seguidamente.
El f il t r o emp i eza con un e l emen t o en pa r a l e l o
i = 1 2 3
g = 3 . 7274 0 . 6457 3 . 6479
L = 0 . 0005 0 . 1291 0 . 0005
C = 1 . 0e - 03 * 0 . 2071 0 . 0009 0 . 2027
Ejercicio 13
Determinar el tipo (paso alto, paso bajo, paso banda, de banda eliminada) del filtro
cuya funcin de transferencia es
s s 2 + sR + 1
H(s) = RC L LC
2
s4 + s3 R + 1 + 4s + s R + 1 + 1
L RC LC LC L RC L 2C2
en la que R = 1 , L = 1 H y C = 1 F.
Obsrvese la influencia de R en la frecuencia a la que se obtiene el mximo del mdulo
de la funcin de transferencia y en la anchura de la banda de paso (considrense, por ejem-
plo, los valores 1, 3, 5 y 7 ).
Ejercicios sencillos con Matlab 83
Ejercicio 14
Disear un filtro paso banda con respuesta Chebyshev que debe ser insertado entre
sendas resistencias de 50 (generador) y 75 (carga). La frecuencia central del filtro ser de
10000 rad/s, y el ancho de banda del 10 %. Dentro de la banda de paso, la atenuacin m-
xima ser de 3 dB. Para una frecuencia de 30000 rad/s, el filtro ha de presentar una atenua-
cin mnima de 70 dB.