COOK-TOOM ALGORITHM

Post on 12-Mar-2015

693 views 10 download

Transcript of COOK-TOOM ALGORITHM

COOK-TOOM ALGORITHM

OVERVIEWCONVOLUTIONFAST CONVOLUTIONCOOK-TOOM ALGORITHMEXAMPLEALGORITHMMODIFIED COOK-TOOM ALGORITHMIMPLEMENTATION OF FILTERBANKADVANTAGESREFERENCES

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

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 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.

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 ALGORITHMMinimum number of multiplicationsFor non cyclic convolution

( 1)

This requires 2N-1 multiplicationsDefine 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

mj=W(α j)=H(α j)X(αj), 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 operations.

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

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

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 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

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)

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)

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

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