Fraunhofer diffraction through scattering media
2 次查看(过去 30 天)
显示 更早的评论
close all; clear all;
lambda=0.6*10^-6; % wavelength, unit:m
delta=80*lambda; % sampling period,unit:m
z=1; % propagation distance, unit:m
M=512; % space size
c=1:M;
r=1:M;
[C, R]=meshgrid(c, r);
THOR=(((R-M/2-1).^2+(C-M/2-1).^2).^0.5)*delta;
OB=zeros(M); % Object
for a=1:M;
for b=1:M;
if THOR(a,b)<=5*10^-4; % aperture radius unit:m
OB(a,b)=1;
end
end
end
FD=fftshift(fft2(fftshift(OB)));
FD=abs(FD);
FD=FD/max(max(FD));
C=C*lambda*z/M/delta*1000;
R=R*lambda*z/M/delta*1000;
figure; mesh(R, C, FD);
figure; imshow(FD);
title(‘Modulus of the Fraunhofer diffraction pattern’)
Hello,
so the above code simulates Fraunhofer diffraction through a circular aperture. (Code taken from a book). Instead of the circular aperture I want to simulate a phase mask like such
%making a continuos phase mask
continuos_phaseshift = zeros(500,500);
for a = 1:500
for b = 1:500
continuos_phaseshift(a,b) = sin(a);
end
end
but when I replace the circular aperture with this phase mask, I get a weird looking result back. I was expecting a speckle pattern instead as you can see from the figure if you replace this piece of code to the piece of code of the circular aperture, I just get two slits. Any idea what is wrong with this?
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Object Containers 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!