Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resúmen. Los filtros digitales son dispositivos que intervienen en varios campos de la
electrónica, en consecuencia, se han desarrollado diferentes formas para su implementación.
La tendencia principal para la construcción de filtros digitales se dirige hacia la
implementación de los mismos en hardware sobre dispositivos de lógica programable como
los FPGAs. En este artículo se describen las etapas a seguir para implementar filtros
digitales de tipo FIR simétrico en un chip FPGA, mediante aritmética de punto fijo
utilizando VHDL, dichas etapas abarcan la especificación, cuantización, algoritmos de
comunicación y arquitectónicos, simulación, y finalmente la implementación y
caracterización de dichos filtros digitales.
Abstract. The digital filters are devices which work on many fields of electronics, in
consequence, different ways to their implementation have been developed. The main
tendency for the construction of digital filters is going to the implementation of themselves
in hardware over programable logic devices as FPGAs. In this paper are described the stages
to follow in order to implant digital filters of symmetric FIR type over a chip FPGA, by
means of fixed point arithmetic using VHDL, these stages include the specification,
quantization, communication and architectural algorithms, simulation and finally the
implementation and characterization of these digital filters.
1. Introducción
Los filtros son sistemas que tienen la función de modificar el contenido espectral
de una señal, es decir, reciben una señal de entrada, bloquean o atenúan ciertos
componentes de frecuencia especificados previamente, y en su salida entregan una
señal similar a la original, menos aquellas componentes de frecuencia que fueron
bloqueadas.
Lógica de Control. Este bloque genera las señales que se encargan de controlar el
flujo de información entre los distintos bloques del diseño, evitando así que el
sistema se colapse, pierda sincronía entre algunos de sus bloques o que se pierda
alguna muestra de las señales que entren al sistema.
Los bloques que fueron diseñados para la realización de este proyecto son: la
Interfaz de Entrada, el Filtrado Digital, la Interfaz de Salida y la Lógica de Control.
mismos que fueron descritos en hardware a nivel de transferencia entre registros
(RTL), escritos en código VHDL, simulados con el software de Xilinx Foundation
Series, e implementados en el chip FPGA que se utilizó en este trabajo. El sistema
resultante es capaz de filtrar señales de audio esteroefónicas.
El filtro digital que se implementó en este proyecto es de orden 19, es decir, que
opera con 10 coeficientes cuantizados, lo que implica que realiza 10
multiplicaciones de forma simultánea, entonces se dividió a los 10 coeficientes
cuantizados en dos grupos de 5, de tal forma que primero se calcula la sumatoria de
productos correspondiente a cada grupo y luego se suman para obtener la
sumatoria de productos total. El beneficio que trae esta solución es que en vez de
requerir de una memoria de 1 Kbyte para hacer las 10 multiplicaciones, solo se
necesitan 2 memorias de 32 localidades cada una, con lo que se evitó un
desperdicio de recursos del FPGA.
155
El filtro digital diseñado en este proyecto (Fig. 2) está formado por un conjunto de
subsistemas llamados “componentes”, cada una de las cuales cumple una función
especifica dentro del manejo de las muestras digitalizadas de la señal que entra al
filtro. Las componentes que conforman el filtro se describen a continuación.
Dato.- Esta componente captura los 16 bits más significativos de las muestras
digitalizadas de provenientes desde la interfaz de entrada en forma paralela, es
decir, los 16 bits a la vez. Una vez que una muestra es capturada, ésta se envía a la
siguiente componente, en este caso “Registros”; dicho envío se hace de forma
serial, comenzando con el bit menos significativo y terminando con el más
significativo. Esta primera etapa del filtro se comunica con la interfaz de entrada
utilizando un protocolo de “handshaking”.
Acumuladores.- Esta componente está formada por dos subsistemas iguales, cada
uno de los cuales se encarga de capturar y procesar los datos provenientes de uno
solo de los bloques de memoria de la etapa precedente. Cada subsistema está
formado por un registro de corrimiento de 19 bits y un sumador de 9 bits, los
cuales en conjunto acumulan las sumatorias de productos parciales para que
cuando se hayan procesado todos los bits de una muestra, se obtenga una sumatoria
de productos total.
Fig. 2 Diagrama de bloques del filtro digital escrito en VHDL e implementado en el FPGA.
Cabe mencionar que como se filtran las señales de audio de dos canales
independientes, se construyó un filtro por cada canal; mismos que pueden ser
idénticos, o que pueden tener características diferentes en cuanto a sus
especificaciones se refiere.
El sistema emplea un reloj externo a 25Mhz, a partir del cual generamos relojes
secundarios hacia las diferentes subsistemas. El subsistema filtro necesita correr a
esas velocidades para realizar filtraje en los rangos de audio.
158
8. Resultados
Se obtuvo un sistema capaz de filtrar dos canales de audio simultáneamente. Los
recursos del hardware empleados fueron de alrededor de 12,000 gates de las 20,000
existentes en el FPGA. Los filtros implementados son de orden 19 y procesan
muestras de 16 bits (de los cuales 15 representan la mantisa y 1 el signo de cada
muestra), utilizando coeficientes de 8 bits (de los cuales 7 representan la mantisa y
1 el signo de cada coeficiente). Dichos filtros arrojaron los resultados esperados en
la implementación de filtros pasa-bajas y pasa-banda en el intervalo de frecuencias
de audio 20 Hz a 20 KHz, para el cual funcionan los convertidores A/D y D/A
utilizados. El hardware del sistema trabaja con una frecuencia de 25 MHz. En las
figuras 4, 5 y 6 se muestran los resultados de algunas de las mediciones realizadas.
9. Conclusiones
Se diseñó e implementó un sistema con dos filtros digitales tipo FIR simétricos de
orden 19 cada uno en un chip FPGA XC4010 de Xilinx, este sistema trabaja dentro
del intervalo de frecuencias de audio (20 Hz a 20 KHz).
El diseño del hardware de los filtros se realizó con VHDL, de tal manera que el
orden de los filtros digitales puede ser incrementado solamente con modificar el
código que los describe.
Referencias
[1] Gerardo Mohad Aguilar "Consola digital de audio utilizando las tarjetas XS40 y
XStend" Universidad Autónoma Metropolitana..
[4] Leland B. Jackson "Digital Filters and Signal Procesing" Third Edition Kluwer
Academic Publishers U.S.A. 1996