Jump to content

Butterfly diagram: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
added image
No edit summary
Line 11: Line 11:
<math>r</math> smaller transforms of size <math>m</math> where
<math>r</math> smaller transforms of size <math>m</math> where
<math>r</math> is the "radix" of the transform. These smaller DFTs are then
<math>r</math> is the "radix" of the transform. These smaller DFTs are then
combined with a size-<math>r</math> butterfly, which itself is a DFT of size
combined with a size-<math>r</math> butterflies, which themselves are DFTs of size
<math>r</math> (performed <math>m</math> times on corresponding outputs of the
<math>r</math> (performed <math>m</math> times on corresponding outputs of the
sub-transforms) pre-multiplied by [[root of unity|roots of unity]] (known as
sub-transforms) pre-multiplied by [[root of unity|roots of unity]] (known as

Revision as of 00:35, 20 September 2005

Data-flow diagram connecting the inputs x (left) to the outputs y that depend on them (right) for a "butterfly" step of a radix-2 Cooley-Tukey FFT. This diagram resembles a butterfly (as in the Morpho butterfly shown for comparison), hence the name.

In the context of fast Fourier transform algorithms, a butterfly is a portion of the computation that combines the results of smaller discrete Fourier transforms (DFTs) into a larger DFT, or vice versa (breaking a larger DFT up into subtransforms). The name "butterfly" comes from the shape of the data-flow diagram in the radix-2 case, as described below.

Most commonly, the term "butterfly" appears in the context of the Cooley-Tukey FFT algorithm, which recursively breaks down a DFT of composite size into smaller transforms of size where is the "radix" of the transform. These smaller DFTs are then combined with a size- butterflies, which themselves are DFTs of size (performed times on corresponding outputs of the sub-transforms) pre-multiplied by roots of unity (known as "twiddle factors"). (This is the "decimation in time" case; one can also perform the steps in reverse, known as "decimation in frequency", where the butterflies comes first and are post-multiplied by twiddle factors. See also the Cooley-Tukey FFT article.)

In the case of the radix-2 Cooley-Tukey algorithm, the butterfly is simply a DFT of size 2 that takes two inputs (corresponding outputs of the two sub-transforms) and gives two outputs by the formula (not including twiddle factors):

If one draws the data-flow diagram for this pair of operations, the to lines cross and resemble somewhat the wings of a butterfly, hence the name. (See also the illustration at right.)