interferometría digital

30
Centro de Investigaciones en Óptica A.C . Reporte Final de Estancia Interferometría Digital Presenta: Ing. Sotero Ordoñes Nogales Asesor: Dr. Manuel Servín Guirado León, Guanajuato, Junio 2016

Upload: chivin

Post on 19-Jan-2017

146 views

Category:

Science


0 download

TRANSCRIPT

Page 1: Interferometría digital

Centro de Investigaciones en Óptica A.C.

Reporte Final de Estancia

Interferometría Digital

Presenta:

Ing. Sotero Ordoñes Nogales

Asesor:

Dr. Manuel Servín Guirado

León, Guanajuato, Junio 2016

Page 2: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |1

Índice de contenido

1. Introducción ......................................................................................... 2

2. Interferometría de corrimiento de fase ................................................. 3

Ejemplo 1 (Demodulación de patrones de franjas) .................................... 4

Ejemplo 2 (Robustez a ruido) .................................................................... 6

Ejemplo 3 (Supresión de armónicos).......................................................... 8

Método de proyección de franjas ............................................................... 9

Ejemplo 4 (Rechazo de armónicos con datos experimentales) .................. 11

Ejemplo 5 (Patrones RGB) ...................................................................... 13

3. Método de Fourier .............................................................................. 14

Ejemplo 5 (MF con datos sintéticos): ....................................................... 15

Ejemplo 6 (MF con datos reales): ............................................................. 16

4. Desenvolvimiento de fase .................................................................... 17

Desenvolvimiento por integración lineal ................................................... 18

5. Normalización ..................................................................................... 22

6. Co-Faseo ............................................................................................. 25

7. Conclusiones ....................................................................................... 28

8. Referencias .......................................................................................... 28

Page 3: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |2

1. Introducción El humano por múltiples razones científicas e industriales tiene la necesidad

de utilizar instrumentos para medir propiedades físicas; para comprender la natura-

leza y/o para generar nuevos productos y servicios. En la actualidad, se requiere que

los instrumentos de medida sean cada vez más precisos. De hecho, la óptica viene a

cubrir esa necesidad donde los métodos matemáticos tienen especial importancia.

En el sentido anterior, una aplicación de la óptica es la metrología topográfica

de superficies a escala microscópica. De hecho, la interferometría óptica es la herra-

mienta (en óptica) por excelencia para medir la textura de una superficie, la cual

está basada en el principio de hacer interferir dos haces: uno de referencia y otro con

los datos de la medición.

Los métodos matemáticos en interferometría óptica tienen por objetivo deter-

minar la diferencia de camino óptico contenido en la información de fase del patrón

de franjas obtenido en el experimento. En este sentido, se han desarrollado algoritmos

que permiten recuperar la información correspondiente a la medición a partir de los

interferogramas.

Un patrón de franjas es matemáticamente expresado como

���� = ���� + ���� cos ���� (1)

donde ���� es la luminosidad de fondo, ���� es el contraste de franjas, ���� es la diferencia de camino óptico y � es el vector de posición espacial. De hecho, la infor-mación requerida está contenida en la diferencia de fase, entonces, es deseable deter-

minar dichos valores a partir del modelo mencionado.

En general, el proceso para realizar alguna medición empleando interferome-

tría óptica consta de los siguientes cuatro pasos bien definidos:

1. La adquisición de datos: mediante un interferómetro, proyección de franjas, etc.; en este proceso se obtienen los interferogramas.

2. Demodulación de interferogramas: mediante post-procesamiento en alguna computadora digital o mediante un sistema puramente óptico.

3. Desenvolvimiento de fase: comúnmente el resultado del proceso de demodula-ción es el mapa de fase discontinua en módulo 2�, por lo tanto, se requiere desenvolver para que la función de fase sea continua.

4. Interpretación de datos: se convierte las unidades de fase a las unidades de la medición que se realiza.

El presente reporte tiene por tema principal la demodulación. En este sentido, se

abordan las diversas técnicas que se han desarrollado para extraer la diferencia de

fase ����, que pueden ser agrupadas en aquellas que se basan en la Transformada de

Page 4: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |3

Fourier y las basadas en el planteamiento de un sistema de ecuaciones que dan origen

a la interferometría de corrimiento de fase.

El resto del presente reporte tiene la siguiente estructura: en la sección 2 se

describe la técnica de interferometría de corrimiento de fase para la demodulación de

interferogramas. El método por transformada de Fourier para demodulación es des-

crito en la sección 3. En la sección 4 se describe el proceso de desenvolvimiento de

fase. En la sección 5 se aborda el tema de normalización de patrones de franjas. En

la sección 6 se describe el método de co-faseo. Finalmente, en la sección 7 se enlistan

las conclusiones principales.

2. Interferometría de corrimiento de fase La técnica conocida como interferometría de corrimiento de fase (PSI, por sus

siglas en inglés) está basada en la idea de plantear un sistema de ecuaciones, el cual

permita determinar la diferencia de fase. Como se observa en la Eq. (1) se tienen tres

incógnitas (�, �, �), entonces se requiere de al menos tres ecuaciones tal que el sistema formado por ellas sea consistente. Para ello se aplica un término de corri-

miento de fase nominal �� (conocido) a cada ecuación, entonces, un sistema con � ecuaciones queda expresado como,

����� = ���� + ���� cos����� + ���� ; � = 1, 2, … , � (2)

Del sistema de ecuaciones anterior se determina la función de fase mediante un algo-

ritmo de tres o cuatro pasos (� = 3 o � = 4, respectivamente) o algún método simi-lar.

Con base en la formulación moderna de algoritmos para interferometría de

corrimiento de fase (PSA), la cual consiste en interpretar el método como un filtro

que al aplicarse al conjunto patrones ��������� ! permite estimar la función de fase

buscada, además es consistente con la teoría de sistemas lineales.

Considere la Transformada de Fourier de un patrón de franjas corrido en fase,

���� = "#��� + $2 %&'#�� − ��� + $2 %)&'#�� + ��� (3)

Cuyo gráfico se muestra en la Figura 1, donde el objetivo es conservar el término $ 2⁄ %&'#�� − ���. Sea ℎ�,� un filtro lineal que cumple con el criterio de cuadratura [1]. Si se aplica el filtro al conjunto de interferogramas se tiene,

��,� ∗ ℎ�,� = . /0��, − 1�!) 0��

(4)

donde ℎ�,� = ∑ /0#�, − 1�!) 0�� , en forma equivalente y por propiedades del espacio

de Fourier se tiene,

Page 5: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |4

����3��� = $23����%&'#�� ( ��� (5)

Si bien el soporte de ��,� ∗ +�,� es , � 2� ( 1, únicamente se considera el resultado hasta , � � ( 1 para estimar la señal analítica, es decir,

$23����%&' � ��,� ∗ +�,�|5�!) (6)

lo anterior muestra la ecuación general para un PSA lineal [2]. Finalmente, la función

de fase buscada se determina como:

���� � Arg���,� ∗ +�,�|5�!) � � Arg�/��!) �⋯� /!) ��� (7)

donde Arg�⋅� es el argumento del número complejo. Para ejemplificar, consideremos el algoritmo de tres pasos propuesto por

Bruning et al. [3], donde el filtro es definido como,

3;<��� � =1 ( %&>?=1 ( %&�>@>A�? (8)

cuya Función de Transferencia Frecuencial (FTF) se muestra en la Figura 2, se

observa que los espectros en las posiciones (�� y 0 (intensidad de fondo) son elimi-nados. Con base en la formulación general, el algoritmo de tres pasos para �� queda determinado por,

�;B��� ≔ �����%&'D�E� � ����� ( � ��� ( %&>A� ��� � %&>A�F��� �G;B��� � Arg��;B���� (9)

Ejemplo 1 (Demodulación de patrones de franjas) En los ejemplos mostrados se emplearon los algoritmos de tres, cuatro y cinco

pasos cuyas FTF se muestran en las Figura 2-4, cuyas formulaciones matemáticas se

muestran a continuación,

�HB��� ≔ �����%&'D�E� � ����� ( I� ��� ( �F��� � I�;���; �� � �/2 �GHB��� � Arg��HB���� (10)

�KB��� ≔ �����%&'D�E� � ����� ( I2� ��� ( 2�F��� � I2�;��� � �H���; �� � �/2 �GKB��� � Arg��HB���� (11)

Figura 1: Espectro de un patrón de franjas.

Figura 2: FTF del método de tres pasos.

Page 6: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |5

El siguiente código en Matlab® realiza la demodulación con los algoritmos

antes mencionados.

%% crear mapa de fase sintético [X,Y] = meshgrid(1:256); phi = 0.001*((X-127).^2 + (Y-127).^2); %% Algoritmo de tres pasos w0 = 2*pi/3; I0 = 128 + 127*cos(phi + 0*w0); I1 = 128 + 127*cos(phi + 1*w0); I2 = 128 + 127*cos(phi + 2*w0); A_3s = I0 - I1 - exp(1i*w0)*I1 + exp(1i*w0)*I2; % estimar señal analítica phi_3s = angle(A_3s); % estimar función de fase fig_A3s = figure(); imagesc(phi_3s),colormap gray , axis equal , axis off , title( 'Fase estimada algoritmo de 3 pasos \omega_0=2\pi/3 ' ); %% Algoritmo de cuatro pasos w0 = pi/2; I0 = 128 + 127*cos(phi + 0*w0); I1 = 128 + 127*cos(phi + 1*w0); I2 = 128 + 127*cos(phi + 2*w0); I3 = 128 + 127*cos(phi + 4*w0); A_4s = I0 - 1i*I1 - I2 + 1i*I3; % estimar señal analítica phi_4s = angle(A_4s); % estimar función de fase fig_A4s = figure(); imagesc(phi_4s),colormap gray , axis equal , axis off , title( 'Fase estimada algoritmo de 4 pasos \omega_0=\pi/2' ); %% Algoritmo de cinco pasos w0 = pi/2; I0 = 128 + 127*cos(phi + 0*w0); I1 = 128 + 127*cos(phi + 1*w0); I2 = 128 + 127*cos(phi + 2*w0); I3 = 128 + 127*cos(phi + 4*w0); I4 = 128 + 127*cos(phi + 5*w0); A_5s = I0 - 1i*2*I1 - 2*I2 + 1i*2*I3 + I4; % estimar señal analítica phi_5s = angle(A_5s); % estimar función de fase fig_A5s = figure(); imagesc(phi_4s),colormap gray , axis equal , axis off , title( 'Fase estimada algoritmo de 5 pasos \omega_0=\pi/2' );

Figura 3: FTF del método de cuatro pasos.

Figura 4: FTF del método de cinco pasos ro-

busto a error de detuning.

Page 7: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |6

Los resultados obtenidos se muestran en la Figura 7, donde se observa que la

función de fase estimada con los diferentes algoritmos es equivalente. Sin embargo,

los patrones de franjas capturados presentan ruido relacionado intrínsecamente con

el experimento, además, la exactitud no está garantizada en los valores de corri-

miento de fase nominal. En los siguientes apartados se abordan los problemas antes

mencionados.

Ejemplo 2 (Robustez a ruido) Este ejercicio muestra la robustez de un algoritmo a la presencia de ruido en

los datos. Para ello consideramos el algoritmo de tres pasos descrito anteriormente y

un método de seis pasos propuesto por Bruning et al. [3] que es caracterizado como,

3LB��� = M=1 ( %&�0>A�?H

0� (12)

Realizando la convolución con los datos y tomando la Transformada Inversa de Fou-

rier del resultado se obtiene la expresión del algoritmo (cuya FTF se muestra en la

Figura 5),

�LB��� ≔�����%&'D�E�� ����� ( N� ��� ( N�F��� ( �F��� � N�;��� ( O�;��� � N�H���� O�K���;�� � 2� 6⁄ , N � �(1�F ;⁄ , O � �(1� ;⁄ (13)

Figura 5: FTF del algoritmo de seis pasos.

Figura 6: Patrón de franjas base con ruido

gaussiano de fase Q � 0 y S � 0.1.

(a)

(b)

(c)

(d)

Figura 7. Resultados del ejemplo 1, (a) patrón de franjas base, (b)-(d) las funciones de fase estima-

das con cada algoritmo: �;B���, �HB��� y �KB���, respectivamente.

Page 8: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |7

�GLB��� = Arg��LB���� A continuación se muestra el script de Matlab para el ejemplo en cuestión,

%% crear mapa de fase sintético [X,Y] = meshgrid(1:256); phi = 0.001*((X-127).^2 + (Y-127).^2); %% Algoritmo de seis pasos w0 = 2*pi/6; alpha = (-1)^(2/3); betha = (-1)^(1/3); I0 = 128 + 127*cos(phi + 0*w0 + (2*rand(256,256)-1) ); I1 = 128 + 127*cos(phi + 1*w0 + (2*rand(256,256)-1) ); I2 = 128 + 127*cos(phi + 2*w0 + (2*rand(256,256)-1) ); I3 = 128 + 127*cos(phi + 3*w0 + (2*rand(256,256)-1) ); I4 = 128 + 127*cos(phi + 4*w0 + (2*rand(256,256)-1) ); I5 = 128 + 127*cos(phi + 4*w0 + (2*rand(256,256)-1) ); A_6s = I0 – alpha*I1 – alpha*I2 – I2 + alpha*I3 – b etha*I3 ... + alpha*I4 + betha*I5; % estimar señal analítica phi_6s = angle(A_6s); % estimar función de fase fig_A6s = figure(); imagesc(phi_6s),colormap gray , axis equal , axis off , title( 'Fase estimada algoritmo de 6 pasos \omega_0=2\pi/6 ' );

Los resultados se muestran en la Figura 8, donde se observa que el algoritmo

de seis pasos atenúa considerablemente el ruido de fase que el método de tres pasos.

Cabe mencionar, que ambos algoritmos (tres y seis pasos) están basados en el método

de los mínimos cuadrados, entonces, las funciones de fase estimadas (Figura 8) son

la mejor solución en el sentido de mínimos cuadrados. Esto implica, que la mayor

cantidad de información redundante del algoritmo de seis pasos permite una mejor

estimación a la fase real.

Una figura de mérito empleada para indicar la robustez al ruido es la ganancia

de la relación señal a ruido (UV !⁄ ) que está determinada como, UV !⁄ ���� = |3����|F

12� W 3���3∗���X)X Y� (14)

(a)

(b)

Figura 8: Comparación de robustez a ruido dos algoritmos: tres y cuatro pasos, (a) fase recuperada

con tres pasos �;<���, (b) fase estimada con seis pasos �L<���.

Page 9: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |8

donde el 3∗��� es el complejo conjugado [2]. Con base en la ecuación anterior la ganancia de los algoritmos (de este ejemplo) son 3 y 6 respectivamente. Evidente-

mente la ecuación anterior nos permite determinar el valor �� tal que su UV !⁄ sea máxima.

Ejemplo 3 (Supresión de armónicos) Este ejercicio muestra la robustez de un algoritmo a la presencia de armónicos.

Se emplean el algoritmo de cuatro pasos descrito anteriormente y el siguiente:

3��� � Z1 ( %&>[FZ1 ( %&�>@>A�[;�� � � 2⁄ (15)

Tomando la transformada inversa de Fourier de los filtros anteriores aplicados a los

datos se obtienen los algoritmos,

�HB\��� ≔ �����%&'D�E�� ����� ( 2� ��� ( %&>A� ��� � �F��� � 2%&>A�F��� ( �;��� �GHB\��� � ArgZ�HB\���[

(16)

En la Figura 9 se muestra la respuesta a amónicos de los métodos en cuestión.

Se observa que el algoritmo [3] es afectado por los armónicos [-7,-3,5,9]; los cuales no

son deseados. Por su parte, el método [2] es afectado por los armónicos [-10,-7-6,-3,-

2,5,6,9,10]; entonces éste último es más robusto a armónicos.

A continuación se muestra el script de Matlab para el ejemplo en cuestión,

%% Algoritmo de cuatro pasos robusto a variaciones de fondo w0 = pi/2; % Cargar datos I0 = im2double(imread( 'I0.bmp' )); I1 = im2double(imread( 'I1.bmp' )); I2 = im2double(imread( 'I2.bmp' ));

(a)

(b)

Figura 9: Respuesta de los algoritmo a la presencia de armónicos, (a) respuesta a armónicos del

algoritmo [3] y (b) respuesta a armónicos del algoritmo propuesto en [2].

Page 10: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |9

I3 = im2double(imread( 'I3.bmp' )); A_4s_a = I0 – 2*I1 – exp(1i*w0)*I1 + I2 ... + 2*exp(1i*w0)*I2 – I3; % estimar señal analítica phi_4s_a = angle(A_4s_a); % estimar función de fase fig_A4s_a = figure(); imagesc(phi_4s_a),colormap gray , axis equal , axis off , title( 'Fase estimada algoritmo de 4s_a pasos \omega_0=\pi /2' );

En la Figura 10 se muestra la estimación de los algoritmos mencionados, se

observa que la estimación �GH<]��� no contiene las componentes de baja frecuencia lo cual es debido que a las características del método y por lo tanto, las funciones de

fase estimadas (con cada algoritmo) no son equivalentes como se puede observar en

la Figura 10(d) donde se observa que los términos de pistón son distintos y se han

filtrado algunas componentes de baja frecuencia deseadas [Figura 10(c)].

En la siguiente sección se describe el método de proyección de franjas em-

pleado para la adquisición de datos experimentales. Los datos son empleados para

ejemplos experimentales mostrados más adelante.

Método de proyección de franjas Inicialmente propuesto por Rowe y Welford consiste en proyectar sobre un

objeto patrones de intensidad en forma de franjas, capturar las proyecciones sobre

un objeto, posteriormente, analizar las capturas para determinar las mediciones co-

rrespondientes, como por ejemplo la superficie tridimensional de un objeto [4]. Con

los avances tecnológicos, surge la proyección digital de franjas (DFP, por sus siglas

en inglés) en la cual los patrones son generados digitalmente. La principal ventaja de

(a)

(b)

(c)

(d)

Figura 10: Eliminación de armónicos, (a) patrón de franjas base, (b) fase estimada �GH<��� y (c) fase estimada �GH<]���.

Page 11: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |10

la DFP es la sencillez del arreglo experimental que consta de un proyector comercial,

una cámara CCD y una computadora para el análisis. Las técnicas de DFP se pueden

dividir por el número de capturas: de una y de múltiples capturas. Las de una captura

permiten medir objetos en movimiento (rapidez). Mientras que las de múltiples per-

miten obtener una mayor resolución.

En las técnicas que requieren múltiples capturas se pueden emplear algoritmos

de interferometría de corrimiento de fase para la demodulación de la misma. Así se

pueden emplear patrones de tipo sinusoidal, triangular o trapezoidal que son proyec-

tados en forma secuencia y son capturados por la CCD, donde no es estrictamente

necesario que la cámara y el proyector estén sincronizados temporalmente. Las de-

formaciones que experimentan los patrones, debido a la topografía del objeto, con-

tiene la información suficiente para recuperar los datos de la medición de esa topo-

grafía. Comúnmente, las dimensiones de profundidad se determinan por algún mé-

todo de triangulación.

El método de proyección de franjas presenta inconvenientes relacionados con

el proyector y con la cámara. Cuando los patrones son generados a escala de grises o

monocromáticos, la no-linealidad de la cámara es despreciable en comparación con

la del proyector [5]. Así la respuesta del sistema de proyección queda representada

por,

�^�_, `� � ���_, `��a (17)

donde ��_, `� es la intensidad proyectada, �^�_, `� es la intensidad capturada y b es el valor “gamma” del proyector usualmente mayor a 1. En la Eq. (17) se muestra

que los patrones capturados presentan armónicos, no deseados, de la misma señal.

Por otro lado, cuando se proyectan patrones RGB (un interferograma en cada canal)

surge el “crosstalk” (o diafonía cromática) que aparece como una respuesta no-lineal

para cada canal, así como el fenómeno de “aliasing” entre los canales adyacentes, es

decir,

�E ��� � �E��� � NcE�c��� (18)

Figura 11: Configuración típica para el método de proyección de franjas.

Page 12: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |11

�c ��� = �c��� + NEc�E��� + Ncd�d��� �d ��� = �d��� + Ncd�c��� donde �E , �c , �d son los patrones capturado e �E, �c, �d son los proyectados, respecti-vamente a cada canal. Los coeficientes NcE, Ndc, Ncd son las contribuciones del patrón del canal verde en el canal rojo, el canal azul al verde y el canal verde al azul [6].

Además, en las Eqs. (18) se observa que los valores de fase nominal son afectados

por un valor Δ��. En la Figura 11 se muestra una configuración típica para el método de pro-

yección de franjas, donde el eje óptico del proyector y la CCD se encuentran en el

mismo plano y es paralelo al plano de referencia, el cual está situado a una distancia Y de las pupilas del proyecto y de la CCD. El objeto bajo prueba es colocado en el plano de referencia hacia la CCD. Con estas consideraciones y basados en el dia-

grama; la altura del objeto es determinada como

Δf��� = ghℎ2�Y Δ� (19)

donde gh es el periodo de los patrones capturados y Δ� = �i − �d es la diferencia de fase en cada punto, tal que �i es el valor de fase en el punto " de la superficie del objeto y �d es el valor de fase ene le plano de referencia. Un proceso de calibración es requerido para determinar los valores en la Eq. (19), como por ejemplo el propuesto

por Jia et al. [7] donde se emplean varios planos de referencia con lo cual se mejora

considerablemente la resolución.

En el presente reporte se emplea el método de proyección de franjas con la

configuración mostrada en la Figura 11 en la captura de datos experimentales.

Ejemplo 4 (Rechazo de armónicos con datos experimentales) Este ejemplo es continuación del 3, ahora se emplean patrones de franjas ex-

perimentales. Los patrones de franjas capturados se muestran en la Figura 12, los

cuales son corridos en fase por un término de �� = 2�/4. La función de fase de los patrones de la Figura 12(b) es la señal portadora de

fase del objeto, como se puede observar en la Figura 12(a). Rescribiendo la Eq. (1)

con las consideraciones anteriores se obtiene,

����� = "��� + $��� cos�/��� + ���� + ���� ; � = 0, … ,3 (20)

donde /��� es la portadora y ���� es la fase del objeto. Aplicando el algoritmo de cuatro pasos de la Eq. (20) se obtiene lo siguiente,

�HBj��� ≔ �����%&Z'D �E�@k�E�[ = ����� − I� ��� − �F��� + I�;���; �� = �/2 (21)

Page 13: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |12

Por lo tanto, es necesario eliminar la señal portadora. Para ello se estima el valor de

la portadora haciendo ���� = 0 [en la Eq. (20)] y resolvemos con el mismo algoritmo como sigue,

�Hj��� ≔ �����%&k�E� = ����� − I� ��� − �F��� + I�;���; �� = �/2 /��� = Arg��Hj���� (22)

Entonces, la fase del objeto estará determinada como,

�HB��� ≔ �����%&'D �E� = �HBj���%)&k�E� �GH<��� = Arg� �HB���� (23)

En el siguiente script de Matlab® se muestra el procedimiento realizado para

los dos algoritmos tratados en el Ejemplo 3.

w0 = pi/2; % Cargar datos oI0 = im2double(imread( 'piramide_obj_I0.bmp' )); oI1 = im2double(imread( 'piramide_obj_I1.bmp' )); oI2 = im2double(imread( 'piramide_obj_I2.bmp' )); oI3 = im2double(imread( 'piramide_obj_I3.bmp' )); rI0 = im2double(imread( 'piramide_ref_I0.bmp' )); rI1 = im2double(imread( 'piramide_ref_I1.bmp' )); rI2 = im2double(imread( 'piramide_ref_I2.bmp' )); rI3 = im2double(imread( 'piramide_ref_I3.bmp' )); %% Algoritmo de cuatro pasos oA_4s = oI0 - 1i*oI1 - oI2 + 1i*oI3; % estimar señal analítica cA_4s = rI0 – 1i*rI1 – rI2 + 1i*rI3; c = angle(cA_4s); % estimar señal portadora phi_4s = angle(oA_4s.*exp(-1i*c)); % estimar función de fase fig_A4s = figure(); imagesc(phi_4s),colormap gray , axis equal , axis off ,

(a)

(b)

Figura 12: Patrones de intensidad para perfilometría de una pirámide con corrimientos �� = 2�/4, (a) los patrones de franjas con el objeto y (b) los patrones de referencia.

Page 14: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |13

title( 'Fase estimada algoritmo de 4 pasos \omega_0=\pi/2' ); %% Algoritmo de cuatro pasos robusto a variaciones de fondo oA_4s_a = oI0 – 2*oI1 – exp(1i*w0)*oI1 + oI2 ... + 2*exp(1i*w0)*oI2 – oI3; % estimar señal analítica cA_4s_a = rI0 – 2*rI1 – exp(1i*w0)*rI1 + rI2 ... + 2*exp(1i*w0)*rI2 – rI3; c = angle(cA_4s_a); % estimar señal portadora phi_4s_a = angle(oA_4s_a.*exp(-1i*c)); % estimar función de fase fig_A4s_a = figure(); imagesc(phi_4s_a),colormap gray , axis equal , axis off , title( 'Fase estimada algoritmo de 4s_a pasos \omega_0=\pi /2' );

En la Figura 13 se muestra el resultado del script anterior, además se agrega

los mapas de fase desenvuelta de ambos algoritmos. En la Figura 13(e) se comparan

los perfiles de fase estimadas con cada algoritmo, se observa que el mapa de

fase �GHB��� tiene menor contribución de armónicos en comparación con �GHB\, este último presenta una contribución importante del segundo armónico lo cual se debe a

que el método no elimina dicho armónico [ver Figura 9(b)].

Ejemplo 5 (Patrones RGB) En este ejemplo se proyecta un patrón RGB tal como fue descrito en el apar-

tado de proyección de franjas. Cada interferograma es corrido en fase nominal por �� = 2�/3 y en este sentido se utilizó el algoritmo de tres pasos cuya FTF se muestra en la Figura 2.

El resultado se muestra en la Figura 14, donde se utilizaron dos objetos: un

casquete de esfera y una concha, el gradiente de la concha es accidentado. Se observa

que la fase estimada presenta un error significativo; debido a que señal moduladora

(a)

(b)

(c)

(d)

(e)

Figura 13: Eliminación de armónicos con datos reales, (a) fase estimada �GHB��� con el algoritmo de cuatro pasos [3], (b) fase estimada �GHB\��� con el algoritmo de Servín et al. [2], (c) fase desenvuelta �lHB��� calculada con el primer método y (d) la fase desenvuelta estimada �lHB\���con el segundo algoritmo. En (e) se compara las fases estimadas de los algoritmos.

Page 15: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |14

[$���] está en función del patrón de franjas como consecuencia de la respuesta fre-cuencial de los sensores de la CCD y, además, el corrimiento �� de cada canal es afectado en un término Δ� [ver Figura 14(d)]. 3. Método de Fourier

El método introducido por Takeda et al. [8], basado en la transformada de

Fourier consiste en extraer el espectro correspondiente a ����. La idea fundamental del método es la de introducir una frecuencia portadora m�, entonces, la representa-ción matemática de un patrón de franjas, con esas consideraciones, queda determi-

nada como,

���� � "��� � $��� cos����� � 2�m�_� (24)

donde la frecuencia portadora es en la dirección _. Haciendo /��� � �$��� 2⁄ �%&'�E�, podemos representar la Eq. (24) en su forma compleja,

���� � "��� � /���%&FnoAp � /∗���%)&FnoAp (25)

donde /∗���%)FnoAp denota el complejo conjugado. La transformada de Fourier de la ecuación anterior con respecto de _, está determinada por,

qp������ � ��r, `� � s�r ( m�, `� � s∗�r � m�, `� (26)

donde las letras mayúsculas indican la pertenencia al dominio de Fourier. En la

Figura 15 se muestra el espectro de un interferograma donde s�r ( m�, `� es el rango de frecuencias que se desea recuperar, es decir,

s�r ( m�, `� � qp������3�r ( m�, `� (27)

(a)

(b)

(c)

(d)

Figura 14: Demodulación de patrones RGB, (a) patrón de franjas con objetos, (b) patrón de refe-

rencia, (c) fase estimada �G;B��� y (d) perfil del patrón de referencia.

Page 16: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |15

donde 3�r − m�, `� es un filtro que permite extraer el intervalo espectral deseado. Posteriormente, se traslada s�r ( m�, `� al origen (r � 0). Finalmente, la función de fase busca es determinada por,

�G��� � atan wIm�/����Re�/����| (28)

donde Re�⋅�, Im�⋅� representan la parte real e imaginaria del argumento. La principal fuente de error del método por transformada de Fourier es la

pérdida de energía que ocurre durante la etapa de filtrado. En este sentido, se em-

plean ventanas de Hamming y de Han para evitar la pérdida de la energía.

La diferencia principal de demodular con transformada de Fourier (con res-

pecto de PSI) es que se requiere únicamente un patrón de franjas. Sin embargo, el

método requiere que la señal portadora “separe lo suficiente” los espectros para poder

filtrar adecuadamente. A continuación se realizan dos ejemplos con el método tra-

tado.

Ejemplo 5 (MF con datos sintéticos): Este ejemplo muestra el procedimiento para demodular un patrón de franjas

empleando el método por transformada de Fourier. Para ello, se generó un patrón

con una portadora lineal y una gaussiana centrada como mapa de fase.

A continuación se muestra el script en Matalb® escrito para este ejemplo.

%% Establecimiento de datos sintéticos N = 256; % dimensión de la imagen w_f = 15; % radio del filtro [i,j] = meshgrid(1:N); phi = 0.001*((i-0.5*N).^2+(j-0.5*N).^2); % Phi de prueba u = 0.3*pi*i; % Estimar portadora I = 128 + 127*cos(phi + u + ... 0.5*(2*rand(size(phi))-1)); % Generar patrón %% Metodo de Fourier FI = fft2(I.*exp(1i*pi* ... (i+j)).*exp(-1i*u)); % coef. FT + fftshift r = sqrt((i-0.5*N).^2 + (j-0.5*N).^2); % Diseño del filtro Filtro = double(r < w_f); I_filtrada = FI.*Filtro; % Filtrado

Figura 15: Esquema del método de Fourier para la demodulación de un patrón de franjas.

Page 17: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |16

A_signal = ifft2(I_filtrada).* ... % Estimar señal analítica exp(-1i*pi*(i+j)); % IFT + fftshift phi = angle(A_signal); % Estimar la fase fig_filtrado = figure(); % Graficar filtrado imagesc(0.1*Filtro+0.7*img_frecu), colormap gray , axis equal , axis off , title( 'Proceso de filtrado' ); fig_fase = figure(); % Graficar filtrado imagesc(-angle(A_signal)) colormap gray , axis equal , axis off , title( 'Mapa de fase envuelta' )

El resultado se muestra en la Figura 16, se observa que la fase recuperada

presenta un rizado en los bordes donde se produce el “salto de 2�”. Lo anterior se debe al efecto del filtro; el ancho espectral debe ser adecuado.

Ejemplo 6 (MF con datos reales): Este ejemplo muestra el procedimiento para demodular un patrón de franjas

con datos reales empleando el método por transformada de Fourier, en particular se

emplea el patrón correspondiente a la pirámide como se muestra en la Figura 17.

A continuación se muestra el script en Matalb® escrito para este ejemplo.

%% Establecimiento de datos sintéticos I = im2double(imread( 'piramide_obj_I0.bmp' )); % Patron de franjas [m,n] = size(I); w_f = 20; % radio del filtro [i,j] = meshgrid(1:n,1:m); u = 0.101*pi*i + 0.001*pi*j; % Estimar portadora I = 128 + 127*cos(phi + u + ... 0.5*(2*rand(size(phi))-1)); % Generar patrón %% Método de Fourier FI = fft2(I.*exp(1i*pi* ... (i+j)).*exp(-1i*u)); % coef. FT + fftshift

(a)

(b)

(c)

Figura 16: Proceso para demodulación de fase mediante el Método de Fourier: (a) patrón de inten-

sidad, (b) proceso de filtrado en el dominio de Fourier y (c) mapa de fase determinado.

Page 18: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |17

r = sqrt((i-0.5*N).^2 + (j-0.5*N).^2); % Diseño del filtro Filtro = double(r < w_f); I_filtrada = FI.*Filtro; % Filtrado A_signal = ifft2(I_filtrada).* ... % Estimar señal analítica exp(-1i*pi*(i+j)); % IFT + fftshift phi = angle(A_signal); % Estimar la fase fig_filtrado = figure(); % Graficar filtrado imagesc(0.1*Filtro+0.7*img_frecu), colormap gray , axis equal , axis off , title( 'Proceso de filtrado' ); fig_fase = figure(); % Graficar filtrado imagesc(-angle(A_signal)) colormap gray , axis equal , axis off , title( 'Mapa de fase envuelta' )

El resultado se muestra en la Figura 17, se observa que el mapa de fase recu-

perado tiene el rizado descrito anteriormente. Comparando las Figura 13(a) y Figura

17(c) se observa que la primera es mejor estimación que la segunda y esto se debe

principalmente a la cantidad de datos para cada estimación. Por ello, el método de

Fourier es utilizado para medir fenómenos u objetos en movimiento, mientras que

PSI se emplea cuando se requiere mayor precisión en la medición.

4. Desenvolvimiento de fase El procedimiento de desenvolvimiento de fase consiste en recuperar los valores

originales de la fase a partir de los valores principales (fase envuelta), es decir, se

obtiene un mapa de fase continua a partir de uno discontinuo. Formalmente el pro-

blema puede ser planteado como,

�}�_� = ~��}�_�� = �G�_� ± 2�Round w�G�_�2� | (29)

donde Round ∶ ℝ ⟶ ℤ, es la función que redondea su argumento al entero más cer-cano, �} es el mapa de fase desenvuelto, �G es la fase envuelta y ~ es el operador de

(a)

(b)

(c)

Figura 17: Proceso demodulación con el Método de Fourier con datos reales: (a) patrón de intensi-

dad, (b) proceso de filtrado en el dominio de Fourier y (c) mapa de fase determinado.

Page 19: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |18

envolvimiento tal que ~�_� ∈ �−�, ��. Cabe mencionar que el operador ~ es sobre-

yectivo pero no inyectivo. Por lo tanto, el desenvolvimiento de fase es un problema

matemáticamente mal planteado en el sentido de Hadamard [9]. Sin embargo, el

valor ��_� es dependiente espacial y/o temporalmente, entonces, el contexto propor-ciona la información necesariamente para poder realizar el desenvolvimiento.

Desenvolvimiento por integración lineal El método inicialmente propuesto por Itoh [10] consiste en desenvolver la fase

progresivamente. Rescribiendo la Eq. (29) como sigue,

�} = �G ± 2���_� (30)

Tomando la derivada discreta (��⋅�) de la ecuación anterior, ���}� = ���G� ± ��2���_��

�}�_� − �}�_ − 1� = �G�_� − �G�_ − 1� ± 2����_� − ��_ − 1�� (31)

donde ���_� − ��_ − 1�� ∈ ℤ por propiedades del campo. Aplicando el operador de envolvimiento,

~ ����}�_��� = ~ ����G�_�� ± ��2���_��� = ~ ����G�_��� (32)

La expresión anterior es un resultado muy importante puesto que indica que la deri-

vada de la fase desenvuelta es equivalente a la derivada de la fase envuelta. Final-

mente, la función de fase desenvuelta es determinada como sigue,

�}�_� = �G�0� + . ~ ����}�1���p) 0��

(33)

Para lo cual se asumió que el patrón de franjas cumple con el Teorema de

Nyquist. Es conocido que el método de Itoh es sensible a la presencia de ruido, sin

embargo, establece el fundamento para métodos prácticos. En este sentido, se des-

cribe una variante (del algoritmo de Itoh) con un buen desempeño en presencia de

ruido controlado. Considerando lo siguiente,

~��G�_� − �G�_ − 1�� = ~��G�_� − �}�_ − 1�� (34)

Si la respuesta espectral del ruido es suficientemente acotada, entonces,

~��G�_� − �G�_ − 1�� = �G�_� − �}�_ − 1� (35)

y el desenvolvimiento de fase queda determinado como,

�}�_� = �}�_ − 1� + � ~��G�_� − �}�_ − 1��; � ∈ �0,1� (36)

donde el parámetro � es el criterio para filtrar el ruido.

Page 20: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |19

El método descrito en la Eq. (36) plantea el desenvolvimiento de fase como

un problema de valor inicial y utiliza el método de Euler para integrar progresiva-

mente la fase y el término � penaliza la derivada, por ende está relacionado intrínse-camente con los datos; un valor no adecuado (menor o mayor) permitirá errores

considerables en el momento de deenvolver la fase.

Con la finalidad de implementar el método de desenvolvimiento se define el

operador de envolvimiento como sigue,

~ ∶ ℝ ⟶ ℝFn ~��� ⇝ atan2�sin � , cos �� (37)

donde ℝFn es la recta real con intervalo �−�, �� y atan2�⋅,⋅� es el arco tangente de cuatro cuadrantes definido como,

atan2�`, _� ≔

��������� atan �_� , _ > 0�2 − atan �_� , ` > 0

− �2 − atan �_� , ` < 0atan �_� ± � , _ < 0

indefinido, _ = 0, ` = 0

(38)

En general, el desenvolvimiento en 2D requiere de una ruta de integración

como lo sugiere el método de Itoh. Para ello, en el presente reporte se elige una ruta

de zigzag del grid. A continuación se muestra el código de Matlab® escrito para

realizar el desenvolvimiento de fase. Debido a la similitud de los métodos descritos

no se muestra el método de Itoh.

% Archivo unwrapLocal.m function [phi] = unwrapLocal(phia,phiw,lambda) %UNWRAPLOCAL desenvolvimiento de un pixel con el mé todo penalizado % [phi] = unwrapLocal(phia,phiw,lambda) % -phia es el valor anterior de la ruta de desenvolvimiento. % -phiw es el valor que será desenvuelto . % -lambda es el valor de penalización deriv = phiw - phia; phi = phia + lambda*atan2(sin(deriv),cos(deriv) ); end % Archivo unwrap1D.m function [usignal] = unwrap1D(wsignal,lambda) %UNWRAP1D desenvolvimiento de una señal unidimensio nal. % [usignal] = unwrap1D(wsignal,lambda) % -wsignal señal 2D con fase envuelt a. % -lambda es el valor de penalizació n.

Page 21: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |20

n = length(wsignal); usignal = zeros(size(wsignal)); for i=2:n usignal(i) = unwrapLocal(usignal(i-1),wsign al(i),lambda); end end % Archivo unwrap2D.m function [imgUnwrap] = unwrap2D(imgWrap,lambda) %UNWRAP2D desenvolvimiento de una señal bidimension al. % [imgUnwrap] = unwrap2D(imgWrap,lambda) % -imgWrap señal 2D con fase envuelt a. % -lambda es el valor de penalizació n. [m,n] = size(imgWrap); tmpUnwrap = convertZigZag(imgWrap,[m,n], 'vec' ); tmpUnwrap = unwrap1D(tmpUnwrap,lambda); ImgUnwrap = convertZigZag(tmpUnwrap,[m,n], 'mat' ); end % Archivo unwrap2D.m function [S] = convertZigZag(signal,dim,opcion) %CONVERTZIGZAG convertir una imagen a trayecto zigz ag y viceversa % de acuerdo con opcion % [S] = convertZigZag(signal,dim,opcion) % -signal señal a convertir 1D<->opción= 'mat ' % o 2D<->opción='vec' . % -dim arreglo bidimensional tal que dim=[m,n ]. % -opcion convertir matriz a vector: 'vec', e n caso % opuesto 'mat'. m = dim(1); n = dim(2); switch opcion case 'vec' % convertir la matriz a un vector S = zeros(m*n,1); for i=1:2:m ind = (i-1)*n; S(ind+1:ind+n) = signal(i,:); end for i=2:2:m ind = (i-1)*n; S(ind+1:ind+n) = signal(i,n:-1:1); end case 'mat' % convertir el vector a matriz (proceso inverso) S = zeros(m,n); for i=1:2:m ind = (i-1)*n; S(i,:) = signal(ind+1:ind+n); end for i=2:2:m ind = (i-1)*n; S(i,n:-1:1) = signal(ind+1:ind+n); end otherwise S = false;

Page 22: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |21

end end

Los resultados se muestran en la Figura 18, la función de fase es una gaussiana

con ruido blanco de media cero y varianza 0.08. Se observa que debido al ruido el

algoritmo de Itoh falla al detectar un cambio de dirección 2� falso. En este sentido, la penalización del método de Euler filtra el ruido y la fase desenvuelta es significa-

tivamente más fiable.

Como se mencionó anteriormente, el desenvolvimiento de fase, como un pro-

ceso dependiente de la ruta, requiere que la dirección de integración esté en función

de la fiabilidad de los datos, es decir, aquellos valores cuya relación señal a ruido sea

mayor. En este sentido, el algoritmo floodFill cuya dirección está gobernada por un

mapa de calidad fue propuesto por Asundi y Wensel [11] para el desenvolvimiento

de fase. A continuación se muestra el algoritmo:

1 m���Y�I�����, � , �� 2 Si �� ∈ Ω y ¢���� = 0 entonces

3 ����� ← r1¤�"¥¦�/"����, � , ��. 4 ¢���� ← 1. 5 § ← �Γ=�p� + 1, �©�?, Γ=�p�, �©� + 1?, Γ=�p� − 1, �©�?, Γ=�p�, �©� − 1?�. 6 Mientras § no sea vacía hacer

7 �′ ← ¥�¥�§�. 8 m���Y�I����«, ��, ��. 9 Fin Mientras

10 Fin Si

11 Fin

donde �0,�  son las coordenadas de la posición a desenvolver y las del desenvolvi-miento previo y el valor � es la penalización de la derivada, Ω es el grid sobre el cual está definido la fase, es decir, � ∈ Ω, Γ,¢ ∈ Ω son el mapa de fidelidad y la máscara de coordenadas: 1 si está desenvuelto o 0 en caso contrario. La variable § es una

(a)

(b)

(c)

Figura 18: Desenvolvimiento de fase, (a) mapa de fase envuelta, (b) fase desenvuelta con el método

de Itoh, (c) fase desenvuelta con el método de Euler penalizado con � = 0.4.

Page 23: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |22

lista ordenada en forma descendente; evidentemente en la línea 5 los valores son

ordenados. La función ¥�¥�⋅� extrae las coordenadas en Ω del primer elemento. En la Figura 19 se muestra un ejemplo de la ruta de floodFill con el mapa de fidelidad

mostrado.

En general, la ruta de desenvolvimiento generada por floodFill permite una

mejor estimación de la fase que la ruta de zigzag. En la Figura 20 se muestran seis

capturas del desenvolvimiento de la fase de la pirámide estimada con el método de

Fourier, se utilizó la señal moduladora como mapa de fidelidad.

5. Normalización El proceso de normalización de franjas tiene por objetivo eliminar la señal

moduladora. En la Figura 14 se muestra un caso práctico donde la señal moduladora

está en función tanto de las variables espaciales como temporales y que es descrito

en la Eq. (18). El método descrito en el presente trabajo fue propuesto por Quiroga

y Servín [12], se considera un patrón de franjas de la forma,

���� � "��� � $��� cos ���� (39)

donde "��� es el término de DC o intensidad de fondo, $��� es el contraste de franjas, ���� es la función de fase y � es el vector de posición espacial. Sea �¬ es un interfe-rograma tal que el término de DC fue eliminado mediante un filtro pasa-altas,

�¬��� � $��� cos ���� � 3­®��� (40)

Considerando el operador espiral de fase cuya Función de Transferencia Fre-

cuencial (FTF) está determinada como,

Figura 19: Desenvolvimiento de fase con

floodFill y mapa de fidelidad.

Figura 20: Capturas del desenvolvimiento con flood-

Fill de la Figura 17(c).

Page 24: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |23

¯�r, °� = r + I°|r + I°| = exp�IN�r, °�� (41)

El operador anterior es empleado para estimar la cuadratura de �¬, tal que, ℱ�¯��¬����� = ℱ��¬����¯�³�= 12 $�#�³ − ³�� exp�I��³��− #�³ + ³�� exp�−I��³��� exp�IO�³��

(42)

donde O�³� = arctan r °⁄ . Entonces, en el dominio espacial tenemos que,

¯��¬���� = exp�IO� sin ����= ℱ) ´12 $�#�³ − ³�� exp�I��³��− #�³ + ³�� exp�−I��³��� exp�IO�³��µ

(43)

Tomando la magnitud de la transformación de �¬ bajo ¯, se obtiene la cuadratura del patrón de franjas, esto es,

|¯��¬����| = |I exp�IO���� sin ����| = $���|sin ����| (44)

Finalmente, el patrón de franjas es normalizado mediante,

�0��� = cos �l��� (45)

donde la fase es determinada,

�l��� = Arg��¬��� + I|¯��¬����|� (46)

Así el patrón de franjas �¬ es normalizado y, �0��� ∈ �−1,1�. La función implementada en Matlab® del método descrito anteriormente se muestra

a continuación. Nota: el argumento I es un interferograma sin el término de DC.

% Archivo normalizar.m function [In] = normalizar(I) [m,n] = size(I); [v,u] = meshgrid(-m/2:m/2-1,-n/2:n/2-1); FI = fftshift(fft2(I)); betha = atan2(v,u); betha = betha'; S = ifft2(fftshift(FI.*exp(1i*betha))); arg = angle(I+1i*abs(S)); In =0.5*(cos(arg) + 1); end % Archivo ejemploNormalizar.m %% crear un patron de franjas con perfil gaussiano x = 1:256; y = x; [X,Y] = meshgrid(x,y);

Page 25: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |24

phi = 0.001*((X-127).^2 +(Y-127).^2); b = exp(-4.*(((X-127).^2+(Y-127).^2)./1e5)); I = b.*cos(phi); %% Normalizar patrón de franjas In = normalizar(I); %% Graficar subplot(2,2,1),imagesc(I) % Interferograma colormap gray , axis equal axis off , title( 'I_\alpha(r)' ) subplot(2,2,2),plot(I(128,:), 'r-' ) % Perfil del interferograma axis([1 256 min(I(128,:)) max(I(128,:))]) title( 'I_\alpha(128,y)' ) xlabel( 'Pixeles' ), ylabel( 'Amplitud' ) subplot(2,2,3),imagesc(In) % Interferograma normalizado colormap gray , axis equal axis off , title( 'I_n(x,y)' ) subplot(2,2,3),imagesc(In) % Perfil interferograma norm subplot(2,2,4),plot(In(128,:), 'r-' ) axis([1 256 min(In(128,:)) max(In(128,:))]) title( 'I_n(128,y)' ) xlabel( 'Pixeles' ), ylabel( 'Amplitud' )

El resultado del código anterior se muestra en la Figura 21 se muestra el

resultado del proceso de normalización. Donde se observa la normalización de un

patrón sintético.

(a)

(b)

(c)

Figura 21: Normalización de un patrón de franjas sintético con el algoritmo [12], (a) patrón de

franjas con moduladora, (b) patrón de franjas normalizado, (c) comparación de los valores de

intensidad del patrón normalizado y el no-normalizado.

Page 26: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |25

6. Co-Faseo El método de perfilometría por co-faseo tiene por objetivo reducir la pérdida

de información debido a sombras que origina una perspectiva de proyección. En la

Figura 22 se muestra la configuración de co-faseo con dos perspectivas de proyección,

se observa que la pupila de la CCD (¶k) es ortogonal al plano ·, la distancia del punto ¸ a las pupilas de los proyectores es la misma, ¶ ¸}}}}} = ¶F¸}}}}}, el ángulo del rayo principal de las proyecciones con respecto al plano YZ es �. Cabe mencionar que la distancia ¶k¸}}}}} puede ser distinta a ¶ ¸}}}}} como se muestra en la Figura citada.

El método propuesto por Servín et al. [12] que se describe a continuación,

recordando el modelo matemático de un patrón de franjas expresado como,

���� = "��� + $��� cos����� � ��� (45)

donde "��� es la iluminación de fondo, $��� el contraste de franjas, �� el corrimiento temporal de fase y ���� la función de fase buscada. En proyección de franjas por cuestión de sensibilidad se agrega un portadora espacial tal que,

���� � "��� � $��� cos����� � /��� � ��� (46)

Además, dado que los rayos principales de la CCD y del proyector son cruzados,

entonces: en el punto de observación de la cámara se agrega una portadora espacial

relacionada con el ángulo � entre las pupilas de la CCD y el proyector, entonces, ���� � "��� � $��� cos�¹���� � /��� � ��� (47)

donde ¹ � º sin � y º es la frecuencia espacial en radianes por pixel. Con las consideraciones anteriores se define el conjunto de interferogramas

para cada perspectiva de proyección:

� ��, 1� � "��� � $��� cos�¹� ��� � / ��� � 1���; � � 1,2, … ,4 (48)

�F��, 1� � "��� � $��� cos�¹�F��� � /F��� � 1���; � � 1,2, … ,4 (49)

Figura 22: Configuración de co-faseo para perfilometría con dos perspectivas de proyección.

Page 27: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |26

En las Eqs. (48-49) se observa que se emplean 8 patrones de franjas. Aplicando el

método de cuatro pasos de la Eq. (10) se obtiene (respectivamente),

����%&�c'»�E�@k»�E�� = � ��, 0� + � ��, 1�%&>A + � ��, 2�%)&F>A + � ��, 3�%)&;>A (50)

����%&�c'¼�E�@k¼�E�� = �F��, 0� + �F��, 1�%&>A + �F��, 2�%)&F>A + �F��, 3�%)&;>A (51)

En las ecuaciones anteriores se observa la necesidad de eliminar la portadora. Para

ello considere el procedimiento de las Eqs. (48-52) tal que � = �F = 0. Finalmente, la señal analítica de cada proyección queda determinada como:

����%&c'»�E� = Z����%&�c'»�E�@k»�E��[%)&k»�E� (52)

����%&c'¼�E� = Z����%&�c'¼�E�@k¼�E��[%)&k¼�E� (53)

Así la fase estará determinada como:

����%&½�E� = Λ ���%)&k»�E� + ΛF���%&k¼�E� (54)

donde Λ , ΛF son las señales analíticas de la proyección 1 y dos, respectivamente. En la Eq. (54) se muestra la suma de las fases positiva y negativa. Por lo tanto, para

determinar la señal analítica Λ tal que la fase sea negativa (ver Figura 1) se requiere un algoritmo que recupere la componente negativa, para la otra señal analítica se

emplea el algoritmo de cuatro pasos mencionado anteriormente.

En la práctica es difícil conseguir un empalme de franjas (de ambas proyec-

ciones), entonces, un término de pistón distinto es agregado a las Eqs. (52-53) el cual

debe ser corregido. A continuación se muestra el script de Matlab® desarrollado.

%% Estimar la fase de la proyección 1 (fase postiva) % Cargar datos dI0 = im2double(imread( 'proy1_o_i0.png' )); % Patrones con objeto dI1 = im2double(imread( 'proy1_o_i1.png' )); dI2 = im2double(imread( 'proy1_o_i2.png' )); dI3 = im2double(imread( 'proy1_o_i3.png' )); rdI0 = im2double(imread( 'proy1_c_i0.png' )); % Patrones con portadora rdI1 = im2double(imread( 'proy1_c_i1.png' )); rdI2 = im2double(imread( 'proy1_c_i2.png' )); rdI3 = im2double(imread( 'proy1_c_i3.png' )); % Estimar señal analítica A_s1 = dI0 – 1i*dI1 – dI2 + 1i*dI3; % objeto + portadora A_c1 = rdI0 – 1i*rdI1 – rdI2 + 1i*rdI3; % portadora % Estimar fase c1 = angle(A_c1); % estimar portadora phi_1 = angle(A_s1.*exp(-1i*c1)); % estimar fase del obj %% Estimar la fase de la proyección 2 (fase negativ a) % Cargar datos iI0 = im2double(imread( 'proy2_o_i0.png' )); % Patrones con objeto iI1 = im2double(imread( 'proy2_o_i1.png' )); iI2 = im2double(imread( 'proy2_o_i2.png' ));

Page 28: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |27

iI3 = im2double(imread( 'proy2_o_i3.png' )); riI0 = im2double(imread( 'proy2_c_i0.png' )); % Patrones con portadora riI1 = im2double(imread( 'proy2_c_i1.png' )); riI2 = im2double(imread( 'proy2_c_i2.png' )); riI3 = im2double(imread( 'proy2_c_i3.png' )); % Estimar señal analítica A_s2 = dI0 + 1i*dI1 – dI2 - 1i*dI3; % objeto + portadora A_c2 = rdI0 + 1i*rdI1 – rdI2 - 1i*rdI3; % portadora % Estimar fase c2 = angle(A_c2); % estimar portadora phi_2 = angle(A_s2.*exp(1i*c2)); % estimar fase del obj %% Realizar suma de fase A_o = A_s1.exp(-1i*c1) + A_s2.exp(-1i*c2); phi_o = angle(A_o); %% Graficar fig_proy1 = figure(); % fase proy 1 Imagesc(phi_1),colormap gray , axis equal axis off , title( 'fase proyeccion 1' ) fig_proy2 = figure(); % fase proy 2 Imagesc(phi_2),colormap gray , axis equal axis off , title( 'fase proyeccion 2' ) fig_objeto = figure(); % fase objeto cofaseado Imagesc(phi_o),colormap gray , axis equal axis off , title( 'fase objeto )

Los resultados se muestran en la Figura 23, se observa que el ruido de las

sobras de cada perspectiva se atenúa considerablemente en la fase de co-faseo, lo cual

es el objetivo del método descrito anteriormente. En las Figuras 23(e-f) se observa el

problema del término de pistón originado por imprecisiones en la alineación de la

instalación experimental, entonces, el término debe ser corregido.

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

Figura 23: Co-faseo con dos perspectivas de proyección y cuatro patrones en cada perspectiva: (a)-

(d) patrones con objeto y de referencias con perspectiva derecha a izquierda respectivamente, (e)-

(f) fases estimadas desde la derecha y desde la izquierda, (g) fase del objeto por co-faseo (suma de

fases) y (h) la fase de co-faseo desenvuelta.

Page 29: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |28

7. Conclusiones En el presente reporte se realiza una revisión de los temas de interferometría

digital: demodulación, desenvolvimiento, normalización y co-faseo. En especial se re-

visó el tema de demodulación de interferogramas, en particular, las técnicas de in-

terferometría por corrimiento de fase y el método de transformada de Fourier. La

primera permite una estimación con mayor resolución en la fase estimada, mientras

que método de Fourier permite una mayor velocidad de cálculo. Considerando el

método de proyección de franjas, cuando se proyectan patrones RGB es necesario

realizar una normalización para compensar la no-linealidad de los sensores. Si el

objeto bajo prueba genera sombras sobre áreas que se desean medir, entonces, el

método de co-faseo permitirá reducir o inclusive eliminar la pérdida de información

debido a las sombras. Por otro lado, el método de desenvolvimiento que mejor desem-

peño es el floodFill con un valor de penalización de 0.35 para corrimiento de fase y

0.6 para método de Fourier.

8. Referencias

[1] M. Servín, J. A. Quiroga and M. Padilla, Fringe pattern analysis for optical

metrology: theory, algorithms, and applications, John Wiley & Sons, 2014.

[2] J. H. Bruning, D. R. Herriott, J. E. Gallagher, D. P. Rosenfeld, A. D. White

and D. J. Brangaccio, "Digital wavefront measuring interferometer for testing

optical surfaces and lenses," Appl. Opt., vol. 13, no. 11, pp. 2693-2703, 1974.

[3] S. H. Rowe y W. T. Welford, «Surface topography of non-optical surfaces by

proyected interference fringes,» Nature, vol. 216, pp. 786-787, 1967.

[4] P. S. Huang, Q. Hu, F. Jin and F. P. Chiang, "Color-encoded digital fringe

proyection technique for high-speed tree-dimensional surface contouring," Opt.

Eng., vol. 38, no. 6, pp. 1065-1071, 1999.

[5] J. L. Flores, J. A. Ferrari, G. G. Torales, R. Legarga-Saenz and A. Silva, "Color-

fringe pattern profilometry using a generalized phase-shifting algorithm," Appl.

Opt., vol. 54, pp. 8827-8834, 2015.

[6] P. Jia, J. Kofman, C. English and A. Deslauriers, "Comparison of linear and

nonlinear calibration methods for phase-shifting surface-geometry measure-

ment," in Optomechatronic Technologies, 2005.

[7] M. Takeda, H. Ina y S. Kobayashi, «Fourier-transform method of fringe-patter

analysis for computer-base topography and interferometry,» Opt. Soc. Am., vol.

72, nº 1, pp. 156-160, 1982.

Page 30: Interferometría digital

Sotero Ordoñes Nogales – Reporte “Interferometría Digital” |29

[8] A. N. Tikhonov and V. I. Asernin, Solutions of ill-posed problems, Winston,

1997.

[9] K. Itoh, «Analysis of the phase unwrapping algorithm,» Appl. Opt., 1982.

[10] A. Asundi and Z. Wensen, "Fast phase-unwrapping algorithm based on a gray-

scale mask and flood fill," Appl. Opt., vol. 37, no. 23, pp. 5416-5420, 1998.

[11] J. A. Quiroga and M. Servín, "Isotropic n-dimensional fringe pattern normali-

zation," Opt. Commun., vol. 224, no. 4-6, pp. 221-227, 2003.

[12] M. Servín, G. Garnica, J. C. Estrada y A. Quiroga, «Coherent digital demodu-

lation of single-camera N-projections for 3D-object shape measurement: Co-

phased profilometry,» Opt. Express, vol. 21, nº 21, pp. 24873-24878, 2013.