LABORATORIO DE ANÁLISIS Y SÍNTESIS DE CIRCUITOS

Anuncio
DEPARTAMENTO DE TEORÍA
DE LA SEÑAL Y
COMUNICACIONES
LABORATORIO
DE
DISEÑO DE FILTROS
PRÁCTICA 3: FILTROS PASIVOS
Práctica 3. Diseño de filtros pasivos
1
1.- Objetivos.
Esta práctica tiene por objeto usar los conocimientos adquiridos en el diseño de
filtros pasivos, de forma que mediante el uso de MATLAB podamos poner en marcha una
herramienta sencilla para la obtención de circuitos de filtrado pasivo, sin la parte tediosa
que supone realizar las operaciones a mano. Por otro lado se introducirá el uso de la
matemática simbólica por su especial potencia en esta tarea de diseño.
2.- Herramientas.
Para el desarrollo de ésta práctica necesitaremos únicamente MATLAB. Buena
parte de la programación utilizará el toolbox de funciones simbólicas. Este toolbox permite
la realización de cálculos en matemática simbólica, esto es, sin sustituir valores numéricos
y de manera literal. La ayuda de dicho toolbox se puede consultar simplemente poniendo
“help symbolic” en el entorno de comandos.
3.- Desarrollo y Cuestiones.
1. En este primer apartado aplicaremos por un lado lo aprendido en la teoría sobre la
realización de filtros pasivos y por otro empezaremos a utilizar funciones de
matemática simbólica. Para ello analizaremos el siguiente código.
function fpasivo(n,RG)
format short e; % Formato para la visualización
syms s w; % Creación de las variables simbólicas s y w.
k=1;
T=k/(1+w^(2*n)); %
rho=1-T; rho=simplify(rho); %
rho=simplify(subs(rho,'w','s/i')); %
[rhonum,rhoden]=numden(rho); %
polos=solve(rhoden,s);
ceros=solve(rhonum,s);
polos=double(polos(real(double(polos))<0)); %
ceros=double(ceros(real(double(ceros))<0)); %
denominador=poly2sym(poly(polos),'s'); %
if isempty(ceros)
numerador=subs('s^(n)','n',n);
Dpto. de Teoría de la Señal y Comunicaciones. Diseño de filtros. Curso 2009/2010.
Práctica 3. Diseño de filtros pasivos
2
else
numerador=poly2sym(poly(ceros),'s');
end
% (Comentar if anterior)
rhos=numerador/denominador; %
ze=simplify(RG*(1+rhos)/(1-rhos)); %
[num,den]=numden(ze);
num=sym2poly(num);
den=sym2poly(den);
n=1;
while length(den)>1
[q,r]=deconv(num,den); %
q=q(1); % Me quedo sólo con el cociente
if mod(n,2)
cadena=['Bobina serie de valor: ' num2str(q) ' Henrios']; %
else
cadena=['Condensador paralelo de valor: ' num2str(q) ' Faradios']; %
end
disp(cadena);
n=n+1;
num=den; %
den=r(r~=0); %
end
[q,r]=deconv(num,den); %
if mod(n,2)
cadena=['Bobina serie de valor: ' num2str(q(1)) ' Henrios']; %
disp(cadena);
cadena=['Resistencia serie de valor: ' num2str(q(2)) ' Ohmios']; %
disp(cadena);
else
cadena=['Condensador paralelo de valor: ' num2str(q(1)) ' Faradios']; %
disp(cadena);
cadena=['Resistencia paralelo de valor: ' num2str(q(2)) ' Ohmios']; %
disp(cadena);
end
El código anterior realiza las operaciones necesarias para la obtención de un filtro
pasivo, es decir, los componentes que lo forman. La primera tarea a realizar es
Dpto. de Teoría de la Señal y Comunicaciones. Diseño de filtros. Curso 2009/2010.
Práctica 3. Diseño de filtros pasivos
3
comentar las líneas del código indicando la función que realizan. Sólo es necesario
comentar las que tienen un signo “%” al final. Si se desean añadir comentarios
adicionales puede hacerse añadiendo más lineas. El código puede descargarse en la
página web de la asignatura.
2. Una vez comentado el código y conocido su funcionamiento se pide indicar el tipo
de filtro realizado, indicando aproximación y tipo de respuesta en amplitud.
3. Se puede comprobar en el código anterior, que el filtro realizado se corresponde
con el caso de resistencias terminales iguales, es decir, Rg y RL del mismo valor. Se
pide hacer las modificaciones necesarias para que el filtro realizado pueda tener
terminaciones distintas, es decir, Rg y RL de distinto valor. El valor de RL se añadirá
como parámetro de entrada a la función.
4. Los componentes obtenidos mediante la función estudiada están normalizados en
frecuencia, por tanto, sus valores son mucho mayores de los componentes que se
pueden utilizar en un circuito práctico. Se pide modificar el código para que los
componentes obtenidos estén desnormalizados a una pulsación determinada, que se
pasará como parámetro de entrada.
NOTA: La realización del apartado siguiente es opcional.
5. Con la función estudiada solo se puede hacer un tipo de filtro en función de su
respuesta en amplitud aunque sería deseable que se pudieran hacer todos los tipos
posibles. Para ello, se pide modificar el código para que, transformando
convenientemente los componentes, se pueda obtener el circuito correspondiente a
cualquier tipo de filtro según la respuesta en amplitud. Se pasarán como parámetro
de entrada el tipo de filtro a realizar y los parámetros de la transformación
correspondiente.
4.- Memoria
La memoria de esta práctica incluirá la respuesta a cada uno de los puntos del
apartado 3, incluyendo los comentarios que se crean necesarios sobre las soluciones
presentadas, los problemas detectados y las conclusiones obtenidas. Es conveniente incluir
las partes de código que se modifiquen, así como ejemplos de ejecución de la función para
comprobar el correcto funcionamiento de la misma.
Dpto. de Teoría de la Señal y Comunicaciones. Diseño de filtros. Curso 2009/2010.
Descargar