5, OCTOBER 1977
392
New Algorithms for Digital Convolution
AbstracfIt is shown how the ChineseRemainderTheorem(CRT)
can be used to convert a onedimensional cyclic convolutionto a multi
dimensional convolution which iscyclicin
all dimensions. Then,
special algorithmsare developed which. compute the relatively short
convolutions ineach ofthe dimensions. The original suggestion for
this procedurewasmade in order to extend the lengths of the convolutions which one can compute with numbertheoretic transforms.
However, it is shown that the method can be more efficient, for some
data sequence lengths, than the fast Fouriertransform (FFT) algorithm. Some of the short convolutions are computed by methods in an
earlier paper by Agarwal and Burrus. Recent work of Winograd, consisting of theorems giving the minimum possible numbers of multiplications and methods for achieving them, areapplied to these short
convolutions.
I. INTRODUCTIONAND BACKGROUND
HE calculation of the finite digital convolution
T
x,=
N 1
L,
N 1
Xkffnk,
n = o , 1 , . * *, N  1
(1 4
k=O
1
Yi =
tationally expensive convolution operation in (1.1) corresponds to the N complex multiplications in (1.3). The DFT
is, therefore, said to have the cyclic convolution property
(CCP). Since the FFT algorithm enables one to calculate the
DFT in O(N log N ) operations, the entire convolution requires
O(N log N ) operations.
A seemingly paradoxical situation arises here when one considers that all numbers in (1.1) may be integers making exact
calculation of the convolution possible.However, the computationally efficient DFT method involves intermediate
quantities, i.e., sines and cosines, which are irrational numbers,
thereby making exact results impossible on a digital machine.
This, as shown by Agarwal and Burrus [2], is a consequence of
the fact that, in order to have the CCP, a transformation must
have the form
hikXk
(1.1)
where, in the ring in which the calculation takes place, a must
has extensive applications in both generalpurpose computers be a primitive Nth root of unity. There is no primitive Nth
and specially constructed digital processing devices. It is used root of unity in the ring of integers where the calculation may
to compute auto and cross correlation functions, to design and be considered to be defined, or even in the field of rational
numbers. However, e2”’/N is a primitive Nth root of unity in
implement finite impulse response (FIR) and infinite impulse
response digital filters, to solve difference equations, and to the complex number field, so the whole calculation is, therefore, carried out in the complex number field with a = e2mlN
compute power spectra.
when applying the DFT method.
While the direct calculation of the convolution according to
The theories of DFT’s and the FFT algorithm were investithe defining formula (1.l) would require a number of multigated in finite fields and rings by Nicholson [ 111 and Pollard
plications and additions proportional to N 2 for large N [which
[12] . The FFT algorithm applications to Fourier, Walsh, and
we denoteby 0 ( N 2 ) ] , useof
the fast Fourier transform
Hadamard transforms were shown to be specialcases of
algorithm (FFT) (see [5]) has been able to reduce this to
Fourier transforms in algebrasover fields or rings. Pollard
O(N log N ) operations when N is a power of 2. To be more
described applications where theDFT is defined in finite
specific, we consider the problem where hi, i = . .  1, 0, 1, * . .
(Galois) fields. This led Rader [ 131 to suggest performing the
is a periodic sequence of period N so that hi = hN+i. Then the
calculations in the ring of integers modulo a Mersenne number,
discrete Fourier transform (DFT)
M p = 2p  1, i.e., in remainder arithmetic moduloMp. In this
ring, 2p E 1 so that 2 is a pth primitive root of unity and  2 is
a 2pth primitive root of unity. Thus, a Mersenne transform is
defined which has the CCP for sequences of length N = 2p,
has the property that the DFT’s Hn , X,, and Y , n = 0, 1,2, with 2 replacing e2mfN as the Nth primitive root of unity,
.   ,N  1, of the three sequences h k ,x k , and y k , k = 0, 1, . * . , and with all calculations done in remainder arithmetic modulo
M p . Rader advocated such a transform since using 2 or 2 as a
N  1, respectively, are related by
root of unity would necessitate only shift and add operations
Y,=H,Xn,
n=O,l;*.,Nl.
(1.3)
in computing the transforms. The only multiplications required would be the N multiplications of the values of the
If (1 .l) is regarded as a multiplication of a vector x by a
matrix H whose i, k element is hik, then the DFT (1.2) is transforms. If one takes N = p , a prime, the FFT algorithm
seen to be a transformation whch diagonalizes H . This is a cannot be used and the number of shift and add operations
transformation to the frequency domain where the compu would be O(N2). Rader also mentioned the possibility of
using Fermat numbers as moduli so that N would be a power
of 2, permitting the use of the FFTalgorithm.
Manuscript received December 2, 1976; revised March 31,1977.
Agarwal and Burrus [2] made a thorough investigation of
The authors are with IBM Thomas J. Watson Research Center, Yorkthe necessary and sufficient conditions on the modulus, word
town Heights, NY 10598.
k=O
AND AGARWAL
COOLEY: ALGORITHMS FOR DIGITAL CONVOLUTION
length, and sequence lengths for numbertheoretic transforms
(NTT’s) to have the CCP and to permit use of the FFT algorithm. Their results show therather stringent limitation on
the sequence lengths which can be used. They show that the
use of the Fermat numbers Fb = 2t + 1 where t = 2b and particularly F,, offer some of the best choices as moduli for
the NTT. In this case too, however, the sequence length is
severely limited. It is proportional to the number of bits in
the modulus.
Anumber of suggestionshavearisen
for lengthening the
sequences which can be handled by the NTT. One suggestion
is to perform the calculation modulo several mutually prime
moduli and then obtain the desired result by using the CRT.
Reed and Truong [15] have also shown how one can extend
themethod to Galois fields over complex integers modulo
Mersenne primes to enable one to use the FFT algorithm to
compute convolutions of complex sequences, and to lengthen
the sequences which the method can handle. But, in that case,
the resulting primitive Nth root of unity is not simple and,
therefore,thecomputation
of the complex Mersenne transform would require general multiplications.
One of the most promising methods for lengthening the
sequences one can handle was suggested by Rader [ 131 , and
then developed by Aganval and Burrus [l] . This consisted of
mapping the onedimensional sequences into multidimensional
sequences and expressing the convolution as a multidimensional convolution. Then,theFermat
Number Transform
(FNT) is suggested for the computation of the convolution in
the longest dimension. For the convolutions in the other dimensions, Agarwal and Burrus devised
special
algorithms
which reduced thenumber of multiplications considerably.
The number of additions usually increased slightly, but when
considering the NTT, oneis
already considering either a
specialpurpose machine oracomputer which favors integer
arithmetic, in which case multiplication is considerably more
expensive than addition.
The mapping of the onedimensional array considered by
Aganval and Burrus was to simply assign the elements lexicographically to the multidimensional array. This meantthat
the multidimensional array was cyclic in only one dimension,
and, to employ cyclic convolution algorithms in theother
dimensions, one would have to double the number of points
in all dimensions except one. The result of this effect was to
show thata variety ofshort convolutions, combined with
FNT’s, could reduce the amount of computation considerably.
It was also shown how, even without NTT’s, multidimensional
techniques can compute convolutions faster for N less than or
equal to 128 as compared with the use of the FFT algorithm.
One innovation of the present paper consists of an extension
and improvement of the general idea of the Agarwal and
Burrus [l] paper, i.e., to compute a convolution in terms of a
multidimensional convolution in which the short convolutions
in some of the dimensions are done by special efficient algorithms. The second innovation is to let the dimensions of the
multidimensional arrays be mutually prime numbers, and then
use the CRT to map the sequences into multidimensional
arrays. This makes the data cyclic in all dimensions and avoids
the necessity of appending zeros in order to use cyclic con
393
volution algorithms. Although this method was also originally
conceived with the idea that the convolution in the longest
dimension would be done by the NTT, it is shown that it is
efficient even when the NTT is not used. In fact, the crossover
Nvalue, below which the present method is more efficient
thanFFT methods, is much higher and,in some cases,is
around 400.
The algorithms developed by Agarwal and Burrus [ I ] were
generally developed by skillful, buttedious manipulations
which, however, lacked systematic methods for doing longer
convolwtions or for examining the many possible such algorithms for an optimal choice. Since then, Winograd [18] has
applied computational complexity theory to the problem of
computing convolutions. He has developed one theorem
which gives the minimum number of multiplications required
forcomputinga
convolution andanothertheorem,
which
describes the general form of any algorithm which computes
the convolution in the minimum number of multiplications. He
has also developed a theoretical framework which can be used
to find the best algorithms in terms of both numbers of
multiply/adds and complexity. For the
present purposes, his
important theorems will be cited and algorithms resulting from
them will be compared with the algorithms used here. Actually, it is not necessary, in the multidimensional technique, to
have optimal algorithms for more than a few powers‘of small
primes. Some of these have already appeared in the Agarwal
and Burrus paper [l] , and some of the additional ones given
here were worked out by the same methods. After work on
the present paper waswell under way, theauthors became
acquainted with Winograd’s methodsand
used themfor
simplifying the derivation of the longer convolutions and for
developing several algorithms from which to choose. It was
also found that Winograd had worked out many of the algorithms for the same convolutions.
In what follows, we will show how some of the long tedious
parts of the derivations of the algorithms by Winograd’s
methods were done with SCRATCHPAD [8], a computer systematthe
IBM Watson Research Center for doing formula
manipulation. This not only permitted the derivation of algorithms for longer convolutions, but simplified the choice of
the best from a number ofalgorithms.
A rather simple matrix formulation is shown to be satisfied
by the convolution algorithms developed here. The algorithm
is then made to resemble, in a loose sense, other transform
techniques having the CCP, i.e., the ability to replace the
convolution operation by element by element multiplication
in the transform domain. This iscalled the “rectangular
transform,” since the matrices defining it are rectangular instead of square.
11. ALGORITHMS
FOR SHORTCONVOLUTIONS
A. The CookToom Algorithm
In order to show the general idea of how complexity theory
is applied and what type of algorithms are being developed,
the CookToom algorithm (see [ 9 ] ) for noncyclic convolution
willbe explained in detail. This yields algorithms withthe
minimum number o f multiplications, but with greater complexity than the ones developed in the following subsection.
394
IEEE TRANSACTIONS ON ACOUSTICS,
SPEECH,
In any case, it yields algorithms having the general form of
those we are treating.
The noncyclic convolution being considered here is of the
form
c
k=max(O,iN+1)

X(z) =
N 1
5, OCTOBER 1977
... .
...
hikXk, i = 0 , 1 , ' * ' , 2 N  2 . (2.1)
The sequence length N , in this and the following sections, is
thenumber of points in one dimension in the multidimensional arrays mentioned above. We will consider algorithms
for both the cyclic and noncyclic cases. The first theorem we
consider is described by Knuth [ 9 ] . We give it in a slightly
different form to make it resemble the formulas in the next
Section.
meorem I: ( m e CookToom Algorithm)
The noncyclic convolution (2.1) can be computed in 2N  1
multiplications.
The proof is given by constructing the algorithm. Let us define the generating polynomial' of a sequence x i , i = 0, l , * . ,
N  1 by
VOL. ASSP25.
NO.
multiplication. The elements of m are the W(ai)'sand
A=
min ( N  1 , i )
w.=
AND SIGNAL
PROCESSING,
(2.7)
Therefore, from (2.5) we see that the coefficients of W(z) will
be linear combinations of themi's and may be written as
w = C*m
(2.8)
where C" is a 2 N  1 by 2 N  1 matrix. If the ai's are rational
numbers, the elements of C" will be rationaI numbers. To
apply the above to the calculation of cyclic convolutions, it
remains only to compute
Y ( z ) = W(z) mod (zN  1).
Since z N
(2.9)
1 mod ( z N  l), this means simply that
YO=WO+wN
Y 1 = w1 + W N + l
xi zi.
(2.2)
i= 0
We will assume similar definitions for H(z), W(z), and Y ( z ) as
generating polynomials of the hi, w i , and y i sequences, respectively. It is easily seen that
W(z)= H(z) X(z)
(2.3)
where W(z) is a 2 N  2 degree polynomial. Let the x i s and
hi's be treated as indeterminates in terms of which we will
obtain formulas for the wis.
To determine the 2 N  1 wi's, one selects 2 N  1 distinct
numbers ai,j= 0, 1, . .  ,2 N  2, and substitutes them for z in
(2.3) to obtain the 2N  1 products
mi = W(aj)=H(aj)X(aj),
j = 0, 1, . . * , 2 N  2
(2.4)
of linear combinations of the hi's and xi's. The Lagrange interpolation formula may be used to uniquely determine the
2 N  2 degree polynomial
Thus, the convolution (2.1) is obtained at the cost ofthe
2 N  1 multiplications in (2.4). This completes the proof of
Theorem 1.
The CookToom algorithm is then formulated as follows:
since the H(ai)'s and X(aj)'s are linear combinations of the
hi's and xi's, respectively, we can, therefore, write (2.4) in the
matrixvector form
in = (Ah) x (Ax)
(2.6)
where h and x are Nelement column vectors with elements hi
and x i , respectively, and where x denotes element by element
'This is the familiar z transform, except for the fact that we have
chosen to use positive insteadof negative powers of z.
Y N  2 = WN2 + W 2 N  2
Y N  I = WN1
(2.10)
which leads to
y=Cm
(2.1 1)
where C is an N by 2 N  1 matrix obtained from C" by performing the row operations on G* corresponding to (2.10).
Here, and in what follows, we seek algorithms of the general
form (2.6) and (2.8) or (2.1 I), except that we will not require
that x be multiplied by the same matrix as h and consider,
instead, algorithms of amore general form,
m = (Ah) x (23x1.
(2.12)
We will usually consider applications where a fixed impulse
response sequence h is convolved with many x sequences so
that Ah will be precomputed and the operations required for
computing Ah will not be counted.
Although we write the algorithms in terms of matrices, it
willbe shown that,for efficiency, one does not storethe
matrices as such and does not perform full matrixvector
multiplications. In what follows, however, we will refer to A ,
B, and C as either matrices or as operators, interchangeably,
If derived as described above, with integers for the ais, A
and B will have integer coefficients and C will have rational
coefficients. Since Ah is precomputed, we usually redefine A
and C so that the denominators in C appear in a redefined
A and the redefined C has integer elements. Therefore, in the
methods and theorems which are given below, the operators
B and C are considered to involve no multiplications. The
only multiplications counted arein the element by element
multiplication of Ah by Bx. However, the CookToom algorithm yields rather large integer coefficients in the A , B , and
C matrices which can be as costly as multiplication. The ob
AGARWAL AND COOLEY: ALGORITHMSCONVOLUTION
FOR DIGITAL
395
jective in the following section willbe to obtain algorithms
with as few multiplications aspossiblewhile still keeping B
and C simple.
To give an example, suppose we wish to calculate the noncyclic 2point convolution
WO
mo = hoxo
ml
= hoxo
=hlxl.
(2.13)
+ h l z ) (x0 + x I z ) .
(2.14)
and
w 1 = (3mo  m2)/2 t 2ml
w2 = (mo t m2)/2  m,.
Letting aj =  1, 0, 1 for j = 0, 1 , 2 in (2.4),
(2.22)
The first algorithm, (2.18)(2.20), may be preferable due to its
simpler coefficients.
mo = (ho  h d (x0  X I )
m l = hoxo
m2 = (ho + A d (x0 + X I )
(2.2 1)
wo = mo
In terms o f z transforms, this is equivalent to
wo t w1z + w2z2=(ho
=(ho+h1)(xo+x,)
m2 = (h0 t 2/21) (x0 + 2x1)
w1= hoxlt hlxo
~2
It is seen here that one can generate as many algorithms as
one wishes by using different choices of ajvalues in (2.4). For
example, if one uses ai = 0, 1,2, one obtains
(2.15)
and, for (2.5) we obtain
B. Optimal Short Convolution Algorithms
The general form of the algorithm (2.1 1) and(2.12) is
y = C(Ah) x (Bx).
(z  1)z
( z tl ) ( z  1)
+ mo
+ ml
12
1 *(l)
(2) ( 1)
z(z t 1)
(2.23)
This suggests a similarity with the general class of algorithms
having the CCP. The rectangular matrices A and B transform
(2.16) h and x, respectively, to a higher dimensional manifold in
which the traisforms are multiplied. Then,the rectangular
so that
matrix C transforms theproducts back to thedata space.
Agarwal and Burrus [2] showed that if the transformation is
wo = m,
into a manifold of the same dimension as the data and A = B =
w1 = (m2  mol/:!
C  ’ , the elements of the transform would have to be powers
w2 = (mat m2)/2  m,.
(2.1 7) of the roots of unity. By allowing the transform space to be
of a higher dimension and permittingA # B f C’ , the conseTo illustrate what was said aboveabout transferring denomina quent increase in the number of degrees of freedom permits a
tors from the C to the A matrix, we combine the factor with great simplification in the transform.
the hi’s and store the precomputed constants
In this section, two theorems of Winograd [ 181 will bestated
in
a form relevant to the present context. Then, a procedure
ao = (ho  h1)/2
using the CRT,which was also suggested by Winograd for
= ho
helping to derive o.ptimal and nearoptimal algorithms, will be
a2 = (ho + h1)/2
(2.18) described.
fieorem 2:
so that the algorithm becomes, in terms of the ais and redeLet
fined mjys,
Y(z)= H(z) X(z) mod P, (z)
(2.24)
mo = ao(x0  x11
where P,(z) is an irreducible polynomial of degree n , and H(z)
m l = alxO
and X(z) are any polynomials of degree n  1 or greater. Then
m2 = % ( x 0 +x11
(2.19) the minimum number of multiplications required to compute
Y(z) i s 2n  1.
wo = m l
We refer the reader to Winograd f 181 forthe proof of
this theorem and only point out that the CookToom algow1 = m 2  mo
rithm gives a method for achieving this minimum number of
w2=mo+mzml.
(2.20) multiplications.
I’XeoreriZ 3:
Thus, only 3 multiplications and, 5 additions are required inThe
minimum number of multiplications required for comstead of the 4 multiplications and 1 addition appearing in the
puting
the convolution (2.26) is 2 N  K where K is the nundefining formula.
ber
of
divisors
of N , including 1 and N .
Finally, if one were multiplying two complex numbers x =
The
following
methodfor finding optimal algorithms will
x. t i x l and h = h o t i h l , the result would be wo  W 2 t iwl.
prove
Theorem
3
and prove that the minimum 2 N  K can be
The above derivation, therefore, gives one of severalways
achieved.
of multiplying complex numbers in 3 instead of 4 real
Let
multiplications.
W(z)= m2
~
4
IEEE TRANSACTIONS
ON
ACOUSTICS,
SPEECH,
AND
SIGNAL
PROCESSING,
VOL.
ASSP25,
NO.
396
W(z) = H(2) X(2)
(2.25)
and
Y(z) = W(z) mod (zN  1).
(2.26)
The polynomial zN  1 is factored into a product of irreducible polynomials with integer coefficients
z
 1 = Pa,( z )Pd, (z)
. P,,(Z).
(2.27)
* *
These factors arewell known in theliterature on number
theory (seeNagell [lo]) as cycZotumic polynomials. There is
one Pd.(z) for each divisor di of N , including dl = 1 and dK =
I
N . The roots of the polynomial Pdi(z) are the primitive dith
roots of unity. The number of such roots is nj = cp(di) where
cp(di) is Euler’s cp function and is equal to the number of positive integers smaller than di which are prime to di. Therefore,
the degree of Pd.(z) is ni = cp(di). The degree of the product is
1
the sum of the degrees of the Pdj(z)’s, so one obtains the relation familiar to number theorists,
(2.28)
q(2)= ( 2 N

l)/Pdi(Z)
5,
OCTOBER 1977
(2.33)
@ ( z ) = [27(2)]’ modPdi(z)
(2.34)
Si(z) = Ti(z) QiCz).
(2.35)
The inverse in (2.34) is, by definition, the solution Qi(z) of
the congruence relation
Si(z) = q ( z ) @(z)
E
1 mod Pdj(z).
(2.36)
The reduction in calculation should now be apparent since
the Yi(z)’sin (2.30) can be obtained from
Yi(z) = Hi(z) X,(.)
mod Pdi(z)
(2.37)
where
Hi(z) = H(z) mod Pdj(z)
(2.38)
Xi@) = X(z) mod
(2.39)
Pdi(z).
The coefficients of the product polynomial Hi(z)Xi(z) give
the values of the noncyclic nipoint convolution of the coefficients ofHi(z) and Xi(.). Then, according to (2.37), Yi(z)is
the result of reducing this polynomial mod Pdi(z). The CookToom algorithm shows that Hi(.) Xi(z) can be computed by
multiplying linear combinations of the coefficients hf of the
Hi(z)’s by linear combinations of the coefficients xi of the
Xi(z)’s. These coefficients are, in turn, linear combinations of
the hi’s and x i s , respectively. The set of products so formed
is, therefore, of the form (2.6)
where the sum is over all divisors di of N . The properties of
the Pd.(z))s which are important here are that they are irreduc1
ible and have simple coefficients. In fact (see [ 101, prob. 116,
p. 185) if di has no more than two distinct odd prime factors,
the coefficients will be +1 or 0. The smallest integer d with
three prime factors is d = 105 = 3 . 5 7. Using SCRATCHPAD,
rn = (Ah) x (Bx).
we have found that of the nonzero coefficients of Plos(z), 3 1
Substituting the Yi(z)’s in the CRT (2.30) results in formuare 21 and two are equal to 2. Therefore, we say that reduclas for the yi’s as linear combinations of the abovementioned
tion mod Pdj(z)generally involvesonly simple additions.
A reduction of the calculation of a convolution to a set of products. Thus, one obtains the form (2.1 l),
smaller convolutions is accomplished by the use of the CRT
y = Cm.
applied to the ring of polynomials with rational coefficients.
The minimum number of multiplications required for comThe statement of the theorem in this context is that the set of
puting Yj(z) is, according to Theorem 2, equal to 2ni  1, so,
congruences
summing over j and using (2.28), we have
Yi(z) = Y(z) mod Pdj(z), j = 1, 2, . ,K
(2.29)


K
has the unique solution
(2nj  1) = 2 N  K .
(2.40)
j=1
K
Y(z) =
Yi(z) Sj(z) mod (zN  1)
(2.30)
j=O
where
Si(.)
modPd.(z)
1
(2.3 1)
I
and
Si(z) E 0 modPdk(z),
k #j.
(2.32)
The reader may be more familiar with the CRT as applied to
rings of integers in residue class arithmetic as described in
Section 111, below.
The calculation of the convolution algorithm is
easily
carried out by using SCRATCHPAD [ 8 ] , the computerbased
formula manipulation system atthe IBM Watson Research
Center. To compute the polynomials Si(z), all one has to do
isgive a command to factor zN  1 and then, in three more
lines of SCRATCHPAD commands, compute
This concludes the proof of Theorem 3.
It is seen from the above how convolution calculations can
be described in terms of operations with polynomials. In so
doing, the CRT for polynomials is used to reduce the problem
of computing the Npoint cyclic convolution, which, in terms
of polynomials is
Y ( z ) = H(z) X(z) mod ( z N  1)
(2.41)
to the problem of computing the set of K smaller convolutions
Yi( z ) = Hi(z) Xi( z ) mod Pdi(z).
(2.42)
The CookToom algorithm, other systematic procedures, or
even manual manipulation can then be used to obtain an algorithm for computing Hi(z) X,(.).
While it is important to
know the minimum number of multiplications and how to obtain them from the above theory, it is, due to the complexity
of the A , B , and C matrices, well worth developing slightly less
AGARWALALGORITHMS
AND COOLEY:
CONVOLUTION
FOR DIGITAL
397
TABLE I
than optimal algorithms for the small convolutions (2.42). In
MINIMUMNUMBER
OF MULTIPLICATIONS
FOR CONVOLUTION
many cases, the algorithms developed by Agarwal and Burrus THEORETICAL
AND NUMBER
OF MULTIPLICATIONS
AND ADDITIONS
FOR ALGORITHMS
[ l ] did this but it was not known, when they were written,
OF APPENDIX
A
how close they were to being optimal.
N
K
2N K
M
A
Evidently, the manipulations to be carried out in deriving
the A , B , and C operators are quite tedious and fraught with
2
2
4
2
2
opportunitiesfor errors. Therefore, SCRATCHPAD [8] was
4
4
3
11
2
of enormous help in deriving and checking errorfree expres4
5
3
15
5
35
8
10
5
sions for a sequence of calculations of intermediate quantities
8
44
8
6
leading to expressions forthe final results. The authors of
12
12
I
19
SCRATCHPAD added a few commands to the language
12
46
8
14
15
9
98
22
which. made theentire
procedure quite simple. At first,
16
10
SCRATCHPAD wasused interactively to develop concepts and
20
11
expressions which helped to minimize the number of additions
18
12
and to yield formulas convenient for programming. Then, the
resulting set of commands was run in a batch mode to deT2(z) = (z  1) (z’ + 1)
velop alternate formulas for each N and to go up to higher N .
T3(z) = z2  1
(2.46)
In using SCRATCHPADfor the above calculations, all one had
to do was to define the various polynomials recursively and re and
quest the printing of various formulas at appropriate points.
Q , (z) = [TI(z)] mod (z  1) =
The program then printed out expressions for
1) the xps in terms of the xj’s (formulas for the hq’s are the
same),
2) the yi’s in terms of the products of the hps and the xps,
and
3) the y i s in terms of the yi’s.
Other quantities such as the factors of zN  1 were also given,
but not really needed to describe the final algorithms.
The numbers of operationsfor some of the convolution
formulas derived by the above methods are givenin Table I
where K is the number of divisors of N , 2N  K is the minimum number of multiplications required for an Npoint convolution, and M and A are the number of multiplications and
additions, respectively, required forthe algorithms given in
Appendix A.
.
C An Example with N = 4
The derivation of an optimal algorithm for a cyclic N = 4
convolution will be given here in detail, according to the
methods in Section 11B. The convolution is defined by
(2.43)
QZ(z) = [Tz(z)]
’mod (z t 1) =  4
Q3(z) = [T3(z)]l mod (z2 + 1) = 
4
(2.47)
giving
SI(z) = (z3 t z2 t z t 1)/4
s,(z)
= (z3  z2 t z  1)/4
S3(z) = (z2  1)/2.
(2.48)
The reduced polynomials
Hi(z) = H(z) mod Pdj(z)
(2.49)
are
H1(z)=h~=hothlth2th3
H 2 ( ~ ) = h ; = h O  ’ h l + h , h3
H~(z)
= h i + h : ~= (ho  h2) I (h,  h 3 ) ~ .
(2.50)
As stated previously, the superscript j is put on the coefficients
of the polynomials reduced modPdi(z). The equations for
Xi(z) = X(z) mod Pdi(z)
1)
(2.5
are exactly the same form as those for Hi(z). The relation
In terms of polynomials whose coefficients are the sequences
involved, this corresponds to
Y(z) = H(z) X(z) mod (z4  1).
(2.44)
The factors of 4 are di = 1, 2, and 4, so the irreducible factors
of z 4  1 are the cyclotomic polynomials
Yi(z)=Hi(z)Xi(z)rnodPdj(z)
is, in terms of the coefficients of H’(z) and Xj(z),
yh = hhxh
yi = h i x i
 h:x:
P1(z)=z 1
y ; = h;x;
P’(Z) = z t 1
y: = h;x: t h:x;.
P4(Z)
=z’ t 1.
From these we compute
T,(z) = (z t 1) (z2 I 1)
(2.45)
(2.52)
(2.53)
The calculation of Y3(z) is exactly like complex multiplication and is carried out as though z =
1. Therefore, as shown
in Section 11A, the CookToom algorithm can be used to
compute y ; and y:, in 3 instead of 4 multiplications. For the
4
IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, VOL. ASSP25, NO. 5, OCTOBER 1977
398
present purpose, however, we will use a slightly different complex number multiplication algorithm also requiring 3 multiplications, but requiring fewer additions involving the variable
data xi and y i . The result is that we have to compute the five
products
mo = hAxl
m, = hgxg
m2 = hg(x: + x : )
m3 = (h:  h:)xi
m4 = ( h i t h:)x:.
(2.54)
In terms of these, the yps in (2.53) are
Y l = mo
Y ; =m1
y i = m 2  m4
y: = m 2  m 3 .
(2.55)
The polynomials Yi(z)whose coefficients are givenby (2.55)
are then substituted in the CRT
3
Y(z)=
Yj(z) sj(z)
(2.56)
j=l
quiring the minimum number of multiplications, can become
rather complicated. Some of the elements of the Cmatrix in
(2.23) become too large to make it practical to multiply them
by usingsuccessive additions and, in general, the number of
additions becomes large. Furthermore, if one wishes to write
a general computer program which can be used for a number
of different Nvalues, it is more practical to write the convolution as a multidimensional convolution where the product of
the dimensions is the given N .
Here, it will be shown that, instead of using the onetomanydimensional mapping suggested by Agarwal and Burrus [ l ] ,
one can, by requiring that the chosen factors of N be mutually
prime, use the mapping given by the CRT for integers modN.
This will yield a multidimensional convolution which is
periodic in all dimensions without the necessity for appending
zeros.’
In the following, a description of the CRT mapping and the
general form of the resulting algorithm for composite N will be
given. The formulation is designed so as to lead to effective
ways of organizing computer programs for computing cyclic
convolutions for all N , which can be formed from products of
a fixed set of mutually prime factors. These factors will
be the sequence lengths for which optimal algorithms are
available.
Consider again, the problem of computing the cyclic
convolution
to give the final result,
N1
Yi =
y o = (mo + m1)/4 + ( m ~ m4)/2
y 1 = (mo  m1)/4 + (m2  m3Y2
= (mo  m1)/4  (m2  m3W.
(3.1)
where N is a composite number
y 2 = (mo + m1)/4  (m2  m4)/2
~3
hikxk
k=O
N = r1r2
(2.57)
(3.2)
with mutually prime factors r1 and r 2 . This permits us to define the onetoonemapping
As mentioned above, we assume that hi is fixed and used repeatedly for many xi sequences. Accordingly, we simplify the
i t,(il, i 2 )
(3.3)
computation by redefining the mk’s and combining the and
factors with the his. The resulting algorithm, as described where il and i2 are defined by the congruence relations
in Appendix A, is of the general form of (2.1 1) and (2.12).
il = i m o d r l ,
O<il<rl
The algorithms for N = 2, 3, 4, 5, 6 , 7 , 8 , and 9 are given in
i2 = i mod r2, 0 < i2 < r 2 .
(3.4)
Appendix A so as to show the grouping of terms, by means of
parentheses, which hopefully minimizes the number of addi The CRT says that there is a unique solution i to the congrutions. With the above arrangement it is seen that for N = 4, ences (3.4) which is given by
not counting the calculation of Ah, there are 5 multiplications
i = i l s l + i2s2 mod N
and 15 additions compared with the 16 multiplications and 12
additions required by direct use of the defining formula (2.43).
O<:i<N
(3.5)
It is interesting to note that, if the parentheses are grouped
around intermediate quantities occurring as the coefficients of where
reduced polynomials, a grouping of additions is obtained
s1 3 1 mod rl
which we have, in every case, been unable to improve upon in
s2 3 1 mod r2
(3 4
terms of thenumber of additions required. However, we
know of no theorems about the minimum number of addis1 3 0 mod r2
tions, or of systematic procedures for reducing the number of
s2 0 mod r l .
(3.7)
additions.
3
111. COMPOSITE ALGORITHMS
A. The TwoFactorAlgorithm
For large values of N , the optimal algorithms, i.e., those re
‘This mapping was used by Good [7] and Thomas I171 for expressing the DFT as a multidimensional DFT, thereby reducing the amount
of computation required. This procedure is describedby Cooley,
Lewis, and Welch [5 ]
.
AGARWAL AND COOLEY: ALGORITHMS FOR DIGITAL CONVOLUTION
399
Equation (3.7) implies that for some q 1 and q2,
81
= 41rz
32
= q2r1
(3.12)
k,=O nl=O
(3.8)
where
r. 1
which, with (3.6), requires that
4 1 = 0.2
(3.13)
1;’
k , =O
q2 = (rl);;?
(39)
the notation denoting that q 1 is the inverse mod rl of r2,and
that q2 is the inverse mod r2 of r l .
Let each of the vectors y , h , and x, containing the elements
y i , h i , and x i , respectively, be indexed by the index pairs (il,
i2). Conceptually, one may think of this as a mapping of the
onedimensional arrays y i , h i ,and x i , i = 0, 1, * * ,N  1, onto
the respective twodimensional arrays according to (3.4) and
(3.5). Next, let us consider the elements of the vectorsy, h,
and x to be indexed lexicographically in il, i2. Substituting
(3.5) for i and a similar expression for k in terms of ( k t ,kz),
the convolution (3.1) can be written
and
r. 1
(3.14)
The superscript “1” is put on the elements of A l , B 1 , and
C1, By changing the order of summation in (3.12), we obtain
a sum over n l , of convolutions with respect to k2 , of the sequencesH;,,k, withX~,,k,,fork2=0,1,**.,r21.
These
may be computed by the r2point rectangular transform algorithm yielding
hilk,,i,k,Xk,,k,
(3.10)
k,=Ok,=O
where the indices of h i l , i z are understood to be taken mod r1
and r2, respectively. In vectormatrix notation, this may be
written
(3.1 1)
(3.15)
n,=O
where
Y.
1
r1
y =Hx
G2,n2Hnl,n,Xn,,n,
Cf,,n,
n,=o
rz1 r,1
Yi,,i, =
M , 1
M I 1
Yi,,j, =
r. 1
(3.16)
where the index of y , which is also the row index ofH, is the
sequence of pairs (kl,k2) in lexicographical order. Although
r. 1
y, h , and x are vectors, it will sometimes help to explain cerk,=O
tain operations by thinking of them as twodimensional arrays
with row and column indices i l and i2, respectively, or kl and
rz1 r,1
1
k2 , respectively, whichever the case may be. Equation (3.10)
(3.17)
=
B~z,k,Bnl,k,Xk,,k,.
represents a twodimensional cyclic convolution where the first
kz=O k,=O
dimension is of length r and the second dimension is of length
In operator notation, the calculation can be described3 by
r2. It will be shown below that this twodimensional cyclic
convolution can be computed using a twodimensional transY = ClC2 [(AZAlh) x (B2131X)l.
(3.18)
formation having the CCP. Being a twodimensional transformation, it can be expressed as a direct product of two one The notation B z B l x means that one computes the transform
dimensional transformations having the CCP for lengths rl and B1 of the columns of x and then the transform B2 of the rows
r 2 . Let us assume thatboth these transformations are rec of the result; Since the ordering of the operators corresponds
to the ordering of the summations, they commute. However,
tangular transforms of the type represented by (2.23).
With subscripts to denote which of the factors rl or r2 the the ordering of the operators affects the sizes of intermediate
matrices refer to, we let A 1, B 1 , and C1 represent a set of rec arrays, thenumber of additions,and program organization.
tangular matrices of dimensions M I x rl ,M1 x rl, and rl x M1, These willbe discussed in Section VA.
We have thus shown that the composite twodimensional
respectively, having the CCP for length r I and requiring M 1
transform
algorithm as described by (3.18) has the CCP.
multiplications. Similarly, A 2 , B 2 , and C, represent a set
Mapping
the result
intothe onedimensional array yi
of rectangular matrices of dimensions M2 X r2, M 2 X r2 ,and
via
the
CRT
(3.5)
yields
the onedimensional convolution
r2 X M2 ,reqpectively, having the CCP for length r2 and requir(3.1).
Hence,
the
total
transformation
(3.18) has the oneing\M2 multiplications. Then, the twodimensional rectangular
transformation having the CCP can be derived as follows.
For the moment, let h andx be regarded as twodimensional
3Equation (3.18) can be written in Kronecker product notationas
arrays. The sum over kl in (3.10) is, for each fixed i2 and k2 a
Y = (Cl x C 2 ) [ ( 4 x A l W x ( B 2 x B l X ) ] ,
convolution of column i2  k2 of the array h with column k2 where X denotes the Kronecker product and x denotes element by eleof the array X. Each of these convolutions may be computed ment multiplication. However, this notation serves no useful purpose
and can cause some confusion. Therefore,it will not be used here.
by the above transform methods, giving
TABLE I1
TABLE
OF VALUES
OF Tr,)= M,  rj/A,
dimensional CCP with respect to the onedimensional sequences yi, hi, and x i , i = 0, 1, * * ,N  1 .

B. Number of Operations for TwoFactor Algorithms
As mentioned in Section 11A, the matrices are not stored
and multiplied as matrices. Instead, to save storage and operations, the calculation is performed by explicit formulas which
are arranged so that intermediate quantities aresaved and
reused. Some of the algorithms are written in Appendix A in
this manner. We also mention again that it is assumed that h is
to be used for many different x vectors and, therefore, operations involving h are not counted.
Let us consider the sizes of the arrays involved. Since B1 is
M1 x rl and x is rl x r 2 ,B l x is M1 x r z , meaning that its columns are of length M 1 and are, in general, longer than
those of x . Similarly, the effect of B 2 , which is Mz x r2,
is to lengthen rows when it operates, producing the M1 X Mz
array X = BzBlx. In the same way, C1C, is an,operator which
reduces the dimensionality, in reverse order, of the array on
which it operates.
The number of multiplications involved is, therefore,the
number of elements in X ,
Wr1, rz) = MlMZ
(3.19)
and is seen to be independent of the ordering. On the other
hand, the number of additions depends on the ordering. Let
ABj and Ac be the number of additions required to apply the
I
Bj and Cj operators, respectively, in a onedimensional convolution. Let
A I = A B , +AC1
A2 =AB,
+ Ac,.
(3.20)
Then, since B l x takes AB, additions when B operates on each
of the rz columns of x , it takes AB,rZ additions in all. But,
Bz operates on the M 1 rows of the M1 x rz array B l x taking
AB,M1 additions. Next, Cz operates on the M 1 rows of the
array Y = H X , taking Ac,M1 additions. Then C1 operates on
the rz columns of CzY taking Ac, rz additions. In all, we get
0.000
0.091
0.066
0.142
0.045
0.166
0.130
2
3
4
5
6
7
8
0.131
9
For the ordering rl, rz totake fewer operations, we must have
4 r 1 , rz)
3
r1)
or
Alrz +AzMl <A2r1 +AIMz
from which it follows that
M1  r1
A1
<.M z  rz
(3.24)
Az
Therefore, the transformation to perform first is the one for
which the quantity
(3.25)
is smaller. Values of T(r)
are listed in Table 11.
for the algorithms of Appendix A
C. The General Multifactor Algorithm
A onedimensional cyclic convolution can be implemented
as a multidiinensional cyclic convolution by factoring N into
more than two mutually prime factors,
N = r 1 r 2 .. a r t
(3.26)
where, as stated above, the s:r are mutually prime. The multidimensional index mapping is defined by
A(r1, r2) =AB,rZ +AB,Ml 'AC,Ml +AC,rZ
= A lrz t AzMl
operations. The reader may verify that if the Cj's were applied
in the order CzC1,one would obtain
A*(rl,r2)=ABIr2 + A B z M l+Ac,Mz
+AC,rl.
(3.22)
This is more complicated than (3.21) and makes it more difficult to minimize the number of additions. Both of these
formulas were tested with actual operation counts and,in only
one case, was it found that (3.22) gave fewer additions. Therefore, we have adopted the convention of placing the Cj operators in the reverse order of that used for the Bits in order to be
able to use (3.21). As mentioned earlier, this ordering also
simplifies programming.
Now let us consider reversing the order of the factors. If the
transforms are computed first along index 2 and then along
index 1, the total numberof additions required will be
+AIMz.A(rz,r1)=A2r1
(3.27)
(3.21)
(3.23)
and the inverse mapping is

(3.28)
rj.
(3.29)
i e ilsl t i z s z + . * t itst mod N
where
si = qj (N/rj)
9
in which qi satisfies
qi(N/rj)
E 1 mod
With this tdimensional mapping, the onedimensional cyclic
convolution (3.1) canbe written as a tdimensional cyclic
convolution in a form whichis a generalization of (3.10).
The tdimensional cyclic convolution can be computed
using a tdimensional transformation having the CCP. This
tdimensional transformation is a direct product of t onedimensional transformations having the CCP for lengths rl,
r 2 , * * * , rt, respectively. Computation for the tdimensional
AGARWAL AND COOLEY: ALGORITHMS FOR
CONVOLUTION
DIGITAL
401
Table I11 lists the number of multiplications and additions
required for some multidimensional implementations of onedimensional convolutions with rectangular transforms. Both
Tables I and I11 assume that the transform of h is precomY = C ~ C ~ ” ’ C ~ [ ( A ~ . . . A ~ A ~ ~ ) X ( B ., .(3.30)
. . B ~ Bputed
~ ~ )and
] stored. The factors column lists factors of N in the
Letting x be regarded as a tdimensional array with indices k l , order in which the transform of x is computed. The ordering
k z , * ,kt, Bt * * B2Blx denotes a tdimensional rectangular listed gives the minimum number of additions. For compartransform of x. This is obtainedby first computing the ison, Table IV lists the number of multiplications per point
rlpoint transform B l x , with respect to the first index ki of x required for a length N = 2t cyclic convolution using the FFT
for futed values of all other indices. Note here that if the first algorithm. The FFT algorithm usedis a very efficient radix
transform is a Fourier transform or an NTT, B l x will be of the 2, 4, 8 algorithm which also makes use of the fact that the
same size as x. If B1 is a rectangular transform, however, B l x data are real.
will be larger in the first dimension. Then, one computes the
IV. USE WITH FERMAT NUMBER TRANSFORMS
rzpoint transform with respect to kz for each fixed set of
The
FNT provides an efficient and errorfree means of
values of all other indices, increasing the length of the second
dimension. The inverse operation with the Cfs is to be per computing cyclic convolutions. The computation of the FNT
formed in a similar fashion where, as mentioned before, we requires O(N log N ) bit shifts and additions,but nomultiplicaapply the Cis in reverse order as in the twodimensional case tions. The only multiplications required for an FNT impleabove. Multiplication by each Cj is seen to reduce the length mentation of cyclic convolution are the N multiplications reof the array in the kith dimension. Results on the computa quired to multiply the transforms. This is a very efficient
tional requirements for a tdimensional transformation can be technique for computing cyclic convolutions, but unfortunately, the maximum transform length for an FNT is proporeasily generalized from the twodimensional case.
tional to the word length of the machine used. Agarwal and
D. Number of Operations for the General Multifactor
Burrus [2] showed that a very practical choice of a Fermat
Algorithm
number for this application is F5 = 232 t 1, and that the FNT
Let Ai and Mi be the number of additions and multiplica mod F5 canbe implemented on a32bit machine. For this
tions, respectively, required fora length ri onedimensional choice of the Fermat number,the
maximum transform
convolution. Then,thenumber
of multiplications required length is 128. To compute the
cyclic convolution of a onefor the tdimensional cyclic convolution is
dimensional sequence longer than128,
we write the onedimensional sequence as a multidimensional sequence using
M(rl,r2;..,rt)=M1M2.*Mt
(3.31)
the CRT mapping as in (3.4) and (3.5). The length of the first
and the number of additions required is
dimension is taken as 128, and the lengths of theother dimensions are taken as mutually prime odd numbers. Thus,
transformation can be carried out by a simple generalization
of the twodimensional transformation (3.18) which can be
written
A(rl,rz,~~~,r,)=Alr2...r,+M1A2r3..~rl
+MlM2A3r4 *  rt + * t M1 . . M,_,A,.
(3.32)

As before, the ordering of the arguments of A(. ) indicates
the order in which the transforms are computed. Inverse
transforms are computed in the reverse order. As in the twodimensional case, the number of additions depends on the
order in which thetransforms are computed.
It is fairly simple to show that the ordering of the indices
rl, rz,
,r,, which minimizes the number of additions is
given by a generalization of the twodimensional case treated
above. Thus, the ordering should be according to the size of

Mi  ri
T(ri) = ,
Ai
i.e., such that
T(rk) < T(ri) when k < j .
(3.33)
N = 1 2 8 r z r 3 . . . r,.
(4.1)
For the FNT, the matrices A , B, and C in (2.23) satisfy A = B
and C = A’ and they are 128 by 128matrices. Since for FNT,
M = r, (3.24) tells us that the first transform to compute is a
length 128 FNT’s. This is computed for each of the indices in
the other dimensions and then followed by the computation
of the rectangular transforms along all other dimensions.
Finally, the transforms of h and x are multiplied and the inverse transforms, in all dimensions, are applied to the product
in the reverse order, the last inverse transform being the FNT.
All calculations, including those for the rectangular transforms
must be done modulo F5.
The totalnumber of multiplications required is
M = 128M2M3 .  Mt
(3.34)
Appendix A lists explicitly or implicitly, the A , B, and C
matrices for some basic short length cyclic convolution algorithms. These algorithms are the basic building blocks which
may be used to obtain algorithms for computing convolutions
of long sequences by multidimensional implementations.
Table I lists the number of multiplications and additions required for these basic algorithms. Mutually prime factors
from this list are selected to obtain algorithms for longer N.
(4.2)
while the number of length 128 FNT’s and inverse FNT’s required is
F = 2r2r3

*
r,.
(4.3)
The number of additions required in excess of those required
for computing theFNT is
A(128, r2, . . . ,rt) = 128A(rz, * ,rt)

=
128(Azr3r4...r,tM2A3r4.rtt.**
tMzM3
* * *
Mt1 A t ) .
(4 4)
IEEE TRANSACTIONS ON ACOUSTICS,
SPEECH,
AND
SIGNAL
PROCESSING,
402
VOL. ASSP25, NO. 5, OCTOBER 1977
TABLE 111
NUMBER
OF MULTIPLICATIONS
.4ND ADDITIONS
PER OUTPUT POINT FOR
COSVOLUTION
USIKGCOMPOSITE
ALGORITHMS
FORMED
FROM
THE
RECTANGULAR
TRANSFORMS
IN APPENDIX A
N
4,
44
2,g
8,9
6
12
18
20
80 30
36
60
12
84
3,8,5 120
180
210
360
420
504
840
1260
2520
Factors
of
Total Number
Multiplications
2, 3
3
8
20
4,5
2,325
4,g
4,3,5
50
4,3,7
4,9,5
2,3,5, I
8, 9 , 5
4,3,5, I
8,9,7
3,8,5, I
4,9,5, I
8,9,5, I
110
200
308
380
560
1100
1520
3080 I10
3800
,5852
10 640
20 900
58 520
Total Number
Multiplications
of Additions
per Point
34
100
232
25 0
450
625
20.00
1200
1186
25.48
2140
3320
6915
8910
19
22 800 54.29
34 618
15.61
63 560
128 025
359 130
Multiplications
Real
Real
per Point
Additions
per Point
N
4
8
16
32
64
128
256
512
1024
2048
4096~
2.00
2.5 0
4.25
5.12
6.06
8.03
9.01
10.00
12.00
13.00
14.00
1.00
9.50
12.37
14.81
11.53
20.51
23.00
25.15
28.75
31.25
34.00
Note: (It is assumed that one will do two real transforms with each
5.67
8.33
12.89
12.50
15.00
17.36
24.80
21.61
38.75
42.42
54.15
68.81
101.61
142.75
TABLE V
AMOUNT
OF COMPUTATION
FOR COYVOLUTION
USING THE FNT
MGLTIDIMENSIOKAL
ALGORITHMS
TABLE IV
NUMBERO F MULTIPLICATIONS
A N D ADDITIONS
PER OUTPUT
POINT
FOR
CONVOLUTION
USINGCOMPOSITE
FFT ALGORITHMS
(RADICES
2, 4, 8)
N
1.33
1.61
2.44
2.50
2.61
3.06
3.33
4.28
4.52
4.61
6.11
1.24
8.56
9.05
11.61
12.61
16.59
23.22
Additions
per Point
128
128
384
640
896
128x
1152
128. 1920
Factors of
N
x 1
128 x 3
128 x 5
128 x I
9
3x5
IN
Number of
Multiplies
per Point
Number
of
Extra Adds
per Point
1.0
1.33
2.0
2.11
2.44
2.66
0.00
3.66
1.00
10.28
10.88
13.00
FNT method while for N = 2048, the FFT method takes 13
multiplications per output point.
complex FFT.)
Table V lists the amount of computation required for multidimensional implementation of cyclic convolution using FNT’s
and rectangular transforms.
The data in Table V are to be compared with that in Tables
I11 and IV, where comparable dataforthecomputation
of
convolutions by rectangular transform and FFT methods are
given. The comparison is difficult to make since the FNT does
depend for its efficiency upon special machine hardware for
the transformations. However, the data do show how much
is to be gained if one has a machine with such hardware. The
reduction in numbers of multiplications is quite impressive.
For example, a mixed radix FFT algorithm (see [16])for
1024 points takes 12 multiplications per output point to compute a cyclic convolution while the FNT, used with the present
algorithms for a composite 896 point transform, takes only
2.71 multiplications per output point. The comparable figure
for840
points with the composite rectangular transform
method is 12.67 multiplications per outputpoint.For
N=
1920, we have 2.66 multiplications per output point for the
V. MISCELLANEOUSCONSIDERATIONS
A. Programming of the Algorithm and Machine Organization
We first summarize the calculation in matrix operator notation. The twodimensional convolution (3.10) may be written
in the form
y = h**x
(5.1)
where “**” denotes the fact that there are two convolutions
of h with x, the first being a convolution of columns, the seconda convolution of rows. Application of the rectangular
transform algorithm to the rlpoint column convolutions gives
(3.12)(3.14) which we express in operator notation as
H’= A l h
X’
=Blx
y’ = H’x *X’
y = c1 Y ‘ .
(5.2)
(5.3)
( 5 4)
(5.5)
Equations (5.4) and ( 5 . 5 ) are defined by the result of changing
AGARWAL AND COOLEY: ALGORITHMS
DIGITAL FOR
CONVOLUTION
403
respect to one index is done for all values of the other indices
and is, therefore, a vector operation which can be done simultaneously or in pipelined fashion for all vector elements. This
can be done conveniently by an array processor where one
may even consider hardwiring the circuits which compute the
rectangular transforms.
Also, since the computation involves multidimensional transforms, it caneasily be adapted to a twolevel memory hierH =A2H’
(5.6) archy. A slow memory unit can be used to store all the data,
X = B2X’
(5.7) and a fast memory unit can be used to compute on a part of
the data ata time (usually on a row or a column).
Y = H XXX
(5.8)
Y ’ = c2Y
(5 *9) B. Bounds on Intermediate Results
If a multidimensional convolution is implemented in moduwhere the “ x x ” in (5.8) denotes element by element multipli lar arithmetic (for example when the FNT is used) then we do
cation of all elements. The above formulation can be used to not have to worry about the intermediate values as long as the
define the structure of a program for implementing the algo final output is correctly bounded. But if ordinary arithmetic
rithm. Such a program would carry out the operations defined is used, all theintermediate
values should be correctly
by (5.2)(5.5)in
that order. This would essentially bean
bounded so that no overflow of the intermediatevalues occurs.
r,point convolution program operating on vectors. In com Below, wewillgive some simple bounds for the case where
puting (5.4), however, the program would compute the con data are real and only rectangular transforms are used. It is
volutions by performing the operations defined by (5.6)(5.9)
assumed thatthe h sequence is predetermined and remains
in that order. The latter computation can be done by a sub fixed. Results are given for the twodimensional case, but they
routine having exactly the same structure as (5.2)(5.5). This generalize easilyto more than twodimensions.
is essentially an r2point convolution subroutine also operating
Let
on vectors. On step (5.8), an element by element multiplicaN = rlr2
(5.10)
tion is performed. If there were a third factor, (5.8) would
contain a convolution and would be computed by still another and let
convolution subroutine operating on vectors. This could thus
X r n a = max IXk,,k,l.
(5.1 1)
proceed for as many levels of subroutines as there are factors
k , k2
in N .
For convolutions of real sequences, the rectangular trans A bound ymaxon the magnitudes of the elements o f y in (5.1)
form approach requires only real arithmetic as compared with satisfies
complex arithmetic required by the FFT algorithm. This
r,1 r,1
should reduce hardware complexity considerably.
lyilnax
GXmax
Ihk,,k,l*
(5.12)
It may appear that the CRT mapping of a onedjmensional
k,=O k,=O
sequence intoa
multidimensional array may require substantial computation. However, this is not so. To map a one The above bound is also a least upper bound. For a particular
dimensional sequence of length N intoa tdimensional array of x array it can be achieved. Equation (5.12) is a bound on the
dimensions rl, r2,* . ,rt [as given by (3.27)] ,we set up t ad output, but we also need bounds on the intermediate results.
dress registers which give the tdimensional array address for Consider the X ’ array (5.3) obtained after computing the B1
each data point. As the input data comes in sequentially, all transform along the first dimension. A simple bound on the
address registers are updated by one. These address registers elements of X ’ satisfies
are so set u p that when the contents of +e jth register beIXkl,j21GxrnaB(r1, n ~ )
(5.13)
comes rj, it is automatically reset to zero. Using this scheme,
no additional computation is required forthe address map for all n l , j2where here, and in what follows,
ping. After computingthe convolution, removing thedata
rj1
from the machine using (3.28) will require a substantial
B(rj,
nj)
=
lBnj,kji,
j = 1,2.
(5.14)
amount of computation. We can get around thisby removing
kj = O
thedata sequentially in the form of a onedimensional sequence y. Again, we use the scheme as described above to give The absolute values of the elements of the X array, (5.7), are
the tdimensional array address where the output is residing.
bounded by
For both input and output we use the mapping (3.27) which is
Ixn,,n,I
IXLl,jZIrnaxB(r2,n 2 )
(5.15)
much simpler. If the h sequence is fixed, the rectangular transwhere
the
“max”
refers
to
the
maximum
with
respect
to j 2 .
form of h canbe precomputed andstoredina
readonly
This, with (5.13) gives
memory (ROM).
For basic short length convolution algorithms, the A , B , and
IXn,,n,l GXmaxB(r1, nl)B(r2, n 2 )
C matrices are very simple and require few additions. Furthernl=O,l;*.,M1l,
n 2 = 0 , 1 , .   , M 2 (5.16)
1.
more, as mentioned above, a rectangular transformation with
the order of summation in (3.12). One may thinkofthe
WX *
m in (5.4) as signifying an element by element multiplication with respect to the first index and a convolution with rei.e., of the
spect to the second index of the arrays H’and
rows of H‘ with the respective rows of X’. These convolutions
are calculated with the r2point convolution algorithm which
can be written
x’,
404
IEEE TRANSACTIONS
ON
ACOUSTICS,
SPEECH,
AND
SIGNAL
PROCESSING,
VOL.
ASSP25,
NO.
Both bounds (5.13) and (5.15) are least upper bounds. We get
a bound on the elements of the transform Y in (5.8) in terms
of the known fixed H by substituting the bound(5.16) in
(5.17)
to get
IYnl,n21 ~ x X m a x I ~ n , , n z l B ( ~ l ~ n l ) B ( ~ * , n ~ ) .(5.18)
Bounds on the elements of Y ’ are obtained directly from (5.4)
giving
r, 1
(5.19)
where the “ m a ” refers to the maximum over j 2 . Substituting
(5.1 3) we have
r, 1
(5.20)
To summarize, (5.12), (5.13), (5.16), (5.18), and (5.20) give
least upper bounds on the elements of y , X ’ , X,Y , and Y ’ , respectively, in terms of xmaxand known fixed values of h and
its transforms H ’ and H . These bounds caneasily be generalized to the multidimensional case.
C. The Effectof Roundoff Error
If the multidimensional convolution is implemented in
modular arithmetic, there is no roundoff error introduced at
any stage of the computation. Even if ordinary arithmetic is
used, the rectangular transform implementation of cyclic
convolution is likely to have less arithmetical roundoff noise
(error) than an FFT implementation. There are several reasons
for this. To compute convolutions of real sequences, the rectangular transform approach requires only real operations, but
theFFT implementation requires complex operations. Complex arithmetic introduces more roundoff noise than real
arithmetic. Moreover, for short length convolutions, the rectangular transform approach requires a smaller total number of
arithmetical operations as compared to the FFT implementation. Fewer arithmetical operations generally result in smaller
roundoff noise. Furthermore, if fixed point arithmetic is used,
roundoff noiseis
introduced only during multiplications.
Therefore, for a rectangular transform fixed point implementation, the only source of noise is in the multiplication of the
transforms. All these factors should lead to substantially less
roundoff noise for a rectangular transform than for an FFT.
D. Optimal Block Length for Noncyclic Convolution
In many digital signalprocessing applications, one of the
sequences (the impulse response h of the filter) is fixed and of
short length, say p , while the other sequence (the input sequence x) is much longer and can be considered to be infinitely
long. The convolution of these sequences is obtainedby
blocking the input sequences in blocks of length L . Now, for
each block, we have to convolve a sequence of length L with a
sequence of length p. They can be convolved using a length N
cyclic convolution if L + p  1 <N . For each p there is an op
5, OCTOBER 1977
timum N , depending on the cyclic convolution scheme used,
which requires the minimum amount of computation per
output point. Let Fl(N) be the number of multiplications
per point required for a length N cyclic convolution. Then
F z ( p , N ) , the number of multiplications per output point, is
given by
F z ( p , N ) = F I ( N ) N / ( N  p + 1)
(5.21)
for a fixed p, N/(N  p + 1) is a decreasing function of N . For
an FFT implementation, Fl(N) is proportional to log N , a
slowly increasing function of N . Therefore, for the FFT, the
optimum block length N for a given p is much larger than p .
For a rectangular transform calculation of a cyclic convolution
Fl(N) is a rapidly increasing function of N . Thus, for this
case, the optimum N is not much larger than p. Table VI lists
optimum N and corresponding F, ( N ) and F2( p ,N ) for several
values of p. The values of N selected are from Table 111. For
comparison, Table VI1 lists for the samepvalues the corresponding data obtained by using the FFT algorithm with the
multiplication count as given in Table IV.
VI. CONCLUSIONS
The multidimensional method for computing convolutions
was investigated by Agarwal and Burrus [ l ] in order to permit the efficient use of FNT’s.While this presented computational advantages for computers capable of the special
arithmetic required for the FNT, it was also shown that even
without the FNT, a generalpurpose computer could compute
convolutions by this method infewer multiplications than
others using the FFT for sequence lengths up to around 128.
The present paper suggests the use of the CRT for mapping
into multidimensional sequences. This, with improved short
convolution algorithms, makes the multidimensional method
better than FFT methods for sequence lengths up to around
420. The present methods are also more attractive since they
donot require complex arithmetic with sines and cosines.
This means that the calculation can be carried in integer arithmetic without rounding errors.
Theoretical results from computational complexity theory
showing how close the special algorithms are to optimal are
cited. Some of this theory is used for developing systematic
techniques for deriving optimal short convolution algorithms.
It is expected that these techniques, using computerbased
formula manipulation systems, willbeuseful for developing
tailormade convolution algorithms which take advantageof
the special properties of a given computer. For the same reasons, one may also expect such techniques to have an effect
on the design of specialpurpose digital processing systems.
APPENDIXA
CONVOLUTION ALGORITHMSFOR 2 < N < 9
Optimal and nearoptimal algorithms for a number of short
convolutions are given with the number of multiplications M
and the number of additions A B , A c , and A . The operations
involving h are not counted. The elements of Ah and Bx are
denoted by ak and bk, k = 0, . ,M  1, respectively.
The expressions for ak and bk are written with parentheses
arranged so as to show the ordering of the operations, which

CONVOLUTION
DIGITAL
AGARWAL
FOR
ALGORITHMS
AND COOLEY:
405
TABLE VI
OPTIMUM
SIZE SEGMENTS
OF LONGSEQUENCES
WHEN CONVOLVING
WITH
A SHORT SEQUENCE
BY RECTANGULAR TRANSFORM
METHODS
Filter Tap
Length
P
6
12
2.66
180
420
2
4
80 8
16
32
64
12.97
128
256
N
.
1.66
30
60
1206.29
9.04
840
Number of
Multiplications
M
F1 ( N )
Multiplications
per Point
Fz(P,N )
20
200
3.33
5 60
4.66
9.40
1100
6.11
3800
10 64018.17 12.66
1.60
2.22
4.44
takesthenumber of additions givenforeachalgorithm.
We
have done our best to minimize the number of additions, but
have no proof that we have succeeded.
With the algorithms forN = 6 , 7 , and 8 we also give theA , B,
and C matrices. Where possible, theA matrix is given in terms
of B premultipliedbyadiagonalmatrix,writtendiag
( *
with the diagonal elements within the parentheses.
a)
N = 2 AlgorithmM = 2, A B = 2 , A c = 2 , A = 4:
a0 = (ho + hl)/2
a1 = (ho  hlY2
bo =x0 + X 1
bl =x0  x1
mk=Ukbk, k = 0 , 1
Yo=mo+ml
y l = m o m l .
N=3AlgorithmM=4,AE=5,Ac=6,A=ll:
a. = (ho t hl t h2)/3
al = ho  h2
a2 = h l  h2
a3 = [(ho h 2 )+ (hl  h 2 ) l / 3
b o = x o t x l +x2
bl =x0  x2
b2 =x1  x2
b3 = (x0  x2) t (x1  x 2 )
mk =akbk, k = 0, 1 , 2 , 3
'
YO =mO ( m l 
m3)
 m3)  (m2  m3)
Y2 = mo + (m2  ma>.
Y1=
mo
N = 4 AlgorithmM = 5, A B = 7, Ac = 8 , A = 15:
G o = [(ho+h2)+(h1+h3)I/4
al=[(hoth~)(hl+h3)I/4
a2 = (ho  h2)/2
a3 = [(ho  h2)  ( h ~h3)1/2
a4 = [(ho h2) t ( h ~h3)I / 2
bo=(xo+x2)+(x1+x3)
bl = ( x 0 ' x 2 ) (x1 ' x 3 1
bz = (x0  x21 + (x1  x31
b3 =x0  X Z
b4 = X I  x3
N=6AlgorithmM=8,AB=18,Ac=26,A=44:
Note that this is not as good as the composite algorithm for
N = 2 x 3 in Table III which also takes 8 multiplications, but
takes only 34 additions.
where
1 1 1 1 1 1
1 0 0 0 0 0  1
A = d i a g ( l 1 1 1 1 1 1 1 )  B / 6
0 1 0 0 0 0  1
where
0 0 1 0 0 0  1
1
0  1
1
01
0
1  1
0
11
1  1
B=
1
0
1  1
0
0
1
1
0  1  1
0
1
1
1
1
0  1  1
0 0 0 0 1 0  1
0 0 0 0 0 1  1
1 0 0 1 0 0  2
011
1 1
1 1
1
1
1
1
0 1 0 0 1 0  2
0
1 1
1
0 0 0 1 0 0  1
A=
0 0 1 0 0 1  2
1 1 0 0 0 0  2
1
0 1 1 0 0 0  2
1 0 1 0 0 0  2
0 0 0 1 1 0  2
0 0 0 0 1 1  2
0 0 0 1 0 1  2
1 1 0 1 1 0  4
0 1 1 0 1 1  4
1 1 1 1 1 1  6
1 2 1
1
C=
2
1
2  1 1
1  1  2
2
1
1
1
1 1
1
1
2 1
1
1

2
1
1
2 1
2
1
21
1
1 1
2
1
1
1 2
1
1
1
1
1
407
AGARWAL AND COOLEY: ALGORITHMS FOR DIGITAL CONVOLUTION

1 10  1  1  1  1
0
0
1
0
0
0
1
0
0
0
0  1
1  1  10  1  1
0
0
0
1
0
0
0
0
1
0
01
1  11  10  1  1
0
0
0
0
0
1
0
00
0  1
1
0
0
0
1
0
0
0
0
0
0  1
0
0  1
0
0
1 0  1
C= 1  1  1  1  1
1
1
1
1
1
0
1 ' 10  1  10  1
1 1  1 1 1  1 1 0
1 0
1 1
2
0
0
0  1
1 0  1  101
1 1
0
0
1
6
0111
0  1
0
11
0
4
uo = mo  m18
Also,
u 1 = ml m5
0 1 0 1 0  1
01u2=m4+m6
u3=m1 +m3
1 1 1  1  1 1 1 1
U 4 = m.2  m6
0
1 0 1 0  1 0  1
~ ~ = m ~ + m ~ t m ~ + m ~  m ~
0 0 0 1 0 0 0  1
u6 =uO  u3
u, =uot u5
0 0 1  1 0 0  1 1
yo=~o+~1~2m3+m9+ml~
0 0 1 0 0 0  1 0
y1=uou1u2m2+mlo+m15
0 1 0 0 0  1 0 0
y2=~6+~4m5+m12+m14
B=
Y3=U6u4m4+m7+mll
11 0 0  1 1 0
0
y4=~7+m1m7m10m13+m16
1 0 0 0  1 0 0 0
y5=(mo+m0)+(2m~+2m~)+m~~o~1~2~3
1 1 1  1 1 1 1
Y4Y6
y , = ~ ~ + m ~  m ~  m ~ ~  m ~ ~ + m ~ 7 .
0 1 0  1 0 1 0  1
1
N = 8 AlgorithmM = 14, A B = 20, Ac = 26, A = 46:
A=diag(l 1
1 1 1 1 11. 11. 1 1
2 2 2 2 2 2 2 2 2 4 4 4 8 8 ) E
where

0
1 00  1  1
1
0
0
0

1
0
1
1
0
1
1
1 1  1 1
0  1  1
0
1
0
0
0
0
1
0
1 0 1 0  1 0  1
E=
1
1
1
1
1
0
1
1 1
1
1
1
1 1 1
1
0
1 0  1
1
1
1
1 0  1
0
1 0  1
1
1  1
1
1
1  1 1
1
0
1 1
1
0
1 1
1
1 1
1
1 1
1 1
1 1
1 1
1 1
1
1
1
1
1
1
1
1
1 0  1
1 1
1
1
0
1 0  1
0
1 1
1 1
1 1
1
1
1
1
1
1
408
IEEE TRANSACTIONS
ON
ACOUSTICS,
SPEECH, AND
SIGNAL
PROCESSING,
VOL.
ASSP25, NO. 5 , OCTOBER 1977
CONVOLUTION
DIGITAL
AGARWAL
FOR
ALGORITHMS
AND COOLEY:
409
Equation (B9) is the necessary and sufficient condition for the
CCP. It can be stated as follows. “The inner product of the
pth column of A , the qth column of B , and the nth row of C
should be 1 forp t 4 = n mod N and zero otherwise.”
For the square transform case (M = N), further restrictions
can be placed on the A , B , and C matrices leading to the results of Agarwal and Burrus [2], For this case, the transform
APPENDIXB
matrices have the DFT structure and the computation of the
RECTANGULAR
TRANSFORMS
HAVING THE
transforms, in general, requires multiplications. But, if M is
CYCLIC CONVOLUTIONPROPERTY
allowed to be greater than N , then more flexibility exists in
In this section, we will establish relationships between the choosing the A , B, and C matrices. As M is increased, one can
A , B , and C matrices which are necessary and sufficient fory obtain A , B, and C matrices with simpler coefficients. As an
to be the cyclic convolution defined by (3.1). These relation extreme case, one can take M = N2, a d in that case, each row
ships are very general and any square or rectangular transfor of the A and B matrices and each column of the Cmatrix will
have only one nonzero element. This case reduces to a direct
mation having the CCP must satisfy them.
computation of the convolution. Between the two extremes
The transforms of h and x are defined by
of the DFT structure (M = N) and the direct computation
H=Ah
(B1) (M = N2), various degrees of tradeoffs exist in the simplicity
X = Bx
(B2) of the transformation matrices and the size of M. For very
long sequences (N + ) the DFT, using the FFT algorithm
where A and B are rectangular matrices of dimensions M x N seems to be computationally optimal. We have chosen the
where N is the length of the cyclic convolution and M is the algorithms of Appendix A so that M is small, but not always
number of points in the transform domain. It is obvious that the minimum according to Winograd’s theorem. The choice
M>N.
of a nonminimum M is made so that the transformation maThe M multiplications required to multiply the transforms H trices are simple, meaning that their implementation requires
and X arise in the calculation of
only additions, This reduces thenumberof multiplications
Y=HxX
033) required for cyclic convolution to the given Mvalues.
where x denotes the element by element product.
The output vector y which is the cyclic convolution of x and
h is obtained by anotherrectangular transformation
(B4)
y=CY
where Cis an N x M matrix..
We would like to establish conditions on the A , B, and C
matrices so that y is the cyclic convolution o f x and h. Equations (Bl) and (B2) can be written in terms of their elements,
N1
=
Hk
Ak,php
p=o
x,=
N1
Bk,qXq,
k = 0 , 1 , 2 , * * * , M 1.

(B6)
q=o
Equation (B4) can be written
Substituting forH k and x
Yn = k=O c n , pk =po
k
from (B5) and (B6), we get
Ak,php}p
q=o
Bk,qxq}
N1
N1
Yn
=
q = op = o
c n , k Ahkp,X
pB
q k,q}.
k=O
The CCP requires that
M1
k=O
Cn,kAk,pBk,q
=lifptq=nmodN
= 0 otherwise.
(B9)
REFERENCES
R.C.Agarwaland
C. S. BUIIUS, “Fastonedimensional digital
IEEE Trans.
convolution
by
multidimensional
techniques,”
Acoust.,Speech; Signal Processing, vol.ASSP22, pp.110,
Feb. 1974.
, “Fast convolution using Fermat number transforms with
applications to digital filtering,” IEEE Trans. Acoust., Speech,
SignalProcessing, vol. ASSP22, pp.8799, Apr. 1974.
, “Numbertheoretictransforms
to implementfast digital
convolution,”Proc. IEEE, vol. 63, pp. 550560, Apr. 1975.
G. D. Bergland, “A fast Fourier transform algorithmusing base 8
iterations,”Math. Comput., vol. 22, pp. 275279, Apr. 1968.
J. W. Cooley, P. A. W. Lewis, and P. D. Welch, “Historical notes
on the fastFouriertransform,”
IEEE Trans. AudioElectroacoust., vol. AU15, pp. 7679, June 1967.
, “The fast Fourier transform: Programming considerations in
the calculation of sine, cosine and Laplace transforms,”J. Sound
Vib., vol. 22, pp. 315337, July 1970.
I. J. Good,“TheinteractionalgorithmandpracticalFourier
analysis,” J. Royal Statist. Soc., ser. B. vol. 20, pp. 361372,
1958;addendum, vol. 22,1960, pp. 372375, (MR 21 1674;
MR 23 A4231).
J. H. Griesmer, R. D. Jenks, and D. Y. Y. Yun, “SCRATCHPAD
user’s manual,” IBMRes. Rep. RA 70, IBM Watson Res. Cen.,
Yorktown Heights,NY, June 1975; and SCRATCHPAD Techn i c a l Newsletter No. 1, Nov. 15,1975.
D. E. Knuth, “Seminumerical algorithms,” in The Art of ComMA: AddisionWesley,
puter Programming, vol.
2.
Reading,
1971.
T.Nagell, Introduction to Number Theory.
New York: Wiley,
1951.
P. J. Nicholson, “Algebraic theory of fiiite Fourier transforms,”
J. Comput. Syst. Sei., vol. 5, pp. 524527, Oct. 1971.
J. M. Pollard,“ThefastFouriertransformina
fiiite field,”
Math. Comput., vol. 25, no. 114,pp. 365374, Apr. 1971.
C. M. Rader, “Discrete convolutions via Mersenne transforms,”
IEEE Trans. Comput., vol. C21, pp. 12691273, Dec. 1972.
I. S. Reed and T. K. Truong, “The use of finite fieldsto compute
convolutions,” IEEE Trans. Inform. Theory, vol. IT21, pp. 208213, Mar. 1975.
, “Complex integer convolutions over a direct sum of Galois
fields,” IEEE Trans. Inform Theory, vol. IT21, pp. 657661,
Nov. 1975.
410
IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL
[ 161 R. C. Singleton, “An algorithm for computing the mixed radix
fast Fourier transform,” IEEE Trans. Audio Electroacoust., vol.
AU17, pp. 93103, June 1969.
[17] L. H. Thomas, “Using acomputer to solve problems in physics,”
in Applications of Digital Computers. Boston, MA: Ginnand
Co., 1963.
PROCESSING, VOL.
ASSP25, NO. 5, OCTOBER 1971
[ 181 S. Winograd, “Some bilinear forms whose multiplicative complexity depends on the field of constants,” IBM Res. Rep. RC 5669,
IBM WatsonResearchCen.,
Yorktown Heights, NY, Oct. 10,
1975.
[19] , “On computing the discreteFouriertransform,” Proc. Nat.
Acad. Sci USA, vol. 73, no. 4, pp. 10051006, Apr. 1976.
An Algorithm for Designing Constrained Least
Squares Filters
AbstractThis paper describes a practical computer algorithm for the
solution of constrainedleastsquares (CrS) filtering equations.This
algorithm exploits the blockToeplitz and blockcirculant propertiesof
the filtering equations.Specifically,thesepropertiesareutilized
to
adapt Kutikov’sandAkaike’s
algorithmsforthesolution
of blockToeplitz systems. Our approach leads to an economical algorithm for
computing the coefficients of the CLS filters proposed by Claerbout.
This algorithmis well suited forsolving large systems.
I. INTRODUCTION
N MANY engineering applications it is desired to combine a
number of discretetime signals in a linear fashion to obtain
a composite sequence with enchanced signaltonoise ratio.
The enhancement technique applies, for example, to data
acquisition in the presence of severe electromagnetic radiation,
to simulation of spinal reflex transmission, and to the design
of twodimensional digital filters [ l ] [4] . A newly proposed
application is the multichannel processing of signals sensed by
an array of geophones in a coal gasification project [5] :In
each case, the composite sequence is obtained by passing the
signals through individual filters followed by a summer. These
fdters are somewhat similar to the Wiener and the Kalman
fdters in the sense that a least squares criterion is used to determine the filter coefficients.
They differ from the Wiener and the Kalman filters in the
specification of a priori information. Rather than being given
as a signal covariance matrix or as the output of a linear dynamic system driven by white noise, the signal information is
given in the form of constraints on the filter coefficients. For
this reason, the filters are called constrained least squares
(CLS) filters.
For the case of two discretetime signals and three filter
points, Claerbout [6] established thatthe CLS filter coefficients constitute the solution of a blockToeplitz system. The
solution procedure requires the inversion ofathirdorder
blockToeplitz matrix of block size 2 X 2. In the general case
I
* l  L + ? \
Y
Fig. 1. Composite sequence.
of M signals and N filter points the dimensions of the matrix
in question become so large that the implementation of the
solution becomes computationally inefficient. Substantial
savings in memory and computation time can be effected by
usingAkaike’s algorithm [7] to invert the blockToeplitz
matrix. His algorithm includes those of Levinson [ 8 ] ,Trench
[ 9 ] , [lo] ,and Kutikov [l 11 as special cases.
In this paper we shall present an economical algorithm for
computing the MN coefficients of an Mchannel CLS filter.
This algorithm is based on Akaike’s scheme for the inversion
of ablockToeplitz matrix.
11. VECTORMATRIXFORMULATION
The CLS coefficients will be obtained as a solution of a system of linear equations. Let fi(k), i = 1, 2, . * , M , be M
discretetime signals, each of whch has exactly a signalelements, i.e., k = 0 , 1 , * * . ,a  1, and each of which is passed
through an individual sampledata filter followed by a summer,
as shown in Fig. 1 .
The impulse response hi(k) of the sampledata filter is of
Manuscript received July 9, 1976; revised April 11,1977.
duration b, i.e., k = 0 , 1, * ,b  1” Without loss of generality,
The authorwas with GeneralDynamics, Orlando, FL. He is now with
the International Telephone and Telegraph Corporation, Stamford, CT fi and hi can be considered to be identically zero for all indices
less than zero and forall indices greater than (a  1) and
06902.