COOK-TOOM ALGORITHM
OVERVIEW
 CONVOLUTION
 FAST CONVOLUTION
 COOK-TOOM ALGORITHM
 EXAMPLE
 ALGORITHM
 MODIFIED COOK-TOOM ALGORITHM
 IMPLEMENTATION OF FILTERBANK
 ADVANTAGES
 REFERENCES
CONVOLUTION
 Mathematical operation on two functions to produce a
third variable, typically viewed as a modified version of
the original function.
 The convolution theorem allows one to mathematically
convolve in the time domain by simply multiplying in the
frequency domain.
 Two types: linear and cyclic
 Linear-(M-1)(N-1) additions and MN multiplications
 Cyclic-N(N-1) additions and N*N multiplications
 For speeding up the calculation-FFT
 Commonly used for fast computation of
convolutions
 Disadvantage-complex arithmetic
 Another method is to convert 1D convolution
into multidimensional convolution
 By using efficient short length algorithms
FAST CONVOLUTION
 Convolution using fewer number of operations
 Algorithmic strength reduction: Number of
strong operations is reduced at the expense of
an increase in the number of weak operations.
 Best suited for implementation using
programmable or dedicated hardware.
 Assume (a+jb)(c+jd) = e+jf ,
where (a+jb) is the signal sample
(c+jd) is a coefficient
implemented using 4 multiplications and 2
additions
 Using fast convolution algorithm arithmetic
complexity is reduced to 3 multiplications and 3
additions
COOK-TOOM ALGORITHM
 Minimum number of multiplications
 For non cyclic convolution
( 1)
 This requires 2N-1 multiplications
 Define the generating polynomial of a sequence
xi, by
(2)
 Then W(z)=X(z)H(z), (3)
where H(z) and W(z) are generating polynomials
of hi and wi.
 W(z) is a 2N-2 degree polynomial
 To determine the 2N- 1 wi's, select 2N- 1
distinct numbers αj, j = 0, 1, . . , 2N - 2, and
substitute them for z in (3) to obtain the 2N - 1
products
m =W(α )=H(α )X(α ), j=0,1,…..2N-2 (4)
 Using Lagrange interpolation formula
 (5)
 Cost is 2N-1 multiplications
 (4) can be written in matrix form as, m =
( Ah)x(Ax) where
 From (5) the coefficients of W(z) will be the
linear combinations of the mj’s and can be
written as
w=C*m
where C* is a 2N-1 by 2N-1 matrix
 To calculate cyclic convolution, compute
Y(z)=W(z)mod(zN
-1)
which leads to y=Cm, where C is an N by 2N-1
matrix obtained from C* by performing row
 General form is m=(Ah)x(Bx)
 Value of (Ah) is precomputed.
 B and C will have no multiplications
 Only multiplications are the element by element
multiplication of Ah by Bx.
 Cook-Toom algorithm yields large integer
coefficients in A,B,C matrices which is costly as
multiplication.
Example
 (Qn). Calculate the non cyclic 2 point convolution
Using (1)
wo=hoxo
w1=h0x1+h1x0
w2=h1x1
 In terms of z transforms, this is equivalent to
w0+w1z+w2z2
=hoxo +(h0x1+h1x0)z+h1x1z2
= ho(x0+x1z)+h1z(x0+x1z)
= (h0+h1z)(x0+x1z)
 Let αj=-1,0,1 for j=0,1,2 in (4)
m0=(h0-h1)(x0-x1)
m1=h0x0
m2=(ho+h1)(x0+x1)
[put z=-1,0,1 in the above eqn. to obtain m0,m1,m2)
 From (5)
So that
w0=m1
w1=(m2-m0)/2
w2=[(m0+m2)/2]-m1
 Transferring denominators from C to A matrix,
combine the factor ½ with hj’s and store the
precomputed constants
a0=(h0-h1)/2
a1=h0
a2=(h0+h1)/2
 Hence
m0=a0(x0-x1)
m1=a1x0
m2=a2(x0-x1)
w0= m1
w1=m2-m0
w2=m0+m2-m1
 Only 3 multiplications and 5 additions are
required instead of 4 multiplications and 3
addition
Algorithm
1. Choose L+N-1 different real numbers β0, β1,….
βL+N-2
2. Compute h(βi) and x(βi), for i=0,1,….L+N-2
3. Compute s(βi)=h(βi)x(βi), for i=0,1,….L+N-2
4. Compute s(p) using the equation
 Reduction of operation count occurs if the
numbers β0, β1,…. Βn are carefully chosen
 A better algorithm using Chinese remainder
theorem to compute the convolution as:
S(x)=[D(x)G(x)mod
Modified Cook-Toom Algorithm
 Choose L+N-2 different real numbers β1,… β0, βL+N-
2
 Compute h(βi) and x(βi),for i=0,1,…L+N-3
 Compute s(βi)=h(βi)x(βi), for i=0,1,…L+N-3
 Compute s’(βi)= s(βi)-sL+N-2 βiL+N-2, for i=0,1,…L+N-3
 Compute s’(p) using the equation
 Compute s(p)= s’(p)+sL+N-2pL+N-2
IMPLEMENTATION OF FILTER BANK
 Consider two polynomials, g(z-1
)=g0+g1z-1
+….+gL-1z-L+1
and
u(z-1
)=u0+u1z-1
+…uN-1z-N+1
 By computing in normal form it’s product y(z-1
) requires
NL multiplications
 Cook-toom algorithm will reduce it to M>=N+L-1
 First, choose a set of interpolation points{ρi}i=0:M-1 that
are the roots of r(z-1
) =
 Evaluate y(ρi)=g(ρi)u(ρi)
 Perform Lagrange interpolation to restore
y(z-1
)= with
Li(z-1
)=
 Eg: Consider g(z-1
)=g0+g1z-1
(L=2), and u(z-1
)=u0+u1z-1
(N=2)
 Choose interpolation points{0,1,-1}
 Then y(0)=u0g0
y(1)=(u0+u1)(g0+g1)
y(-1)=(u0-u1)(g0-g1)
 Lagrange polynomials are calculated as
L0(z-1
)=(1-z-2
)
L1(z-1
)=(z-1
+z-2
)/2
L-1(z-1
)=(-z-1
+z-2
)/2
ie, y(z-1
)=y(0)L0(z-1
)+y(1)L1(z-1
)+y(-1)L-1(z-1
) is
reconstructed
 Multiplication can be written as y=Gu, then algorithm can
be represented as the matrix decomposition G=CDA, with
D=diag(Bg)
 G is the (N+L-1) x N Toeplitz matrix defining the filter g(z-1
)
 A is the Vandermonde matrix with Am,n= (n=0:N-1)
 B is also the MxL Vandermonde matrix with Bm,l= (l=0:L-1)
 C is the (N+L-1) x M matrix whose ith column contains the
first N+L-1 coefficients of Li(z-1
)
ADVANTAGES
 The number of multiplications have been reduced to
L+N-1 at the expense of an increase in the number of
additions
 Adder has much smaller area and computation time
than multiplier
 Low hardware complexity
 Pre addition and post addition matrices are not simple
REFERENCES
[1]. Zdenka Babic,Danilo P.Mandic, “A Fast Algorithm for
Linear Convolution of Discrete Time signals” , TELSIKS,
pp.no-595-598,September 2001.
[2]. Yuke Wang,Keshab Parhi, “Explicit Cook-Toom
Algorithm for linear convolution” ,IEEE,2000.
[3]. Geert Van Meerbergen, Marc Moonen, Hugo De Man,
“Critically Subsampled filterbanks implementing Reed-
Solomon codes” ,vol 2, pp.no-989-992,IEEE,2004
[4].Keshab K. Parhi, “VLSI digital signal Processing
Systems, Design and Implementation”, pp.no:227-
237,New Delhi,1999.
[5].Ivan W.Selesnick,C. Sidney Burrus, “Fast Convolution
and Filtering” , Digital Signal Processing Handbook, CRC
Press LLC, 1999.
[6]. R. Meyer, R. Reng and K. Schwarz, Convolution
Algorithms On DSP Processors, IEEE,1991.
[7].R.E.Blahut, “Fast Convolution Algorithms for Digital
Signal Processing” , Addison-Wesley,1985.
[8]. H.J.Nussbaumer, “Fast Fourier Transform and Convolution
Algorithms” , Springer-Verlag, Berlin, Heidelberg, and New
York,1981
[9]. Ramesh C Agarwal,James W. Cooley, ”New Algorithms for
Digital Convolution”, IEEE Transactions on Accoustics,
Speech and Signal Processing, Vol. ASSP-25, No.5,October
1997.
[10]. Alberto Zanoni, Toom-”Cook 8-way For Long Integers
Multiplication”, 11th International Symposium on Symbolic
and Numeric Algorithms for Scientific Computing,2009
THANK YOU

433469789-Cook-Toom-Algorithm(or Toom-Cook).pptx

  • 1.
  • 2.
    OVERVIEW  CONVOLUTION  FASTCONVOLUTION  COOK-TOOM ALGORITHM  EXAMPLE  ALGORITHM  MODIFIED COOK-TOOM ALGORITHM  IMPLEMENTATION OF FILTERBANK  ADVANTAGES  REFERENCES
  • 3.
    CONVOLUTION  Mathematical operationon two functions to produce a third variable, typically viewed as a modified version of the original function.  The convolution theorem allows one to mathematically convolve in the time domain by simply multiplying in the frequency domain.  Two types: linear and cyclic  Linear-(M-1)(N-1) additions and MN multiplications
  • 4.
     Cyclic-N(N-1) additionsand N*N multiplications  For speeding up the calculation-FFT  Commonly used for fast computation of convolutions  Disadvantage-complex arithmetic  Another method is to convert 1D convolution into multidimensional convolution  By using efficient short length algorithms
  • 5.
    FAST CONVOLUTION  Convolutionusing fewer number of operations  Algorithmic strength reduction: Number of strong operations is reduced at the expense of an increase in the number of weak operations.  Best suited for implementation using programmable or dedicated hardware.
  • 6.
     Assume (a+jb)(c+jd)= e+jf , where (a+jb) is the signal sample (c+jd) is a coefficient implemented using 4 multiplications and 2 additions  Using fast convolution algorithm arithmetic complexity is reduced to 3 multiplications and 3 additions
  • 7.
    COOK-TOOM ALGORITHM  Minimumnumber of multiplications  For non cyclic convolution ( 1)  This requires 2N-1 multiplications  Define the generating polynomial of a sequence xi, by (2)
  • 8.
     Then W(z)=X(z)H(z),(3) where H(z) and W(z) are generating polynomials of hi and wi.  W(z) is a 2N-2 degree polynomial  To determine the 2N- 1 wi's, select 2N- 1 distinct numbers αj, j = 0, 1, . . , 2N - 2, and substitute them for z in (3) to obtain the 2N - 1 products m =W(α )=H(α )X(α ), j=0,1,…..2N-2 (4)
  • 9.
     Using Lagrangeinterpolation formula  (5)  Cost is 2N-1 multiplications  (4) can be written in matrix form as, m = ( Ah)x(Ax) where
  • 10.
     From (5)the coefficients of W(z) will be the linear combinations of the mj’s and can be written as w=C*m where C* is a 2N-1 by 2N-1 matrix  To calculate cyclic convolution, compute Y(z)=W(z)mod(zN -1) which leads to y=Cm, where C is an N by 2N-1 matrix obtained from C* by performing row
  • 11.
     General formis m=(Ah)x(Bx)  Value of (Ah) is precomputed.  B and C will have no multiplications  Only multiplications are the element by element multiplication of Ah by Bx.  Cook-Toom algorithm yields large integer coefficients in A,B,C matrices which is costly as multiplication.
  • 12.
    Example  (Qn). Calculatethe non cyclic 2 point convolution Using (1) wo=hoxo w1=h0x1+h1x0 w2=h1x1  In terms of z transforms, this is equivalent to w0+w1z+w2z2 =hoxo +(h0x1+h1x0)z+h1x1z2 = ho(x0+x1z)+h1z(x0+x1z) = (h0+h1z)(x0+x1z)  Let αj=-1,0,1 for j=0,1,2 in (4)
  • 13.
    m0=(h0-h1)(x0-x1) m1=h0x0 m2=(ho+h1)(x0+x1) [put z=-1,0,1 inthe above eqn. to obtain m0,m1,m2)  From (5)
  • 14.
    So that w0=m1 w1=(m2-m0)/2 w2=[(m0+m2)/2]-m1  Transferringdenominators from C to A matrix, combine the factor ½ with hj’s and store the precomputed constants a0=(h0-h1)/2 a1=h0 a2=(h0+h1)/2
  • 15.
     Hence m0=a0(x0-x1) m1=a1x0 m2=a2(x0-x1) w0= m1 w1=m2-m0 w2=m0+m2-m1 Only 3 multiplications and 5 additions are required instead of 4 multiplications and 3 addition
  • 16.
    Algorithm 1. Choose L+N-1different real numbers β0, β1,…. βL+N-2 2. Compute h(βi) and x(βi), for i=0,1,….L+N-2 3. Compute s(βi)=h(βi)x(βi), for i=0,1,….L+N-2 4. Compute s(p) using the equation
  • 17.
     Reduction ofoperation count occurs if the numbers β0, β1,…. Βn are carefully chosen  A better algorithm using Chinese remainder theorem to compute the convolution as: S(x)=[D(x)G(x)mod
  • 18.
    Modified Cook-Toom Algorithm Choose L+N-2 different real numbers β1,… β0, βL+N- 2  Compute h(βi) and x(βi),for i=0,1,…L+N-3  Compute s(βi)=h(βi)x(βi), for i=0,1,…L+N-3  Compute s’(βi)= s(βi)-sL+N-2 βiL+N-2, for i=0,1,…L+N-3  Compute s’(p) using the equation  Compute s(p)= s’(p)+sL+N-2pL+N-2
  • 19.
    IMPLEMENTATION OF FILTERBANK  Consider two polynomials, g(z-1 )=g0+g1z-1 +….+gL-1z-L+1 and u(z-1 )=u0+u1z-1 +…uN-1z-N+1  By computing in normal form it’s product y(z-1 ) requires NL multiplications  Cook-toom algorithm will reduce it to M>=N+L-1  First, choose a set of interpolation points{ρi}i=0:M-1 that are the roots of r(z-1 ) =  Evaluate y(ρi)=g(ρi)u(ρi)
  • 20.
     Perform Lagrangeinterpolation to restore y(z-1 )= with Li(z-1 )=  Eg: Consider g(z-1 )=g0+g1z-1 (L=2), and u(z-1 )=u0+u1z-1 (N=2)  Choose interpolation points{0,1,-1}  Then y(0)=u0g0 y(1)=(u0+u1)(g0+g1) y(-1)=(u0-u1)(g0-g1)
  • 21.
     Lagrange polynomialsare calculated as L0(z-1 )=(1-z-2 ) L1(z-1 )=(z-1 +z-2 )/2 L-1(z-1 )=(-z-1 +z-2 )/2 ie, y(z-1 )=y(0)L0(z-1 )+y(1)L1(z-1 )+y(-1)L-1(z-1 ) is reconstructed
  • 22.
     Multiplication canbe written as y=Gu, then algorithm can be represented as the matrix decomposition G=CDA, with D=diag(Bg)  G is the (N+L-1) x N Toeplitz matrix defining the filter g(z-1 )  A is the Vandermonde matrix with Am,n= (n=0:N-1)  B is also the MxL Vandermonde matrix with Bm,l= (l=0:L-1)  C is the (N+L-1) x M matrix whose ith column contains the first N+L-1 coefficients of Li(z-1 )
  • 23.
    ADVANTAGES  The numberof multiplications have been reduced to L+N-1 at the expense of an increase in the number of additions  Adder has much smaller area and computation time than multiplier  Low hardware complexity  Pre addition and post addition matrices are not simple
  • 24.
    REFERENCES [1]. Zdenka Babic,DaniloP.Mandic, “A Fast Algorithm for Linear Convolution of Discrete Time signals” , TELSIKS, pp.no-595-598,September 2001. [2]. Yuke Wang,Keshab Parhi, “Explicit Cook-Toom Algorithm for linear convolution” ,IEEE,2000. [3]. Geert Van Meerbergen, Marc Moonen, Hugo De Man, “Critically Subsampled filterbanks implementing Reed- Solomon codes” ,vol 2, pp.no-989-992,IEEE,2004
  • 25.
    [4].Keshab K. Parhi,“VLSI digital signal Processing Systems, Design and Implementation”, pp.no:227- 237,New Delhi,1999. [5].Ivan W.Selesnick,C. Sidney Burrus, “Fast Convolution and Filtering” , Digital Signal Processing Handbook, CRC Press LLC, 1999. [6]. R. Meyer, R. Reng and K. Schwarz, Convolution Algorithms On DSP Processors, IEEE,1991. [7].R.E.Blahut, “Fast Convolution Algorithms for Digital Signal Processing” , Addison-Wesley,1985.
  • 26.
    [8]. H.J.Nussbaumer, “FastFourier Transform and Convolution Algorithms” , Springer-Verlag, Berlin, Heidelberg, and New York,1981 [9]. Ramesh C Agarwal,James W. Cooley, ”New Algorithms for Digital Convolution”, IEEE Transactions on Accoustics, Speech and Signal Processing, Vol. ASSP-25, No.5,October 1997. [10]. Alberto Zanoni, Toom-”Cook 8-way For Long Integers Multiplication”, 11th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing,2009
  • 27.