Efficiently compute Fourier coefficients for discrete function
- To: mathgroup at smc.vnet.net
- Subject: [mg105425] Efficiently compute Fourier coefficients for discrete function
- From: Kelly Jones <kelly.terry.jones at gmail.com>
- Date: Wed, 2 Dec 2009 06:25:51 -0500 (EST)
Mathematica-wise, how to efficiently compute the Fourier coefficients for a function defined at finite "random" points. Example: This defines Sin[3*x] for 100 random values of x: l = Table[Random[],{i,1,100}] l2 = Table[{l[[i]],Sin[3*l[[i]]]},{i,1,Length[l]}] This calculates the nth Fourier coefficient: pfourier[s_,n_] := Sum[s[[i]][[2]]*Exp[-I*n*s[[i]][[1]]], {i,1,Length[s]}] (I realize I'm off by a factor of pi; I'm only interested in relative size for now). As expected, the imaginary/sine part of the 3rd coefficient has the greatest magnitude: Table[Im[pfourier[l2,n]],{n,1,10}] I could compute pfourier[l2,n] for all n, but that seems inefficient. Is there a simpler function (similar to Fourier and FourierTransform) that does this? -- We're just a Bunch Of Regular Guys, a collective group that's trying to understand and assimilate technology. We feel that resistance to new ideas and technology is unwise and ultimately futile.
- Follow-Ups:
- Re: Efficiently compute Fourier coefficients for discrete function
- From: Sseziwa Mukasa <mukasa@jeol.com>
- Re: Efficiently compute Fourier coefficients for discrete function