This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Library/reference code for DFT/iDFT of non power of 2 size

Hello!

I'd like to ask, is there any library or reference code to implement FFT/IFFT, when their sizes are not power of two? Easy to guess I need transform of radix 2, 3, 5. Will appreciate any hint.

  • I am not aware of any reference code to implement this type of transform.  The strategy behind the FFT/IFFT algorithms is the decimation in time/frequency butterfly which is a product of the 2N radix.  This radix also guarantees a symmetry of coefficients that allows the number of multiplies to be reduced, which makes the algorithm faster.  You won't get the same advantages with a  3 or 5 radix, as far as I understand, will you? 

    Just for curiosity's sake, I'm interested to know what advantages you will gain form a 3 or 5 radix FFT.  You could get the same effect if you adjusted the sampling rate (assuming that's possible) and did a radix 2 FFT. 

    Regards,

    Dan

     

  • Thanks for reply.

    I have implemented mixed radix algorithm to perform non power of 2 transform. Sure, it is much better than straitforward implementation, but TI's hand optimized assembly of comparable or greater size (like 12 against 16, 24 against 32) outperforms my implementation about 2 times. So I had a hope somebody is interested in this stuff too.

    As to point using radix 3 and 5 FFT, we better address this question to LTE spec developers :-) In books I found explanation, which says almost like don't complain, be happy there are only three different radices, be happy, that radix 7 and other primes were excluded.

    Being serious, 15 kHz subcarrier spacing was selected to make system clock be multiple of 3.84 MHz, which is used in previous versions of mobiles, and 12 subcarriers per resource block were selected to make 12x15kHz=180kHz minimum bandwidth, which also is magic number for GSM and successors. Because of 12=3x4 radix 3 is naturally included. Then to get more flexibility in resource allocation they introduced 5. In OFDM modulators common practice is to use transform of greater size padded with zeros. But as AFAIK in DFT precoding stage of SC-OFDMA this approach is not applicable.

    AFAIK TI's way is to use hardware accelerator like in Keystone devices. Still I had little hope someone is considering software implementation too...

  • We are planning to add 16-bit radix 2, 3, 5 FFT in later TI DSPLIB releases. The target processors are C64x+ and C66x.

    Regards,

    Yimin

  • Thanks for the info. Really I'm alone with my rare chip...