Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How FFT workks? (analytical example)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127493] Re: How FFT workks? (analytical example)
  • From: Dana DeLouis <dana01 at me.com>
  • Date: Sun, 29 Jul 2012 03:05:41 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net

> and the solution is:
> i Exp(-t G /2)Sqrt(2*pi)G*HeavisideTheta[t]

Hi.  Glad you have a solution.  Here are just some random thoughts.  :>)
A solution that uses i & pi  are suspicious with this program because the syntax is I & Pi.
One doesn't know it the solution to a problem is just a simply spelling error.  :>)

Just to share a technique, I've often changed the default settings to save typing, only to forget later.
Hense, my technique is to specify the parameters I'm using.  And.. since I never remember what they are, I use something like this:

f[w_] := -(G/(w + I*(G/2)))

default = {0, 1}; 
data = {-1, 1}; 
signal = {1, -1}; 

It appears you used the Default settings, as this is the same solution as yours:

Assuming[G > 0,  InverseFourierTransform[f[w], w, t, FourierParameters ->  default]]

(I*G*Sqrt[2*Pi]*HeavisideTheta[t])/ E^((G*t)/2)

Sometimes... depending on what you are doing, you may want to use the definition as given by Data Analysis.
(Just a guess for your problem ... maybe ?? ).   I also assume t just to mix it up.

Assuming[G > 0 && t > 0, InverseFourierTransform[f[w], w, t, FourierParameters -> data]]

(2*I*G*Pi)/E^((G*t)/2)

And a slightly different answer using Signal Analysis.

Assuming[G > 0,InverseFourierTransform[ff[w], w, t, FourierParameters ->  signal]]

I*E^((G*t)/2)*G*HeavisideTheta[-t]


You were given a solution with:

gList = InverseFourier[RotateLeft[fList, len/2]]wCutoff/Sqrt[2 pi len]; 

Just for fun, here's some random data:

wCutoff = 1000;
len = 32;
data=RotateLeft[RandomReal[{0,10},len],len/2];

The solution given was:

Sol1=InverseFourier[data] * wCutoff/Sqrt[2 Pi len] ;

We assume this was using the default Parameters.
It already used Sqrt[len].  So, if we cancel out the remaining parts of the suggestion, and resolve for the parameter,
then we get a strange value for a new parameter.    Hmmm.  :>~

k = N[(Log[2*len*Pi] - 2*Log[wCutoff])/Log[len]]
-2.45601

Do same thing, but with Parameter vs multiplication.

Sol2=InverseFourier[data,FourierParameters->{k,1}];

Same solution! :>)

Sol1 == Sol2
True

= = = = = = = = = =
Dana DeLouis
Mac & Math 8
= = = = = = = = = =


On Jul 23, 7:58 pm, juan miguel <juanm... at gmail.com> wrote:
> First of all, thanks for reading my post.
> Well, the problem is the next one:
> 
> I have to make an Inverse Fast Fourier Transfrom of a function, but I'm not sure how it works. To do this, I have used a function whose Inverse Fourier Transform is analytical
> 
>         -G
> f(w)= -------
>        w+iG/2
> 
> So the analytical solution can be easily calculated:
> 
> Assuming[G > 0,InverseFourierTransform[f[w], w, t]]
> 
> and the solution is:
> 
> i Exp(-t G /2)Sqrt(2*pi)G*HeavisideTheta[t]
> 
> And now I can Plot this function (the imaginary part)
> 
> Well, what I want is to get exactly the same result using the subrutine Fast Fourier Transfrom (InverseFourier) with that function, but I do not know how to this.
> 
> It is very important for me, because the function that I have to use has not analytical solution and I have to be sure about what I am doing
> 
> Thanks








  • Prev by Date: Manipulate a Plot of Evaluate DSolve
  • Next by Date: Re: Manipulate a Plot of Evaluate DSolve
  • Previous by thread: Re: How FFT workks? (analytical example)
  • Next by thread: Re: Can anyone see a faster way to compute quantities for a pair or