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