cook-toom algorithm
TRANSCRIPT
![Page 1: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/1.jpg)
COOK-TOOM ALGORITHM
![Page 2: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/2.jpg)
OVERVIEWCONVOLUTIONFAST CONVOLUTIONCOOK-TOOM ALGORITHMEXAMPLEALGORITHMMODIFIED COOK-TOOM ALGORITHMIMPLEMENTATION OF FILTERBANKADVANTAGESREFERENCES
![Page 3: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/3.jpg)
CONVOLUTIONMathematical 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
![Page 4: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/4.jpg)
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
![Page 5: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/5.jpg)
FAST CONVOLUTIONConvolution 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.
![Page 6: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/6.jpg)
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
![Page 7: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/7.jpg)
COOK-TOOM ALGORITHMMinimum number of multiplicationsFor non cyclic convolution
( 1)
This requires 2N-1 multiplicationsDefine the generating polynomial of a sequence
xi, by
(2)
![Page 8: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/8.jpg)
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
mj=W(α j)=H(α j)X(αj), j=0,1,…..2N-2
(4)
![Page 9: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/9.jpg)
Using Lagrange interpolation formula
(5)
Cost is 2N-1 multiplications(4) can be written in matrix form as, m =
( Ah)x(Ax) where
![Page 10: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/10.jpg)
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 operations.
![Page 11: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/11.jpg)
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.
![Page 12: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/12.jpg)
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)
![Page 13: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/13.jpg)
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)
![Page 14: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/14.jpg)
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
![Page 15: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/15.jpg)
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
![Page 16: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/16.jpg)
Algorithm1. 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
![Page 17: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/17.jpg)
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
![Page 18: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/18.jpg)
Modified Cook-Toom AlgorithmChoose 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-3Compute s’(βi)= s(βi)-sL+N-2 βiL+N-2, for i=0,1,…
L+N-3Compute s’(p) using the equation
Compute s(p)= s’(p)+sL+N-2pL+N-2
![Page 19: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/19.jpg)
IMPLEMENTATION OF FILTER BANKConsider 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)
![Page 20: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/20.jpg)
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)
![Page 21: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/21.jpg)
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
![Page 22: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/22.jpg)
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)
![Page 23: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/23.jpg)
ADVANTAGESThe 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
![Page 24: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/24.jpg)
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
![Page 25: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/25.jpg)
[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.
![Page 26: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/26.jpg)
[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
![Page 27: COOK-TOOM ALGORITHM](https://reader034.vdocuments.us/reader034/viewer/2022050621/550122cd4a7959ac638b4b4a/html5/thumbnails/27.jpg)
THANK YOU