n=4

4

a[0]:=a0

a[1]:=a1

a[2]:=a2

a[3]:=a3

b[0]:=b0

b[1]:=b1

b[2]:=b2

b[3]:=b3

(* Positive wrapped convolution *)

c[i_]:=Sum[a[j]*b[i-j],{j,0,i}]+Sum[a[j]*b[n+i-j],{j,i+1,n-1}]

c[0]

a0 b0 + a3 b1 + a2 b2 + a1 b3

c[1]

a1 b0 + a0 b1 + a3 b2 + a2 b3

c[2]

a2 b0 + a1 b1 + a0 b2 + a3 b3

c[3]

a3 b0 + a2 b1 + a1 b2 + a0 b3

(* Negative wrapped convolution *)

d[i_]:=Sum[a[j]*b[i-j],{j,0,i}]-Sum[a[j]*b[n+i-j],{j,i+1,n-1}]

d[0]

a0 b0 - a3 b1 - a2 b2 - a1 b3

d[1]

a1 b0 + a0 b1 - a3 b2 - a2 b3

d[2]

a2 b0 + a1 b1 + a0 b2 - a3 b3

d[3]

a3 b0 + a2 b1 + a1 b2 + a0 b3

p0=(c[0]+d[0])/2

a0 b0

p1=(c[1]+d[1])/2 //Expand

a1 b0 + a0 b1

p2=(c[2]+d[2])/2 //Expand

a2 b0 + a1 b1 + a0 b2

p3=(c[3]+d[3])/2 //Expand

a3 b0 + a2 b1 + a1 b2 + a0 b3

p4=(c[0]-d[0])/2 //Expand

a3 b1 + a2 b2 + a1 b3

p5=(c[1]-d[1])/2 //Expand

a3 b2 + a2 b3

p6=(c[2]-d[2])/2 //Expand

a3 b3

p7=(c[3]-d[3])/2 //Expand

0

(a0+a1*x+a2*x^2+a3*x^3)*(b0+b1*x+b2*x^2+b3*x^3)

                 2       3                   2       3
(a0 + a1 x + a2 x  + a3 x ) (b0 + b1 x + b2 x  + b3 x )


Converted by Mathematica  (July 7, 2003)