Computer Simulation of Fresnel Diffraction

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?
 
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?
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 6 ·
Replies
6
Views
5K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 4 ·
Replies
4
Views
3K