You are on page 1of 6

1

RESUMEN
Este artculo presenta el diseo, simulacin e implementacin de
filtros digitales de respuesta impulso infinita (FIR) selectivos de
frecuencia, en un FPGA (Field Programmable Gate Array).
Utilizando MATLAB y su plataforma de simulacin
SIMULINK, a travs de la herramienta FDA Tool y el Xilinx
System Generator fue posible disear y simular los filtros digitales,
los cuales fueron implementados en una Tarjeta de Desarrollo
SPARTAN 3E, que contiene el procesador FPGA XC3S500E. La
implementacin y configuracin del FPGA se realiz en el entorno
de desarrollo integrado de Xilinx ISE Foundation, usando la
herramienta iMPACT para la descarga del programa en lenguaje
VHDL (generado en forma automtica por el Xilinx System
Generator) a travs del puerto JTAG. Finalmente se verificaron los
resultados usando co-simulacin para verificar en tiempo real la
simulacin en software y el desarrollo en hardware, comparando en
el entorno grafico de SIMULINK los resultados de ambos anlisis.
Los resultados obtenidos fueron validados con las simulaciones,
verificando que la respuesta de los filtros digitales FIR
implementados en el FPGA fuera satisfactoria.

PALABRAS CLAVES:
Diseo, Simulacin, Filtros digitales FIR, FPGA, MATLAB,
SIMULINK, Xlink System Generator.

ABSTRACT:
This paper presents the design, simulation and implementation of
frequency selective finite impulse response (FIR) digital filters on
FPGA (Field Programmable Gate Array). Using MATLAB and
your simulation platform SIMULINK, trough the FDA Tool and
the Xilinx System Generator, was possible design and simulate
digital filters, which were implemented on card development
SPARTAN 3E, which contain the processor FPGA XC3S500E. The
implementation and configuration of the FPGA was made in the
integrated development environment of Xlinx ISE Foundation,
using iMPACT Tool for discharge the program on VDHL Language
(generated in automatic form for the Xilinx System Generator)
through the JTAG port. Finally the results were verified using co-
simulation, for the verification in real time of the software simulation
and hardware realization, comparing in the graphics environment of
SIMULINK the results of both analyses. The obtained results was
validated with the simulations, verifying that the FIR digital filters
response, implemented on FPGA, were satisfactory.

KEYWORDS:
Design, Simulation, FIR digital filters, FPG, MATLAB,
SIMULINK, Xlink System Generator.
I. INTRODUCCION
L procesamiento digital de seales es un rea de la ciencia
y la ingeniera que se ha desarrollado rpidamente durante


los ltimos 30 aos, como resultado de los avances
tecnolgicos en la fabricacin de circuitos integrados y
sistemas de cmputo. El continuo desarrollo de la
Microelectrnica y los Circuitos Integrados de muy alta escala
de integracin VLSI (Very Large Scale Integration), han
permitido la ejecucin de proyectos de sistemas digitales
potentes, pequeos y muy rpidos. As, actualmente es comn
la aplicacin de Filtros Digitales como parte de un Circuito
Integrado.
Un filtro es un sistema que, dependiendo de algunos
parmetros, realiza un proceso de discriminacin de la seal
de entrada para obtener variaciones de su salida. Los filtros
digitales tienen como entrada una seal analgica o digital y
en su salida tienen otra seal analgica o digital, pudiendo
haber cambiado de amplitud, frecuencia o fase, dependiendo
de las caractersticas del filtro. El filtrado es una de las
operaciones ms importante del tratamiento de seales en
tiempo discreto.
La realizacin de filtros digitales con el uso de la
tecnologa FPGA, utiliza las tcnicas y herramientas de diseo
digital avanzado, aprovechando sus ventajas en cuanto a
facilidad y flexibilidad de desarrollo. Para la realizacin de los
algoritmos de los filtros digitales es necesario el uso de
lenguajes de programacin de alto nivel como MATLAB y
un ambiente interactivo para la visualizacin y anlisis de
datos, cmputo numrico, entre otros. La versin 7.5 de
MATLAB incluye SIMULIK, que es una herramienta
interactiva para modelar, simular y analizar sistemas
dinmicos. SIMULIK cuenta adems con una interface para
el diseo y anlisis de filtros conocida como FDA TOOL y
entre sus caractersticas ms notables se encuentra la
conversin de la estructura de un filtro a una arquitectura
sintetizable en cdigo VHDL (combinacin de VHSIC: Very
High Speed Integrated Circuit y HDL: Hardware Description
Languaje) al FPGA. VHDL es un lenguaje orientado a la
descripcin de hardware que se cre para el diseo, modelado
y documentacin de circuitos complejos, el cual hereda buena
parte de los conceptos de los lenguajes de programacin de
alto nivel.
Con la utilizacin de las herramientas CAD, es posible
disear, simular, compilar e implementar los filtros digitales
FIR en FPGA, dejando abierta la posibilidad de realizar otros
tipos de filtros, tales como de respuesta impulso infinita IIR,
as como su implementacin prctica. Los FPGAs permiten
obtener velocidades de hardware adecuadas para determinadas
aplicaciones, con flexibilidad de software. La posibilidad de
reutilizacin del hardware reconfigurable disminuye su costo
Diseo de Filtros Digitales FIR utilizando FPGA
Carlos Alberto Rey Soto, Profesor titular UNAB, Bucaramanga, Colombia; Favela Natalie Quintero
Chona, Profesor Agregado UNET, San Cristbal, Venezuela.
E


2
y puede utilizarse el mismo hardware para varias aplicaciones,
cambiando nicamente su programacin interna.
La utilizacin de dispositivos FPGA para la realizacin de
Filtros Digitales FIR selectivos de frecuencia ofrece la ventaja
de que pueden ser reconfigurados en el sistema,
particularmente cuando se requieren varias versiones de
prueba durante su desarrollo.
II. DISEO DE FILTROS USANDO MATLAB
2. 1. Estructura bsica de un filtro FIR
La funcin de transferencia de un filtro de respuesta
impulso finita (FIR) de orden M es [2]

M
M
1 2
0 1 2
0
( ) ( )
M
n
n
H z b b z b z b z h n z

=
= + + + =

(1)
La ecuacin (1) muestra que el filtro FIR es una estructura
de solo ceros y por lo tano es absolutamente estable. La
expresin ( ) h n se reconoce como la respuesta impulso viene
dada por [2]:

M , 0
( )
0,
n
b n
h n
ot r o val or
s s
=

(2)
La implementacin de la estructura de un filtro FIR se logra
utilizando el siguiente algoritmo no recursivo [2]:

0
( ) ( ) ( )
k
y n h k x n k
=
=

M
(3)
2. 2. Funciones para el diseo de filtros digitales
Los prototipos de filtros digitales FIR se disearon
utilizando la funcin fir1() incluida en el Toolbox de
Seales [1]. Utilizando esta funcin se desarroll la funcin
especial filtrofirlp(N,fs,fc), para el diseo de un
filtro pasa-bajo. Su sintaxis [2] es:
filtrofirlp(N,fs,fc)
donde, N es el orden del filtro FIR, fs la frecuencia de
muestreo y fc la frecuencia de corte, estas ltimas en Hz. La
funcin calcula los coeficientes b de la funcin de
transferencia (1) del filtro FIR y desarrolla la grfica de la
respuesta de frecuencia, que se utilizaron para comparar el
resultado del diseo en SIMULINK. La figura 1 muestra el
resultado para un filtro pasa-bajo de orden 43 N = ,
frecuencia de corte kHZ 1
c
f = y frecuencia de muestreo
kHZ 50
s
f = .
De modo similar, para el diseo del filtro FIR pasa-alto,
pasa-banda y rechaza-banda se desarrollaron funciones
espaciales. El resultado del filtro FIR pasa-alto de orden
42 N = , frecuencia de corte kHZ 2
c
f = y frecuencia de
muestreo kHZ 50
s
f = , se muestra en la figura 2.


El filtro pasa-banda de orden 84 N = , frecuencias de corte
, 4 kHZ [ 3 ]
c
f = y frecuencia de muestreo kHZ 50
s
f = , se
observa en la figura 3. El filtro rechaza-banda de orden
42 N = , frecuencias de corte , kHZ [ 2 5]
c
f = y frecuencia de
muestreo kHZ 50
s
f = , se observa en la figura 4.
III. DISEO DEL FILTRO DIGITAL FIR USANDO FDA TOOL
3.1 Filtro FIR pasa-bajo usando FDA Tol
Utilizando la herramienta de diseo y anlisis de Filtros
FDA Tool incluida en SIMULINK, fue posible lograr la
estructura de un filtro digital FIR en una arquitectura
sintetizable en cdigo VHDL, necesaria para su realizacin en
un FPGA. La figura 5 muestra el resultado del diseo del
prototipo del filtro digital FIR pasa-bajo de orden 43 N = ,
frecuencia de corte kHZ 1
c
f = y frecuencia de muestreo
kHZ 50
s
f = .

Figura 2 Respuesta de frecuencia del filtro FIR PAlto

Figura 1 Respuesta de frecuencia del filtro FIR PBajo



3















3.2 Simulacin del filtro pasa-bajo en SIMULINK
Usando la opcin Export del menu File del FDA Tool,
es posible exportar hacia SIMULINK, los coeficientes del
filtro a travs de la variable Num de MATLAB, tal como se
muestra en la figura 6.














Usando el bloque DAFIRv_9 (filtro FIR Xilinx de
Aritmtica Distribuida) que se encuentra en la librera Xilink
Blockset, se realiz el modelo de simulacin que se muestra
en la figura 7.










Los bloques Gateway In y Gateway Out de la figura 2.7,
corresponden a las salidas y entradas del FPGA y deben
configurarse para establecer el nmero de bits de entrada y el
punto binario.
Para probar la simulacin de filtro FIR pasa-bajo se
seleccion una seal senoidal (sine wave), con magnitud
arbitraria de 1 V y frecuencias de: 500Hz, 1kHz y 2kHz. El
resultado se muestra en la figuras 8 a 10, donde se observa el
efecto de atenuacin (filtrado) para valores superiores a 1 kHz
(frecuencia de corte).


Figura 4 Respuesta de frecuencia del filtro FIR RBanda


Figura 3 Respuesta de frecuencia del filtro FIR PBanda





Figura 5 Diseo del filtro FIR PBajo usando FDA Tool

Figura 6 Coeficientes del filtro a travs del FDA Tool


Figura 7 Filtro digital FIR PBajo usando SIMILINK



4





























El proceso se repiti para los prototipos restantes,
obteniendo resultados similares a los logrados a travs de las
funciones especiales de MATLAB. Las figuras 11 a 13
muestran los diagramas de simulacin utilizados en los filtros
restantes.

















Antes de proceder a la simulacin de cada prototipo en
SIMULINK, es necesario transferir los coeficientes generados
por el FDA Tool y configurar el nmero de bis de entrada y el
punto binario.
IV. IMPLEMENTACION DE FILTROS FIR EN LA
TARJETA FPGA
4.1 Tarjeta de hardware
Para la implementacin del hardware se utiliz una tarjeta
SPARTAN 3E, modelo XC3500E, cuyas caractersticas ms
relevantes son:
- 232 pines de entrada/salida
- 64 Mbyte de DDR SDRAM
- Pantalla LCD con capacidad de 2 lneas y 16 caracteres
- Puertos para mouse/teclado y display VGA
- 2 conectores RS/232
La figura 14 muestra los componentes fundamentales de
esta tarjeta.













Figura 8 Respuesta del filtro digital FIR pasa-bajo a
una seal de 500 HZ



Figura 14. Tarjeta SPARTAN 3E

Figura 9 Respuesta del filtro digital FIR pasa-bajo a
una seal de 1 kHZ


Figura 10 Respuesta del filtro FIR pasa-bajo a una
seal de 2 kHZ


Figura 11 Filtro digital FIR PAlto usando SIMULINK



Figura 12 Filtro digital FIR PBanda usando SIMULINK

Figura 13 Filtro digital FIR RBanda usando SIMULINK


5
4.2 Desarrollo en hardware del filtro FIR pasa-bajo
Utilizando co-simulacin en cada prototipo de filtro, fue
posible comparar la respuesta del filtro implementado en
hardware con el diseo en software efectuado a travs de la
herramienta FDA de SIMULINK. Para lograr esto, antes de
invocar el mdulo System Generator para la generacin de
cdigo, es necesario modificar el modelo de simulacin de la
figura 7, para incorporar bloque convert, el cual se encarga de
convertir la palabra de salida de tipo FIX_15_10 (binario de
15 bits con signo, con punto binario en el bit 10) a FIX_8_5
(binario de 8 bits con signo, con punto binario en el bit 5).
Este proceso es necesario para lograr control sobre el sistema
y los parmetros de simulacin en hardware.
La figura 15 muestra el diagrama que se utiliz en la co-
simulacin del filtro digital FIR pasa-bajo.






Antes de iniciar la co-simulacin es necesario ajustar los
parmetros de la tarjeta, usando la herramienta Sytem
Generator, tal como se observa en la figura 16.














El proceso de co-simulacin en hardware se invoca desde la
ventana de propiedades del bloque System Generator,
seleccionando el tipo de compilacin y la tarjeta SPARTAN
3E como se muestra en la figura 17.
















Pulsando el botn Generate, se inicia la compilacin de la
co-simulacin en hardware del filtro digital FIR pasa bajo,
mostrndose una secuencia de mensajes con respecto a cada
paso de la misma. Al culminar se crea el bloque
correspondiente al hardware sintetizado, el cual tiene el
mismo nmero de entradas y salidas que el modelo de la
figura 15. La figura 18 muestra el bloque creado luego de la
culminacin de la sntesis.







Finalmente, el bloque sintetizado se incorpora al modelo de
SIMULINK de la figura 15, para obtener el modelo final de
co-simulacin mostrado en la figura 19.



Figura 15 Co-simulacin del filtro digital FIR pasa-bajo.


Figura 16 Configuracin de la tarjeta SPARTAN 3E.

Figura 17 Ajuste de parmetros del System Generator
para la co-simulacin en hardware.

Figura 18 Bloque de hardware sintetizado del filtro
digital FIR pasa-bajo.


6






La comparacin entre la simulacin en software y el
desarrollo en hardware del filtro digital FIR pasa-bajo, se
observa en las figuras 20 a 22.




































V. CONCLUSIONES
En este artculo se demostr la versatilidad que ofrece el
uso del MATLAB y su complemento SIMULINK para el
diseo de filtros digitales FIR. El uso de la herramienta FDA
TOOL, permiti el diseo y anlisis de filtros digitales y su
conversin de la estructura a una arquitectura sintetizable en
cdigo VHDL, necesaria para su posterior implementacin en
un dispositivo FFGA reconfigurable.
REFERENCIAS
[1] MathWorks, Signal Processing Toolbox Users Guide. The
MathWorks, Inc. 2010.
[2] Rey Soto Carlos A, Anlisis y Diseo de Sistemas de Control en
Tiempo Discreto, con aplicaciones en MATLAB. Fondo Editorial
UNET. 2005.
[3] Bronwn, S. y Vranesic Z.. Fundamentos de Lgica Digital con Diseo
VHDL. Mxico: Editorial McGraw Hill. 2006.
[4] Castillo A., y Moreno F. Co-Simulacin con MatLab/Simulink y
Xilinx System Generator. Trabajo presentado en el I Congreso y Taller
Internacional de Mecatrnica. Mxico. 2005.
[5] Machado, R. Diseo de Filtros Digitales Usando el Lenguaje de
Descripcin de Hardware (VHDL). Tesis de Grado no publicada.
Universidad Nacional Experimental del Tchira. San Cristbal. 2005.
[6] Quintero Favela. Filtros Digitales en FPGA Tesis de Grado de
Maestra no publicada. Universidad Nacional Experimental del Tchira.
San Cristbal. 2009.
[7] Teres, L., Torroja, Y., Olcoz, S. y Villar, E. VHDL Lenguaje Estndar
de Diseo Electrnico. Espaa: Mc Graw Hill. 1998.
[8] Plataforma de Desarrollo Spartan 3E. [Pgina Web en lnea]:
http://www.digilentinc.com/Data/Products/S3EBOARD/S3EStarter_ug2
30.pdf

Carlos Alberto Rey Soto. Ingeniero Electricista UIS 1967. M.Sc. Sistemas
de Potencia UFRJ 1971. Maestra en Ingeniera Electrnica 1997. Profesor
titular UNAB Bucaramanga. Director del Grupo de Investigacin GIRES de
la UNAB, Bucaramanga.

Favela Quintero Chona. Ingeniera Electrnica UNET 1999. Maestra en
Ingeniera Electrnica UNET 2010. Profesora Agregada UNET. Jefe del
Departamento de Ingeniera Electrnica de la UNET.



Figura 19 Diseo completo del filtro digital FIR pasa-bajo
con el bloque de hardware sintetizado.


Figura 20 Simulacin en software y desarrollo en hardware
del filtro pasa-bajo para una seal de 500 Hz.


Figura 21 Simulacin en software y desarrollo en hardware
para una seal de 1 kHz.


Figura 22 Simulacin en software y desarrollo en hardware
para una seal de 2 kHz.

You might also like