capitulo5 filtros digitales fir iir

Upload: alfonsoable

Post on 06-Jul-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    1/33

    5. FILTROS DIGITALES

    Los filtros digitales son sistemas son usados para modificar el espectro de una señal,

    mediante el uso de hardware digital como bloque funcional básico (un DSP o un FPGA ,

    por ejemplo). Sus características los hacen apropiados un amplio campo de aplicaciones,

    entre las que se encuentra compresión de datos, procesamiento de señales biomédicas,

    procesamiento digital de audio, procesamiento de voz o procesamiento de imágenes. Seutilizan, al igual que los filtros análogos, para acondicionar señales según características

    específicas, extraer información de ellas o separar dos o más señales previamente

    combinadas. Consisten fundamentalmente en un algoritmo mediante el cual una señal

    digital o secuencia numérica denominada “entrada” se transforma en una segunda

    secuencia de números denominada señal digital de salida.

    Los filtros digitales se caracterizan, en términos generales, por ser sistemas predecibles ,

    flexibles, simulables, consistentes y precisos. Por una parte, es posible cambiar sus

    especificaciones mediante la reprogramación, sin la adición de componentes discretos

    como capacitores, resistores o bobinas (normalmente con un tamaño considerable y con

    variaciones en el funcionamiento dependientes de la temperatura o la humedad). De otro

    lado, su carácter digital permite calcular y simular su repuesta usando procesadores de

    uso general, y también implementar topologías no realizables mediante el uso de

    componentes físicos convencionales. En síntesis, estos sistemas incorporan las ventajas

    propias de los procesadores digitales, al filtraje se señales, si se quiere en tiempo real.

    A pesar de sus indiscutibles ventajas, los filtros digitales tienen una limitación inherente,

    que consiste en la imposibilidad de cumplir con los requerimientos del criterio de Nyquist

    de un ancho de banda estrictamente limitado previo al procesamiento digital de datos

    muestreados (ya sea un conversor A/D o un filtro basado en DSP). Se hace entonces

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    2/33

    necesario preceder el bloque de procesamiento digital de un filtro pasabanda análogo,

    como una parte obligatoria del sistema para prevenir el aliasing, que aparece cuando el

    ancho de banda de la señal de entrada es mayor que la mitad de la frecuencia de muestreo.

    Esto se puede visualizar claramente en la sección “ “Functional Block Diagram” delmanual SLAS014 de la interfaz de circuito análoga [1] donde se observa un bloque análogo

    de prefiltrado que puede ser programado mediante un valor determinado en el registro de

    control del AIC. Por esta razón, los filtros digitales no son siempre es la mejor solución. [2]

    Al momento de escoger los filtros que formarán parte de una determinada aplicación, es

    necesario considerar aspectos como el costo y utilización de recursos del sistema

    (conversión, carga en el procesador, memoria, inicialización y consumo de potencia)

    propios de una implementación digital y compararlos con su contraparte análoga. Esto se

    justifica, ya que en la actualidad se dispone de filtros análogos integrados dedicados y

    matched op amps de alto desempeño, que permiten realizaciones efectivas de filtros activos,

    haciendo atractivo el empleo de diseños análogos en algunas aplicaciones. El problema de

    ingeniería se resuelve una vez el diseño análogo cuente con componentes de bajo ruido.

    El diseño de filtros digitales normalmente involucra una etapa de aproximación, en la que

    se genera una función de transferencia que satisface las especificaciones de la aplicación, y

    en donde normalmente se estudian respuestas tanto en el dominio de la frecuencia como

    del tiempo. Luego se lleva a cabo la realización, en la que la función de transferencia se

    expresa en términos de una topología o redes de filtros, según las características del

    problema y la disponibilidad de recursos en el procesador. Los dos pasos anteriores

    parten de la base de un sistema de precisión infinita, y es por eso que se debe tener una

    etapa de implementación, relacionada con el hardware disponible y las rutinas de

    programación del procesador seleccionado. Este, por tener una precisión finita, obliga aldiseñador a estudiar los efectos de los errores matemáticos en la respuesta del filtro. En lo

    referente a este trabajo de grado, las etapas de aproximación y realización se ejecutan por

    medio de MATLAB y la etapa de implementación se fundamenta en las herramientas de

    desarrollo del DSK.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    3/33

    Una amplia variedad de filtros digitales es descrita por medio de una ecuación de

    diferencias lineal de coeficientes constantes, que relaciona la secuencia de entrada del filtro

    x(n) y la secuencia de salida del mismo y(n):

    ∑ ∑= =

    −+−= N

    k

    M

    k k k k n xbk n yan y

    0 0

    )()()( ( 5-1)

    Estos sistemas pueden ser representados por su secuencia de respuesta al impulso h(k)

    donde k=0,1,2,.., y la señal de salida se obtiene a partir de operaciones de suma y

    convolución de dicha secuencia con la señal digital de entrada. En términos de su

    repuesta al impulso los filtros digitales se clasifican de dos formas: FIR ( Finite Impulse

    Response) o filtros de respuesta finita al impulso; e IIR ( Infinite Impulse Response) o filtros de

    respuesta infinita al impulso, que deben su comportamiento a la existencia de lazos de

    realimentación en su estructura. Este será el tema de estudio de las siguientes secciones.

    5.1. FILTROS FIR

    5.1.1. CONCEPTOS BÁSICOS

    El modelo matemático de los filtros FIR también se fundamenta la ecuación de diferencias

    (5-1) , pero con la particularidad de que todos los coeficientes a k son iguales a cero. Se

    tiene entonces que la ecuación que los describe es función del conjunto de coeficientes bk y

    de la secuencia de entrada x(n).

    ∑=

    −= M

    k k k n xbn y

    0

    )()( , ( 5-2)

    donde M+1 corresponde a la longitud del filtro. Este sistema considera sólo las ultimas

    M+1 muestras de la señal de entrada y las pondera mediante los coeficientes bk . A este

    sistema se le denomina FIR, ya que su respuesta al impulso unitario (dada por los

    coeficientes bk ) es finita.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    4/33

    Su diseño requiere la selección de la secuencia que mejor representa la respuesta a

    impulso de un filtro ideal. Los filtros FIR son siempre estables y son capaces de tener una

    respuesta lineal en fase. Frente a los filtros IIR presentan la desventaja de requerir un

    orden mucho mayor.

    La salida del filtro es una suma finita de la entrada presente y las M entradas previas al

    filtro. En los sistemas lineales se tiene que la salida y[n] puede expresarse como la

    convolución de la señal de entrada con la función de respuesta al impulso del filtro.

    ∑=

    −∗= M

    k

    k n xk hn y0

    )()()( ( 5-3)

    Comparando esta última ecuación con (5-2) se tiene que

    )(k hbk = ( 5-4)

    y por lo tanto los coeficientes del filtro son equivalentes a la respuesta al impulso del filtro.

    Al aplicar un impulso a la entrada del sistema, se obtiene a la salida una respuesta de

    longitud limitada.

    Cuando se describe un sistema causal con respuesta finita al impulso, se usannormalmente estructuras no-recursivas. En tales casos la función del sistema tiene la

    forma

    ∑−

    =

    −=1

    0

    )()( N

    n

    n z nh z H ( 5-5)

    donde se tiene que :

    =

    −==1

    0)(

    )(

    )(

    N

    n

    n

    n z b z X

    z Y

    z H ( 5-6)

    siendo x(n) la entrada, y(n) la salida h(n) la función de respuesta al impulso y X(z) , Y(z) y

    H(z) sus respectivas transformadas Z. De (5-5) se tiene que H(z) es un polinomio de orden

    N-1 , que tiene polos en z=0 y N-1 ceros que pueden estar en cualquier parte del plano z [3].

    Esta ecuación puede ser representada mediante la estructura de la figura siguiente y es

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    5/33

    conocida como Forma Directa (los coeficientes del filtro se pueden leer directamente de la

    ecuación de diferencias). Las ramas marcadas con z -1 corresponden a un retraso de un

    periodo de muestreo en la ecuación (5-3) y a una multiplicación por z -1 en (5-4).

    En la sección 4.5 de [3] se discuten arquitecturas alternativas, al igual que consideraciones

    de linealidad de fase y simetría. De momento basta con aclarar que la respuesta al

    impulso de los sistemas FIR con fase lineal presentan la característica :

    )1()( n N hnh −−= ( 5-7)

    Figura 5-1. Forma Directa de un Sistema Causal y con Respuesta Finita al Impulso.

    5.1.2. DISEÑO DE FILTROS FIR CON MATLAB

    Este proceso corresponde a la etapa de aproximación descrita previamente en la

    introducción de este capítulo. Los pasos que normalmente se sigue son [4]:

    • Escoger una respuesta ideal, normalmente en el dominio de la frecuencia.

    • Escoger un tipo particular de filtro.

    • Escoger un criterio de medida para valorar la aproximación.

    • Definir un método para seleccionar la mejor aproximación según el criterio de

    aproximación.

    Estos pasos son repetidos asta encontrar unas especificaciones de filtro que se ajusten alproblema inicial. Es posible que en esta etapa del diseño se quiera redefinir la respuesta

    ideal, el tipo de filtro o el criterio de medida. De cualquier manera, MATLAB ofrece un

    conjunto de rutinas y funciones que permiten agilizar estos pasos, y eso es justamente lo

    que se busca mostrar en este capítulo.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    6/33

    5.1.2.1. FIR1: Diseño de filtros FIR mediante el método de ventanas.

    El script labfir1.m ofrece una rutina interactiva para el diseño de filtros FIR pasabajo ylos pasabanda. Los argumentos de esta función son fundamentalmente el orden del filtro N

    y la frecuencia normalizada de corte Wn, definida con en criterio 0

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    7/33

    exactamente igual, razón por la cual sólo se discute en esta sección el significado de los

    vectores F y M. Su estructura general es :

    » B=fir2(N,F,M,window);

    En el vector F se especifican las frecuencias “significativas” dentro del filtro, es decir,aquellas que corresponden a un punto de corte o que simplemente tienen alguna

    importancia en el diseño que se busca implementar. Se escriben tambien como fracciones

    de la frecuencia de Nyquist (f s/2) y por tanto sus valores responden a la

    condición 0=f(1)

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    8/33

    tamaño que F que indica la magnitud deseada para cada banda de frecuencias. La

    respuesta deseada es la línea que conecta los puntos (F(k),M(k)) y (F(k+1),M(k+1)) para k

    impar. Las bandas de frecuencia entre F(k+1) y F(k+2) para k impar son tratadas por firls

    como bandas de transición o de “no importa”.

    También existe un argumento opcional, el vector W cuyo tamaño es la mitad de F. Los

    elementos de W asignan un factor de error para cada una de las bandas especificadas en F.

    B=FIRLS(N,F,M,'Hilbert'), FIRLS(N,F,M,W,'Hilbert'), B=FIRLS(N,F,M,'differentiator') y

    B=FIRLS(N,F,M,W,'differentiator') quedan para ser estudiados por el lector.

    5.1.2.4. REMEZORD : Estimador de orden para FIR.

    Se usa para le especificación de parámetros de filtros pasabajo, pasaalto, pasabanda,

    multibanda. Los argumentos de entrada son el orden del filtro dos vectores F es un vector

    que contiene las frecuencias de corte y está definido en Hertz ; su magnitud es el doble del

    vector M más dos y por lo tanto siempre es par. M contiene la magnitud para cada banda.

    DEV es un vector que contiene el valor de ripple máxmio permitido para cada banda. Fs

    es la frecuencia de muestreo del sistema. La instrucción se escribe así:» [N,Fo,Mo,W] = REMEZORD(F,M,DEV,Fs)

    Los valores calculados son el orden N aproximado del filtro, límites de las bandas en

    frecuencia normalizada Fo, magnitudes de cada banda Mo, y el vector de error permitido

    para cada banda. y corresponden a la mejor aproximación a la respuesta en frecuencia, de

    acuerdo con el criterio minimax. Estos valores, al ser incluidos en la instrucción REMEZ,

    generan los coeficientes de un filtro FIR que se aproxima a la respuesta deseada en

    frecuencia, descrita por (F,M). Es necesario tener en cuenta dos aspectos relacionados con

    esta función. El orden es normalmente menor al valor de orden correcto para implementar

    un filtro específico. En caso de no tener una respuesta adecuada con el valor N generado

    pro remez se recomienda implementar un filtro de orden N= N+1 o N+2.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    9/33

    5.1.2.5. REMEZ: Diseño de Filtros FIR Óptimos Equirripple (Parks-McClellan)

    Los argumentos de entrada son el orden del filtro dos vectores F es un vector que contiene

    las frecuencias normalizadas de corte, es decir, 0

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    10/33

    Tomando como punto de partida la ecuación (5-3), se puede inferir que es necesario

    disponer de un espacio en la memoria del DSP para almacenar los M+1 coeficientes del

    filtro, que han sido obtenidos en la etapa de diseño del filtro y también un espacio para las

    M+1 muestras de la señal que intervienen en cada ciclo (cada periodo de muestreo) en elcálculo de la misma ecuación. Teniendo en cuenta la forma en que se ejecutan

    instrucciones de multiplicación y desplazamiento típicas de las operaciones de

    convolución el los procesadores TMS320C50, se recomienda disponer los datos en

    memoria de la siguiente forma [6]

    Figura 5-2. Esquema de almacenamiento para el filtro FIR basado en el lazo.

    Se puede implementar el algoritmo de los filtros FIR utilizando las instrucciones LTD y

    MPY [6]. Por ejemplo :

    LTD XLASTMPY H1

    XLAST carga el registro temporal TREG0 con los contenidos de la dirección que

    corresponde a XLAST. Suma el producto de la multiplicación anterior (PREG) al

    acumulador, según el contenido de los bits PM. Finalmente desplaza el dato en XLAST a

    la siguiente posición (superior) de memoria. MPY multiplica los contenidos de TREG0

    (XLAST) con los contenidos de H1 [6].

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    11/33

    Un segmento de código basado en este par de instrucciones requeriría bastantes líneas de

    código (espacio en memoria de programa) y sería poco práctico para la implementación de

    filtros de orden relativamente grande. El segmento de código encargado de filtrar sería elsiguiente (se supone que ya se inicializó el sistema y se han definido el vector de

    interrupciones y todo lo que haga falta):

    RECEIVE : LDP #XN ;CLRC INTM ; Captura de dato del AICLAMM DRR ; y almacenamiento en XNSACL XN ;

    ZAP ; Cero ACC y PREG

    LT XLAST ; Primera multiplicacionMPY H79 ; No desplazamiento

    ************************************************************* Se repite el mismo segmento para cada coeficiente, desde ** LT XNM78, MPY H78 hasta LT XNM2, MPY H2, es decir falta ** agregar 152 líneas de código ! ! ! *************************************************************

    LTD XNM1 ; TREG = XNM1 = X(N-1)MPY H1 ; TREG*H1

    LTD XN ; TREG = XNM = X(N)MPY H0 ; TREG*H0

    APAC ; (PREG)+ACC

    SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signoLACC OUTPUT ; OUTPUT->ACCSFLAND #0fffc ; Ultimos bits al AIC =0

    SAMM DXR ; Escribir en reg de X-misionRETE ; Volver a esperar otra muestra

    Figura 5-3. Rutina de programación de un filtro FIR usando LTD y MPY.

    Una alternativa más eficiente utilizaría instrucciones de direccionamiento indirecto para

    implementar la ecuación del filtro FIR, esto gracias a las mejoras en diseño y a la

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    12/33

    disponibilidad de instrucciones más poderosas. El código tendría más o menos las

    siguientes instrucciones :

    MAR *,AR0 ; AR0 es el AR actual

    RECEIVE : LDP #XN ;CLRC INTM ; Captura de dato en el AICLAMM DRR ; y almacenamiento en XNSACL XN ;

    LAR AR0,#XLAST ; Definicion deLAR AR1,#H79 ; apuntadores

    ZAP ; Cero ACC y PREG

    LT *-,AR1 ; Primera multiplicacionMPY *-,AR0 ; No desplazamiento

    LAZO : LTD *,AR1 ; AR0->TREG, 1->ARPMPY *-,AR0 ; Hxx*TREG , 0->ARPBANZ LAZO ; Si (AR0) no cero

    : (AR0)-1 -> AR0

    APAC ; (PREG)+ACC

    SACH OUTPUT,1 ;LACC OUTPUT ;SFL

    AND #0fffc ;

    SAMM DXR ;RETE ; Volver y esperar otra muestra

    Figura 5-4. Programación de un filtro FIR usando un “loop ” y direccionamiento indirecto.

    Este segmento de código resulta mucho más compacto y controla por si mismo el

    direccionamiento de los factores (coeficientes muestras de la señal), liberando al

    programador de esa tarea. La convolución está a cargo nuevamente de las instrucciones

    LTD y MPY. Se recomienda leer la instrucción BANZ y el direccionamiento indirecto. El

    esquema de memoria utilizado en este caso es el siguiente :

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    13/33

    Figura 5-5. Esquema de almacenamiento para el filtro FIR usando un lazo

    La rutina que se escribe a continuación utiliza la instrucción MACD, encargada de y sumar

    al acumulador el producto anterior (según la definición de los bits PM), multiplicar un

    valor de memoria de datos (dma) por un valor de memoria de programa. En el caso deque la dma esté la RAM del DSP, copia el contenido del dma a la dirección inmediatamente

    superior, lo que corresponde a una multiplicación por z-1 o un retraso en el tiempo.

    MACD, en resumen, es una operación de tres-ciclos que realiza las funciones que se

    presentan al ejecutar las instrucciones LTD y MPY, con la ventaja de que al estar incluida

    en un ciclo de repetición (Ver RPT y RPTZ en (Manual de Usuario C50) se convierte en

    una operación de multiplicación/acumulación de ciclo-único (User manual, página 3-9).

    Cada “tab” del filtro se calcula en aproximadamente 50 ns. Este procedimiento es más

    eficiente cuando el orden del filtro es mayor que tres.

    RECEIVE: LDP #XN ; CLRC INTM ;Habilita int’s para debugger LAMM DRR ; Captura un dato del AIC y

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    14/33

    SACL XN ; lo guarda en XN

    LAR AR0,#XNLAST ;direccion(XLAST)->AR0

    ZAP ;Cero ACC y PREG MAR *,AR0 ; AR0 es AR activo

    RPT #80 ; repite el cálculo 81 veces MACD #h0,*- ; por toda la tabla de coef’s. APAC ; Acumula el ultimo producto

    SACH OUTPUT,1 ;LACC OUTPUT ;SFL ; Preparar el resultadoAND #0fffc ;SAMM DXR ; Enviar por puerto de salidaRETE ; Volver y esperar otra muestra

    Figura 5-6. Programación de un filtro FIR usando un lazo y direccionamiento indirecto.

    Para que se pueda utilizar todo el potencial de la instrucción MACD se debe tener un

    esquema de almacenamiento en memoria apropiado, descrito por la siguiente figura :

    Figura 5-7. Esquema de almacenamiento para el filtro FIR basado en la instrucción MACD

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    15/33

    Cabe notar que las rutinas descritas en estos segmentos de código están incluidas como

    parte del servicio de la interrupción RECEIVE, que debe estar definida en algún lugar del

    código correspondiente.

    5.2. FILTROS IIR

    5.2.1. CONCEPTOS BÁSICOS

    Los conceptos utilizados en el estudio de los filtros FIR pueden ser aprovechados para los

    filtros IIR. El punto de partida nuevamente es la ecuación de diferencias lineal de

    coeficientes constantes (5-1)

    ∑ ∑= =

    −+−= N

    k

    M

    k k k k n xbk n yan y

    0 0

    )()()( ( 5-8)

    Pero en este caso por lo menos uno de los coeficientes ak no es cero. Así, se tiene que la

    transformada z de la respuesta al impulso unitario de la función de transferencia es :

    =

    =

    −== N

    k

    k k

    M

    k

    k k

    z a

    z b

    z X z Y

    z H

    0

    0

    1)()(

    )( ( 5-9)

    siendo x(n) la entrada, y(n) la salida h(n) la función de respuesta al impulso y X(z) , Y(z) y

    H(z) sus respectivas transformadas Z. La ecuación (5-9) puede ser implementada de

    diferentes formas. Las más utilizadas y estudiadas son la Forma Directa, la Forma de

    Cascada y la Forma Paralela. Su desarrollo se observa en la sección de implementación en

    el DSK[3].

    5.2.2. DISEÑO DE FILTROS IIR CON MATLAB

    Existe una amplia variedad de funciones para calcular los coeficientes de un filtro IIR, por

    medio de MATLAB. Se tienen herramientas que calculan los parámetros apropiados

    según la aplicación y otras que usan esta información para calcular los coeficientes.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    16/33

    5.2.2.1. Funciones para determinar el orden de un filtro determinado.

    Todas estas funciones están incorporadas en MATLAB. En el caso de quererse un filtroanálogo de cualquiera de estos tipos, se agrega el argumento ‘s’ como último argumento

    (con todo y comillas). Tienen además la misma estructura y usan los mismos argumentos

    de entrada.»[N, Wn] = función(Wp, Ws, Rp, Rs)

    Las especificaciones de diseño son :

    Wp : Frecuencia de pasabanda (Banda de paso normalizada 0

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    17/33

    que almacenan el B y en A los N+1 coeficientes para la implementación de la función de

    transferencia deseada. Si Wn = [W1 W2] con 0< W1

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    18/33

    5.2.3.1. Forma Directa I y Forma Directa II

    Corresponde a la representación de la ecuación (5-8) y se muestra en la siguiente figura. Se

    denomina Forma Directa I por razones idénticas a la Forma Directa de los filtros FIR : los

    coeficientes de las ramas de la red pueden obtenerse directamente de la ecuación de

    diferencias y su diagrama de flujo se muestra en la siguiente figura :

    Figura 5-8. Filtro IIR de Forma Directa

    Se supone que M=N pero en caso de no existir tal igualdad, se hace igual a cero las

    transmitancias correspondientes en las ramas en que sea necesario.

    Esta arquitectura puede interpretarse como dos redes en cascada, una de ellas encargada

    de representar los ceros del filtro y la otra sus polos.

    En la Forma Directa I puede cambiarse el orden de las etapas sin alterar el funcionamiento

    global del sistema, y esto se debe a que se trata de un sistema lineal invariante en el

    tiempo. Este es el punto de partida para la Forma Directa II, ya que una vez cambiado el

    orden de las etapas de ceros y polos, el diagrama de flujo correspondiente queda :

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    19/33

    Figura 5-9. Filtro IIR, Forma Directa con Intercambio de las Redes de Ceros y Polos

    Dado que las líneas de retraso comparten la misma entrada, puede dejarse sólo una de

    ellas, llegando a las siguiente representación :

    Figura 5-10. Filtro IIR en Forma Directa II

    Esta topología requiere un menor número de ramas de retraso (por eso pertenece a las

    redes canónicas), lo que significa algoritmos más eficientes al momento de programar el

    filtro en términos de uso de memoria y modularidad. Un ejemplo de ello se tiene en la

    siguiente figura, donde se muestra un filtro de Segundo Orden, sobre el cual se hace el

    desarrollo del ejemplo de programación .

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    20/33

    Figura 5-11. Filtro IIR Forma Directa de Segundo Orden

    Las ecuaciones de diferencias que se utilizan en esta rutina son :

    ]2[]1[][][ 21 −+−+= nd and an xnd ( 5-10)

    ]2[]1[][][ 210 −+−+= nd bnd bnd bn y ( 5-11)

    donde los d[n-k] corresponden a nodos de retraso según el valor de k y son productos

    intermedios, derivados de la arquitectura de Forma Directa II. El almacenamiento en

    memoria de cada uno de estos valores se realiza según la siguiente figura y es un casoparticular del almacenamiento para filtros de orden mayor. Obedece a la facilidad que

    ofrece la instrucción LTD de sumar al acumulador el producto previo y desplazar el

    operando una posición de memoria. Obsérvese que los valores DN sólo se sobreesciben

    cuando se ha calculado el producto con su coeficiente B correspondiente.

    Figura 5-12. Almacenamiento de Nodos de Retraso. Filtro IIR de Segundo Orden

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    21/33

    El código que implementa este algoritmo puede usar las operaciones LTD y MPY. Para

    órdenes mayores que tres, resulta ventajoso implementar la rutina con MCAD.

    RECEIVE : LDP #XN ;CLRC INTM ; Captura de dato del AICLAMM DRR ; y almacenamiento en XNSACL XN ;

    LT DNM1MPY A2 ; A1*DNM1 -> PREG

    LTA DNM2 ; DNM2->TREG0 A1*DNM1->ACC

    MPY A2 ; A2*DNM2 -> PREG

    APAC ; A2*DNM2 + A1*DNM1 -> ACC

    SACH DN,1 ; DN= A2*DNM2 + A1*DNM1

    ZAC ; Cero ACC

    MPY B2 ; B2*DNM2 -> PREG

    LTD DNM1 ; Producto, Suma y DNM1->DNM2MPY B1 ; A2*DNM2 -> PREG

    LTD DN ; Producto, Suma y DN->DNM1MPY B0 ; B0*DN -> PREG

    APAC ; B0*DN +B1*DNM1 +B1*DNM1->ACC

    SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signoLACC OUTPUT ; OUTPUT->ACCSFLAND #0fffc ; Ultimos bits al AIC =0

    SAMM DXR ; Escribir en reg de X-mision

    RETE ; Volver a esperar otra muestra

    Figura 5-13. IIR Forma Directa II implementada con LTD (LTA) y MPY

    5.2.3.2. Forma Cascada

    Nuevamente se parte de la ecuación de respuesta al impulso de los filtros IIR, cuya

    transformada z se escribe de la forma :

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    22/33

    =

    =

    −==

    N

    k

    k k

    M

    k

    k k

    z a

    z b

    z X z Y

    z H

    0

    0

    1)()(

    )( .( 5-12)

    Esta ecuación puede reescribirse en términos de una productoria de factores cuadráticos,

    según la siguiente ecuación :

    ∏=

    −−

    −−

    −−

    ++==

    2/

    12

    21

    1

    22

    110

    1)()(

    )( N

    k k k

    k k k

    z z

    z z k

    z X z Y

    z H αα

    βββ( 5-13)

    así, la ecuación del filtro IIR es realizable como una sucesión de etapas en cascada. Setiene a continuación un ejemplo de código assembler para esta topología. Se recomienda

    ver la figura 18 para seguir el desarrollo de la rutina:

    RECEIVE : LDP #XN ;CLRC INTM ; Captura de dato del AICLAMM DRR ; y almacenamiento en XNSACL XN ;

    Inicio de la primera sección de cascada

    LT D1NM1MPY A11 ; A11*D1NM1 -> PREG

    LTA D1NM2 ; ACC + PREG -> ACCMPY A21 ; A21*D1NM2 -> PREG

    APAC ; D1N= A2*DNM2 + A1*DNM1

    SACH D1N,1 ;

    ZAC ; Cero ACC

    MPY B21 ; B21*D1NM2 -> PREG

    LTD D1NM1 ; ACC + PREG -> ACCMPY B11 ; B11*D1NM1 -> PREG

    LTD D1N ; ACC + PREG -> ACCMPY B01 ; B11*D1NM1 -> PREG

    * Fin de la primera etapa de la cascada. Inicio de la segunda

    LTA D2NM1 ; PREG+ ACC ->ACC D2NM1->TREG0

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    23/33

    MPY A12 ; A12*D2NM1 -> PREG

    LTA D2NM2 ; ACC + PREG -> ACCMPY A22 ; A22*D2NM2 -> PREG

    APAC ;

    SACH D2N,1 ; D1N= A2*DNM2 + A1*DNM1

    ZAC ; Cero ACC

    MPY B22 ; B22*D2NM2 -> PREG

    LTD D2NM1 ; ACC + PREG -> ACCMPY B12 ; B12*D2NM1 -> PREG

    LTD D2N ; ACC + PREG -> ACCMPY B02 ; B02*D2N -> PREG

    APAC ; D2N= B02*D2N+ B12*D2NM1+ B22*D2NM2

    * Fin de la segunda etapa de la cascada.

    SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signoLACC OUTPUT ; OUTPUT->ACCSFLAND #0fffc ; Ultimos bits al AIC =0

    SAMM DXR ; Escribir en reg de X-misionRETE ; Volver a esperar otra muestra

    Figura 5-14. Código para filtro IIR de Cuarto Orden en Cascada

    En la siguiente figura se muestra el caso de un filtro IIR de cuarto orden implementado en

    arquitectura de cascada, donde cada subsección representa uno de los términos incluidos

    en el producto.

    Figura 5-15. Filtro IIR de Cuarto Orden en Forma de Cascada

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    24/33

    Se observa que cada sección del filtro corresponde a la Forma Directa de Segundo Orden,

    según la topología descrita anteriormente. Esta configuración puede resultar ventajosa en

    términos de estabilidad del sistema, en caso de que se requiera un orden de filtro muyelevado, caso en el que esta condición que es difícil de lograr al ser implementada en

    alguna de las formas descritas anteriormente por los múltiples retrasos y lazos de

    realimentación.

    5.2.3.3. Forma Paralela

    Otra forma de representación de la ecuación de transferencia de un filtro IIR en (5-9) es

    ∑∑=

    −−

    −−

    =

    −−

    +==

    2/

    12

    21

    1

    110

    0 1)()(

    )( N

    k k k

    k k N M

    k

    k k z z

    z k z C

    z X z Y

    z H αα

    γ γ ( 5-14)

    en la que el término C kz-k se hace cero cuando M PREG

    LTD D1NM1MPY A11 ; A11*D1NM1 -> PREG

    APAC ; D1N= A21*D1NM2 + A11*D1NM1

    SACH D1N,1 ;

    ZAC ; Cero ACC

    MPY GAMMA11 ; GAMMA11*D1NM1 -> PREG

    LTD D1N ; ACC + PREG -> ACCMPY GAMMA01 ; GAMMA01*D1N -> PREG

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    25/33

    APAC ;

    SACH P1,1 ; P1= GAMMA01*D1N+ GAMMA11*D1NM1

    * Fin de la primera etapa en paralelo. Inicio de la segunda

    LACC XN,15

    LT D2NM2MPY A22 ; A22*D2NM2 -> PREG

    LTD D2NM1MPY A12 ; A12*D2NM1 -> PREG

    APAC ; D1N= A21*D1NM2 + A11*D1NM1

    SACH D2N,1 ;

    LACC P1,15 ;

    MPY GAMMA12 ; GAMMA12*D2NM1 -> PREG

    LTD D2N ; ACC + PREG -> ACCMPY GAMMA02 ; GAMMA02*D2N -> PREG

    LTA CMPY XN ; XN*C -> PREG

    APAC ;

    * Fin de la segunda etapa en paralelo y del filtro.

    SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signoLACC OUTPUT ; OUTPUT->ACCSFLAND #0fffc ; Ultimos bits al AIC =0

    SAMM DXR ; Escribir en reg de X-misionRETE ; Volver a esperar otra muestra

    Figura 5-16. Código para filtro IIR con secciones en paralelo

    5.3. PRÁCTICA #5 (FILTROS FIR)

    Es fundamental seguir una rutina de diseño-prueba-diseño para lograr un algoritmo que

    satisfaga las condiciones de la aplicación. Por lo tanto, las partes que componen esta

    sección deben ejecutarse repetidas veces en forma cíclica, hasta cumplir el objetivo.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    26/33

    5.3.1. OBJETIVOS

    Conocer diferentes herramientas para el diseño de filtros y de procedimientos para valorarsu viabilidad como solución para una aplicación específica.

    • Usar rutinas MATLAB para diseño de filtros tanto FIR como IIR.

    Entender el uso del PC como herramienta para diseñar y programar sistemas .

    • Conocer el uso del MATLAB, en particular sus funciones de diseño de filtros.

    • Utilizar herramientas freeware (COOL96) para medir el funcionamiento de un sistema

    de procesamiento digital.

    • Ganar familiaridad con el uso de diferentes herramientas de software para poner a

    punto el diseño de u determinado algoritmo.

    Ejercitar diferentes rutinas de uso común en el desarrollo de aplicaciones DSP.

    • Usar diferentes esquemas de direccionamiento para la implementación de diferentes

    topologías de sistema digital.

    • Editar rutinas en assembler, compilar, depurar y medir resultados de un experimento

    específico de procesamiento digital de señales.• Ajustar la entrada y las variables internas del procesador para evitar situaciones de

    overflow.

    • Poner en práctica normas de seguridad para el trabajo en la estación de DSP.

    5.3.2. IMPLEMENTACIÓN EN MATLAB

    Relación entre la frecuencia de corte y respuesta al impulso de un filtro.• Abrir en un editor de texto la rutina coefir.m, útil para diseñar filtros FIR.

    • Cambiar los valores de la variable Wn. Definirla como un solo valor (filtros pasabajos)

    o como dos valores (filtros pasabanda), con el siguiente criterio : Pasabajos : Valores cercanos a 0, valores cercanos a 1, valores existentes cercanos a la mitad

    de la frecuencia Nyquist. Pasabanda : Valores cercanos entre sí, valores lejanos entre si,

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    27/33

    valores cercanos entre sí con centro en la mitad de la frecuencia Nyquist, valores

    lejanos entre sí con centro en la mitad de la frecuencia Nyquist.

    • Agregar los argumentos necesarios a la función fir1 para generar filtros pasaaltos y

    atrapabanda. Reperir alguna de las observaciones anteriores.• Sacar conclusiones de las observaciones anteriores

    Selección de diferentes ventanas• Calcular mediante la rutina filtros.m (basada en la función fir1 de MATLAB),

    varios filtros con las mismas especificaciones de frecuencia y atenuación, pero

    utilizando diferentes ventanas (Hanning, Bartlett, Kaiser, etc)

    • En cada una de ellas estimar los parámetros Amplitud (magnitud) Relativa Pico de

    Lóbulo Lateral y Amplitud (ancho de banda) de Lóbulo Principal.

    5.3.3. IMPLEMENTACIÓN EN EL DSK

    Para lograr un funcionamiento adecuado del DSP en aplicaciones de procesamiento en

    tiempo real, se debe contar con instrucciones de alta velocidad y con un hardware que

    tenga la misma característica. En el caso del ‘C50, incorporado en la tarjeta DSK, se tiene

    un ciclo de instrucción de 50 ns. Este parámetro es fundamental para calcular el númerototal de ciclos de máquina que exige un algoritmo determinado y valorar su utilidad y

    factibilidad, dados unos requerimientos específicos de frecuencia de muestreo.

    Implementación de Filtros FIR usando Diferentes Ventanas• Editar una de las rutinas de inicialización del DSK provistas para unas condiciones de

    trabajo específicas. (Frecuencias de conversión, Sincronía, Filtros de Preprocesamiento,

    etc)

    • Partiendo de los datos arrojados por el diseño en MATLAB con diferentes ventanas,

    escribir un programa para implementar un filtro FIR en cada una de ellas.

    • Hacer las mediciones de desempeño de cada filtro, excitando el sistema con la señal

    chirpp.wav.

    • Comparar la respuesta medida con la del diseño en MATLAB.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    28/33

    Ajuste del diseño• En caso de que los resultados no sean los esperados, intentar una variación del

    prescalamiento de la salida del filtro.• Intentar un escalamiento en los coeficientes del filtro

    • Repetir el paso anterior pero esta vez ejecute el programa paso a paso, poniendo

    atención al contenido del acumulador (ACC), contador de programa(PC), diferentes

    registros de estado. Usar la impresión de lazo.lst y establezca relaciones entre el

    listado y el contenido de los registros del DSK.

    Conteo del número de operaciones y estimación de su duración• Dependiendo del orden del filtro, su topología y las instrucciones utilizadas, hacer una

    estimación del tiempo de ejecución de cada pasada del filtro.

    • Comparar este criterio con la tasa de conversión del AIC .

    • Establecer el orden máximo que podría tener dicho filtro para seguir operando entre el

    límite de la frecuencia de muestreo.

    5.3.4. OTROS

    Exploración del freeware para análisis y síntesis de señales• En caso de no haberlo hecho, usar la herramienta Frequency Analysis del menú

    Analyze de Syntrillium COOL96. Ubicar el cursor en cualquier instante de la señal desonido abierta y leer el contenido frecuencial en ese momento.

    Estimación de la respuesta del filtro (cualitativa)Para escuchar el efecto de este programa, es necesario aplicar una señal de audio al DSK:

    • Realizar un ciclo de ejecución/grabación simultáneos mediante COOL96, teniendo

    como entrada al sistema la señal chirpp.wav .

    • Establecer la respuesta de uno de los filtros.

    Uso de señales “del mundo real”

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    29/33

    • Una vez que se tenga el filtro adecuado, inyectar una señal de audio externa (salida de

    un radio, por ejemplo).

    • Notar el efecto del filtro sobre dicha señal.

    • Volver a las etapas de diseño en MATLAB y de implementación en el DSK para variarel diseño.

    5.3.5. TAREA

    Filtros FIR en cascada• Diseñar dos filtros FIR, uno pasabajos y otro pasabaltos, cuyas frecuencias se solapen.

    • Escribir un código en assembler en el que dichas etapas queden en cascada. (Ver rutina

    para filtros IIR en cascada).

    • Hacer una estimación de la salida utilizando MATLAB.

    • Cargar el ejecutable en el DSP ‘C50 y repetir el proceso de diseño-prueba-diseño, hasta

    que obtenga una respuesta apropiada

    5.4. PRÁCTICA #6 (FILTROS IIR)

    Es fundamental seguir una rutina de diseño-prueba-diseño para lograr un algoritmo que

    satisfaga las condiciones de la aplicación. Por lo tanto, las partes que componen esta

    sección deben ejecutarse repetidas veces en forma cíclica, hasta cumplir el objetivo.

    5.4.1. OBJETIVOS

    Conocer diferentes herramientas para el diseño de filtros y de procedimientos para valorar

    su viabilidad como solución para una aplicación específica.• Usar rutinas MATLAB para diseño de filtros tanto FIR como IIR.

    • Utilizar freeware (COOL96) para medir el funcionamiento de un sistema de

    procesamiento digital.

    • Poner en práctica normas de seguridad para el trabajo en la estación de DSP.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    30/33

    Entender el uso del PC como herramienta para diseñar y programar sistemas .

    • Conocer el uso del MATLAB, en particular sus funciones de diseño de filtros.

    • Integrar el uso de herramientas de freeware a la estación de tiempo real para DSP.

    Ejercitar diferentes rutinas de uso común en el desarrollo de aplicaciones DSP.

    • Usar diferentes esquemas de direccionamiento para la implementación de diferentes

    topologías de sistema digital.

    • Editar rutinas en assembler, compilar, depurar y medir resultados de un experimento

    específico de procesamiento digital de señales.

    • Ajustar la entrada y las variables internas del procesador para evitar situaciones de

    overflow.

    5.4.2. IMPLEMENTACIÓN EN MATLAB

    Obtención de los coeficientes B y A de un filtro IIR.• Abrir en un editor de texto la rutina coefiir.m, útil para diseñar filtros IIR.

    • Cambiar el la función de diseño y ver como cambia la respuesta para especificaciones

    idénticas.• Adicionar los argumentos necesarios a cada función para generar filtros análogos.

    Buscar una relación con su equivalente digital.

    • Sacar conclusiones de las observaciones anteriores

    Generación de señales con características apropiadas.• Por medio de la rutina chirp1.m generar una señal de barrido en frecuencia que se

    adapte a las especificaciones de una aplicación en tiempo real. Escoger una banda de

    frecuencias su generación.

    Escalización de coeficientes.• Estudiar la representación numérica al interior del procesador ‘C50.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    31/33

    • Encontrar los factores de escalización apropiados para la definición de los coeficientes

    en el DSP.

    • Hacer el producto en MATLAB y, si es el caso, usar una hoja de cálculo para facilitar la

    exportación de estos valores al código en assembler.

    5.4.3. IMPLEMENTACIÓN EN EL DSK

    Para lograr un funcionamiento adecuado del DSP en aplicaciones de procesamiento en

    tiempo real, se debe contar con instrucciones de alta velocidad y con un hardware que

    tenga la misma característica. En el caso del ‘C50, incorporado en la tarjeta DSK, se tiene

    un ciclo de instrucción de 50 ns. Este parámetro es fundamental para calcular el número

    total de ciclos de máquina que exige un algoritmo determinado y valorar su utilidad y

    factibilidad, dados unos requerimientos específicos de frecuencia de muestreo.

    Implementación de Filtros IIR en Diferentes Arquitecturas• Editar una de las rutinas de inicialización del DSK provistas para unas condiciones de

    trabajo específicas. (Frecuencias de conversión, Sincronía, Filtros de Preprocesamiento,

    etc)• Partiendo de los datos arrojados por el diseño en MATLAB y de los ejemplos de

    código para diferentes topologías y, escribir un programa para implementar un filtro

    IIR en cada una de ellas.

    • Hacer las mediciones de desempeño de cada filtro, excitando el sistema con la señal

    chirpp.wav.

    • Comparar la respuesta medida con la del diseño en MATLAB.

    Ajuste del diseño• En caso de que los resultados no sean los esperados, intentar una variación del

    prescalamiento de la salida del filtro.

    • Intentar un escalamiento en los coeficientes del filtro

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    32/33

    Conteo del número de operaciones y estimación de su duración• Dependiendo del orden del filtro, su topología y las instrucciones utilizadas [7], hacer

    una estimación del tiempo de ejecución de cada pasada del filtro.

    • Comparar este criterio con la tasa de conversión del AIC .• Establecer el orden máximo que podría tener dicho filtro para seguir operando entre el

    límite de la frecuencia de muestreo.

    5.4.4. OTROS

    Estimación de la respuesta del filtro (cualitativa)Para escuchar el efecto de este programa, es necesario aplicar una señal de audio al DSK:

    • Realizar un ciclo de ejecución/grabación simultáneos mediante Syntrillium COOL96,

    teniendo como entrada al sistema la señal chirpp.wav .

    • Establecer la respuesta de uno de los filtros.

    Uso de señales “del mundo real”• Una vez que se tenga el filtro adecuado, inyectar una señal de audio externa (salida de

    un radio, por ejemplo).

    • Notar el efecto del filtro sobre dicha señal.• Volver a las etapas de diseño en MATLAB y de implementación en el DSK para variar

    el diseño.

    5.4.5. TAREA

    • Conseguir información relacionada con la estabilidad en filtros IIR. Establecer criterios

    de eficiencia de cada topología consultada.

    5.5. REFERENCIAS

    [1] TEXAS INSTRUMENTS INC. TLC32040C, TLC32040I, TLC32041C, TLC32041IAnalog Interface Circuits (SLAS 014E). U.S.A : s.n., 1995.

  • 8/17/2019 capitulo5 filtros digitales FIR IIR

    33/33

    [2] SCHWEBER, Bill. Analog filters: Even More Essential in the Digitized Wworld. En :EDN Magazine. ( April 24, 1997)

    [3] OPPENHEIM Alan V. and SCHAFER, Ronald W. Digital Signal Processing.Englewood Cliffs, New Jersey: Prentice Hall, 1975. p 156-157.

    [4] BURRUS, C. Sidney, et al. Computer-Based Exercises for Signal Processing : UsingMATLAB. Englewood Cliffs, New Jersey: Prentice Hall, 1994. p 247

    [5] OPPENHEIM Alan V. and SCHAFER, Ronald W. Discrete-Time Signal Processing.Englewood Cliffs, New Jersey: Prentice Hall, 1989. p 464-486

    [6] LOVRICH, Al and SIMAR junior, Ray. Implementation of FIR/IIR Filters with theTMS32010/TMS32020. En KUN SHAN LIN. Digital Signal Processing Applicationswith the TMS320 Family, V.1. Texas Instruments- Prentice-Hall, 1987. p.27-68.

    [7] TEXAS INSTRUMENTS INC. TMS320C5x User’s Guide (SPRU056C). Owensville,Missouri. s.n.. 1997