<< Chapter < Page | Chapter >> Page > |
Note that, by inspection,
where and . Because and are relatively prime a permutation matrix can be defined by
With this ,
and
Since and , one gets, in the multi-factor case, the following.
LemmaIf and are pairwise relatively prime, then where is the permutation matrix given by .
This useful permutation will be denoted here as . If then this permutation yields the matrix, . This product can be written simply as , so that one has .
It is quite simple to show that
In general, one has
A Matlab function for
is
pfp2I()
in one of the appendices.
This program is a direct implementationof the definition.
In a paper by Templeton
[link] , another method for
implementing
, without `if' statements,
is given. That method requires some precalculations, however.A function for
is
pfp()
. It uses
[link] and calls
pfp2I()
with the appropriate arguments.
The Chinese Remainder Theorem for polynomials can be used to decompose a convolution of two sequences(the polynomial product of two polynomials evaluated modulo a third polynomial)into smaller convolutions (smaller polynomial products) [link] . The Winograd point circular convolution algorithm requires that polynomials are reduced modulo thecyclotomic polynomial factors of , for each dividing .
When has several prime divisors the reduction operations become quite complicated and writing a program to implement themis difficult. However, when is a prime power, the reduction operations are very structured and can be done in a straightforward manner.Therefore, by converting a one-dimensional convolution to a multi-dimensional one, in which the length is a prime poweralong each dimension, the split nesting algorithm avoids the need forcomplicated reductions operations. This is one advantage the split nesting algorithm has overthe Winograd algorithm.
By applying the reduction operations appropriately to the circular shift matrix, we are able to obtain a block diagonal form,just as in the Winograd convolution algorithm. However, in the split nesting algorithm, each diagonal blockrepresents multi-dimensional cyclotomic convolution rather than a one-dimensional one.By forming multi-dimensional convolutions out of one-dimensional ones, it is possible to combine algorithms for smaller convolutions(see the next section). This is a second advantage split nesting algorithm has overthe Winograd algorithm. The split nesting algorithm, however, generally uses more thanthe minimum number of multiplications.
Below we give an explicit matrix description of the required reduction operations, give a program that implements them,and give a formula for the number of additions required. (No multiplications are needed.)
Notification Switch
Would you like to follow the 'Automatic generation of prime length fft programs' conversation and receive update notifications?