Hi Viron,
While there is a diffraction pattern of a kind, it is not what is usually associated with diffraction by a circular aperture. The issue is aperture size, which is so large that almost everything goes through unaffected. Basically it’s a ray model. If you go to n = 1 (I am going to use n for n_circles), plot DP with
imagesc(abs(DP)), colorbar
and zoom in on the center of the plot, you will see a yellow dot at k = 0. That is the diffraction 'pattern'. There is a small amount of diffraction from the edge of the aperture as seen in the third image.
The smaller the aperture, the wider the diffraction pattern. If you put n = 1 and make the aperture a lot smaller, say R = 20, then DP shows a nice pattern.
For multiple apertures, the code below makes even R smaller so that the diffraction pattern is wider, and zooms in. It keeps R at a constant size. That way as n increases, two things are not happening at once. (The method used to zerofill M is not exactly recommended, but it works).
Multiple equally spaced apertures give [the single aperture pattern] x [the diffraction pattern for multiple narrow slits]. The visuals are not crystal clear, but for increasing n, the spacing between the apertures decreases and the width of the slit pattern increases.
It turns out that if the aperture spacing exactly divides the size of the array, the fft can't reproduce the slit diffraction pattern very well at all, and you get some funky stuff going on. As with what you saw for n = 2. Here I made a deliberate attempt to have a spacing that does not divide 2^10.
n_circles = 2
n0 = round(1023/n_circles);
M0 = zeros(n0);
I = 1:n0;
x = I - n0/2;
y = n0/2 - I;
[X,Y] = meshgrid(x,y);
R = 4;
A = (X.^2 + Y.^2 <= R^2);
M0(A) = 1;
M=repmat(M0,n_circles,n_circles);
M(2^10,2^10) = 0;
figure(1)
imagesc(M)
daspect([1 1 1])
DP = fftshift(fft2(M));
figure(2)
imagesc(abs(DP(300:700,300:700))), colorbar
axis image
figure(3)
imagesc(abs(log2(DP)))
axis image
Best Answer