Date post: | 12-Mar-2015 |
Category: |
Documents |
Upload: | rockeysuseelan |
View: | 691 times |
Download: | 10 times |
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