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.