MathGroup Archive 2008

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

Search the Archive

Re: Using Fourier and InverseFourier instead of Convolve


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