Skip to content Skip to navigation Skip to collection information

Connexions

You are here: Home » Content » Automatic Generation of Prime Length FFT Programs » Introduction

Navigation

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

This content is ...

Affiliated with (What does "Affiliated with" mean?)

This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • Rice Digital Scholarship

    This collection is included in aLens by: Digital Scholarship at Rice University

    Click the "Rice Digital Scholarship" link to see all content affiliated with them.

  • Featured Content display tagshide tags

    This collection is included inLens: Connexions Featured Content
    By: Connexions

    Click the "Featured Content" link to see all content affiliated with them.

    Click the tag icon tag icon to display tags associated with this content.

Also in these lenses

  • UniqU content

    This collection is included inLens: UniqU's lens
    By: UniqU, LLC

    Click the "UniqU content" link to see all content selected in this lens.

  • Lens for Engineering

    This module and collection are included inLens: Lens for Engineering
    By: Sidney Burrus

    Click the "Lens for Engineering" link to see all content selected in this lens.

Recently Viewed

This feature requires Javascript to be enabled.

Tags

(What is a tag?)

These tags come from the endorsement, affiliation, and other lenses that include this content.
 

Introduction

Module by: Ivan Selesnick, C. Sidney Burrus. E-mail the authors

Summary: This collection of modules is from a Rice University, ECE Department Technical Report written around September 1994. It grew out of the doctoral and post doctoral research of Ivan Selesnick working with Prof. C. Sidney Burrus at Rice. Earlier reports on this work were published in the ICASSP and ISCAS conference proceedings in 1992-94 and a fairly complete report was published in the IEEE Transaction on Signal Processing in January 1996.

Introduction

The development of algorithms for the fast computation of the Discrete Fourier Transform in the last 30 years originated with the radix 2 Cooley-Tukey FFT and the theory and variety of FFTs has grown significantly since then. Most of the work has focused on FFTs whose sizes are composite, for the algorithms depend on the ability to factor the length of the data sequence, so that the transform can be found by taking the transform of smaller lengths. For this reason, algorithms for prime length transforms are building blocks for many composite length FFTs - the maximum length and the variety of lengths of a PFA or WFTA algorithm depend upon the availability of prime length FFT modules. As such, prime length Fast Fourier Transforms are a special, important and difficult case.

Fast algorithms designed for specific short prime lengths have been developed and have been written as straight line code [3], [2]. These dedicated programs rely upon an observation made in Rader's paper [6] in which he shows that a prime pp length DFT can be found by performing a p-1p-1 length circular convolution. Since the publication of that paper, Winograd had developed a theory of multiplicative complexity for transforms and designed algorithms for convolution that attain the minimum number of multiplications [13]. Although Winograd's algorithms are very efficient for small prime lengths, for longer lengths they require a large number of additions and the algorithms become very cumbersome to design. This has prevented the design of useful prime length FFT programs for lengths greater than 31. Although we have previously reported the design of programs for prime lengths greater than 31 [7] those programs required more additions than necessary and were long. Like the previously existing ones, they simply consisted of a long list of instructions and did not take advantage of the attainable common structures.

In this paper we describe a set of programs for circular convolution and prime length FFTs that are are short, possess great structure, share many computational procedures, and cover a large variety of lengths. Because the underlying convolution is decomposed into a set of disjoint operations they can be performed in parallel and this parallelism is made clear in the programs. Moreover, each of these independent operations is made up of a sequence of sub-operations of the form IAIIAI where denotes the Kronecker product. These operations can be implemented as vector/parallel operations [12]. Previous programs for prime length FFTs do not have these features: they consist of straight line code and are not amenable to vector/parallel implementations.

We have also developed a program that automatically generates these programs for circular convolution and prime length DFTs. This code generating program requires information only about a set of modules for computing cyclotomic convolutions. We compute these non-circular convolutions by computing a linear convolution and reducing the result. Furthermore, because these linear convolution algorithms can be built from smaller ones, the only modules needed are ones for the linear convolution of prime length sequences. It turns out that with linear convolution algorithms for only the lengths 2 and 3, we can generate a wide variety of prime length FFT algorithms. In addition, the code we generate is made up of calls to a relatively small set of functions. Accordingly, the subroutines can be designed and optimized to specifically suit a given architecture.

The programs we describe use Rader's conversion of a prime point DFT into a circular convolution, but this convolution we compute using the split nesting algorithm [5]. As Stasinski notes [11], this yields algorithms possessing greater structure and simpler programs and doesn't generally require more computation.

On the Row-Column Method

In computing the DFT of an n=n1n2n=n1n2 point sequence where n1n1 and n2n2 are relatively prime, a row-column method can be employed. That is, if an n1×n2n1×n2 array is appropriately formed from the nn point sequence, then its DFT can be computed by computing the DFT of the rows and by then computing the DFT of the columns. The separability of the DFT makes this possible. It should be mentioned, however, that in at least two papers [11], [4] it is mistakenly assumed that the row-column method can also be applied to convolution. Unfortunately, the convolution of two sequences can not be found by forming two arrays, by convolving their rows, and by then convolving their columns. This misunderstanding about the separability of convolution also appears in [1] where the author incorrectly writes a diagonal matrix of a bilinear form as a Kronecker product. If it were a Kronecker product, then there would indeed exist a row-column method for convolution.

Earlier reports on this work were published in the conference proceedings [7], [8], [9] and a fairly complete report was published in the IEEE Transaction on Signal Processing [10]. Some parts of this approach appear in the Connexions book, Fast Fourier Transforms. This work is built on and an extension of that in [9] which is also in the Connexions Technical Report.

References

  1. Blahut, R. E. (1985). Fast Algorithms for Digital Signal Processing. Addison-Wesley.
  2. Johnson, H. W. and Burrus, S. (1981). Large DFT Modules: 11, 13, 17, 19, 25. (8105). [Connexions Collection: col10569]. Technical report. Rice University.
  3. Johnson, H. W. and Burrus, C. S. (1983, April). The Design of Optimal DFT Algorithms Using Dynamic Programming. IEEE Trans. Acoust., Speech, Signal Proc., 31(2), 378-387.
  4. Lu, C. and Cooley, J. W. and Tolimieri, R. (1993, February). FFT Algorithms for Prime Transform Sizes and their Implementations of VAX, IBM3090VF, and IBM RS/6000. IEEE Trans. Acoust., Speech, Signal Proc., 41(2), 638-648.
  5. Nussbaumer, H. J. (1982). Fast Fourier Transform and Convolution Algorithms. Sringer-Verlag.
  6. Rader, C. M. (1968, June). Discrete Fourier Transform When the Number of Data Samples is Prime. Proc. IEEE, 56(6), 1107-1108.
  7. Selesnick, I. W. and Burrus, C. S. (1992). Automating the Design of Prime Length FFT Programs. In Proc. of 1992 ISCAS.
  8. Selesnick, I. W. and Burrus, C. S. (1993). Multidimensional Mapping Techniques for Convolution. In Proc. of 1993 ICASSP.
  9. Selesnick, I. W. and Burrus, C. S. (1994). Extending Winograd's Small Convolution Algorithm to Longer Lengths. In Proc. of 1994 ISCAS.
  10. Selesnick, I.W. and Burrus, C.S. (1996, January). Automatic Generation of Prime Length FFT Programs. IEEE Transactions on Signal Processing, 44(1), 14–24.
  11. Stasinski, R. (1986, June). Easy Generation of Small-N Discrete Fourier Transform Algorithms. IEE Proceedings, part G, 133(3), 133-139.
  12. Tolimieri, R. and An, M. and Lu, C. (1989). Algorithms for Discrete Fourier Transform and Convolution. Springer-Verlag.
  13. Winograd, S. (1980). Arithmetic Complexity of Computations. SIAM.

Collection Navigation

Content actions

Download:

Collection as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Add:

Collection to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks

Module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks