Implementation of Fresnel Diffraction in MatLab

In summary, the conversation is about using MatLab to simulate Fresnel Diffraction using the Fast Fourier Transform syntax. The code provided includes Fourier Transforms for G(p, q) and H(p, q), as well as values for r_obj and r_img. The speaker is having trouble getting good diffraction patterns and asks for help with their code or equations. The expert requests a code snippet that can be run, pointing out that none of the variables are defined in the provided code. They suggest posting the necessary variables to run the code.
  • #1
ecastro
254
8
I'm trying to simulate the Fresnel Diffraction in MatLab using the Fast Fourier Transform syntax. But I'm not getting really good diffraction patterns. Here is the code:

%% Fourier Transform for G(p, q)
g = layer.*exp(((1i*pi)/(lambda*z))*(r_obj));
G = fftshift(fft2(g));

%% Fourier Transform for H(p, q)
h = (exp(1i*k*z)/(1i*lambda*z))*exp(((1i*k)/(2*z))*(r_img));
H = fftshift(fft2(h));

U = fftshift(ifft2(H.*G));

And these are the value for r_obj and r_img:
r_obj = ones(size(layer));
r_img = ones(size(layer));
for j = 1: obj_size(2);
for i = 1: obj_size(1);
r_obj(i, j) = x_prime(i)^2 + y_prime(j)^2;
r_img(i, j) = x(i)^2 + y(j)^2;
end;
end;

I don't know what's wrong with my code (or with my equations).
 
Physics news on Phys.org
  • #2
I recommend posting a code snippet that can run. The first thing I tried to do was run the code you posted, and then I realized none of the variables are defined. I'm sure you have them defined in your script, so just post them here as well so that the code can be copy/pasted to run.
 

FAQ: Implementation of Fresnel Diffraction in MatLab

1. What is Fresnel diffraction and why is it important?

Fresnel diffraction is a phenomenon that occurs when a wave passes through an aperture or around an object, causing the wave to spread and interfere with itself. It is important because it can help us understand how waves behave in different situations, such as in optical systems or in the propagation of electromagnetic waves.

2. How does MatLab implement Fresnel diffraction?

MatLab has built-in functions that allow for the calculation and visualization of Fresnel diffraction patterns. These functions use mathematical equations and algorithms to model the diffraction of a wave through an aperture or around an object.

3. Can MatLab simulate different types of Fresnel diffraction?

Yes, MatLab can simulate both scalar and vector Fresnel diffraction. Scalar diffraction considers the wave as a simple scalar quantity, while vector diffraction takes into account the polarization of the wave.

4. What are some practical applications of Fresnel diffraction?

Fresnel diffraction has many practical applications, such as in optical systems for designing lenses and diffraction gratings, in holography, and in the study of atmospheric turbulence. It is also used in the analysis and optimization of laser beams and other types of electromagnetic waves.

5. Are there any limitations to using MatLab for Fresnel diffraction simulations?

One limitation of using MatLab for Fresnel diffraction simulations is that it requires a good understanding of the underlying mathematics and algorithms. Additionally, the simulations may not always accurately represent real-world scenarios due to simplifications and assumptions made in the modeling process.

Similar threads

Replies
1
Views
2K
Replies
7
Views
10K
Replies
4
Views
3K
Replies
7
Views
12K
Replies
2
Views
19K
Replies
14
Views
6K
Replies
4
Views
5K
Replies
4
Views
3K
Back
Top