Generalizing the Butterfly Structure of the FFT
Any unitary matrix may be decomposed into a butterfly flow graph.
Each individual butterfly may be interpreted as an equivalent 2 × 2 standard complex Givens rotation.
Identification of the butterfly flow graph for any particular unitary matrix is intimately related to the singular value decomposition (SVD) of the different block sub-matrices of the original unitary matrix.
The resulting butterfly flow graph may be interpreted as a prescription of the individual planar coordinate rotations necessary to precisely implement the general multi-dimensional coordinate rotation defined by the unitary matrix. It may also be interpreted as the equivalent polar representation for the matrix.
The general form of the butterfly flow graph is not “fast.” The FFT achieves its computational efficiency due to certain specific mathematical symmetries, permitting removal of extraneous butterflies.
The form of the butterfly flow graph is sensitive to the order in which the inputs and outputs are specified.
A distinct advantage of the MLD is that any approximations or modifications made within this structure continue to result in a full unitary transformation.
An initial MATLAB code set implementing MLD is provided. The author believes the basic MLD concept to be a novel procedure which opens the possibility for subsequent exploitation in a number of different directions.
KeywordsButterfly Computational efficiency Fast transform Fast Fourier transform Flow graph Givens matrix Matrix analysis Matrix decomposition Orthogonal matrix Rotation matrix Unitary matrix Singular value decomposition
This research was partially supported by the Office of Naval Research Code 321MS, via contract through Oak Ridge National Laboratory. Oak Ridge National Laboratory is managed by UT-Battelle, LLC for the United States Department of Energy under Contract DE-AC05-00OR22725.
- 2.J. Polcari, Butterfly decompositions for arbitrary unitary matrices, Working Paper, Rev 2 (Feb 2014), https://drive.google.com/file/d/0B1JunjKxazANLUhiaVhiejB5eDQ
- 3.Wikipedia, Unitary matrix [Online] (2018), http://en.wikipedia.org/wiki/Unitary_matrix
- 4.Wikipedia, Givens rotation [Online] (2018), http://en.wikipedia.org/wiki/Givens_rotation
- 5.J. Polcari, MLD MATLAB Code Set (Oct 2017), https://drive.google.com/drive/folders/0B1JunjKxazANYmlDQkZoWWRxVVU
- 6.J. Polcari, Jacobian determinants of the SVD, Working Paper, Rev 3 (Sept 2017), https://drive.google.com/file/d/0B1JunjKxazANYXgzbXVyMlN3OGM
- 7.J. Polcari, Representing unitary matrices by independent parameters, Working Paper, Rev 0 (Oct 2016), https://drive.google.com/file/d/0B1JunjKxazANM0RtbzhGTi1ZSVU