Vous êtes sur la page 1sur 5

1

Implementacin de Filtros Digitales en FPGAS


Edilberto Carlos Vivas Gonzlez

RESUMEN
Se explica como realizar la implementacin de filtros digitales IIR y FIR. El diseo para los filtros IIR consiste en expresarlos en forma de ecuacin de estado, determinar el tamao mnimo de los registros en los cuales se guardan las variables y se truncan los registros que guardan el resultado de las operaciones. Los coeficientes de las matrices del filtro se representan en notacin de punto fijo. Los filtros FIR son mucho ms sencillos de implementar, pero de igual forma se debe determinar el tamao mnimo de los registros de acuerdo a la ganancia del sistema. La programacin del filtro se hace mediante VHDL. Se implement un filtro pasabajo de butterworth de orden 2 y ganancia 2 en una FPGA spartan 3 de xilinx. Se muestran los resultados prcticos obtenidos. Palabras ClaveFiltro, IIR, FIR, punto fijo, FPGA.

H (w ) conocida como funcin de transferencia, para dar lugar a una seal de salida con espectro: Y ( w ) H ( w ). X ( w ) . Los sistemas LTI se clasifican como: FIR (Finite Impulse Response) que se caracterizan por ser sistemas no recursivos, e IIR (Infinite Impulse Response) que se distinguen por tener retroalimentacin en la seal de salida.

III. FILTROS IIR Un filtro IIR se definde mediante la ecuacin en diferencias y ( n ) b0 x ( n ) b1 x ( n 1) b2 x ( n 2 ) ...bM x ( n M ) donde las a1 y ( n 1) a 2 y ( n 2 ) .... a N y ( n N ) , constantes a k y bk son los coeficientes del filtro. Algunas ventajas que ofrecen los filtros IIR sobre los FIR son: a. Los filtros IIR requieren menos memoria y menos instrucciones para implementar su funcin de transferencia. b. Un filtro IIR se disea mediante el clculo de polos y ceros en el plano complejo. El uso de polos confieren a un filtro IIR la capacidad de implementar funciones de transferencia que es imposible realizar mediante filtros FIR.

I. INTRODUCCIN

n FPGA es un dispositivo cuyas caractersticas pueden ser modificadas mediante programacin. La arquitectura de un FPGA (Field Programable Gate Array) consiste en arreglos de mltiples celdas lgicas. Cada celda lgica contiene arreglos de compuertas lgicas AND y OR, as como un nmero definido de registros y multiplexores. Mediante estos recursos es posible implementar funciones matemticas y de almacenamiento de datos. Dada la gran densidad de compuertas con las que cuenta un FPGA, es posible implementar sistemas digitales muy complejos, entre los que se destaca el filtrado digital. Lo ms importante al trabajar con lgica programable es que se pueden hacer modificaciones en cualquier momento sin que esto implique grandes alteraciones en el hardware o el software.

c. Es posible trasladar un filtro IIR a un modelo analtico. Sin embargo, algunas consideraciones que se deben considerar en la implementacin de filtros IIR son los siguientes: a. Los filtros IIR no son necesariamente estables, es tarea del diseador buscar la estabilidad del sistema.

II. FILTRADO DIGITAL Un filtro digital es un sistema lineal e invariante en el tiempo (LTI) que modifica el espectro en frecuencia de la seal de entrada X (w ) , segn la respuesta en frecuencia que tenga
Edilberto Carlos Vivas Gonzlez. ecvivasg@unal.edu.co. Estudiante de Maestra en Ingeniera Automatizacin Industrial, Universidad Nacional de Colombia.

b. Los Filtros IIR producen en general distorsin de fase.

c. La posibilidad de desbordamiento de resultados en las operaciones realizadas deben ser consideradas ya que un filtro IIR se implementa mediante sumas de productos que estn basadas en una suma infinita.

2 Donde los bk son los coeficientes del filtro. En este tipo de filtrado no existe retroalimentacin. Adems, la respuesta al impulso de H (w ) es de duracin finita, ya que si la entrada se mantiene en cero durante M periodos consecutivos la salida tambin ser cero. Algunas de las ventajas de los filtros FIR son las siguientes: a. Un filtro FIR puede ser diseado para tener fase lineal. b. Siempre son estables porque son hechos nicamente con ceros en el plano complejo. c. Los errores de desbordamiento no son problemticos porque la suma de productos en un filtro FIR es desempeada por un conjunto finito de datos. d. Un filtro FIR es fcil de comprender e implementar.

La implementacin de filtros IIR puede hacerse de varias formas; una de ellas es conocida como forma directa II transpuesta que se obtiene al manipular matemticamente la ecuacin en diferencias para obtener una realizacin con N elementos de memoria, (N+M+1) multiplicadores y N sumadores.

Figura 1. Implementacin de filtros IIR mediante forma directa II-T

Sin embargo, se obtiene mejor desempeo llevando la funcin de transferencia a representacin de ecuacin de estado, puesto que esto permite minimizar los errores por representacin numrica de los coeficientes al hacer realizaciones balanceadas.
X (K Y (K ) 1) A. X ( K ) B .U ( K )

Figura 3. Estructura para la realizacin de filtros FIR

(1)

V. REPRESENTACIN EN PUNTO FIJO Para la representacin de nmeros en punto fijo se toman " m " nmero de bits de la palabra binaria para la magnitud (parte entera), y " f " nmero de bits para la parte fraccional; el bit MSB es el bit de signo y el nmero se encuentra en forma de complemento a dos. Por ejemplo:

C.X (K )

D .U ( K )

110

01, 000000

punto fijo

2 6 binario

64 binario

Figura 2. Implementacin de filtros IIR mediante ecuacin de estado

m bits IV. FILTROS FIR Un filtro FIR de orden M se describe mediante la ecuacin en diferencias: y ( n ) b0 x ( n ) b1 x ( n 1) b2 x ( n 2 ) ...b M x ( n M )

f bits

Figura 4. Representacin en punto fijo

Notar que en la representacin de punto fijo en realidad lo que se hace es multiplicar el nmero decimal por 2 f ; entonces una vez se hayan realizado las operaciones aritmticas, al final

3 debemos dividir el resultado por 2 f que es simplemente desplazar la palabra f bits a la derecha, o descartar los f bits menos significativos. Los coeficientes se representan en notacin de punto fijo. izquierda para que quede de M bits (igual al tamao de X (K ) ) y as formar el registro U (K ) .
Bits concatenados N bits del ADC

0 VI. TAMAO DE LOS REGISTROS EN FILTROS IIR Lo primero que se determina cuando se va a realizar filtrado digital es el nmero de bits de los conversores anlogo-digital y digital-anlogo en base a la resolucin requerida y los voltajes de referencia (Vref ) de los conversores. Normalmente los conversores trabajan con fuente sencilla, por lo cual es necesario un circuito de acondicionamiento de seal que se encarga de montar la seal de entrada sobre un nivel DC Vref / 2 . El nmero de bits N del conversor anlogo-digital es necesario para determinar el tamao mnimo de los registros que guardan las variables de estado X (K ) y la salida Y (K ) ; entonces es necesario simular la ecuacin de estado con entrada escaln (constante= corriente directa) para filtros pasa-bajo, o de alta frecuencia para pasa-altos y de mxima amplitud posible (normalmente = Vref / 2 ); es decir excitar con la seal de entrada que produce el mayor nivel de salida y verificar el mximo valor que toman las variables de estado X (K ) y la salida Y (K ) . Notar que: Vref (2) 2N 1 2 Porque ( N 1 ) bits son magnitud y el bits ms significativo (MSB) es signo, entonces basta una simple regla de tres para hallar el nmero de bits de los registros. Tamao mnimo de los registros X (K ) :
Vref / 2 Voltaje X ( K ) mximo 2N G
1

Figura 5. Registro U(K)

Tamao mnimo del registro Y (K ) :


Vref / 2 Voltaje Y ( K ) mximo 2N H
1

(4)

Donde Y ( K ) mximo es el valor mximo (en valor absoluto) que toma la salida. En total se necesitan P (log 2 ( H ) 1) bits (porque la palabra lleva bit de signo) para almacenar el registro Y (K ) sin que haya desbordamiento.

VII. TRUNCAMIENTO DE LOS REGISTROS En la representacin de ecuacin de estado, se multiplican los coeficientes de las matrices por X (K ) y U (K ) . Los coeficientes se representan en notacin de punto fijo con cierto nmero de bits (Q) de acuerdo a la precisin requerida. Cuando se realizan multiplicaciones entre nmeros binarios, el tamao del registro que guarda el resultado de la operacin debe ser igual a la suma del nmero de bits de los coeficientes y el nmero de bits de los registros X ( K ) . Para obtener X ( K ) se retarda X ( K 1) con un registro de desplazamiento (Flip Flop D), es decir que el tamao de los registros a la entrada y salida del registro de desplazamiento debe ser igual; entonces, el truncamiento consiste en tomar el resultado de la operacin A. X ( K ) B.U ( K ) X ( K 1) y descartar los bits menos significativos de la palabra. Como en la representacin en punto fijo lo que se hace es multiplicar los coeficientes por 2 f , el resultado debe dividirse por 2 f ; es decir que los bits que tienen que descartarse son los f bits menos significativos de la palabra lo cual equivale a dividir por 2 f ; estos bits pueden descartarse o hacer un corrimiento a la derecha de f bits. M+Q bits

(3)

Donde X ( K ) mximo es el valor mximo (en valor absoluto) que toma la mayor de las variables de estado. En total se necesitan M (log 2 ( G ) 1) bits (porque la palabra lleva bit de signo) para almacenar los registros X (K ) sin que haya desbordamiento. Nota: log 2 ( G ) se aproxima al entero mayor ms prximo. Concatenamiento del registro de entrada: La seal de entrada al filtro es de N bits (salida del conversor anlogo-digital), pero tiene que tener el mismo tamao de los registros de las variables de estado X (K ) para poder sumar

A. X ( K ) B.U ( K ) porque cada producto debe dar el mismo nmero de bits para poder sumarlos; entonces la seal de entrada se concatena con cierto nmero de bits a la
Figura 6. Truncamiento de los registros

La salida Y ( K ) C. X ( K ) D.U ( K ) tambin hay que truncarla, tambin se descartan los f bits menos significativos de la palabra, y el resultado son los P bits siguientes.

En la figura 8 se muestran las operaciones en la etapa de salida:

VIII. REDONDEOS Cuando se hace el truncamiento lo que se est haciendo es una divisin; por ejemplo cuando se divide 1 en 2 el resultado terico es 0.5. Ya sabemos que para dividir en dos desplazamos un lugar hacia la derecha lo cual hace que al desplazar el 1 en binario el resultado sea cero, pero en realidad deberamos haber aproximado el resultado a uno, puesto que el resultado terico es 0.5 y en digital cuando se est por arriba de 0.5 se aproxima al entero mayor ms prximo, y por debajo de 0.5 se aproxima al entero menor ms prximo. Se utiliza la tcnica de redondeo al ms prximo que consiste en examinar los f bits descartados y si su equivalente en decimal es mayor a No / 2 (donde No es el nmero en el que se est dividiendo), se le suma 1 al resultado obtenido. Si al examinar los f bits descartados su equivalente en decimal es No / 2 debe analizarse el LSB (bit menos significativo) del resultado (nmero a la izquierda de la coma), y si es 1 se le suma 1 al resultado, sino se le suma cero. Cuando el equivalente en decimal de los f bits descartados es menor a No / 2 , el resultado es correcto.

Figura 8. Etapa de salida del filtro IIR

El control de saturacin verifica si la salida Y truncada es mayor a ( 2 N 1 1) menor a 2 N 1 porque la salida hacia el conversor digital anlogo (DAC) es de N bits y esos valores son los mximos permitidos con N bits con signo; luego se le suma el valor equivalente en binario a Vref / 2 2 para que la salida quede nuevamente montada sobre el nivel DC si el DAC trabaja con entrada binaria sin signo.
N 1

XI. IMPLEMENTACIN DE FILTROS FIR La implementacin de filtros FIR se hace teniendo en cuenta la estructura de la figura 3; tambin se representan los coeficientes en notacin de punto fijo, por ello se tienen en cuenta las mismas consideraciones en las operaciones aritmticas y en el truncamiento de registros. Para determinar el tamao del registro de salida Y ( K ) truncado se simula el filtro con la seal de excitacin de mxima amplitud posible (normalmente = Vref / 2 ) y cuya frecuencia produce el mayor nivel de salida. Los registros X ( K ), X ( K 1), X ( K 2 ), .... X ( K m ) tienen que ser del mismo tamao que el registro Y ( K ) truncado.

IX. DIAGRAMAS GENERALES En la figura 7 y 8 se ven todas las operaciones que se realizan y los truncamientos. La seal de entrada tambin se almacena en un Flip Flop D porque la entrada debe mantenerse constante en cada intervalo de muestreo. Normalmente los conversores anlogo-digital generan cdigo binario sin signo, entonces es necesario restarle el equivalente en binario a Vref / 2 formato con signo.

2N

para que la palabra quede en

Figura 9. Diagrama general de implementacin del filtro FIR Figura 7. Etapa de entrada del filtro IIR

5 XII. RESULTADOS PRCTICOS Se dise e implement un filtro IIR de butterworth de orden 2 y ganancia 2 con frecuencia de muestreo de 5KHZ y frecuencia de corte de 500Hz. El filtro se implement en un sistema de desarrollo Spartan 3 de xilinx. Los FPGAs son idneos para el procesamiento de seales debido a que las operaciones aritmticas slo dependen del retardo de propagacin de las compuertas y registros; adems mejorando las tcnicas aritmticas se puede disminuir considerablemente el tiempo de procesamiento.

REFERENCIAS
[1] [2] [3] [4] [5] Ogata, Katsuhiko, Sistemas de Control en Tiempo Discreto, Pearson Prentice Hall,1996. Tocci,Ronald,Sistemas Digitales,Pearson Prentice Hall,2006. Astrom, Karl,Computer Controlled system, Theory and Design, 2da edicin, Pearson Prentice Hall, 1996. Floyd, Thomas L,Fundamentos de Sistemas Digitales, Pearson Prentice Hall,2006. Fhillips Charles L. y Nagle Troyo,Digital Control System Analysis and Design,Prentice Hall, 1995.

Figura 10. Respuesta del filtro con seal de excitacin de 50 Hz

La figura 10 muestra la respuesta del filtro con una seal de excitacin de 50 Hz y 1 voltio pico de amplitud, se observa que la ganancia del filtro es 2.

Figura 11. Respuesta del filtro con seal de excitacin de 500 Hz

La figura 11 muestra la respuesta del filtro en la frecuencia de corte; la seal de entrad es 1 voltio pico y se observa que la salida es 1.4 voltios pico, lo cual equivale a

3db

(1 / 2)Vp .
XIII. CONCLUSIONES

La lgica programable permiten gran flexibilidad en la implementacin de circuitos digitales de alto nivel de complejidad. El filtrado digital tiene muchsimas aplicaciones en el procesamiento digital de seales, pasando por aplicaciones de procesamiento de audio y video hasta los sistemas automticos de control.

Vous aimerez peut-être aussi