This paper presents a novel algorithm to compute real-valued fast Fourier transform (RFFT) that is canonic with respect to the number of signal values. A signal value can correspond to a purely real or purely imaginary value, while a complex signal consists of 2 signal values. For an N-point RFFT, each stage needs not compute more than N signal values, since the degrees of freedom of the input data are N. Any more than N signal values computed at any stage is inherently redundant. In order to reduce the redundant samples, a sample removal lemma, and two types of twiddle factor transformations are proposed: pushing and modulation. We consider 4 different cases for an N = P × Q point canonic RFFT: 1) P is odd, Q is odd; 2) P is odd, Q is even; 3) P is even, Q is odd; and 4) P is even, Q is even. No twiddle factor transformation is required when P is odd. It is shown that the number of twiddle factors can be reduced by performing modulation transformation when P is even and Q is odd, while 2 real twiddle factor operations are pushed to 1 complex twiddle factor operation when P and Q are both even. Canonic RFFT for any composite length can be computed by applying the proposed algorithm recursively. Performances of different RFFTs are also discussed in this paper. The major advantages of the canonic RFFTs are that they require the least number of butterfly operations, lead to more regular sub-blocks in the data-flow, and only involve real datapath when mapped to architectures. However, we also show that canonic RFFTs may not be desirable when taking the cost of twiddle factor operations as the major consideration.
Bibliographical notePublisher Copyright:
© 2017, Springer Science+Business Media, LLC.
- Canonic data-graph
- Composite length
- Decimation-in-frequency (DIf)
- Decimation-in-time (DIT)
- Fast fourier transform (FFT)
- Real-valued FFT (RFFT)
- Sample removal lemma
- Twiddle factor transformation