Computer Simulation of Fresnel Diffraction

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
3 replies · 3K views
ecastro
Messages
249
Reaction score
8
Considering this system (from Wikipedia),

685px-Diffraction_geometry.svg.png


The Fresnel Diffraction at x, y, and z is

##E \left(x, y, z\right) = \frac{z}{i \lambda} \int \int^{+\infty}_{-\infty} E \left(x', y', 0\right) \frac{e^{ikr}}{r^2} dx' dy'##

where ##r = \sqrt{\left(x - x'\right)^2 + \left(y - y'\right)^2 + z^2}##, ##E \left(x', y', 0\right)## is the aperture, and ##i## is the imaginary unit. The integration process I used to solve the integral is the Trapezoidal Rule (I don't know any good processes that is not step length dependent, and this is the one I am most familiar with).

As of now, the aperture size is infinite, so the image at ##z = 0## is unobstructed. I tried using the Fresnel Diffraction with this image:

Sample.png


And this was the corresponding Fresnel Diffraction at 4 meters with a wavelength of 700 nm:

new_sample.png


Is this correct?
 
Physics news on Phys.org
Anyway, I was told it was correct. However, the computing time for larger images are extremely long, so I might need the Fourier Transform. Can anyone help me on how to implement it?
 
As a general rule, you don't implement the FFT yourself (except for educational purposes) :)
There are myriad free implementations of it out there, e.g. FFTW for C++ (the only one I have ever dealt with).
 
So, I think it is alright if I used the function FFT of MatLab. But (according to Wikipedia, again), the function they used in the Fourier Transform is an approximation. Is there such a way that the equation at my first post can be transformed without the approximation?