<< Chapter < Page Chapter >> Page >
S n e k = e k + 1 n .

Note that, by inspection,

( S n 2 S n 1 ) e a + n 1 b = e a + 1 n 1 + n 1 b + 1 n 2

where 0 a n 1 - 1 and 0 b n 2 - 1 . Because n 1 and n 2 are relatively prime a permutation matrix P can be defined by

P e k = e k n 1 + n 1 k n 2 .

With this P ,

P S n e k = P e k + 1 n = e k + 1 n n 1 + n 1 k + 1 n n 2 = e k + 1 n 1 + n 1 k + 1 n 2

and

( S n 2 S n 1 ) P e k = ( S n 2 S n 1 ) e k n 1 + n 1 k n 2 = e k + 1 n 1 + n 1 k + 1 n 2 .

Since P S n e k = ( S n 2 S n 1 ) P e k and P - 1 = P t , one gets, in the multi-factor case, the following.

Lemma

If n = n 1 n k and n 1 , ... , n k are pairwise relatively prime, then S n = P t ( S n k S n 1 ) P where P is the permutation matrix given by P e k = e k n 1 + n 1 k n 2 + + n 1 n k - 1 k n k .

This useful permutation will be denoted here as P n k , , n 1 . If n = p 1 e 1 p 2 e 2 p k e k then this permutation yields the matrix, S p 1 e 1 S p k e k . This product can be written simply as i = 1 k S p i e i , so that one has S n = P n 1 , , n k t i = 1 k S p i e i P n 1 , , n k .

It is quite simple to show that

P a , b , c = ( I a P b , c ) P a , b c = ( P a , b I c ) P a b , c .

In general, one has

P n 1 , , n k = i = 2 k ( P n 1 n i - 1 , n i I n i + 1 n k ) .

A Matlab function for P a , b I s 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 P a , b , without `if' statements, is given. That method requires some precalculations, however.A function for P n 1 , , n k is pfp() . It uses [link] and calls pfp2I() with the appropriate arguments.

Reduction operations

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 n point circular convolution algorithm requires that polynomials are reduced modulo thecyclotomic polynomial factors of s n - 1 , Φ d ( s ) for each d dividing n .

When n has several prime divisors the reduction operations become quite complicated and writing a program to implement themis difficult. However, when n 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.)

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Automatic generation of prime length fft programs. OpenStax CNX. Sep 09, 2009 Download for free at http://cnx.org/content/col10596/1.4
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Automatic generation of prime length fft programs' conversation and receive update notifications?

Ask