Holografía: Introducción al holograma (6° parte)

Creación de hologramas mediante computadoras

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. 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.

Introducción

En la actualidad, se cuenta con hologramas generados por computadoras (Lohmann, 1.967) y de hologramas generados químicamente 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: Augustin - Jean Fresnel, Joseph Fraunhofer, Imagen, y de Joseph 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.

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. Uno 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) Uν, μ 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). Un 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 N2 a KN log₂ 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 1.024 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.

Transformada rápida de Fourier (FFT)

Si u(x, y) es la amplitud compleja en el plano focal anterior de la lente, entonces

U(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 figura, muestra el arreglo experimental para grabar un holograma de Fourier.

Esquema impresión del holograma de Fourier
Esquema impresión del holograma de Fourier

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:

Uₘₐₓ = máx[UFFT (v, μ)] (2)

Donde el nuevo campo focal estará expresado por:

Ecuación para la creación de hologramas mediante computadoras (3)

El grabado holográfico del objeto expresado por la ecuación (3) debe mezclarse con otra onda de referencia expresada por:

Ecuación para la creación de hologramas mediante computadoras (4)

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).

UH = |Uref + Uₘₐₓ| (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.

Particularidades de los sistemas informáticos

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 (Ulrich Heinkel, 2.000). 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.

El propósito de este trabajo es describir el proceso en la cual el algoritmo de la FFT en dos dimensiones [UFFT (v, μ)] 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.

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, Uref), en el plano de Fourier y se superpone con la transformada de Fourier tal como se mostró en la Figura, 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.

El diseño de la arquitectura para lograr la implementación del algoritmo del cálculo de la FFT 2D en el FPGA esta representada en la Figura.

Esquema del diseño de la arquitectura FFT 2D implementada en 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 y básicamente permite elegir cualquier imagen, adecuarla en formatos de mapas de bits de 16x16, 32x32, 64x64 y 128x128 píxeles 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. Una 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 píxeles, 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 4.096 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 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 = 2 m, 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 Cooly- Tukey. El bloque Xilinx FFTx es compatible solamente para los FPGAS Virtex-II, Virtex-II Pro y Spartan-3. Las siguientes Figuras, 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 se amplia y se presenta en la otra Figura, correspondiente al bloque del cálculo de la FFT.

Esquema del diseño de la arquitectura FFT 2D implementada en FPGA - 1
Esquema del diseño de la arquitectura FFT 2D implementada en FPGA - 1

Esquema del diseño de la arquitectura FFT 2D implementada en FPGA - 2
Esquema del diseño de la arquitectura FFT 2D implementada en FPGA - 2

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 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. 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 El reacomodo se realiza por medio del sub-bloque función transpuesta de la etapa 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. Una 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, representa en bloques la obtención de la FFT en 2D de una imagen. Una 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.

Resultados

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 siguiente figura 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.

Resultados del diseño de la arquitectura FFT 2D implementada en FPGA
Resultados del diseño de la arquitectura FFT 2D implementada en FPGA

Los resultados observados en la figura, 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 esta se muestra el proceso que es necesario realizar para finalizar con la obtención de la FFT 2D.

Diseño de la arquitectura FFT 2D implementada en FPGA
Diseño de la arquitectura FFT 2D implementada en 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 siguiente figura. Se puede notar que en la figura, 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 información representan errores visibles.

Lo anterior ya es despreciable en las imágenes a partir de 128×128 píxeles.

Función IFFT2 de Matlab
Función IFFT2 de Matlab

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.

Resultados de la síntesis

Resultados de la síntesis del FPGA
CaracterísticaImágenes 64×64Imágenes 128×128
Número de Flip Flops55 %60 %
Número de IOBs14 %61 %
Área del FPGA utilizado*65 %83 %
Tiempo de procesamiento1,35 ms6,1109 ms
Máxima frecuencia115,6 MHz114,936 MHz

Conclusiones:

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 CPU. Las adaptaciones de una pantalla LCD con el FPGA serán realizados en un trabajo futuro. El resultado representa que a partir de imágenes de 128×128 píxeles 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.

Interferometría holográfica

Cuando iluminamos un holograma con una onda como la de referencia, recuperamos la luz de la onda objeto, es decir, el holograma nos permite 'congelar en el tiempo' para recuperar posteriormente la luz que proviene de un objeto. Si se produce algún cambio en el objeto (una deformación, un desplazamiento, etc.), podemos utilizar el holograma para compararlo con el objeto original. La técnica que permite esto se conoce como interferometría holográfica (IH). El patrón de comparación es la longitud de onda de la luz del láser, lo cual quiere decir que esta técnica nos da una resolución del orden de 0,5 milésimas de milímetro.

Interferómetro de Michelson con etalón para medir longitudes
Interferómetro de Michelson con etalón para medir longitudes

La IH tiene un gran interés para la industria. Es una técnica no destructiva, que permite estudiar un determinado volumen sin alterarlo. Por ejemplo, permite localizar imperfecciones internas en una pieza, a partir de las pequeñas irregularidades en las deformaciones superficiales que se producen al aplicarle una tensión. Se puede aplicar la IH a la detección de defectos internos en piezas industriales y al estudio de deformaciones en huesos.

Interferómetro y equipo holográfico combinado
Interferómetro y equipo holográfico combinado

Se utiliza también la IH en el estudio de fluidos, habiendo desarrollado notablemente sus posibilidades como técnica de medida de velocidades. La IH nos permite medir las tres componentes de la velocidad en todo un plano dentro del fluido. Sin embargo, hemos obtenido mayor precisión en las medidas combinando la IH con la 'velocimetría de imágenes de partículas (PIV)', técnica en la que también tenemos experiencia y reconocido prestigio y que es ya una técnica habitual en mecánica de fluidos para la medida de dos componentes de la velocidad. Hemos utilizado la IH, sola o en combinación con PIV, en flujos diversos como flujos de convección natural en líquidos viscosos, estelas de vórtices en un túnel de viento y flujos turbulentos en un canal de agua.

Detección por interferometría holográfica de deformaciones
Detección por interferometría holográfica de deformaciones

Detección de defectos y evaluación de propiedades mecánicas mediante técnicas láser
Detección de defectos y evaluación de propiedades mecánicas mediante técnicas láser
Se ha trabajado especialmente en la detección de defectos internos y superficiales en piezas industriales, en la localización de defectos en la fabricación de materiales cerámicos superconductores y en el seguimiento de procesos de fractura. También se ha investigado en la caracterización de flujos mediante interferometría holográfica

Interferometría de moteado o de pulsos

Una importante característica de la luz que emiten determinados láseres es que cuando se utiliza para iluminar un objeto difusor, se observa sobre el mismo un 'granulado' debido a su estructura superficial. Este fenómeno se denomina 'moteado' -en inglés, 'speckle'- y ha dado lugar a una importante técnica: La interferometría digital de moteado (DSPI, digital speckle pattern interferometry).

Metrología óptica
Metrología óptica
Esta línea se centra en el desarrollo y aplicación de técnicas ópticas de medida no intuitivas basadas en el láser, en la caracterización del comportamiento mecánico y térmico de sólidos y fluidos. Para ello se utiliza la fotografía de moteado y la velocimetría de imágenes de partículas para medida campos de desplazamientos con precisión micrométrica, así como la interferometría de moteado y la interferometría holográfica para precisión nanométrica y para la medida de campos de densidad, temperatura o índice de refracción en medios transparentes

Así como en la IH se compara la luz procedente de un objeto con la registrada en el holograma, en la DSPI comparamos imágenes de la distribución del moteado sobre el objeto antes y después de haberlo modificado. Para ello las imágenes se registran en una cámara CCD y se comparan digitalmente. Aunque la DSPI no tiene tanta resolución espacial como la IH, es mucho más atractiva por su registro digital.

Ejemplo aplicación de la interferometría holográfica

Medición de electrones operando en deuterio

Objetivo

Realizar investigación y desarrollos en física de plasmas así como también desarrollar su relación con la física y tecnologías nucleares y otras disciplinas derivadas y/o soportantes. Investigar y desarrollar tecnologías en el tema de la fusión nuclear y sus aplicaciones, para contribuir a la producción y el bienestar social.

Resultados relevantes

Se implementó configuración Z-pinch en SPEED2 de acuerdo a simulaciones previas. Primeras descargas, en fondo de gas neutro, muestran un comportamiento eléctrico normal del generador. Se realizó hologramas e interferometría holográfica y medidas de emisión de neutrones operando en Deuterio.

Se midió densidad de electrones en la etapa del pinch, mediante interferometría pulsada, en dispositivo PF-400J. Se obtuvo una densidad de 9·10²⁴ electrones/m³ cuando se opera en Hidrógeno.

Rango de aplicación de la interferometría holográfica:

Editor: Ricardo Santiago Netto (Administrador de Fisicanet).

Éste sitio web usa cookies, si permanece aquí acepta su uso.
Puede leer más sobre el uso de cookies en nuestra política de privacidad.