Propagation of Angular Spectrum Code

In summary: So, in MATLAB, you can create a vector for ##f_x## and ##f_y## using the built-in function fftfreq. In summary, the issue with the propagation factor can be resolved by using the 2-d discrete Fourier transform and creating a vector for ##f_x## and ##f_y## using fftfreq in MATLAB.
  • #1
stephen8686
42
5
TL;DR Summary
I am trying to code angular spectrum beam propagation in matlab, but I'm having trouble with the propagation factor.
I'm making a MATLAB code to propagate a gaussian field in the angular spectrum regime (fresnel number >> 1).
After Fourier transforming the field, you propagate it: $$U(k_x,k_y,z) = U(k_x,k_y,0)e^{ik_z z}$$
The thing that I am having trouble with is the propagation factor, I have looked at this thread: https://www.physicsforums.com/threads/code-of-the-angular-spectrum-method.823494/
and they say that
$$k_z = \frac{k_0 z}{\sqrt{x^2+y^2+z^2}}$$
where ##k_0 = 2\pi/\lambda##
But I've been following Goodman's Fourier Optics book which says that it should be (Eq 3-62)
$$k_z = k_0\sqrt{1-(\lambda f_x)^2-(\lambda f_y)^2}$$
And I don't see how they are equivalent.

But here is my real question. If I use Goodman's propagation factor, what are ##f_x## and ##f_y## computationally?
Say I have a square aperture length = 1m, and I sample it 2048 times along each axis. Then my x and y vectors go from -0.5 to 0.5 with 2048 points, in Matlab language:
x = -L/2:dx:L/2-dx;
So how do I get a ##f_x## vector? I feel like it should be ##2\pi/x## or something, but that doesn't work.

Hope my latex works. If you need more clarification just ask. Thanks
 
  • Like
Likes Delta2
Physics news on Phys.org
  • #2
Take the 2-d discrete Fourier transform of your sampled array, i.e from Goodman's eqn. 3-63,
$$
A(\frac{\alpha}{\lambda},\frac{\beta}{\lambda},0)=\int \int_{-\infty}^{\infty}U(x,y,0)exp[-j2\pi (\frac{\alpha}{\lambda}x + \frac{\beta}{\lambda}y)]dxdy
$$
$$
A(\frac{\alpha}{\lambda},\frac{\beta}{\lambda},0)=A(f_x,f_y,0)
$$
##f_x## corresponds to a row number and ##f_y## corresponds to a column number of the FT array.
 
  • Like
Likes Delta2

1. What is the "Propagation of Angular Spectrum Code"?

The "Propagation of Angular Spectrum Code" is a mathematical model used in optics to simulate the propagation of light through a medium. It is based on the angular spectrum representation of a wave, which describes a wave as a superposition of plane waves with different directions and frequencies.

2. How does the "Propagation of Angular Spectrum Code" work?

The code works by breaking down the incident wave into its angular spectrum components and then propagating each component through the medium using the Fresnel diffraction integral. The propagated components are then recombined to obtain the final wave at the desired location.

3. What are the applications of the "Propagation of Angular Spectrum Code"?

The code is commonly used in optical imaging, holography, and diffraction-based experiments to simulate the behavior of light in various media. It can also be used in the design of optical systems and in the analysis of light-matter interactions.

4. Are there any limitations to the "Propagation of Angular Spectrum Code"?

One limitation of the code is that it assumes the medium is linear and homogeneous, which may not be the case in all situations. Additionally, the code may not accurately model some complex optical phenomena, such as scattering or nonlinear effects.

5. How can I learn more about the "Propagation of Angular Spectrum Code"?

There are many resources available online that explain the theory and implementation of the code in detail. You can also consult scientific papers and textbooks on optics and computational physics for more information. Additionally, there are software packages and libraries available that utilize the code for simulation and analysis purposes.

Similar threads

  • Differential Equations
Replies
11
Views
2K
  • Classical Physics
Replies
13
Views
989
  • Introductory Physics Homework Help
Replies
9
Views
701
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
3K
  • Advanced Physics Homework Help
Replies
1
Views
834
Replies
2
Views
1K
  • Advanced Physics Homework Help
Replies
3
Views
2K
Replies
17
Views
1K
Replies
3
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
1K
Back
Top