|
[Date Index]
[Thread Index]
[Author Index]
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
Prev by Date:
Re: Re: Do loops in Mathematica
Next by Date:
Re: Re: GridLines
Previous by thread:
Re: How can I compute the Fourier transform of a unit disk and a unit ball analytically by using Mathematica?
Next by thread:
Distance from point to set
|