Re: Moving average type process
- To: mathgroup at smc.vnet.net
- Subject: [mg18225] Re: [mg18221] Moving average type process
- From: Andrew Watson <abwatson at mail.arc.nasa.gov>
- Date: Thu, 24 Jun 1999 14:24:12 -0400
- Sender: owner-wri-mathgroup at wolfram.com
At 5:41 PM -0700 6/22/99, Virgil Stokes wrote:
>I wish to perform the following "moving average" type process on
>a list to generate a new list:
>
>Inputs:
> wtlist = {w1,w2,w3} -- weight list
> inlist = {a,b,c,d,e,f} -- any other list (>= 3 elements)
>
>Output:
> outlist = {w1*a+w2*b+w3*c, w1*b+w2*c+w3*d, w1*c+w2*d+w3*e, w1*d+w2*e+w3*f}
>
>Note, outlist will always contain 2 less (Length[wtlist]/2) elements
>than in the input list (inlist).
>
>If w1=w2=w3=x, then
>the following works fine:
>
>outlist = x*Drop[Plus@@NestList[RotateRight,inlist,2],2]
>
>This is a weighted (from wtlist) sum over another list of arbitrary
>length (inlist). I would like to get a "fast" function for doing this when
>the weights are not equal.
>
>-- Virgil
This is called Convolution.
Check out ListConvolve in version 4.
Or check out Fourier domain methods in any text on signal processing.
-Andrew