7

I want to calculate the 2D Fourier transformation of a circular shaped aperture, but Mathematica won't finish the calculation:

h[x_, y_] := UnitBox[Sqrt[x^2 + y^2]]
Plot3D[FourierTransform[h[x, y], {x, y}, {k1, k2}], {k1, -5, 5}, {k2, -5, 5}]

So I tried to use the numerical NFourierTransform, but it showed me just an empty plot.

Needs["FourierSeries`"]
Plot3D[NFourierTransform[h[x, y], {x, y}, {k1, k2}], 
  {k1, -3, 3}, {k2, -3, 3}, 
  PlotRange -> All]

Does somebody know how I can calculate the Fourier transform of a circular aperture in a reasonable amount of time?

m_goldberg
  • 107,779
  • 16
  • 103
  • 257

1 Answers1

6

To get the correct result for the 2D Fourier transform of a function which doesn't factor in Cartesian coordinates, it's usually necessary to give Mathematica some assistance as to the best choice of coordinates.

In the circular case, that of course means we should use polar coordinates:

Clear[k];
airy[k_] = 
 1/(2 Pi)
   Integrate[
   r Exp[I k r Cos[ϕ]], {r, 0, 1}, {ϕ, -Pi, Pi}]

(* ==> BesselJ[1, k]/k *)

Plot[airy[k], {k, -40, 40}, PlotRange -> All]

airy

This is the famous Airy diffraction pattern of a circular aperture (when squared to get the intensity).

In setting up the integral for the Fourier transform, I used the fact that the expected result will depend only on the magnitude and not on the direction of the wave vector, so that you can choose the direction of $\vec{k}$ as the x axis for the polar integral.

Jens
  • 97,245
  • 7
  • 213
  • 499