Lab5PDS

8
11 Laboratorio 5 Dise˜ no de Filtros Digitales RII en Matlab En esta pr´ actica se dise˜ nar´ an filtros digitales RII empleando las funcio- nes contenidas en Matlab. Una parte importante de esta pr´ actica es la implantaci´ on de filtros en tiempo real. En la implantaci´ on de estos filtros se hace uso de los macros y rutinas de inicializaci´ on dadas por Motorola. Se espera que al realizar esta pr´ actica el alumno comprenda las propie- dades de las funciones de transferencia de segundo orden dadas por H (z)= b 0 + b 1 z -1 + b 2 z -2 1 - a 1 z -1 + a 2 z -2 . Para trabajar con este tipo de estructura se necesita escribir la funci´ on de transferencia H (z) como el producto de secciones de segundo orden SSO (SOS en Matlab), tambi´ en llamadas secciones bicuadr´ aticas o simplemente bicuads. As´ ı pues H (z) = n/2 Y i=1 b 0i + b 1i z -1 + b 2i z -2 1 - a 1i z -1 + a 2i z -2 = K n/2 Y i=1 1+ b 0 1i z -1 + b 0 2i z -2 1 - a 0 1i z -1 + a 0 2i z -2 , donde K=ganancia total, y b 0 1i = b 1i /b 0i ,y b 0 2i = b 2i /b 0i . El sub´ ındice i indica el n´ umero de la SSO. 213

Transcript of Lab5PDS

Page 1: Lab5PDS

11Laboratorio 5

Diseno de Filtros Digitales RII enMatlab

En esta practica se disenaran filtros digitales RII empleando las funcio-nes contenidas en Matlab. Una parte importante de esta practica es laimplantacion de filtros en tiempo real. En la implantacion de estos filtros sehace uso de los macros y rutinas de inicializacion dadas por Motorola.

Se espera que al realizar esta practica el alumno comprenda las propie-dades de las funciones de transferencia de segundo orden dadas por

H(z) =b0 + b1z

−1 + b2z−2

1− a1z−1 + a2z−2.

Para trabajar con este tipo de estructura se necesita escribir la funcionde transferencia H(z) como el producto de secciones de segundo orden SSO(SOS en Matlab), tambien llamadas secciones bicuadraticas o simplementebicuads. Ası pues

H(z) =

n/2∏

i=1

b0i + b1iz−1 + b2iz

−2

1− a1iz−1 + a2iz−2

= K

n/2∏

i=1

1 + b′1iz−1 + b′2iz

−2

1− a′1iz−1 + a′2iz

−2,

donde K=ganancia total, y b′1i = b1i/b0i, y b′2i = b2i/b0i. El subındice iindica el numero de la SSO.

213

Page 2: Lab5PDS

214 11.1. FILTROS BUTTERWORTH

Al trabajar en un procesador de punto fijo como el DSP56002 se requierede una adecuada cuantizacion y escalamiento de los coeficientes. Los efectosde cuantizacion se pueden ver comparando la respuesta en frecuencia idealdel filtro con la respuesta real una vez implantado en el DSP.

En esta practica se hara uso de un juego de archivos M que han sidodisenados para hacer el proceso de diseno e implantacion de filtros RII masamigable. A ese juego de archivos se la ha llamado FDI (Filter Design andImplementation package); Se ejecuta bajo el ambiente Matlab y tiene lacapacidad de generar los archivos de coeficientes en lenguaje ensamblador,lo que permitira obtener de una manera muy facil el archivo .cld para sercargado y ejecutado en el DSP.

Antes de usar el FDI practique con los siguientes ejercicios.

11.1. Filtros Butterworth

buttord selecciona el orden mınimo de un filtro Butterworth digital quese requiere para cubrir las especificaciones de diseno.

[n,Wn]=buttord(Wp, Ws, Rp, Rs),

dondeWp = esquina de la frecuencia de pasoWs = esquina de la frecuencia de rechazoRp = atenuacion deseada en dB en la banda de pasoRs = atenuacion deseada en dB en la banda de rechazoWp y Ws son valores normalizados de frecuencia y deben estar entre 0 y 1.

Ejercicio 11.1 Encuentre el orden n para un FPb digital Butterworth conlas siguientes especificaciones: frecuencia de corte 2000 Hz con -2 dB de ate-nuacion y al menos -20 dB de atenuacion a 3000 Hz. Emplee una frecuenciade muestreo de 48 kHz.

Ejercicio 11.2 Trace la grafica de la respuesta en frecuencia usando freqz,que entrega la respuesta en frecuencia del filtro digital.

[H,f] = freqz(B,A,N,Fs)

entrega un vector f de frecuencias en N puntos y un vector H de la respuestaen frecuencia compleja en N puntos del filtro B/A:

H(ejω) =B(z)

A(z)

∣∣∣z=ejω

=b(1) + b(2)z−1 + · · · + b(nb + 1)z−nb

1 + a(2)z−1 + · · · + a(na + 1)z−na

∣∣∣z=ejω

,

G. Miramontes, ISBN 968-5923-15-9 Practicas de Laboratorio

Page 3: Lab5PDS

11.1. FILTROS BUTTERWORTH 215

donde B y A son los vectores de coeficientes del numerador y denominador.La respuesta en frecuencia se evalua en N puntos igualmente espaciadosalrededor del cırculo unitario.

freqz(B,A,...), sin argumentos de salida, traza la grafica de magnitudy de fase de B/A en la ventana activa.

Ejercicio 11.3 Trace el diagrama cero/polo sobre el plano z usando la ins-truccion zplane(B,A). Note que hacer los calculos a mano implica muchotrabajo, especialmente cuando el orden del filtro es alto (n=7 en este caso).

Ejercicio 11.4 Se requiere hacer una factorizacion de la funcion de transfe-rencia original para obtener las secciones de segundo orden (SSO). Matlab

contiene una funcion que hace precisamente eso, la funcion es

S = zp2sos(z,p,k)

donde S es una matrix que contiene las SSO:

S =

b01 b11 b21 a01 a11 a21...

b0L b1L b2L a0L a1L a2L

,

donde L=n/2, y n=orden del filtro. El numero de columnas es 6, mientrasque el numero de filas dependera del numero de SSO. El segundo subındiceindica el numero de SSO.

Note que aij, i = 0 . . . 2, j = 1 . . . L puede ser mayor a 1, de hechopuede ser −2 ≤ aij < 2. En este caso, debido a la aritmetica fraccionariadel procesador, los coeficientes son divididos entre dos antes de ser cargadosa la memoria.

Ejercicio 11.5 Explique como se puede implantar un filtro de septimo or-den usando secciones bicuads. (Tip: Encuentre la funcion de transferenciade cada seccion).

Ejercicio 11.6 Implantacion del filtro en el DSP56002 Usando loscoeficientes encontrados en el paso anterior, los macros y los archivos asm deesta practica, escriba los archivos necesarios para tener un archivo IIRLP.asm.Note que lo unico que se requiere modificar es el archivo que contiene loscoeficientes. Note tambien que los archivos de base pueden ser usados paracualquier tipo de filtro sea Butterworth, Chebyshev, Elıptico, etc. Una vezobtenido el archivo de coeficientes utilice el programa ensamblador asm56000para obtener el archivo .cld. Finalmente, ejecute el programa de aplicacionde Domain Technologies. El programa ensamblador se encuentra bajo eldirectorio c:\evm56kw.

G. Miramontes, ISBN 968-5923-15-9 Practicas de Laboratorio

Page 4: Lab5PDS

216 11.2. FILTROS CHEBYSHEV TIPO I

11.2. Filtros Chebyshev Tipo I

Cheb1ord selecciona el orden mınimo requerido para cumplir las especi-ficaciones de un filtro analogico o digital Chebyshev:

[n,Wn]=cheb1ord(WP,Ws,Rp,Rs)

Cheby1 disena filtros Chebyshev analogicos o digitales tipo I. La funcionempleada es

[z,p,k] = cheby1(n,Rp,Wn,’Ftipo’)

o bien,

[num,den] = cheby1(n,Rp,Wn,’Ftipo’),

donde Ftipo indica el tipo de filtro que se desea, por ejemplo High para pasa-altas, o Stop para rechazo de banda. Para filtros pasa-bajas no es necesarioespcificarlo. Para filtros pasa-banda y rechazo de banda, W’debe ser un vectorde dos elementos.

Ejercicio 11.7 Repita los pasos del ejercicio 11.1 al ejercicio 11.6 para unfiltro Chebyshev tipo I.

11.3. Filtros Elıpticos

ellipord selecciona el orden mınimo necesario para cumplir las especi-ficaciones de diseno de filtros elıpticos analogicos o digitales.

[n,Wn]=ellipord(Wp, Ws, Rp, Rs).

ellip disena filtros elıpticos pasa-bajas, pasa-altas, pasa-banda y recha-zo de banda analogicos o digitales. La funcion usada es

[z,p,k]=ellip(n,Rp, Rs,Wn,’Ftipo’).

Para la implantacion de filtros pasa-altas o pasa-banda se requiere se-guir el mismo procedimiento de diseno: especificar los requerimientos de larepuesta en frecuencia, encontrar el orden del filtro, encontrar la funcion detransferencia y luego aplicar un procedimiento de factorizacion para obtenerlas SSO.

Ejercicio 11.8 Disene un filtro elıptico con las especificaciones dadas en elejercicio 11.1 y repita los pasos hasta el ejercicio 11.6. Compare el orden y larespuesta en frecuencia de este filtro con los filtros Butterworth y Chebyshev.

G. Miramontes, ISBN 968-5923-15-9 Practicas de Laboratorio

Page 5: Lab5PDS

11.4. FDI PROGRAMA DE DISENO Y REALIZACION 217

11.4. FDI programa de diseno y realizacion

En el siguiente ejercicio se podra hacer uso de un juego de archivos Mque integran el procedimiento de diseno y realizacion de filtros digitales enel procesador de senales DSP56002/DSP56303.

En la version actual de FDI se pueden trabajar filtros Butterworth,Chebyshev tipo I, y elıpticos. No se incluye el diseno de filtros rechazo debanda.

Como ya se dijo, se tienen dos versiones de FDI, una para el sistema deevaluacion DSP56002EVM y otra para el DSP56303EVM. Dependiendo delsistema de evaluacion que tenga disponible utilice la version que correspon-da.

Ejercicio 11.9 Ejecute Matlab y en el espacio de trabajo introduzca lasiguiente orden: >>chdir c:\fdi2k2 para la version DSP56002EVM o>>chdir c:\fdi563x

para la version DSP56303EVM. Enseguida introduzca:mainfdi

Seleccione Lowpass como el filtro deseado sobre el boton Lowpass.y seleccione Butterworth

Ejercicio 11.10 Ahora es necesario introducir las especificaciones de fre-cuencia del filtro. Introduzca:

fp = 8000

fs = 10000

kp = 2

ks = 20

Fs = 48000

Seguido de esto seleccione Plot Freq. response.

Ejercicio 11.11 Una vez que se ha obtenido la grafica de la respuesta enfrecuencia se puede seleccionar la opcion write ASM file desde el menu don-de aparece select an option.

Dentro de FDI se puede seleccionar la opcion assemble, o si se desea sepuede ejecutar el siguiente ejercicio:

Ejercicio 11.12 Abra una ventana de DOS (no cierre la aplicacion de Win-dows). Donde aparece el cursor introduzca:>a: <enter>

luego cambie el directorio de trabajo a

>cd \fdi2k2\transpwork

G. Miramontes, ISBN 968-5923-15-9 Practicas de Laboratorio

Page 6: Lab5PDS

218 11.4. FDI PROGRAMA DE DISENO Y REALIZACION

o donde se encuentren sus archivos de trabajo. Enseguida introduzca>asm56000 -a -b -l iirlp

Esto generara el archivo iirlp.cld, el cual puede cargarse al modulo deevaluacion DSP56002EVM o DSP56303EVM, segun corresponda.

Nuevamente desde DFI se puede emplear la opcion Open Debugger paralanzar el programa de comunicacion con el DSP, o si se prefiere se puedeejecutar el siguiente ejercicio.

Ejercicio 11.13 Presione la teclas ALT+TAB para regresar a Windows. Eje-cute el programa de comunicacion con el DSP (Domain Technologies). Elmodulo de evaluacion debera estar encendido y conectado apropiadamenteal puerto serie de la computadora.

Una vez que se ha abierto el programa de comunicacion de DomainTechnologies, seleccione load b:\iirlp.cld, luego presione sobre el botonGO. Mida la respuesta en frecuencia del filtro que se esta ejecutando sobre elDSP. Si dispone de un analizador de redes la tarea sera mas facil. Se puedeusar la combinacion de teclas ALT+TAB para regresar a la ventana del FDIy comparar la respuesta en frecuencia obtenida en Matlab con la que seobtiene en tiempo real.

Ejercicio 11.14 Si no se tiene un analizador de redes, se puede hacer unamedicion aproximada de la respuesta en frecuencia utilizando un generadorde senales y un osciloscopio de doble trazo. Recuerde que la amplitud dela senal aplicada al DSP debe mantenerse dentro del margen dinamico delcircuito de entrada, no exceda la amplitud especificada por el fabricante opuede destruir el modulo. Una vez ajustada la amplitud, seleccione un puntode frecuencia sobre el generador y mida la amplitud de la senal a la entradaal DSP y de la senal de salida del DSP. Anote el valor de la frecuenciade prueba y la razon de amplitudes salida/entrada. Incremente el valor dela frecuencia de la senal del generador y repita la operacion. Realice estospasos hasta completar entre 10 y 20 puntos de frecuencia de modo que puedatrazar la grafica de la respuesta en frecuencia en magnitud del filtro. A estagrafica tambien se le conoce como grafica de Bode.

Ejercicio 11.15 Regrese al menu principal para disenar un nuevo filtro.Ahora seleccione Lowpass y luego Chebyshev.

Introduzca las mismas especificaciones de frecuencia. Se pueden usar lasteclas de flecha hacia arriba/hacia abajo para regresar a los datos introdu-cidos previamente.

Ejercicio 11.16 Repita los pasos para obtener un filtro pasa-bajas Chebys-hev ejecutandose en el DSP56002EVM/DSP56303EVM. Al observar la grafi-ca de la respuesta en frecuencia ¿es la respuesta en frecuencia similar a lade un filtro Chebyshev?

G. Miramontes, ISBN 968-5923-15-9 Practicas de Laboratorio

Page 7: Lab5PDS

BIBLIOGRAFIA 219

Ejercicio 11.17 Finalmente, seleccione Lowpass y Elliptic. Ahora intro-duzca las siguientes especificaciones:

fp = 5000

fs = 6000

kp = 1

ks = 50

Fs = 48000

Realice todos los pasos necesarios para disenar, ensamblar, cargar y ejecutarel filtro elıptico en el DSP56002EVM/DSP56303EVM. Mida la respuesta enfrecuencia. Verifique si la respuesta en frecuencia corresponde a la de unfiltro elıptico.

Bibliografıa

[1] The Student Edition of Matlab, Version 5 User’s Guide. The Math-Works, Inc., Prentice Hall, Upper Sadle River, NJ 07458, (1997).

G. Miramontes, ISBN 968-5923-15-9 Practicas de Laboratorio

Page 8: Lab5PDS

220 BIBLIOGRAFIA

G. Miramontes, ISBN 968-5923-15-9 Practicas de Laboratorio