<< Chapter < Page | Chapter >> Page > |
First, consider , a prime. Let
and recall . The residue is found by summing the coefficients of .The residue is given by . Define to be the matrix that reduces modulo and , such thatif and then
where , and are vectors formed from the coefficients of , and . That is,
so that where is the reduction matrix of size . Similarly,let and define to be the matrix that reduces modulo , , ..., such that
where as above, , , ..., are the coefficients of , , ..., .
It turns out that can be written in terms of . Consider the reduction of by , , and . This is most efficiently performed by reducing in two steps. That is, calculate and . Then calculate and . In matrix notation this becomes
Together these become
or
so that where denotes the matrix direct sum. Similarly, one finds that . In general, one has the following.
Lemmais a matrix given by and can be implemented with additions.
The following formula gives the decomposition of a circular convolution into disjoint non-circular convolutions whenthe number of points is a prime power.
It turns out that when is not a prime power, the reduction of polynomials modulo the cyclotomic polynomial becomes complicated, and with an increasing number of prime factors, the complication increases.Recall, however, that a circular convolution of length can be converted (by an appropriate permutation) into a dimensional circular convolution of length along dimension . By employing this one-dimensional to multi-dimensionalmapping technique, one can avoid having to perform polynomial reductions modulo for non-prime-power .
The prime factor permutation discussed previously is the permutation that converts a one-dimensional circularconvolution into a multi-dimensional one. Again, we can use the Kronecker product torepresent this. In this case,the reduction operations are applied to each matrix in the following way:
where
where .
The matrix can be factored using a property of the Kronecker product. Notice that , and (with appropriate dimensions) so that one gets
where , and where the empty product is taken to be 1. This factorization shows that can be implemented basically by implementing copies of . There are many variations on this factorizationas explained in [link] . That the various factorization can be interpreted as vectoror parallel implementations is also explained in [link] .
Notification Switch
Would you like to follow the 'Automatic generation of prime length fft programs' conversation and receive update notifications?