Re: How can I compute the Fourier transform of a unit disk and a unit ball analytically by using Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg55289] Re: How can I compute the Fourier transform of a unit disk and a unit ball analytically by using Mathematica?
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Fri, 18 Mar 2005 05:34:17 -0500 (EST)
- Organization: The University of Western Australia
- References: <d1bh0j$lsf$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <d1bh0j$lsf$1 at smc.vnet.net>, Zhou Jiang <jiangzhou_yz at yahoo.com> wrote: > I am a fresh bird using Mathematica in my research. I am now trying to > compute the analytic expression of the Fourier transform of a unit disk and a > unit ball. I hope Mathematica 5.1 can work it out for me just for learning > purpose. My definition of the Fourier transform is a little different from > the built in function FourierTransfrom. No it isn't -- you just need to select the correct FourierParameters. See below and also http://mathworld.wolfram.com/FourierTransform.html > I define the Fourier transform as > > F(u)=Integrate[f(x) Exp[-I x u], {x, -Infinity, Infity}] > > and the 2D Fourier transform is > > F(u,v)=Integrate[f(x,y) Exp[-I (x u+y v)], {x,-Infinity, > Infinity},{y,-Infinity, Infinity}] > > and hence 3D Fourier transform is defined as > > F(u,v,w)=Integrate[f(x,y,z) Exp[-I(x u+y v+z w)], {x,-Infinity, > Infinity},{y,-Infinity, Infinity},{z, -Infinity,Infity}] > > Therefore, I computed the Fourier transform of the squarewave like > > Integrate[Boole[Abs[x]<=1] Exp[- I x u],{x,-Infinity,Infinity}] > > and Mathematica 5.1 gave a correct answer 2 sin(u)/u. You can obtain this using FourierTransform as follows: FourierTransform[Boole[Abs[x] <= 1], x, u, FourierParameters -> {1, 1}] > I tried the 2D version of the problem as > > Integrate[Boole[x^2+y^2<=1] Exp[-I (x u+y v)],{ x,-Infinity, > Infity},{y,-Infinity, Infinity}] > > and Mathematica cannot work it out any more. I am a little dispressed A combination of distressed and depressed? > since this is a very classical problem and the result should be 2 Pi > J1[Sqrt[u^2+v^2]]/Sqrt[u^2+v^2] where J1 is the usuall Bessel function of > first order. To compute this integral a change of variables to polar coordinates is simplest. Here is one way to obtain this result: [1] Change variables: Simplify[Exp[-I (x u + y v)] /. {x -> r Cos[q], y -> r Sin[q]}] [2] Collect the trig functions together: % /. a_ Cos[q] + b_ Sin[q] :> Sqrt[a^2 + b^2] Cos[q + f] where f = ArcTan[a,b]. [3] Since we are integrating over 0 <= q <= 2Pi, the phase, f, is arbitrary: % /. f -> 0 Assuming[r > 0 && Sqrt[u^2 + v^2] > 0, Integrate[%, {q, 0, 2 Pi}]] [4] Now perform the integration over the unit ball, 0 <= r <=1: FunctionExpand[Integrate[% r, {r, 0, 1}]] FunctionExpand[Simplify[%, u^2 + v^2 > 0]] One obtains the expected result: 2 Pi BesselJ[1, Sqrt[u^2 + v^2]])/Sqrt[u^2 + v^2] Note that the order of integration is important (to Mathematica): It is better to perform the q integration before the r integration. > Of course, Mathematica did not give me any answer for the 3D > version of the problem. Can anyone give me some idea about how to make it > work? In general, R . P = r p Cos[q] where q is the angle between the n-dimensional vectors R and P and p = Sqrt[P.P]. Using this, one can easily show that the Fourier Transform of the unit ball in n-dimensions is FT[n_] := ((2 Pi^((n - 1)/2))/Gamma[(n - 1)/2]) * Integrate[r^(n - 1) Assuming[Element[p r, Reals], Integrate[E^(-I r p Cos[q]) Sin[q]^(n - 2), {q, 0, Pi}]], {r, 0, 1}] Moreover, one can then obtain the general result: (2 Pi)^(n/2) BesselJ[n/2, p]/p^(n/2) It is probably not reasonable to expect Mathematica to perform the required change of variables to compute such a result automatically. Cheers, Paul -- Paul Abbott Phone: +61 8 6488 2734 School of Physics, M013 Fax: +61 8 6488 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul