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
>
>