Re: Using Fourier and InverseFourier instead of Convolve
- To: mathgroup at smc.vnet.net
- Subject: [mg85939] Re: Using Fourier and InverseFourier instead of Convolve
- From: "Dana DeLouis" <dana.del at gmail.com>
- Date: Thu, 28 Feb 2008 02:50:04 -0500 (EST)
Just to add. You may want to adjust FourierParameters to "signal processing" list1 = {3, 1, 4, 2}; list2 = {1, 2, 3, 4}; Out1 = ListConvolve[list1, list2, {1, -1}, 0] {3, 7, 15, 25, 20, 22, 8} SetOptions[{Fourier, InverseFourier}, FourierParameters -> {1, -1}]; n = Length[list1] + Length[list2] - 1 7 v1 = PadRight[list1, n, 0] {3, 1, 4, 2, 0, 0, 0} v2 = PadRight[list2, n, 0] {1, 2, 3, 4, 0, 0, 0} Out2 = Round[InverseFourier[Chop[Fourier[v1]*Fourier[v2]]]] {3, 7, 15, 25, 20, 22, 8} Out1 == Out2 True -- Dana DeLouis "Solomon, Joshua" <J.A.Solomon at city.ac.uk> wrote in message news:fpooi0$1cg$1 at smc.vnet.net... > OK, I must admit that I do not understand everything ListConvolve does, but > I get the convolution I need when I do > ListConvolve[list1, list2, {1, -1}, 0] > In particular, the output has the appropriate length: > Length[list1]+Length[list2]-1. > Now, I would like to get the identical using Fourier and InverseFourier. > Is this possible? What is the appropriate syntax? > j > >