MathGroup Archive 2008

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

Search the Archive

Re: Using Fourier and InverseFourier instead of Convolve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg85958] Re: Using Fourier and InverseFourier instead of Convolve
  • From: "Solomon, Joshua" <J.A.Solomon at city.ac.uk>
  • Date: Thu, 28 Feb 2008 02:59:56 -0500 (EST)
  • References: <fpooi0$1cg$1@smc.vnet.net> <fq0u59$k8l$1@smc.vnet.net>

First, let me thank all who responded to my query!
Second, no, Daniel, your code works fine for me.
Finally, FWIW here is code that does what I really wanted, which was to
quickly convolve a long list of lists (each having the same length).
Possibly not the most elegant code ever, but it works, as I said, FWIW:

cv[listOfLists_]:=With[{dims=Dimensions[listOfLists]},
     (dims[[1]]dims[[2]]-dims[[1]]+1)^((dims[[1]]-1)/2)
     InverseFourier[Times[##]]&@@(
          Fourier[PadRight[#,dims[[1]]dims[[2]]-dims[[1]]+1]
          ]&/@listOfLists)]


On 26/2/08 11:45, in article fq0u59$k8l$1 at smc.vnet.net, "dh" <dh at metrohm.ch>
wrote:

> d1 = Table[If[Abs[i] < 3, 1, 0], {i, -5, 5}];
> 
> ListLinePlot[{InverseFourier[Fourier[d1] Fourier[d1 ]] Sqrt[10] ,d1}]
> 
> ListLinePlot[{ListConvolve[d1, d1, 1], d1}]
> 
> ListLinePlot[{ListConvolve[d1, d1, -1], d1}]
> 
> Note that the innocent code above crashes my mathematica kernel (version
> 
> 6.1, does this happen to you too? )



  • Prev by Date: Re: How to select terms wanted in a series
  • Next by Date: Re: What is the fastest way to threshold data?
  • Previous by thread: Re: Using Fourier and InverseFourier instead of Convolve
  • Next by thread: Re: Using Fourier and InverseFourier instead of Convolve