Propagation of Angular Spectrum Code

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 4K views
stephen8686
Messages
42
Reaction score
5
TL;DR
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
 
Reply
  • Like
Likes   Reactions: Delta2
Physics news on Phys.org
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.
 
Reply
  • Like
Likes   Reactions: Delta2