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)