Está en la página 1de 4

Filtros y sus estructuras en Matlab

Bolivar.W.Benitez.G.
Departamento de Elctrica y Electrnica en Redes y Comunicacin De Datos Escuela Politcnica del Ejrcito Quito, Ecuador E-mail: bvbenitez5@hotmail.com
Resumen Este artculo presenta los procedimientos de diseo e implementacin de filtros digitales recursivos y no recursivos en tiempo real, adems se presentan varias implementaciones para comprobar la validez del mtodo. Palabras clavespolos, zeros, descomposicion descomposicion paralela, funcion de transferencia. cascada,

Donde M y N son los terminos que determinan la cantidad de polos y ceros en la funcin de transferencia. Aplicando la transformada Z a la expresin anterior:

I.

INTRODUCCION

El filtrado digital es una parte muy importante en el procesamiento digital de seales debido a las numerosas aplicaciones en las que los filtros digitales son empleados. Estas aplicaciones que pueden ser biomdicas, acsticas, ssmicas, de instrumentacin y comunicaciones de audio y data, se resumen en dos usos generales: la separacin de seales que han sido mezcladas y la restauracin de seales que han sido distorsionadas II. 1) Filtros FIR. Existen varios tipos de estructuras para la implementacin de filtros IIR. Considere el siguiente filtro IIR: FUNDAMENTOS TEORICOS.

La diferencia de los filtros IIR y FIR es que los filtros FIR son de respuesta impulsiva finita y los IIR de respuesta impulsiva infinita. Podemos agregar que los filtros FIR no son recurrentes y los IIR si lo son. Es posible visualizar claramente estas diferencias mediante un filtro IIR de segundo orden en las siguientes figuras se muestran los tipos I y II:

Figura 1. Forma Directa I de un filtro de segundo orden IIR. Una forma alternativa de escribir una ecuacin de diferencia de un filtro IIR es por medio de 2 funciones de transferencia individuales en cascada, esto quiere decir: III. IMPLEMENTACION DE EXPERIMENTOS

A. Experimento 4.1 Considere la funcin de transferencia directa de forma:

2) Filtros IIR. Se trata de un tipo de filtros digitales en el que, como su nombre indica, si la entrada es una seal impulso, la salida tendr un nmero infinito de trminos no nulos, es decir, nunca vuelve al reposo. La salida de los filtros IIR depende de las entradas actuales y pasadas, y adems de las salidas en instantes anteriores. Esto se consigue mediante el uso de realimentacin de la salida.

En este experimento se buscara implementar un algoritmo en el cual se permita observar la forma matricial de cada uno de los elementos cuando estn expuestos a un filtro FIR o IIR cuando se da su ecuacin en su forma de funcin de transferencia: Para encontrar fcilmente los polos y ceros de una funcin en Matlab se utiliza las lneas de comandos siguientes:

Donde los a y b son los coeficientes del filtro. El orden es el mximo entre los valores de M y N.

En el comando tf2zp los polos y ceros complejos se dan en pares conjugados. Sin embargo estos pares complejos conjugados deben ser resueltos a partir de las races reales para componer los elementos de segundo orden de una realizacin cascada con coeficientes reales. Esto se realiza automticamente por el comando zp2sos, cuyo uso se muestra a continuacin:

Los datos de esta matriz corresponden a la realizacin:

Produciendo la siguiente matriz de valores, para este experimento:

La realizacin en paralelo de una funcin de transferencia dada se puede determinar con la ayuda del comando residuo que expresa H (z) como la suma mostrada a continuacin:

Que, teniendo kp = 1, corresponde a la descomposicin paralela tal que:

Una descripcin de espacio de estado que corresponde a una funcin de transferencia dada se determina fcilmente en Matlab con el comando tf2ss y se lo implementa en el experimento
de la siguiente manera:

Una vez ms establecido el comando residue, hay que separar los pares de polos complejos conjugados de los reales en PP para determinar los bloques paralelos de segundo orden con coeficientes estrictamente reales. Sin embargo, no se puede confiar en el comando zp2sos, que slo es adecuada para la descomposicin en cascada. La solucin es emplear el comando cplxpair, que sita las races reales despus de todos los pares de complejos, y reordenar el vector residuo rp en consecuencia, para permitir la combinacin adecuada de los residuos y los postes para formar los trminos de segundo orden, como en la secuencia de comandos a mostrada a continuacin:

Teniendo como resultados:

Con los valores determinados al realizar la comparacin con la tabla 4.2 se puede verificar que los datos obtenidos son los polos o zeros que la matriz A posee luego de ser establecida y estructurada mediante el algoritmo propuesto.

B. Ejercicio 4.31. Cree comandos de Matlab para llenar los espacios en blanco de la tabla 4.3. Para la creacin de comandos primero veremos la tabla 4.3 que es la siguiente:

Como se observo en todo el anlisis realizado los valores tanto de A como BT, C y D se los logro creando una matriz con sus valores establecidos por el comando tf2ss.

IV. A. Ejercicio 4.30

RESULTADOS EJERCICIOS

Volvamos a la descripcin de espacio de estado de H (z) como se indica en el experimento 4.1. (a) Utilice el comando eig en Matlab para determinar los valores propios de la matriz del sistema A y comparar sus resultados con los polos de H (z) proporcionados en la Tabla 4.2. Luego de utilizar el mismo algoritmo del experimento ahora comprobaremos los valores de la tabla 4.2 que se especifica a continuacin:
Tabla 4.3.

En los comandos que se muestran en la tabla son los mas utilizados y de gran importancia para crear nuevos comandos nos regiremos estrictamente a cumplir un algoritmo el cual debe estar especificado para cada transformacin lamentablemente los algoritmos osn complejos pero aun asi solo presento dos algoritmos para la forma directa y la otra para un filtro DII. Primer algoritmo para la forma directa. function y=filtroFDI(b,a,x,ci) M=length(b)-1; N=length(a)-1; a=reshape(a,1,N+1); b=reshape(b,1,M+1); x=reshape(x,1,length(x)); salidaspasadas=ci; if (length(ci)<N) disp(Longitud de las condiciones iniciales incorrecta); return; end entradaspasadas=[zeros(1,M+1)]; y=zeros(1,length(x)); if N>0 % hay realimentacion for i=1:length(x) entradaspasadas=[x(i) entradaspasadas(1:M)]; y(i)=(1/a(1))*(b*entradaspasadasa(2:N+1)*salidaspasadas); salidaspasadas=[y(i) salidaspasadas(1:N-1)]; end else % no hay realimentacion for i=1:length(x) entradaspasadas=[x(i) entradaspasadas(1:M)]; y(i)=(1/a(1))*(b*entradaspasadas); end end donde cada uno de los parmetros se especifica a continuacin. b: coeficientes parte directa, de la forma expresada en la ecuacion 3. a: coeficientes parte realimentada, de la forma expresada en la ecuacion 3.

Tabla 4.2. Con la tabla especificada ahora en el bloque de cdigo se implementara el comando eig el cual me permite d eterminar los

valores propios de la matriz A.

Dando como respuesta los siguientes valores:

x: vector que representa la se~nal de entrada ci: condiciones iniciales (y(-1),...,y(-N)). y: vector que representa la senal de salida. El numero de muestras calculadas de y sera igual a la longitud de x. Segundo algoritmo filtro FDII. function [y,zf]=filtroFDII(b,a,x,zi) M=length(b)-1; N=length(a)-1; a=reshape(a,1,N+1); b=reshape(b,1,M+1); x=reshape(x,1,length(x)); estado=zi; numretardos=max(M,N); %longitud vector estado if (numretardos!=length(estado)) disp(Longitud de las condiciones iniciales incorrecta); return; end y=zeros(1,length(x)); if numretardos>M b=[b zeros(1,numretardos-M)]; end if numretardos>N a=[a zeros(1,numretardos-N)]; end for i=1:length(x) temp=... y(i)=... if numretardos==1 estado=temp; else estado=[temp estado(1:numretardos-1)]; end endf zf=estado; Donde continuacin: sus parmetros se especifican a

mientras cuando la fase no toma gran importancia el empleo de filtros IIR, de menor coste, es el apropiado. Matlab ha facilitado en el clculo de filtros y estructuras ya que al establecer un algoritmo en el cual se visualiza el numero de polos y zeros que psee una en paralelo. El uso de nuevos comandos en este caso como el eig ha permido verificar valores propios que posee la estructura en paralelo y que no se pueden observar con un algoritmo determinado el uso de estos valores permitieron visualizar la cantidad de polos y zeros que posee independientemente cada matriz de la estructura paralela. Se pudo crear comandos con los cuales se solucionan a varias mtodos de estructuras estos son en cascada, paralelo, directo, variables de estado espacio. Los comandos establecidos en la tabla son los que se usan frecuentemente aunque tratar de crear nuevos comandos es sper complicado por el algoritmo que maneja cada uno se rige estrictamente a ocupar los comandos de que matlab ofrece para un mejor resultado y una correcta solucin. VI. BIBLIOGRAFA

Digital Signal Processing. A computer-based approach. S.K. Mitra. Ed. Mc-Graw Hill Diniz P. ( 2012).Digital Signal Processing. Segunda Edicin. 12-10-2012. Hayes M. (1999).Schaums outline of theory and problems of digital signal. Primera Edicion. 1210.2012. Alan V. Oppenheim and Ronald W. Schafer, Discrete-Time Signal Processing, 3rd Edition, Prentice Hall, ISBN 978-0131988422, 2009. Vinay K. Ingle, John G. Proakis, Digital Signal Processing Using Matlab, 3rd Edition, Cengage Learning, ISBN 978-1-111-42737-5, 2012.

b: coeficientes parte directa, de la forma expresada en la ecuacion 3. a: coeficientes parte realimentada, de la forma expresada en la ecuacion 3. x: vector que representa la senal de entrada zi=estado inicial zf=estado final y: vector que representa la senal de salida. Se calcularan tantas V. CONCLUSIONES

Se ha comprobado la importancia de disponer de una herramienta de clculo potente para el diseo de sistemas electrnicos complejos como pueden ser los filtros. Dentro de esas herramientas Matlab se sita como una de las ms empleadas y la que, por el momento, a conseguido mayor aceptacin y desarrollo. Por ende, hemos visto las principales caractersticas de los filtros digitales que se usan hoy da para aplicaciones diversas en los sistemas electrnicos. Se puede concluir que, cuando la fase juega un papel fundamental en el tratamiento de la seal es mejor el uso de filtros FIR de mayor coste pero de fase lineal.