RE: Reassembling Fourier Transforms
- To: mathgroup at smc.vnet.net
- Subject: [mg48864] RE: [mg48860] Reassembling Fourier Transforms
- From: "Florian Jaccard" <florian.jaccard at eiaj.ch>
- Date: Sun, 20 Jun 2004 02:39:16 -0400 (EDT)
- Reply-to: <florian.jaccard at eiaj.ch>
- Sender: owner-wri-mathgroup at wolfram.com
Hello ! Why don't you use Interpolation ? For example : points = Table[{x, Random[Real, {0, 1000}]}, {x, 0, 1000}]; c = Interpolation[points]; This function "turns a set of random values into a function"... And c[6] will always give the same answer ! In[10]= c[6] Out[10]= 883.9155403191598 In[11]:= c[6] Out[11]= 883.9155403191598 But I apologize if I didn't understand what you wanted... Greetings F.Jaccard -----Message d'origine----- De : Lee Fisher [mailto:lfis at helix.nih.gov] Envoyé : sam., 19. juin 2004 10:31 À : mathgroup at smc.vnet.net Objet : [mg48860] Reassembling Fourier Transforms I am trying to turn a list of points into a function, and one of the ways I thought to do this was to use Fourier to find the frequency components of the list, and then to Create a sum of exponentials as follows: f[x_] := Random[NormalDistribution[0, 1]] rawnoise = Table[f[x], {x, 1, 1000}]; frawnoise = Fourier[rawnoise]; magrawnoise = Abs[rawnoise]; phaserawnoise = Arg[frawnoise]; c[t] := \[Sum]\+\(n = 1\)\%1000\(( .005\ magrawnoise[\([n]\)]\ E^\((I\ n\ t\ + phaserawnoise[\([n]\)])\))\);\)\) c[t] = Re[c[t]]; I have two questions concerning this. First, is there an easier way to turn a set of random values into a function so that NDSolve can move through the function and always find the same value at a given point (i.e. c[6] will always equal .6002)? Second, if not, what sort of factors are necessary in adjusting the phase and magnitude so that they match the original numbers. I've tried doing this with much simpler inputs, such as two sine waves (Sin[t]+Sin[2 t]) and still the output does not properly match the input. Thanks for any help, Lee