Resumen:
Se realiza una simulación para difracción de una onda plana, que atraviesa diferentes orificios, por
aproximación de Fraunhofer , Fresnel y espectro angular. Además, se simula el sistema óptico de una lente
para observar la formación de la imagen con luz coherente y el correspondiente defoco. Se presentan las
imágenes obtenidas en la simulación y los correspondientes códigos de la simulación desarrollada en
MATLAB®
Para cada caso de difracción se utilizaron las tres rejillas difractantes sugeridas por el profesor. Las
imágenes corresponden a Circulo14.tif, Circulo56.tif, CuadradoD.tif y DosCirculos24.tif
En esta aproximación es necesario definir una distancia de propagación que se encuentre dentro del campo
de Frensel. En el algoritmo la rejilla difractiva se multiplica por un término de fase y luego se halla la
transformada de Fourier de este producto, el término de fase depende de la distancia a propagar. Los
resultados para cada tipo de abertura son los siguientes:
Para una abertura de 56 se tomaron diferentes distancias de propagación. Se observa que el patrón de
difracción en campo cercano (d pequeña) es diferente a medida que se aumenta la distancia de
propagación d. Para el caso de d=1000, el patrón que se observa es similar al que se obtuvo para la misma
rejilla en la aproximación de Fraunhofer.
Para las otras rejillas sucede lo mismo, a continuación las imágenes para el caso de la apertura rectangular.
III. Propagación de una onda plana. Difracción por Espectro Angular (Ondas Planas):
Para el algoritmo por espectro angular, hallamos la TF de la rejilla y lo multiplicamos por otro término
de fase que depende de la distancia de propagación, esta vez en el espacio de las frecuencias. Luego se
halla la transformada inversa de Fourier y se obtiene el campo difractado. A valores apropiados de d se
observa un patrón similar al obtenido por fresnel. Solo se muestran los resultados para la el Circulo 14,
similar al obtenido en las otras aproximaciones:
%DIFRACCIÓN POR APROXIMACIÓN DE FRANUNHOFER
%Caori Organista (133163)
clear all
close all
clc
I0=imread('DosCirculos24.tif');
I0=double(I0);
[N M]=size(I0);
%%
%Calculamos la difracción por Fraunhofer, para esto hallamos la
%transformada de fourier del obstaculo y como es en campo cercano, no se
%hace necesario determinar una distancia de propagación. El espectro se
%define como la transdormada de fourier del obstáculo.
I=fft2(I0);
I1=fftshift(I);
I1=255*abs(I1)/max(max(abs(I1)));
figure,
imwrite(imagesc(v*lambda*d,v*lambda*d,log(abs(I1+1))),colormap(gray),'Difracción
por FraunhoferCC24.tif');
title('\bf patrón de difracción');
set(gcf,'Color',[1 1 1],'NumberTitle','on','Name','Patrón Aprox. Fraunhofer');
title('\bf Patrón de Difracción por Fraunhofer, DosCirculos24');
axis image;
[U V]=meshgrid(h,h);
%I0=fft2(I0);
%I0=fftshift(I0);
Ui=I0.*exp((-1i*pi*(U.*U+V.*V))/(lambda*d));
figure
I1=fft2(Ui);
I1=fftshift(I1);
I1=255*abs(I1)/max(max(abs(I1)));
imwrite(imagesc(v*lambda*d,v*lambda*d,log(abs(I1)+1)),'Difracción por
FresnelCC241000.tif');
colormap(gray)
axis image, title('\bf Difracción por Aproximación de Fresnel');
set(gcf,'Color',[1 1 1],'NumberTitle','on','Name','Patrón Fresnel');
title('\bf Patrón de Difracción por Aprox. de Fresnel DosCirculos24, d=1000');
clear all
close all
clc
I0=imread('Circulo56.tif');
I0=double(I0);
[N M]=size(I0);
FT=fft2(I0);
FTT=fftshift(FT);
[fx fy]=meshgrid(kx,ky);
U=FTT.*(exp((2*1i*pi*d/lambda)*sqrt(1-(lambda^2)*(fx.*fx+fy.*fy))));
U=fftshift(U);
Uc=ifft2(U);
%Uc=ifftshift(Uc,2);
%A=255*abs(Uc)/max(max(abs(Uc)));
A=abs(Uc);
figure(1);
imagesc(kx,ky,log(A+1));
colormap (gray(256));
set(gcf,'Color',[1 1 1],'NumberTitle','on','Name','Patrón');
title('Patrón de difracción por Ondas Planas, Circulo 56');
imwrite(A,'Difracción Ondas PlanasC56.tif'); %% Dominio de
Fourier frecuencia espacial
El objetivo es obtener una imagen aumentada, con una magnificación del doble, de la letra E que fue
enviada. Este objeto se observa con una lente de foco 50mm, con un radio de apertura de 2mm. Para esto
se parte de la imagen gaussiana Ug, la cual es el objeto magnificado al doble (la imagen ideal que queremos
obtener). La imagen real se obtiene realizando la convolución de esta imagen gausiana con el modulo al
cuadrado de la función pupila h, que se obtiene como la transformada inversa de la función H en el espacio
doblemente transformado. Para esto necesitamos V0, que es el radio de la pupila, el cual determina la
frecuencia máxima que pasa por la lente. El resultado es una imagen con menores frecuencias que borra
los bordes de la imagen.
Si ubicamos el plano imagen en un lugar diferente al plano focal, obtenemos imágenes desenfocadas, un
defoco positivo o negativo es posible según la ubicación del plano, a continuación el resultado de desplazar
el plano antes o después del plano focal:
EL CODIGO ES EL SIGUIENTE:
I0=imread('E_OPTO.TIF');
u=I0(:,204);
max(max(u));
a=sum(u)/255; %Número de celdas que definen la altura de la letra E
dx=1/2;
dy=1/2;
[N M]=size(I0);
meshgrid(N,M);
meshgrid(hx,hy);
figure(2);
imagesc(hx,hy,I0),colormap(gray);
title('Imagen sin aumentar')
%h1 = ifftshift(ifftshift(ifft2(Hw1)));
h1 = ifftshift(ifft2(Hw1));
h1 = h1.*conj(h1);
Uiw1 = conv2(h1,I0);
figure(6);
imagesc(xx,yy,abs(Uiw1));
colormap(gray(256));
title('Imagen con aberración de defoco negativo');
h2 = ifftshift(ifftshift(ifft2(Hw2)));
h2 = ifftshift(ifft2(Hw2));
h2 = h2.*conj(h2);
Uiw2 = conv2(h2,I0);
figure(7);
imagesc(xx,yy,abs(Uiw2));
colormap(gray(256));
title('Imagen con aberración de defoco positivo');