Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 3 of 3

Thread: r2cfft - a small wrapper to simplify FFT/IFFTs of real-valued sequences

  1. #1
    Junior Member
    Join Date
    Feb 2021
    Posts
    3

    r2cfft - a small wrapper to simplify FFT/IFFTs of real-valued sequences

    I wanted to share a small wrapper function I wrote for the CMSIS arm_rfft_fast_f32() function. It is intended to provide a higher efficiency, near-drop-in-replacement for instances where arm_cfft_f32() is being used with real-valued sequences, and an algorithm based around using n+1 complex-conjugate-symmetric coefficients (as output by arm_rfft_fast_f32()) isn't available or unrealistic to implement.

    A detailed description alongside some performance comparisons can be found on the project's GitHub page.

    Its use cases are likely quite niche, but hopefully someone finds it useful!

  2. #2
    Senior Member
    Join Date
    May 2019
    Posts
    133
    What is the advantage of arm_rfft_fast_f32() over arm_cfft_f32()?

  3. #3
    Senior Member
    Join Date
    Jul 2020
    Posts
    1,249
    Uses half as much memory and nearly twice as fast I suspect. An N-point FFT with real inputs can be done using an N/2-point complex FFT
    using some clever pre- and post-processing.

    An N-point complex-in complex-out FFT needs 2N floats for the inputs and outputs
    An N-point real-in complex-out FFT needs N floats for the inputs and outputs (since the negative frequency bins
    are redundant, being complex conjugates of the positive frequency bins)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •