Implementación de la FFT en hologramas de Fourier generados con FPGAs



Documentos relacionados
PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

Implementación de la transformada wavelet discreta para imágenes en un FPGA

5. Despliegue en la PC

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

MODELOS DE RECUPERACION

Capitulo V Administración de memoria

NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

SIIT SISTEMA INFORMÁTICO DE INSPECCIONES DE TRABAJO. Modulo de Planificación Manual de Usuario

Tutorial Sistema de indicadores Observatorio de la Persona Joven

Capítulo 1 CAPÍTULO 1-INTRODUCCIÓN-

Nombre de la asignatura: Clave de la asignatura: SIB Carrera:

BASE DE DATOS RELACIONALES

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

1.2 Qué es un Sistemas de Información Geográfica?

11 Número de publicación: Int. Cl.: 72 Inventor/es: Kunigita, Hisayuki. 74 Agente: Elzaburu Márquez, Alberto

Capítulo 1. Introducción

ORIENTACIONES SIMCE TIC

Figura 1.4. Elementos que integran a la Tecnología de Información.

1. Introducción. Universidad de Cantabria 1-1

Arquitectura Básica para Controladores de Lógica Difusa a Programarse en FPGAs

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

El proceso de edición digital en Artelope y CTCE

Matrices Invertibles y Elementos de Álgebra Matricial

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Análisis de un sistema Dual-Tone Multi-Frequency (DTMF)

HOY en día, los arreglos de compuertas

INTRODUCCION AL CONTROL AUTOMATICO DE PROCESOS

CAPÍTULO 3. ALGORITMOS DE PREVISIÓN BASADOS EN LA EXTRAPOLACIÓN DE LOS DATOS MÁS RECIENTES

GUÍA BÁSICA DE USO DEL SISTEMA RED

Reproducción de una Imagen en un Monitor VGA Utilizando un FPGA

Xerox 700 Digital Color Press con Integrated Fiery Color Server. Impresión de datos variables

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Guía para el Portal de Profesores del Sistema de Información CLASS Académico

Manual de usuario de Solmicro BI. Página 1

Software de identificación y ubicación mediante GPS para radios digitales MOTOROLA Con Control de rondas y Gestión de control del riesgo

... partes internas del computador!...

Acceso a la aplicación de solicitud de subvenciones (Planes de Formación 2014)

MATERIAL 2 EXCEL 2007

Figura 87. Apariencia física de VIFIBIO

GUÍA DEL ALUMNO. 1.- Estructura y contenido de la página web. 2.- Cómo usar esta página web. 3.- Contenidos. 4.- Metodología didáctica.

CAPITULO I INTRODUCCION. Conforme la informática avanza, las imágenes se han convertido en un área muy

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

1. Aplicación de la conmutación de circuitos y la conmutación de paquetes. 1.1 Sistema de señalización número 7 (SS7).

ERGO KINECT VISION RESUMEN

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2

1.2 Concepto de un Sistema de Información Geográfica (SIG)

Fundamentos de la Visión Artificial. Prof. Dr. Francisco Gómez Rodríguez Prof. Manuel J. Domínguez Morales 1

La base de datos Panel de Innovación Tecnológica (PITEC) Mayo 2011

MODELIZACIÓN DEL CONSUMO Y EMISIONES DE UNA RED URBANA DE AUTOBUSES: EL CASO DE BARCELONA RESUMEN

PRÁCTICA NÚMERO 1. MANEJO DEL OSCILOSCOPIO Y DEL GENERADOR DE SEÑALES.

DISEÑO DE INDICADORES DE DESIGUALDAD SOCIAL EN LAS CIUDADES.-

DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC.

METODOLOGÍA E IMPLEMENTACIÓN DEL SIGGA (SISTEMA DE INFORMACION GEOGRAFICA: GOBERNANZA DEL AGUA)

1.- DATOS DE LA ASIGNATURA. Diseño Digital Avanzado con FPGAs. Nombre de la asignatura: Carrera: Ingeniería Electrónica. Clave de la asignatura:

MANUAL DE USUARIO. Sistema de Administración de Proyectos de Vinculación con la Colectividad (SAPVC) MANUAL DE USUARIO DOCENTE

GUÍAS. Módulo de Diseño de software SABER PRO

Aplicaciones Lineales

Capítulo 6: Conclusiones

Por el rápido crecimiento de Internet la tecnología se ha tenido que adaptar para cubrir las

Matemáticas para la Computación

Aplicación para la docencia en ingeniería: Cálculo de costes de mecanizado. MECACOST 1.0

ARREGLOS DEFINICION GENERAL DE ARREGLO

ANEXO B. ARTÍCULO SEGÚN EL FORMATO DE LA IEEE PARA DIFUSIÓN SEGUIMIENTO GPS BASADO EN EVENTOS: UNA NUEVA APLICACION PARA TELÉFONOS CELULARES

Interfaces de Usuario Inteligentes:

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

1. Conociendo el equipo

Extracción de características de Galton de Huellas Dactilares por procesamiento digital de la imagen.

Manual del usuario. Flash Point Genius. FLASH POINT GENIUS: Programación Serial para turismos

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

Metodología de diseño en FPGA usando Xilinx System Generator

Teoría de Sistemas y Señales

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

INTERPOLACIÓN POLINÓMICA Y LA DIVISIÓN DE SECRETOS

El pipeline gráfico Figura 3.1

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006

EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA

Centro de Capacitación en Informática

Nivel Básico I Prof. Mariano Correa

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

Electrónica Digital II

CAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

DESCRIPCIÓN TÉCNICA SYSTEM MANAGER SOFTWARE (SMS)

Estimado usuario. Tabla de Contenidos

Enlace ContPaq i Nóminas Nomipaq

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

[ ] introducción. Sistema de información para el análisis de servicios prestados en redes Ad hoc. resumen. Aura Rosa Beltrán A. Gerardo Gutierrez S.

Uso de las tecnologias de la informacion en las PyMES de los municipios de Comalcalco y Cunduacán

CAPÍTULO 4. DISEÑO CONCEPTUAL Y DE CONFIGURACIÓN. Figura 4.1.Caja Negra. Generar. Sistema de control. Acumular. Figura 4.2. Diagrama de funciones

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

La ventana de Microsoft Excel

- Dirigido a Centros Docentes- Versión 01-23/03/2010

Sistema de Mensajería Empresarial para generación Masiva de DTE

MEMORIA DE RESULTADOS

Transcripción:

Artículo de Investigación Castillo-Atoche A. et al. / Ingeniería 10-2 (2006) 47-55 Implementación de la FFT en hologramas de Fourier generados con FPGAs Castillo-Atoche A. 1, Pérez-Cortés M. 2, Ortiz-Gutiérrez M. 3, Vázquez-Castillo J. 4 Recibido: 11 de noviembre de 2005 Aceptado: 29 de junio de 2006 RESMEN En la actualidad, algunos hologramas son generados por computadora utilizando algoritmos que simulan la interferencia de la luz. En este artículo una técnica en tiempo real para implementar la Transformada Rápida de Fourier (FFT por sus siglas en inglés) en hologramas de Fourier digitales generados con circuitos digitales VLSI (Very Large Scale System Integration), específicamente FPGAs es utilizada. El diseño digital con FPGAs presenta una gran ventaja debido al procesamiento en paralelo que realiza y por su arquitectura flexible, alta velocidad e integración. El diseño fue verificado e implementado usando la herramienta Xilinx System Generator con la plataforma Matlab/Simulink. Palabras Clave: Hologramas de Fourier, FPGA, System Generator, FFT. FFT implementation on Fourier holograms generated with FPGAs ABSTRACT Holograms are made using interference of two light beams; nowadays it is also possible to make computer-generated holograms. In this work we propose a technique in real time to implement the 2D-FFT architecture in digital holograms with a VLSI digital component; specifically an FPGA. The digital design with FPGA presents great advantages due to its parallel processing method and its flexible structure, high integration and velocity. The design was implemented and verified with a Xilinx System Generator using the Matlab/Simulink platform. Keywords: Fourier Holograms, FPGA, System Generator, FFT. 1 Profesor de Carrera del Cuerpo Académico de Mecatrónica de la Facultad de Ingeniería de la ADY. E-mail: acastill@uady.mx 2 Profesor de Carrera del Cuerpo Académico de Física de la Facultad de Ingeniería de la ADY. 3 Profesor de la Escuela de Ciencias Físico-Matemáticas, niversidad Michoacana de San Nicolás de Hidalgo. 4 Profesor de Carrera del Cuerpo Académico de Redes y Electrónica de la niversidad de Quintana Roo (QROO). 47

INTRODCCIÓN Las imágenes de la televisión y las fotográficas son imágenes planas o bidimensionales. En ambos casos representan la distribución de intensidades de luz que se pueden interpretar matemáticamente como el cuadrado de la amplitud del campo óptico, o también conocido como irradiancia; esto es, lo que llega a nuestros ojos se interpreta como una imagen. En este tipo de imágenes, la información del objeto que está en relación con la fase óptica de la onda se pierde. La holografía, descubierta por Dennis Gabor en 1947, incluye la grabación de ondas ópticas y su reconstrucción (D. Gabor, 1948). Es decir, por medio de la holografía se puede obtener una imagen de un objeto sin pérdida de información debido a que se registra en una película o sistema de memoria adyacente el patrón de interferencia formado por las fases de las ondas, a diferencia de las fotografías que solo registran intensidad. n holograma es un patrón de interferencia grabado que nos permite tener la mayor parte de la información de la onda y de su fase respectiva, ambas registradas en una película fotosensible. Para ver la imagen grabada en un holograma, es necesario que pase por el holograma el mismo haz de referencia que usó para generar el patrón de interferencia (Hetch, 2004). En la actualidad, también se cuenta con hologramas generados por computadoras (Lohmann, 1967) y de hologramas generados químicamente (A. Olivares, 2002); de la misma manera, por medio de la configuración de franjas, tienen la información de la forma y la estructura en que se esparce luz. Para observar este tipo de hologramas, también es necesario que se reconstruyan un haz de luz coherente proveniente de un láser. Algunos tipos de hologramas son de: Fresnel, Fraunhofer, Imagen, y de Fourier. En la actualidad, con el desarrollo de las computadoras y del software científico, y con la ayuda de algoritmos de transformadas discretas de Fourier o de Fresnel es posible diseñar fácilmente hologramas. A menudo, se usa el algoritmo de la transformada rápida de Fourier (J. W. Goodman, 2003). Los hologramas generados por computadora ayudan a producir frentes de onda con una amplitud diseñada y una cierta distribución de fase; las aplicaciones de dichos sistemas se aplican en exploración por láser, en filtros espaciales ópticos, en pruebas de superficies ópticas y sobre todo como memorias holográficas. Para realizar los hologramas de Fourier, se graba el patrón de interferencia entre dos haces provenientes de un láser. no llamado haz de referencia y otro que ilumina al objeto y pasa por una lente positiva (convexa) llamado haz objeto. El haz objeto que hace interferencia es la transformada de Fourier del objeto que se forma en el plano de frecuencias de la lente (o también conocido como plano de Fourier). El objeto se coloca en el plano focal anterior de la lente y la transformada de Fourier se localiza en el plano focal posterior. La transformada de Fourier ( ν x, μ y ) de una función u ( x, y), es realizada ópticamente por medio de una lente positiva. En este caso se representará la lente por medio de la función matemática de la transformada de Fourier discreta (DFT). n algoritmo mucho más eficiente para llevar a cabo la DFT es la transformada rápida de Fourier (FFT). Si se considera el cálculo de la FFT para N puntos, el número de operaciones se reduciría de N 2 a KN log 2 N sobre el algoritmo de la DFT, donde K es una constante y no depende de N. Por ejemplo, el cálculo de una transformada de 1024 puntos usando la FFT es 200 veces más rápido que usar el algoritmo de la DFT ya mencionada. La ecuación 1 representa la manera de obtener la FFT de N puntos. N N iφ ( nδx0 + mδy0 ) ( i 2πφ / λz)( nxi Δx0 + myiδy0 ) FFT ( ν i, μ j ) = u( nδx0 + mδy0) e e (1) n= 1 m= 1 Si u ( x, y) es la amplitud compleja en el plano focal anterior de la lente, entonces ( x / λ f, y / λ f ) es la amplitud compleja en el plano focal posterior, donde f es la longitud focal de la lente y λ es la longitud de onda. Hay que considerar que la transformada de Fourier tiene amplitud compleja, por tal motivo, no puede grabarse directamente debido a que los materiales fotosensibles solo responden a la intensidad de la luz. La Fig. 1, muestra el arreglo experimental para grabar un holograma de Fourier. 48

Figura 1. Impresión del Holograma de Fourier Para mejorar la imagen del objeto transformado, se maximiza el valor de la ecuación (1) por medio de: [ ( ν, μ) ] = max (2) max FFT donde el nuevo campo focal estará expresado por: 0 FFT ( ν i, μ j ) ( x, y) = (3) max El grabado holográfico del objeto expresado por la ecuación (3) debe mezclarse con otra onda de referencia expresada por: ref ik r Ae ( x, y) = (4) r la cual representa un frente de onda esférico con amplitud A y vector de posición r. El grabado del holograma se realiza por la superposición de las ondas expresadas por la ecuación (3) y (4). H ref + max = (5) La reconstrucción de la imagen se lleva a cabo mediante la exposición del holograma en un haz de referencia y colocándole una lente en uno de los haces difractados. La función de esta lente será realizar la transformada inversa de Fourier. El FPGA es un circuito integrado digital de alta velocidad que contiene bloques lógicos programables. A diferencia de los procesadores comunes que tienen una estructura rígida, en el FPGA se diseña Hardware en lugar de programarlos y almacenar el código en una memoria como ocurre con los dispositivos procesadores comunes. Esta diferencia permite que el FPGA se configure para realizar procesamiento concurrente y obtener mayor velocidad en los procesos. Hoy en día, muchos lenguajes de descripción de hardware (HDL), han emergido en los últimos años (lrich Heinkel, 2000). Estos lenguajes describen la implementación y generan una cadena de bits que configura a los FPGAs. Xilinx System Generator es una alternativa para generar código HDL. Este programa adicionado en el ambiente de Matlab/Simulink contiene bloques en alto nivel que implementan arquitecturas diseñadas eficientemente en el FPGA. Consecuentemente Matlab/Simulink y Xilinx System Generator ofrecen un ambiente ideal de prototipado virtual en el cual los modelos de hardware y software de un sistema pueden ser verificados al mismo tiempo (Le Thuyen, 1997; A. Toledo, 2005). El propósito de este trabajo es describir el proceso en la cual el algoritmo de la FFT en dos dimensiones ( FFT ( ν i, μ j ) ) es obtenido, para su uso en la construcción de un holograma de Fourier. El diseño consistirá de una combinación de bloques suministrados por Xilinx System Generator, para el diseño y verificación del algoritmo de la FFT 2D en el FPGA. 49

METODOLOGÍA El algoritmo que ha sido empleado para la obtención de la FFT 2D es el siguiente: primeramente se debe hacer el cálculo de la FFT en una dimensión sobre cada una de las filas de los elementos que conforman la matriz de la imagen. Posterior a ello, para obtener la FFT 2D es necesario aplicar nuevamente la función FFT sobre el resultado obtenido anteriormente, pero ahora sobre las columnas que conforman la imagen, esto representa el procedimiento observado de implementación partiendo de la ecuación (1). Cuando incide un haz (una onda esférica o plana, ref ), en el plano de Fourier y se superpone con la transformada de Fourier tal como se mostró en la Figura 1, se obtiene el holograma de Fourier. La reconstrucción del objeto contenido en el holograma se realiza por medio de la incidencia del haz y de la transformada inversa de Fourier. Implementación de la FFT 2D en el FPGA El diseño de la arquitectura para lograr la implementación del algoritmo del cálculo de la FFT 2D en el FPGA es presentada en la Figura 2. Fig. 2 Diseño de la Arquitectura FFT 2D implementada en el FPGA Básicamente la arquitectura se divide en 4 etapas, la primera etapa almacena los datos que conforma la imagen. Esto se realiza con el envío serial de datos a través del puerto serial RS-232 de una computadora personal hacia el FPGA. La herramienta de envío de datos fue diseñada en los laboratorios de Mecatrónica de la niversidad Autónoma de Yucatán y básicamente permite elegir cualquier imagen, adecuarla en formatos de mapas de bits de 16x16, 32x32, 64x64 y 128x128 pixeles respectivamente y enviarlos a cualquier dispositivo que soporte el protocolo RS-232. Posteriormente, la misma herramienta recibe la imagen tratada que proviene del FPGA y la almacena de nueva cuenta en la computadora personal. Lo anterior se realiza para facilitar la captura y obtención de una imagen que proviene del exterior, pero se espera que la imagen sea suministrada a través de una cámara serial. na vez enviados los datos al FPGA, estos son almacenados en un elemento de memoria o buffer para que posteriormente se obtenga la FFT. La primera etapa es manipulada con un microcontrolador de 8 bits empotrado dentro del FPGA (PicoBlaze), el cual junto con la etapa 2 realiza la obtención de la FFT y el almacenamiento de cada una de las filas de la matriz de la imagen contenidos en el elemento de memoria. Posterior al cálculo de la FFT, nuevamente los datos ya manipulados, son almacenados en otra memoria. Si se trata de una imagen de 64x64 pixeles, donde cada píxel representa un nivel en la escala de grises y éste a un elemento de la matriz de la imagen, se tendría una memoria de almacenamiento de 4096 datos, considerando a cada dato como un elemento de 8 bits, dando un total de 256 niveles de grises. El bloque de cálculo de la FFT es obtenido por bloques 50

suministrados con la herramienta Xilinx System Generator (XSG), los cuales son instanciados desde la herramienta Simulink de Matlab. La FFTx es un bloque Xilinx que implementa un algoritmo eficiente para calcular la transformada rápida de Fourier (FFT). Los N-puntos (donde, N = 2m, m = 4 14) de la FFT/IFFT se obtiene con un vector de N valores complejos representados con un bus de datos de 8, 12, 16, 20, ó 24 bits. La transformada de Fourier utiliza el algoritmo Cooley- Tukey. El bloque Xilinx FFTx es compatible solamente para los FPGAs Virtex-II, Virtex-II Pro y Spartan-3. Las Figuras 3 y 4, muestran el bloque correspondiente a la etapa 1 de la arquitectura implementada en Simulink de Matlab y hace uso de la herramienta de Xilinx System Generator. El bloque azul de la Figura 3 se amplia y se presenta en la Figura 4, correspondiente al bloque del cálculo de la FFT. Figura 3. Implementación de la FFT con Xilinx System Generator en la plataforma Simulink Figura 4. Bloque FFTx de Xilinx System Generator usado en las etapas 1 y 3 de la arquitectura La etapa 2 se compone de un sub-bloque contador, el cual es el encargado de llevar la cuenta para el control de almacenamiento de los datos en la memoria; el sub-bloque valor máximo que identifica al elemento máximo de la imagen, la cual normaliza los datos ya que el bloque FFTx solamente permite la manipulación de datos que se encuentren en el rango de 0 a 1. Al final de la etapa 2 se observa que los 51

datos serán normalizados con ayuda del elemento máximo identificado en el sub-bloque valor máximo. Hasta ahora solamente se ha obtenido el cálculo de la FFT en 1D sobre las filas de la matriz, por lo que es necesario obtener la FFT sobre las columnas y así finalizar con la obtención de la FTT 2D. Para poder realizar en cada columna el cálculo de la FFT sobre la matriz, es necesario obtener su transpuesta y posteriormente aplicar de nuevo la FFT como en la etapa 1. La transpuesta de la matriz es realizada de la siguiente manera. Figura. 5 Función transpuesta de la imagen El almacenamiento en la memoria RAM se lleva a cabo mediante el sub-bloque contador, el cual manipula las direcciones de la memoria para almacenar un dato. Para obtener la transpuesta de los datos almacenados, simplemente se debe intercambiar los 6 bits menos significativos con los 6 bits más significativos de los 12 bits en total que conforma el bus de direccionamiento del sub-bloque contador (ver Figura 5). El reacomodo se realiza por medio del subbloque función transpuesta de la etapa 2 de la Figura 2. La salida de los datos de la etapa 2 son dirigidos a la entrada de la etapa 3, la cual es idéntica a la etapa 1. na vez obtenida la FFT 2D de los datos de entrada, éstos deben obtener nuevamente su transpuesta, por lo que la etapa 3 es simular a la etapa 4, siendo la única diferencia que en ésta etapa los datos deben ser escalados con el valor máximo identificado en la etapa 2. Así finaliza el proceso de la obtención de la FFT 2D. Ahora los datos pueden ser enviados a cualquier elemento externo que soporte comunicación serial RS-232, en nuestro caso los resultados obtenidos se regresan a la computadora personal encargada de proporcionar la imagen. La arquitectura presentada en la Figura 2, representa en bloques la obtención de la FFT en 2D de una imagen. na vez que se realice el diseño de la arquitectura de cada uno de los bloques en Simulink de Matlab y de programar el microcontrolador encargado de llevar el control de todas las etapas de la arquitectura, se procede a su conversión a código en el lenguaje VHDL (Very High Description Language), donde posteriormente se realiza la síntesis del diseño que es la etapa en la cual cada una de la instrucciones escritas en VHDL son convertidas a compuertas lógicas, tablas de verdad y otros elementos. RESLTADOS Los resultados obtenidos del FPGA fueron comparados con los resultados obtenidos con la herramienta Simulink de Matlab. La comparación consistió en observar cada uno de los elementos que conforman las filas y columnas de la matriz de la simulación en Matlab. Los resultados son muy similares. La Figura 6 muestra un comparativo en magnitud de la FFT 2D con Matlab y la salida del procesamiento a través del FPGA identificado como 2D FFT System Generator. 6. (a) 6. (b) Figura 6. (a) Magnitud de la FFT obtenida mediante Simulink de Matlab (b) Magnitud de la FFT obtenida a través del FPGA 52

Los resultados observados en la Figura 6a, han tenido que ser manipulados debido a que cuando se obtiene la FFT 2D de una imagen, los componentes de mayor frecuencia se encuentran distribuidos en la esquinas de la matriz de salida, por lo que es necesario hacer un reacomodo e intercambiar los datos correspondientes a los cuadrantes pares e impares de la matriz de salida con el objetivo de colocar esos coeficientes en la posición central del arreglo matricial. En la Figura 7 se muestra el proceso que es necesario realizar para finalizar con la obtención de la FFT 2D. Obtención de una imagen y envío de datos en forma serial al FPGA FPGA FFT 2D componentes esparcidos (almacenados en el FPGA) FFT 2D Componentes reacomodados Módulo de reacomodo de componentes (Realizado en el FPGA) Figura 7. Procedimiento de reacomodo de componentes de la FFT 2D obtenida del FPGA Para recrear la imagen original de los datos que contienen el resultado de la FFT 2D, fue necesario utilizar la función IFFT2 de Matlab, la cual es la función encargada de realizar la transformada inversa de Fourier en 2 dimensiones. El resultado obtenido se presenta en la Figura 8. Se puede notar que en la Figura 8b, la imagen es la misma que la imagen original excepto por la pérdida de alguno de los datos. Esto es debido a que la imagen tratada es muy pequeña, y donde las pequeñas pérdidas de 53

información representan errores visibles. Lo anterior ya es despreciable en las imágenes apartir de 128 x 128 pixeles. Figura 8. Reconstrucción de la imagen. (a) Imagen original 64x 64 (b) Imagen reconstruida 64 x 64 (c) Imagen reconstruida128 x 128 Como puede observarse en la Tabla 1, el tiempo máximo de procesamiento de 1.35 ms por imagen, lo que nos da una tasa de procesamiento de imágenes de 740 imágenes por segundo que es un número considerable para otro tipo de aplicaciones como vídeo. En la tabla 1, se presentan los resultados de síntesis del FPGA. Tabla 1. Reporte de síntesis del FPGA Resultados de la Síntesis Característica Imágenes 64 x Imágenes 128 x 128 64 Número de Flip Flops 55% 60% Número de IOBs 14% 61% Área del FPGA utilizado * 65% 83% Tiempo de procesamiento 1.35 ms 6.1109 ms Máxima Frecuencia 115.6 MHz 114.936MHz *Virtex2 cx2v2000-6ff896 CONCLSIONES En este artículo se presentó la implementación de la FFT para construir hologramas digitales con FPGAs y se propuso una solución para reconstruir los hologramas de Fourier. La simulación del proceso y la programación en VHDL para la síntesis del FPGA trabajan adecuadamente en monitores de computadora sin la necesidad del CP. Las adaptaciones de una pantalla LCD con el FPGA serán realizados en un trabajo futuro. El resultado de la Fig. 8 representa que a partir de imágenes de 128 x 128 pixeles las posibles pérdidas de datos en el procesamiento son despreciables. Actualmente se está trabajando en la representación del haz de referencia y en la recreación del holograma utilizando técnicas de diseño digital en VHDL y se esperan obtener resultados muy pronto. REFERENCIAS BIBLIOGRÁFICAS A. Olivares, M. Pérez (2002). Dynamic diffraction ring projector by doped polymer dispersed liquid crystal, Optical Letters, 2, 1020-1024. A. Toledo. (2005). Experiences on developing computer vision harware algorithms using xilinx system generator, Microprocessors and Microsystems 29, p. 411-419, Elsevier. 54

D. Gabor. (1948). A new microscopic principle, Nature, 161, 780-3. Hetch. (2004). Optics, SA: Adison Wesley. J. W. Goodman. (2003). Introduction to Fourier Optics, McGraw Hill, New York. Le Thuyen, Renner Frank, Glesner M.(1997). Hardware in-the-loop Simulation A Rapid Prototyping Approach for Designing Systems, Proceedings, 8th IEEE International Workshop on 24-26 June. Page(s) 116-121. Lohmann. (1967). Binary Fraunhofer holograms generated by computer, Applied Optics, 6, 1739-48. lrich Heinkel. (2000), The VHDL Reference: A Practical Guide to Computer-Aided Integrated Circuit Design including VHDL-AMS, Chichester, New York: Wiley. Este documento se debe citar como: Castillo-Atoche A., Pérez-Cortés M., Ortíz-Gutiérrez M., Vázquez-Castillo J. (2006). Implementación de la FFT en hologramas de Fourier generados con FPGAs. Ingeniería, Revista Académica de la FI-ADY, 10-2, pp.47-55 ISSN: 1665-529X 55