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